fem.study.ElasticStudy

fem.study.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 Type Description
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

Name Description
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.study.ElasticStudy.describe()

JSON-ready payload: everything the viewer needs to display it.

solve

fem.study.ElasticStudy.solve(sdf=None, *, backend=None, mesh=None, points=None)

Mesh the field (through the study’s SimMesh) and run the solve.

Parameters

Name Type Description Default
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

Name Type Description
A class:~cadjoint.fem.result.SimulationResult (also stored
as last_result).