Rodin::Heart module

Cardiac models and their coupled state evolution.

const auto report = model.step(dt);

CCMLC2014T advances a reduced ventricular model through a cardiac cycle. HolzapfelReducedLaw and CCMLC2014PassiveLaw supply its reduced passive energy and stress response. The module supports cardiac-cycle studies and constitutive parameter calibration before larger three-dimensional simulations.

0D models integrate ordinary differential equations over a heartbeat and are orders of magnitude cheaper than 3D simulations; parameters should round-trip between the 0D cycle and the corresponding 3D laws before debugging full simulations.

Representative use

The reduced ventricular model advances a configured state with a nonlinear time step:

using Model = Heart::CCMLC2014T<>;
Model::Input input;
Model model(input);
const auto report = model.step(dt);

Material, loading and initialization parameters in input must be chosen for the intended experiment before advancing the model.

Classes

template<class Scalar>
class HolzapfelReducedLaw
Passive-energy evaluator based on reduced invariants.
template<class Scalar>
struct ReducedInvariants
Reduced invariants used by the passive-energy law.
template<class Scalar>
struct ReducedInvariantGradient
First derivatives of passive-energy density with respect to reduced invariants.
template<class Scalar>
struct ReducedInvariantHessian
Second derivatives of passive-energy density with respect to reduced invariants.
template<class Scalar>
struct PassiveEnergyDerivatives
Bundle of gradient and Hessian for passive-energy derivatives.
template<class Scalar>
struct CCMLC2014PassiveLaw
Default passive stress law for the CCMLC2014 reduced model.

Typedefs

template<class PassiveEnergyLaw = HolzapfelReducedLaw<Real>, class PassiveLaw = CCMLC2014PassiveLaw<Real>>
using CCMLC2014T = CCMLC2014::Solver::StepperT<PassiveEnergyLaw, PassiveLaw>
Default CCMLC2014 0D ventricular model type.

Typedef documentation

template<class PassiveEnergyLaw = HolzapfelReducedLaw<Real>, class PassiveLaw = CCMLC2014PassiveLaw<Real>>
using CCMLC2014T = CCMLC2014::Solver::StepperT<PassiveEnergyLaw, PassiveLaw>

Defined in Rodin/Heart/ForwardDecls.h

Default CCMLC2014 0D ventricular model type.

Template parameters
PassiveEnergyLaw Reduced passive energy law.
PassiveLaw Passive stress operator from the reduced invariants.

The default template arguments are declared here, and only here — an alias template cannot be redeclared elsewhere with defaults.