Skip to content

Meshes, loads, and constraints

Model setup is where a finite-element tool becomes practically useful. AgentFEM keeps imported geometry semantics, named regions, loads, constraints, boundary models, and step activation reusable rather than embedding them in one solver.

Mesh routes

  • structured meshes for reproducible studies and tests;
  • XDMF/HDF5 as the direct DOLFINx solver representation;
  • optional Gmsh model and .msh routes;
  • optional meshio conversion for external formats;
  • Abaqus quadratic-tetrahedron, set, surface, and equation parsing;
  • conversion fingerprints so stale cached meshes are not silently reused.

Common engineering actions

  • prescribed displacement and temperature;
  • traction, pressure, body force, gravity, centrifugal and hydrostatic loading;
  • elastic foundations and boundary models;
  • periodic/equation constraints;
  • distributed force and moment resultants;
  • step-wise activation and deactivation.

Declare the numerical unit contract

Finite-element kernels operate on consistent numbers. Record the convention once so manifests, agents, datasets, and future interfaces do not infer units from magnitude:

model = models.create(
    study=studies.static_solid(dimension=3),
    mesh=domain,
    units=units.n_mm_mpa(),
)

units.si() and units.n_mm_mpa() are ready-to-use contracts; units.consistent(...) records another coherent system. AgentFEM does not silently convert material constants in this layer.

For imported simplex meshes, run mesh.audit_quality(..., strict=True) before assembly. The report is collective under MPI and records the threshold and number of poor/invalid owned cells.

Go deeper