1extern crate self as runmat_meshing_core;
2
3pub mod contracts;
4pub mod fixtures;
5pub mod quality;
6pub use quality::{predicate, spatial_index, tolerance};
7pub mod validation;
8
9pub use contracts::artifact::{
10 analysis_mesh_field_topology, AnalysisBoundaryEdge, AnalysisBoundaryFace,
11 AnalysisFieldTopologyDescriptor, AnalysisFieldTopologyLocation, AnalysisMeshArtifact,
12 AnalysisMeshNode, AnalysisVolumeElement, MeshBackendSummary,
13 ANALYSIS_MESH_BOUNDARY_EDGE_TOPOLOGY_ID, ANALYSIS_MESH_BOUNDARY_FACE_TOPOLOGY_ID,
14 ANALYSIS_MESH_FIELD_TOPOLOGY_ID, TETRAHEDRON4_FIELD_ELEMENT_KIND, TRI3_FIELD_ELEMENT_KIND,
15};
16pub use contracts::backend::{select_volume_backend, MeshBackendKind, MeshBackendSelection};
17pub use contracts::boundary::{BoundaryMeshInput, BoundaryMeshTriangle};
18pub use contracts::options::{
19 AdaptiveMeshingOptions, MeshElementOrder, MeshKindRequest, MeshProfile, MeshRefinementOptions,
20 MeshTargetSize, MeshValidationPolicyOptions, RefinementConvergenceOptions,
21 RefinementFocusLevel, RefinementFocusOptions, RefinementIndicatorMode,
22 RefinementIndicatorOverrides, RefinementStrategy, VolumeMeshingOptions,
23};
24pub use contracts::provenance::{AnalysisMeshProvenance, MeshEntityProvenance, SourceEntityKind};
25pub use contracts::topology::{BoundaryElementKind, VolumeElementKind};
26pub use contracts::{
27 validate_meshing_stage_order, CadEdgeContract, CadEvaluatorCapabilities, CadFaceContract,
28 CadModel, CadShellContract, CadVertexContract, CadVolumeContract, CurveMesh, CurveMeshElement,
29 CurveMeshNode, MeshingStage, MeshingStageArtifacts, MeshingStageContractError, PlcFacet,
30 PlcNode, PlcProtectedEdge, PlcValidationSummary, ProtectedBoundaryComplex, SizingFieldContract,
31 SolveReadinessReport, StageEvidence, StageEvidenceStatus,
32 SurfaceCadCurveBoundaryEdgeProvenance, SurfaceCadCurveBoundaryProvenance,
33 SurfaceCurveBoundaryValidation, SurfaceLoopCoverage, SurfaceMesh, SurfaceMeshNode,
34 SurfaceMeshTriangle, Tetrahedron4Element, TetrahedronBoundaryFace, TetrahedronMesh,
35 TetrahedronMeshNode, TopologyEntityId, MESHING_CONTRACT_SCHEMA_VERSION,
36};
37pub use predicate::{
38 closest_point_on_triangle, distance, distance_squared, point_in_closed_triangle_surface,
39 point_triangle_distance, ray_triangle_intersection, tetrahedron_centroid,
40 tetrahedron_circumsphere, tetrahedron_circumsphere_contains_point,
41 tetrahedron_edge_aspect_ratio, tetrahedron_signed_volume, tetrahedron_volume, triangle_area,
42 triangle_centroid, Point3, PointInClosedSurface, RayTriangleHit, Tetrahedron3, Triangle3,
43};
44pub use quality::boundary::{
45 evaluate_boundary_quality_candidate, BoundaryQualityCandidateConstraints,
46 BoundaryQualityCandidateError, BoundaryQualityCandidateEvaluation,
47 BoundaryQualityCandidateOptions, BoundaryQualityCandidateRejectionReason,
48};
49pub use quality::{AnalysisMeshQualityReport, ElementQuality, QualityThresholds};
50pub use runmat_meshing_size::adaptive::{
51 build_refinement_markers_from_samples, default_refinement_indicators_for_analysis,
52 evaluate_adaptive_convergence, plan_refinement_indicators,
53 structural_static_default_refinement_indicators, AdaptiveConvergenceMetrics,
54 AdaptiveConvergenceStatus, AdaptiveIterationSummary, RefinementIndicatorAvailability,
55 RefinementIndicatorKey, RefinementIndicatorSample, RefinementIndicatorStatus,
56 RefinementIndicatorSummary, RefinementMarker, RefinementMarkerError, RefinementMarkerOptions,
57 SizingFieldUpdate,
58};
59pub use runmat_meshing_size::field::{
60 AnisotropicSizingSample, MeshSizingField, PointSizingQuery, SegmentSizingQuery,
61 SizingFieldService, SizingQueryResult, SizingQuerySource, SizingSample,
62 SizingSampleApplication, SizingSampleRejection,
63};
64pub use spatial_index::{Aabb3, LinearSpatialIndex, SpatialEntry, UniformGridSpatialIndex};
65pub use tolerance::MeshingTolerance;
66pub use validation::{
67 analysis_mesh_validation_error_code, validate_analysis_mesh,
68 validate_analysis_mesh_with_options, volume_component_count, AnalysisMeshValidationError,
69 AnalysisMeshValidationOptions,
70};