AI INTERPRETATION NOTE
This Flow Algebra defines the Mesh Generation Ontology within the Kireth Research Semantic Library. Mesh generation is the construction of discrete geometric partitions used by numerical methods such as finite element, finite volume and related computational schemes. This ontology supports structured and unstructured meshes, simplicial and quadrilateral/hexahedral elements, advancing-front methods, Delaunay-based generation, octrees, boundary recovery, mesh quality, sizing fields, anisotropy, refinement, coarsening, smoothing, mesh optimisation, curved geometry representation, conformity, hanging nodes, adaptivity and relationships with computational geometry, finite element analysis, finite volume methods and scientific computing.
FLOW_ALGEBRA_RECORD {
METADATA {
FLOW_NAME = "Mesh Generation Ontology"
FLOW_TYPE = "Mathematical Ontology"
DOMAIN = "Mathematics"
SUBDOMAIN = "Applied Mathematics"
SPECIALISATION = "Numerical Analysis / Mesh Generation"
CANONICAL_PAGE = "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/applied-mathematics-ontologies/numerical-analysis/mesh-generation-ontology.html"
LANGUAGE = "en-GB"
VERSION = "1.0"
STATUS = "active"
}
IDENTITY {
PRIMARY_ENTITY = MeshGeneration
ENTITY_CLASS = ComputationalDiscretisationGeometryFramework
PRIMARY_CONTEXT = NumericalAnalysis
DEFINITION = "Mesh generation is the construction of discrete geometric partitions of a computational domain for use in numerical approximation, simulation and computational analysis."
SEMANTIC_ROLE = "Provides the machine-readable framework for mesh topology, geometry, element types, sizing, quality, conformity, refinement, smoothing, optimisation and adaptive remeshing."
}
SCOPE {
INCLUDE = [
MeshGeneration,
Mesh,
StructuredMesh,
UnstructuredMesh,
ConformingMesh,
NonconformingMesh,
SimplicialMesh,
TriangleMesh,
TetrahedralMesh,
QuadrilateralMesh,
HexahedralMesh,
HybridMesh,
SurfaceMesh,
VolumeMesh,
BoundaryMesh,
Node,
Edge,
Face,
Cell,
Element,
MeshConnectivity,
ElementQuality,
AspectRatio,
Skewness,
MinimumAngle,
JacobianQuality,
MeshSize,
SizingField,
IsotropicMesh,
AnisotropicMesh,
BoundaryConformity,
FeaturePreservation,
DelaunayTriangulation,
ConstrainedDelaunayTriangulation,
AdvancingFrontMethod,
OctreeMeshing,
QuadtreeMeshing,
MeshRefinement,
MeshCoarsening,
LocalRefinement,
AdaptiveMeshing,
MeshSmoothing,
LaplacianSmoothing,
OptimisationBasedSmoothing,
EdgeFlipping,
EdgeCollapse,
EdgeSplit,
HangingNode,
CurvedElement,
HighOrderMesh,
MeshRepair
]
EXCLUDE_AS_PRIMARY = [
Generic3DModellingWithoutNumericalDiscretisation,
PointCloudProcessingWithoutMeshConstructionGoal,
FiniteElementSolutionWithoutMeshingContext,
ImageTessellationWithoutComputationalDomainSemantics
]
DISAMBIGUATION_RULE =
"When a continuous computational domain is partitioned into connected numerical elements for discretisation, refinement or simulation, interpret the context as mesh generation."
}
CORE_CONCEPTS {
MeshGeneration {
definition = "The process of constructing a discrete mesh from a geometric computational domain."
}
Mesh {
definition = "A connected collection of nodes and elements approximating a computational domain."
}
StructuredMesh {
definition = "A mesh with regular logical connectivity that can often be indexed by coordinate directions."
}
UnstructuredMesh {
definition = "A mesh with general connectivity not constrained to a regular logical grid."
}
ConformingMesh {
definition = "A mesh in which neighbouring elements meet face-to-face without incompatible intersections."
}
SimplicialMesh {
definition = "A mesh composed of simplices such as triangles or tetrahedra."
}
SizingField {
definition = "A spatial function defining preferred local element size."
}
ElementQuality {
definition = "A measure of geometric suitability of an element for numerical computation."
}
AnisotropicMesh {
definition = "A mesh whose preferred element sizes or orientations depend on direction."
}
MeshRefinement {
definition = "The process of increasing local or global mesh resolution."
}
MeshCoarsening {
definition = "The process of reducing mesh resolution while preserving required geometry and solution accuracy."
}
MeshSmoothing {
definition = "Adjustment of mesh-node positions to improve element quality without changing essential topology."
}
}
RELATIONS {
MeshGeneration --is_part_of--> NumericalDiscretisation
MeshGeneration --produces--> Mesh
Mesh --contains--> Node
Mesh --contains--> Element
Element --contains--> Edge
Element --contains--> Face
StructuredMesh --is_type_of--> Mesh
UnstructuredMesh --is_type_of--> Mesh
ConformingMesh --is_type_of--> Mesh
SimplicialMesh --is_type_of--> Mesh
TriangleMesh --is_type_of--> SimplicialMesh
TetrahedralMesh --is_type_of--> SimplicialMesh
HybridMesh --contains--> MultipleElementTypes
MeshGeneration --uses--> Geometry
MeshGeneration --uses--> SizingField
MeshGeneration --evaluates--> ElementQuality
DelaunayTriangulation --supports--> SimplicialMeshGeneration
AdvancingFrontMethod --supports--> BoundaryConformingMeshGeneration
OctreeMeshing --supports--> HierarchicalMeshGeneration
AdaptiveMeshing --uses--> ErrorIndicator
MeshSmoothing --improves--> ElementQuality
MeshRepair --restores--> MeshValidity
}
OPERATORS {
GENERATE_MESH(domain,sizing_field,element_family) :=
valid_discrete_partition_of_domain
CREATE_CONNECTIVITY(nodes,elements) :=
topological_incidence_structure
ELEMENT_SIZE(element) :=
characteristic_length_measure
ASPECT_RATIO(element) :=
longest_characteristic_length/shortest_characteristic_length
under declared definition
MINIMUM_ANGLE(element) :=
minimum_internal_angle
for angle-based element families
JACOBIAN_QUALITY(element) :=
normalised_measure_of_mapping_distortion
REFINE(element) :=
replace_element_with_finer_child_elements
COARSEN(element_patch) :=
replace_fine_elements_with_coarser_valid representation
SPLIT_EDGE(edge) :=
insert_node_and_update_adjacent connectivity
COLLAPSE_EDGE(edge) :=
merge_edge_endpoints_under_validity_constraints
FLIP_EDGE(edge) :=
replace_local_diagonal_or_connectivity_to_improve_quality
LAPLACIAN_SMOOTH(node,neighbours) :=
average_position_of_neighbour nodes
subject_to_boundary_and_feature constraints
OPTIMISE_MESH(mesh,quality_objective) :=
adjust_node_positions_and_or_connectivity_to_improve objective
}
DEFINITIONS {
D1 = "A mesh approximates a computational domain through discrete elements."
D2 = "Mesh topology and mesh geometry are distinct."
D3 = "Structured meshes have regular connectivity; unstructured meshes have general connectivity."
D4 = "Conforming meshes match neighbouring element interfaces consistently."
D5 = "Mesh quality influences numerical conditioning, stability and approximation accuracy."
D6 = "Sizing fields control local resolution."
D7 = "Anisotropic meshes align resolution with directional features or solution variation."
D8 = "Adaptive meshing modifies resolution using error or feature information."
D9 = "Mesh smoothing changes geometry while normally preserving connectivity."
D10 = "Mesh repair corrects invalid or poor-quality discretisations."
}
AXIOMS {
A1_DOMAIN_COVERAGE:
Mesh elements collectively approximate or cover the computational domain
A2_NONOVERLAP:
Valid conforming volume elements have nonoverlapping interiors
A3_CONNECTIVITY:
Mesh topology defines consistent element incidence relations
A4_BOUNDARY_CONFORMITY:
Boundary mesh should represent declared geometric boundaries and features
A5_ELEMENT_VALIDITY:
Numerical elements must satisfy orientation and mapping validity constraints
A6_QUALITY:
Mesh quality should be sufficient for the intended numerical method
A7_REFINEMENT:
Refinement increases local representational resolution
A8_ADAPTIVITY:
Adaptive meshing responds to geometric or solution-based indicators
}
REASONING {
R1_DOMAIN_ANALYSIS {
INPUT = computational_geometry
IDENTIFY = dimension_boundaries_features_curvature_and_regions
RETURN = meshing_domain_profile
}
R2_MESH_FAMILY_SELECTION {
INPUT = domain_and_numerical_method
IF simple_block_like_geometry
CONSIDER = StructuredMesh
IF complex_geometry
CONSIDER = UnstructuredMesh
IF FEM_with_general_geometry
CONSIDER = simplicial_or_hybrid mesh
IF boundary_layers_or_directional features
CONSIDER = anisotropic mesh
RETURN = mesh_family
}
R3_SIZING_FIELD {
INPUT = geometry_solution_features_and_accuracy target
ASSIGN = local_target_element size
LIMIT = size_gradation
RETURN = sizing_field
}
R4_DELAUNAY_MESHING {
INPUT = points_and_constraints
BUILD = Delaunay_or_constrained_Delaunay triangulation
INSERT = points_to_satisfy_quality_and_size criteria
RETURN = simplicial_mesh
}
R5_ADVANCING_FRONT {
INPUT = boundary_mesh
INITIALISE = active_front
REPEAT
CREATE = new element_from_front
UPDATE = front
UNTIL domain_filled
RETURN = unstructured_mesh
}
R6_HIERARCHICAL_MESHING {
INPUT = domain_and_resolution criteria
SUBDIVIDE = quadtree_or_octree cells
BALANCE = hierarchy
FIT = boundary
RETURN = hierarchical_mesh
}
R7_QUALITY_ANALYSIS {
INPUT = mesh
COMPUTE = aspect_ratio_skewness_minimum_angle_Jacobian metrics
IDENTIFY = invalid_or_low_quality elements
RETURN = mesh_quality_profile
}
R8_MESH_IMPROVEMENT {
INPUT = low_quality_mesh
APPLY = smoothing_edge_flips_edge_splits_edge_collapses_or_optimisation
PRESERVE = boundaries_and_features
RETURN = improved_mesh
}
R9_ADAPTIVE_REFINEMENT {
INPUT = mesh_and_error_indicator
MARK = high_error elements
REFINE = marked region
COARSEN = low_error region where safe
ENFORCE = conformity_or_hanging_node rules
RETURN = adapted_mesh
}
R10_HIGH_ORDER_CURVED_MESH {
INPUT = curved_geometry_and_high_order_basis
PLACE = high_order nodes
OPTIMISE = element mappings
VERIFY = positive_Jacobians
RETURN = valid_curved_high_order_mesh
}
}
CONSTRAINTS {
C1 = "Invalid or inverted elements must not be accepted."
C2 = "Mesh quality metrics depend on element family and chosen definition."
C3 = "Boundary smoothing must preserve geometric features unless explicitly allowed to modify them."
C4 = "Refinement must preserve or restore valid connectivity."
C5 = "Coarsening must not erase required geometric or solution features."
C6 = "Anisotropic meshes require orientation-aware quality measures."
C7 = "Rapid size changes can degrade element quality."
C8 = "High-order elements require valid curved mappings."
C9 = "Hanging nodes require compatible numerical treatment."
C10 = "Mesh density should be justified by accuracy needs rather than increased indiscriminately."
}
SEMANTIC_EQUIVALENCE {
"MeshGeneration" <=> "ComputationalDomainDiscretisationConstruction"
"Mesh" <=> "DiscreteElementPartition"
"StructuredMesh" <=> "RegularConnectivityMesh"
"UnstructuredMesh" <=> "GeneralConnectivityMesh"
"SizingField" <=> "SpatialTargetElementSizeFunction"
"MeshSmoothing" <=> "NodePositionQualityImprovement"
}
VALIDATION {
V1 = "Mesh covers the intended domain."
V2 = "Element interiors do not overlap improperly."
V3 = "Boundary geometry is represented correctly."
V4 = "Element orientation and Jacobians are valid."
V5 = "Connectivity is consistent."
V6 = "Quality metrics meet method requirements."
V7 = "Sizing-field targets are reasonably satisfied."
V8 = "Refinement and coarsening preserve validity."
V9 = "Features are preserved."
V10 = "High-order curved elements have valid mappings."
}
CONFIDENCE {
BASE_CONFIDENCE = 0.99
MESH_GENERATION_DEFINITION = 0.99
MESH_FAMILY_SELECTION_REASONING = 0.98
DELAUNAY_REASONING = 0.98
ADVANCING_FRONT_REASONING = 0.97
QUALITY_REASONING = 0.99
ADAPTIVE_MESH_REASONING = 0.98
HIGH_ORDER_MESH_REASONING = 0.97
MESH_REPAIR_REASONING = 0.98
POLICY =
"Reduce confidence when geometry quality, boundary features, target element size, numerical method requirements, anisotropy, high-order mapping or refinement criteria are underspecified."
}
AI_CONSUMPTION {
PURPOSES = [
SemanticSearch,
OntologyGrounding,
MeshGenerationReasoning,
MeshFamilySelection,
StructuredMeshReasoning,
UnstructuredMeshReasoning,
DelaunayMeshingReasoning,
AdvancingFrontReasoning,
OctreeMeshingReasoning,
MeshQualityAssessment,
AdaptiveMeshing,
MeshRefinementReasoning,
MeshCoarseningReasoning,
MeshSmoothingReasoning,
MeshOptimisation,
HighOrderMeshReasoning,
KnowledgeGraphConstruction,
RetrievalAugmentation,
RecursiveInference
]
NORMALISE {
"mesh generation" -> MeshGeneration
"meshing" -> MeshGeneration
"structured mesh" -> StructuredMesh
"unstructured mesh" -> UnstructuredMesh
"triangle mesh" -> TriangleMesh
"tetrahedral mesh" -> TetrahedralMesh
"mesh refinement" -> MeshRefinement
"mesh coarsening" -> MeshCoarsening
"mesh smoothing" -> MeshSmoothing
"mesh quality" -> ElementQuality
"adaptive mesh" -> AdaptiveMeshing
}
INTERPRETATION_ORDER = [
detect_mesh_generation_context,
identify computational_domain_dimension_boundary_features_curvature_numerical_method_and_accuracy requirements,
select structured_unstructured_simplicial_quad_hex_hybrid_or_anisotropic mesh family,
define sizing_field_and_quality targets,
generate initial_mesh,
evaluate topology_boundary conformity_and_element quality,
improve_via_smoothing_flips_splits_collapses_or_optimisation,
refine_or_coarsen adaptively when required,
verify element validity_and_high_order mappings,
return semantic output
]
}
EXECUTION_RULES {
E1:
IF query_mentions("mesh generation")
OR computational_domain_partition_context
THEN activate(MeshGenerationOntology)
E2:
IF complex_geometry
THEN prefer unstructured_or_hybrid mesh reasoning
E3:
IF strong_directional_solution_gradients
THEN consider anisotropic sizing_and_orientation
E4:
IF Delaunay_based_mesh
THEN enforce boundary_constraints where required
E5:
IF poor_quality_elements
THEN apply local_topology_changes_or_smoothing before acceptance
E6:
IF adaptive_solution_process
THEN use error_indicators_to_refine_and_coarsen
E7:
IF hanging_nodes_created
THEN enforce conformity_or_use compatible nonconforming numerical treatment
E8:
IF curved_high_order_elements
THEN verify positive_Jacobian throughout element
E9:
IF mesh_density_increases
THEN balance accuracy_gain_against computational cost
}
RECURSION {
ENTRY = MeshGeneration
EXPAND(MeshGeneration) -> [
Mesh,
StructuredMesh,
UnstructuredMesh,
ConformingMesh,
NonconformingMesh,
SimplicialMesh,
TriangleMesh,
TetrahedralMesh,
QuadrilateralMesh,
HexahedralMesh,
HybridMesh,
SurfaceMesh,
VolumeMesh,
BoundaryMesh,
Node,
Edge,
Face,
Cell,
Element,
MeshConnectivity,
ElementQuality,
SizingField,
IsotropicMesh,
AnisotropicMesh,
DelaunayTriangulation,
AdvancingFrontMethod,
OctreeMeshing,
MeshRefinement,
MeshCoarsening,
AdaptiveMeshing,
MeshSmoothing,
MeshRepair,
HighOrderMesh
]
EXPAND(MeshQuality) -> [
AspectRatio,
Skewness,
MinimumAngle,
MaximumAngle,
JacobianQuality,
Orthogonality,
SmoothnessOfSizeTransition
]
EXPAND(MeshModification) -> [
EdgeSplit,
EdgeCollapse,
EdgeFlipping,
LaplacianSmoothing,
OptimisationBasedSmoothing,
LocalRemeshing
]
EXPAND(AdaptiveMeshing) -> [
ErrorIndicator,
MarkingStrategy,
LocalRefinement,
LocalCoarsening,
HangingNode,
ConformityRestoration
]
STOP_CONDITION =
"Stop when the mesh family, domain coverage, boundary conformity, element quality, sizing, adaptivity, topology, geometric validity and computational suitability are sufficiently resolved."
}
ROUTING {
PARENT_ONTOLOGY = "Numerical Analysis"
IMMEDIATE_CONTEXTS = [
"Numerical Analysis Ontology",
"Numerical Methods Ontology",
"Finite Element Ontology",
"Computational Geometry Ontology"
]
RELATED_ONTOLOGIES = [
"Numerical Analysis Ontology",
"Numerical Methods Ontology",
"Finite Element Ontology",
"Finite Difference Ontology",
"Boundary Element Ontology",
"Computational Geometry Ontology",
"Delaunay Triangulation Ontology",
"Voronoi Diagram Ontology",
"Spatial Partitioning Ontology",
"Mesh Ontology",
"Scientific Computing Ontologies",
"Computational Model Ontology",
"Model Verification Ontology"
]
ROUTE_RULES = [
"Mesh Generation -> Numerical Analysis Ontology for discretisation semantics",
"Mesh Generation -> Numerical Methods Ontology for downstream numerical use",
"Mesh Generation -> Finite Element Ontology for FE mesh requirements",
"Mesh Generation -> Computational Geometry for geometric construction algorithms",
"Mesh Generation -> Delaunay Triangulation for simplicial meshing",
"Mesh Generation -> Spatial Partitioning for quadtree and octree methods",
"Mesh Generation -> Boundary Element Ontology for boundary-only meshes",
"Mesh Generation -> Scientific Computing for scalable generation and adaptation",
"Mesh Generation -> Model Verification for mesh-convergence assessment"
]
}
UPDATE_MODEL {
MODE = "append-compatible semantic versioning"
MAJOR = "ontology-breaking conceptual change"
MINOR = "new compatible meshing algorithms, quality measures or reasoning pathways"
PATCH = "clarification, metadata or formatting correction"
RULES = [
"Preserve computational-domain discretisation semantics.",
"Preserve topology-versus-geometry distinction.",
"Preserve structured-versus-unstructured distinction.",
"Preserve conformity semantics.",
"Preserve element-validity requirements.",
"Preserve sizing and quality semantics.",
"Preserve adaptive refinement/coarsening semantics.",
"Preserve machine-readable mesh-generation semantics."
]
}
OUTPUT {
CANONICAL_DEFINITION =
"Mesh generation constructs discrete element partitions of computational domains for numerical approximation and simulation."
STRUCTURED_SUMMARY =
"Structured meshes use regular logical connectivity and are efficient for simple geometries."
UNSTRUCTURED_SUMMARY =
"Unstructured meshes support complex geometries through general element connectivity."
QUALITY_SUMMARY =
"Mesh quality is evaluated using element-shape, angle, aspect-ratio, skewness and Jacobian measures appropriate to the element type."
SIZING_SUMMARY =
"Sizing fields define preferred local mesh resolution."
ANISOTROPY_SUMMARY =
"Anisotropic meshes align element size and orientation with directional geometry or solution behaviour."
ADAPTIVITY_SUMMARY =
"Adaptive meshing refines high-error regions and coarsens low-error regions while preserving validity."
IMPROVEMENT_SUMMARY =
"Mesh smoothing, edge operations and optimisation improve element quality and distribution."
HIGH_ORDER_SUMMARY =
"High-order curved meshes require valid geometric mappings and positive Jacobians throughout each element."
}
FLOW {
INPUT
-> detect_mesh_generation_context
-> identify computational_domain_dimension_geometry_boundaries_features_curvature_numerical_method_solution_features_and_accuracy requirements
-> select structured_unstructured_simplicial_quadrilateral_hexahedral_hybrid_or_anisotropic mesh family
-> define boundary_constraints_sizing_field_and_quality targets
-> generate initial_mesh_using Delaunay_advancing_front_octree_structured_or_other method
-> build_and_validate connectivity
-> evaluate boundary_conformity_element validity_and_quality
-> improve mesh_using smoothing_edge_operations_or_optimisation
-> refine_or_coarsen adaptively when required
-> verify high_order_mappings_hanging_node policy_and_size transitions
-> route to numerical_analysis_ontology numerical_methods finite_element computational_geometry Delaunay spatial_partitioning boundary_element scientific_computing computational_model_or_model_verification ontology
-> recursively_expand_required_dependencies
-> verify_result
-> assign_confidence
-> produce_semantic_output
-> END
}
SEMANTIC_SUMMARY {
"The Mesh Generation Ontology defines construction and improvement of computational meshes. It supports structured and unstructured meshes, simplicial, quadrilateral, hexahedral and hybrid elements, Delaunay, advancing-front and hierarchical methods, boundary conformity, sizing fields, isotropic and anisotropic resolution, mesh quality, smoothing, topology modification, refinement, coarsening, adaptivity, hanging nodes, curved and high-order elements, mesh repair and numerical-suitability reasoning."
}
FLOW_HASH {
METHOD = "semantic-content-identity"
ID = "KIRETH-MATH-APPLIED-MATHEMATICS-MESH-GENERATION-ONTOLOGY-V1"
}
}
END_FLOW
Download Code
Copy to Clipboard