ActiveContraction final

Adds active fiber stress to a passive law.

Defined in Rodin/Solid/Constitutive/ActiveContraction.h

template <
  class PassiveLaw,
  class ActiveLaw = ActiveFiberLaw>
class ActiveContraction final;
Template parameters
PassiveLaw Passive constitutive law with non-const binding and const evaluation.
ActiveLaw Three-field active law providing residual and partial tangent blocks.

The passive law can be any Rodin hyperelastic law. The active contribution is aligned with Tags::FiberDirection and uses Tags::ActiveExtension; if dynamic tags are present (TimeStep, PreviousActiveExtension, PreviousActiveGamma, PreviousActiveBeta, ElectricalActivation), the active extension, gamma and beta must also be supplied as independent discontinuous fields. Const accessors expose their residual and tangent blocks for a coupled global Newton solve; no local solve or condensation occurs.

Direct inheritance by class family
↓
ActiveContraction

Inherits from

Base classResponsibility
HyperElasticLaw<…>public
Full type
HyperElasticLaw< ActiveContraction< PassiveLaw, ActiveFiberLaw > >
CRTP base class for hyperelastic constitutive laws.

Inherited interface

Declared inMembers
HyperElasticLaw
4 members

Constructors, destructors, conversion operators

ActiveContraction(const PassiveLaw& passiveLaw, const ActiveLaw& activeLaw = ActiveLaw())
Constructs the coupled active contraction law.

Public functions

auto getPassiveLaw() const -> const PassiveLaw&
Returns the passive hyperelastic law.
auto getActiveLaw() const -> const ActiveLaw&
Returns the active fiber law.
auto setConstitutivePoint(const ConstitutivePoint& cp) -> ActiveContraction&
Binds passive and active inputs, reusing unchanged active responses.
auto getKinematicState() const -> const KinematicState&
Returns owned kinematics shared with the passive law.
auto getStrainEnergyDensity() const -> Real
Returns the prepared strain-energy density.
void getFirstPiolaKirchhoffStress(Math::SpatialMatrix<Real>& P) const
Computes prepared passive and active stress.
void getMaterialTangent(Math::SpatialMatrix<Real>& dP, const Math::SpatialMatrix<Real>& dF) const
Computes the prepared material tangent action.
auto getFiberKinematics() const -> const FiberKinematics&
Returns fiber kinematics.
auto getFiberStrain() const -> Real
Returns current fiber strain.
auto getActiveExtension() const -> Real
Returns current active extension.
auto getActiveResponse() const -> const ActiveLaw::Response&
Returns active stress response.
auto getActiveState() const -> const ActiveLaw::State&
Returns current independent active state.
auto isDynamic() const -> bool
Returns whether dynamic active equations were evaluated.
auto getActiveResidual() const -> const ActiveLaw::Residual&
Returns uneliminated active residual and derivatives.

Function documentation

ActiveContraction(const PassiveLaw& passiveLaw, const ActiveLaw& activeLaw = ActiveLaw())

Constructs the coupled active contraction law.

Parameters
passiveLaw Passive constitutive law.
activeLaw Active constitutive law.

const PassiveLaw& getPassiveLaw() const

Returns the passive hyperelastic law.

Returns The passive hyperelastic law.

const ActiveLaw& getActiveLaw() const

Returns the active fiber law.

Returns The active fiber law.

ActiveContraction& setConstitutivePoint(const ConstitutivePoint& cp)

Binds passive and active inputs, reusing unchanged active responses.

Parameters
cp Constitutive point supplying kinematics and active fields.
Returns This law after successful binding.

const KinematicState& getKinematicState() const

Returns owned kinematics shared with the passive law.

Returns Prepared kinematic state.

Real getStrainEnergyDensity() const

Returns the prepared strain-energy density.

Returns Passive and active strain-energy density.

void getFirstPiolaKirchhoffStress(Math::SpatialMatrix<Real>& P) const

Computes prepared passive and active stress.

Parameters
P Output first Piola-Kirchhoff stress.

void getMaterialTangent(Math::SpatialMatrix<Real>& dP, const Math::SpatialMatrix<Real>& dF) const

Computes the prepared material tangent action.

Parameters
dP Output stress increment.
dF Deformation-gradient increment.

const FiberKinematics& getFiberKinematics() const

Returns fiber kinematics.

Returns Prepared fiber kinematics.

Real getFiberStrain() const

Returns current fiber strain.

Returns Prepared current fiber strain.

Real getActiveExtension() const

Returns current active extension.

Returns Prepared current active extension.

const ActiveLaw::Response& getActiveResponse() const

Returns active stress response.

Returns Prepared active stress response.

const ActiveLaw::State& getActiveState() const

Returns current independent active state.

Returns Prepared current independent active state.

bool isDynamic() const

Returns whether dynamic active equations were evaluated.

Returns Prepared whether dynamic active equations were evaluated.

const ActiveLaw::Residual& getActiveResidual() const

Returns uneliminated active residual and derivatives.

Returns Prepared uneliminated active residual and derivatives.