Skip to content

Class uipc::constitution::AffineBodyRod

ClassList > uipc > constitution > AffineBodyRod

Codimensional 1D (rod) affine body constitution. More...

  • #include <affine_body_rod.h>

Inherits the following classes: uipc::constitution::AffineBodyConstitution

Public Functions

Type Name
AffineBodyRod (const Json & config=default_config()) noexcept
void apply_to (geometry::SimplicialComplex & sc, Float kappa, Float mass_density=1e3, Float thickness=0.01) const
Apply the rod constitution to a 1D simplicial complex.

Public Functions inherited from uipc::constitution::AffineBodyConstitution

See uipc::constitution::AffineBodyConstitution

Type Name
AffineBodyConstitution (const Json & config=default_config()) noexcept
void apply_to (geometry::SimplicialComplex & sc, Float kappa, Float mass_density=1e3) const
void apply_to (geometry::SimplicialComplex & sc, Float kappa, const Matrix12x12 & mass, Float volume) const
Apply ABD constitution with explicit mass matrix and volume override.
AffineBodyMaterial create_material (Float kappa) noexcept const

Public Functions inherited from uipc::constitution::IConstitution

See uipc::constitution::IConstitution

Type Name
std::string_view name () noexcept const
std::string_view type () noexcept const
U64 uid () noexcept const
const builtin::UIDInfo & uid_info () noexcept const
virtual ~IConstitution () = default

Public Static Functions inherited from uipc::constitution::AffineBodyConstitution

See uipc::constitution::AffineBodyConstitution

Type Name
Json default_config () noexcept

Protected Functions inherited from uipc::constitution::AffineBodyConstitution

See uipc::constitution::AffineBodyConstitution

Type Name
virtual U64 get_uid () noexcept override const
void setup_abd_attributes (geometry::SimplicialComplex & sc, Float kappa, Float mass_density, Float volume) const
Common ABD attribute setup without volume computation.

Protected Functions inherited from uipc::constitution::IConstitution

See uipc::constitution::IConstitution

Type Name
virtual U64 get_uid () noexcept const = 0

Detailed Description

Convenience subclass of AffineBodyConstitution for edge meshes (polylines) treated as thin rods with a circular cross-section of a given radius.

Uses the same UID as AffineBodyConstitution (OrthoPotential = 1 by default). Sets builtin::is_codim = 1 on the geometry meta so the backend uses the codim dyadic mass computation path.

Public Functions Documentation

function AffineBodyRod

uipc::constitution::AffineBodyRod::AffineBodyRod (
    const Json & config=default_config()
) noexcept

function apply_to

Apply the rod constitution to a 1D simplicial complex.

void uipc::constitution::AffineBodyRod::apply_to (
    geometry::SimplicialComplex & sc,
    Float kappa,
    Float mass_density=1e3,
    Float thickness=0.01
) const

Parameters:

  • sc The edge mesh (dim == 1).
  • kappa Stiffness parameter for shape energy.
  • mass_density Volume mass density (kg/m³).
  • thickness Rod cross-section radius r (cross-section area = π r²).


The documentation for this class was generated from the following file include/uipc/constitution/affine_body_rod.h