forked from 1b-agent/fieldcraft-upstream
Add the modelcraft-mesh crate (empty: error type only) (#3)
So the predicates and quality tasks can add modules in parallel without both creating the crate. Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm Co-authored-by: jyviko <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]>
This commit is contained in:
5 files changed
+45
-1
No files matched your search
Generated
+8
@@ -367,6 +367,14 @@ dependencies = [
|
|||||||
"thiserror 2.0.21",
|
"thiserror 2.0.21",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "modelcraft-mesh"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"modelcraft-model",
|
||||||
|
"thiserror 2.0.21",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "modelcraft-model"
|
name = "modelcraft-model"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ repository = "https://github.com/jyviko/modelcraft"
|
|||||||
# internal
|
# internal
|
||||||
modelcraft-model = { path = "crates/model" }
|
modelcraft-model = { path = "crates/model" }
|
||||||
modelcraft-geometry = { path = "crates/geometry" }
|
modelcraft-geometry = { path = "crates/geometry" }
|
||||||
|
modelcraft-mesh = { path = "crates/mesh" }
|
||||||
modelcraft-engine = { path = "crates/engine" }
|
modelcraft-engine = { path = "crates/engine" }
|
||||||
|
|
||||||
# foundation
|
# foundation
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
[package]
|
||||||
|
name = "modelcraft-mesh"
|
||||||
|
description = "ModelCraft's meshing: robust predicates, surface preparation, tetrahedral and hexahedral meshing, quality metrics"
|
||||||
|
version.workspace = true
|
||||||
|
edition.workspace = true
|
||||||
|
license.workspace = true
|
||||||
|
|
||||||
|
[lints]
|
||||||
|
workspace = true
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
modelcraft-model = { workspace = true }
|
||||||
|
thiserror = { workspace = true }
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
//! Meshing: robust geometric predicates, boundary surface preparation, tetrahedral and
|
||||||
|
//! hexahedral volume meshing, and element quality.
|
||||||
|
//!
|
||||||
|
//! Every algorithm here is implemented from the papers cited in its module docs (see
|
||||||
|
//! `docs/meshing/literature.md`); no GPL-family code is read or used. Meshing decisions use exact
|
||||||
|
//! predicates, results are deterministic, and every iterative stage is bounded.
|
||||||
|
#![deny(clippy::unwrap_used, clippy::expect_used, clippy::panic, clippy::unimplemented, clippy::todo, clippy::unreachable)]
|
||||||
|
#![forbid(unsafe_code)]
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, PartialEq, thiserror::Error)]
|
||||||
|
pub enum Error {
|
||||||
|
#[error("invalid input: {0}")]
|
||||||
|
Invalid(String),
|
||||||
|
#[error("limit reached: {0}")]
|
||||||
|
Limit(String),
|
||||||
|
#[error("meshing failed: {0}")]
|
||||||
|
Failed(String),
|
||||||
|
#[error(transparent)]
|
||||||
|
Model(#[from] modelcraft_model::Error),
|
||||||
|
}
|
||||||
|
|
||||||
|
pub type Result<T> = std::result::Result<T, Error>;
|
||||||
@@ -20,7 +20,7 @@ crates in strictly lower layers.
|
|||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| L0 | `modelcraft-model` | Solver-neutral FE model: nodes, elements by label; materials, sections, sets, BCs, loads and steps as they land. Knows no file format. | started |
|
| L0 | `modelcraft-model` | Solver-neutral FE model: nodes, elements by label; materials, sections, sets, BCs, loads and steps as they land. Knows no file format. | started |
|
||||||
| L1 | `modelcraft-geometry` | The only door to SolidCraft: B-rep bodies, measures, tessellation into a face-tagged `SurfaceMesh`. No SolidCraft type in its API. | started |
|
| L1 | `modelcraft-geometry` | The only door to SolidCraft: B-rep bodies, measures, tessellation into a face-tagged `SurfaceMesh`. No SolidCraft type in its API. | started |
|
||||||
| L1 | `modelcraft-mesh` | Surface preparation (weld, watertightness, feature edges), robust predicates, Delaunay tetrahedralization and refinement, Voronoi-based optimization, hex meshing, quality metrics. | planned |
|
| L1 | `modelcraft-mesh` | Surface preparation (weld, watertightness, feature edges), robust predicates, Delaunay tetrahedralization and refinement, Voronoi-based optimization, hex meshing, quality metrics. | started |
|
||||||
| L1 | `modelcraft-solver` | Element formulations, assembly, sparse linear static and modal solution. | planned |
|
| L1 | `modelcraft-solver` | Element formulations, assembly, sparse linear static and modal solution. | planned |
|
||||||
| L1 | `modelcraft-decks` | Abaqus input, Nastran bulk data and LS-DYNA keyword readers and writers, to and from `model`. | planned |
|
| L1 | `modelcraft-decks` | Abaqus input, Nastran bulk data and LS-DYNA keyword readers and writers, to and from `model`. | planned |
|
||||||
| L1 | `modelcraft-render` | Display data (meshes, contour maps) without a GPU dependency. | planned |
|
| L1 | `modelcraft-render` | Display data (meshes, contour maps) without a GPU dependency. | planned |
|
||||||
|
|||||||
Reference in new issue
Block a user