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
.mshroutes; - 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.