fem.ElasticStudy
fem.ElasticStudy(
name,
resolution=None,
*,
youngs=FROM_MATERIAL,
poisson=FROM_MATERIAL,
gravity=None,
bcs=list(),
bounds=None,
size=None,
mesh=None,
domain=None,
)
Declarative small-strain linear elasticity study.
Attributes
| name |
str |
Study identifier (unique within a scene program). |
| resolution |
Any |
Meshing resolution (cells per axis, int or triplet); leave None when mesh is given. |
| youngs |
Any |
Young’s modulus in Pa (keyword-only). A number applies to the whole domain; the default :data:~cadjoint.fem.properties.FROM_MATERIAL sentinel samples the scene’s material field per element instead. |
| poisson |
Any |
Poisson ratio in [0, 0.5) (keyword-only), scalar or material-derived exactly like youngs. |
| gravity |
Any |
Optional gravity vector in m/s^2 (e.g. (0, 0, -9.81)) adding self-weight as the body force density * gravity. The scene’s materials must specify a density. |
| bcs |
list[Fixed | Traction] |
:class:Fixed / :class:Traction boundary conditions (at least one Fixed is required to solve). |
| bounds |
Any |
Lower corner of the meshing domain (None: default volume). |
| size |
Any |
Extent of the meshing domain (None: default volume). |
| mesh |
SimMesh | str | None |
A declared :class:~cadjoint.fem.simmesh.SimMesh (or its name) to solve on; when given, resolution/bounds/size/domain live on the mesh and must be left unset here. |
| domain |
Any |
Optional SDF restricting which part of the scene is meshed (implicit-mesh studies only). |
| last_result |
Any |
The :class:~cadjoint.fem.result.SimulationResult of the most recent solve (None before the first). |
Methods
| describe |
JSON-ready payload: everything the viewer needs to display it. |
| solve |
Mesh the field (through the study’s SimMesh) and run the solve. |
describe
fem.ElasticStudy.describe()
JSON-ready payload: everything the viewer needs to display it.
solve
fem.ElasticStudy.solve(sdf=None, *, backend=None, mesh=None, points=None)
Mesh the field (through the study’s SimMesh) and run the solve.
Parameters
| sdf |
|
Scene SDF object or plain callable field; optional when the study’s mesh declares a domain. |
None |
| backend |
|
Optional solver backend override (see :func:cadjoint.fem.simulate.elastic_solve). |
None |
| mesh |
HexMesh | TetMesh | SimMesh | str | None |
Optional mesh override — a pre-extracted :class:~cadjoint.fem.hexmesh.HexMesh or :class:~cadjoint.fem.tetmesh.TetMesh, a SimMesh, or a declared mesh name. |
None |
| points |
|
The placement — what the mesh’s moved returned for a traced design (node positions for a mesh, the field for cut cells) — for differentiable frozen-topology solves; BC selections still resolve on the nominal mesh. |
None |
Returns
| A |
|
class:~cadjoint.fem.result.SimulationResult (also stored |
|
|
as last_result). |