Skip to main content

Mesh Generation Ontology

Numerical Analysis
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 12 September 2026
Audio Overview
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
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ