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.
Inherits from
| Base class | Responsibility |
|---|---|
HyperElasticLaw<…>publicFull typeHyperElasticLaw< ActiveContraction< PassiveLaw, ActiveFiberLaw > > | CRTP base class for hyperelastic constitutive laws. |
Inherited interface
| Declared in | Members |
|---|---|
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. |
|---|
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 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. |
|---|