template<class PassiveLaw, class ActiveLaw = ActiveFiberLaw>
ActiveContraction class final
Adds active fiber stress to a passive law.
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 condensed dynamic tangent is used.
Base classes
-
template<class Derived>class HyperElasticLaw<ActiveContraction<PassiveLaw, ActiveFiberLaw>>
- CRTP base class for hyperelastic constitutive laws.
Public types
- struct Cache
- Cached passive and active quantities at a quadrature point.
Constructors, destructors, conversion operators
- ActiveContraction(const PassiveLaw& passiveLaw, const ActiveLaw& activeLaw = ActiveLaw())
- Constructs the coupled active contraction law.
Public functions
- auto setLocalTolerance(Real tol) -> ActiveContraction&
- Sets the convergence tolerance for the per-quadrature-point local Newton solve on .
- auto setLocalMaxIterations(size_t n) -> ActiveContraction&
- Sets the maximum number of local Newton iterations on .
- auto getPassiveLaw() const -> const PassiveLaw&
- Returns the passive hyperelastic law.
- auto getActiveLaw() const -> const ActiveLaw&
- Returns the active fiber law.
- void setCache(Cache& cache, const ConstitutivePoint& cp) const
- Populates cached passive and active quantities.
- auto getStrainEnergyDensity(const Cache& cache, const ConstitutivePoint& cp) const -> Real
- Returns the sum of passive and active strain-energy densities.
-
void getFirstPiolaKirchhoffStress(Math::
SpatialMatrix<Real>& P, const Cache& cache, const ConstitutivePoint& cp) const - Adds the active contribution to the first Piola-Kirchhoff stress.
-
void getMaterialTangent(Math::
SpatialMatrix<Real>& dP, const Cache& cache, const ConstitutivePoint& cp, const Math:: SpatialMatrix<Real>& dF) const - Adds the active contribution to the material tangent action.