fem.study.ThermalStudy

fem.study.ThermalStudy(
    name,
    resolution=None,
    *,
    conductivity=FROM_MATERIAL,
    bcs=list(),
    source=0.0,
    bounds=None,
    size=None,
    mesh=None,
    domain=None,
)

Declarative steady-state heat conduction 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.
conductivity Any Thermal conductivity k in W/(m*K), 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.
bcs list[Dirichlet | HeatFlux] :class:Dirichlet / :class:HeatFlux boundary conditions (at least one Dirichlet is required to solve).
source float Volumetric heat source q.
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.ThermalStudy.describe()

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

solve

fem.study.ThermalStudy.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.thermal_solve). None
mesh HexMesh | TetMesh | CutMesh | 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).