Chaste Commit::baa90ac2819b962188b7562f2326be23c47859a7
AbstractContractionModel Class Referenceabstract

#include <AbstractContractionModel.hpp>

+ Inheritance diagram for AbstractContractionModel:
+ Collaboration diagram for AbstractContractionModel:

Public Member Functions

 AbstractContractionModel ()
 
virtual ~AbstractContractionModel ()
 
virtual bool IsStretchDependent ()=0
 
virtual bool IsStretchRateDependent ()=0
 
virtual void SetInputParameters (ContractionModelInputParameters &rInputParameters)=0
 
virtual void SetStretchAndStretchRate (double stretch, double stretchRate)=0
 
void SetStretch (double stretch)
 
virtual void RunDoNotUpdate (double startTime, double endTime, double timeStep)=0
 
virtual void RunAndUpdate (double startTime, double endTime, double timeStep)=0
 
virtual void UpdateStateVariables ()=0
 
virtual double GetActiveTension ()=0
 
virtual double GetNextActiveTension ()=0
 

Detailed Description

General interface for contraction models (models on the cell level determining the active tension (actually a stress) induced in a cell in response to electrical activity or mechanical deformation).

Definition at line 58 of file AbstractContractionModel.hpp.

Constructor & Destructor Documentation

◆ AbstractContractionModel()

AbstractContractionModel::AbstractContractionModel ( )
inline

Constructor does nothing.

Definition at line 64 of file AbstractContractionModel.hpp.

◆ ~AbstractContractionModel()

virtual AbstractContractionModel::~AbstractContractionModel ( )
inlinevirtual

Abstract destructor does nothing.

Definition at line 71 of file AbstractContractionModel.hpp.

Member Function Documentation

◆ GetActiveTension()

virtual double AbstractContractionModel::GetActiveTension ( )
pure virtual
Returns
the current active tension (note, actually a stress). (Pure, to be implemented in the concrete class).

DO NOT call inbetween RunDoNotUpdate() and UpdateStateVariables() as the old state variables but the next time would then be used in calculating Ta. Instead, use GetNextActiveTension(), or call UpdateStateVariables() and then this.

Implemented in ConstantActiveTension, FakeBathContractionModel, Kerchoffs2003ContractionModel, Nash2004ContractionModel, NhsContractionModel, and NonPhysiologicalContractionModel.

Referenced by ExplicitCardiacMechanicsSolver< ELASTICITY_SOLVER, DIM >::GetActiveTensionAndTensionDerivs(), and AbstractAlgebraicContractionModel::GetNextActiveTension().

◆ GetNextActiveTension()

virtual double AbstractContractionModel::GetNextActiveTension ( )
pure virtual
Returns
the current active tension (note, actually a stress), using the current temporary state variables (ie those obtained after RunDoNotUpdate has been called).

Implemented in AbstractAlgebraicContractionModel, Kerchoffs2003ContractionModel, Nash2004ContractionModel, NhsContractionModel, and NhsModelWithBackwardSolver.

Referenced by ImplicitCardiacMechanicsSolver< ELASTICITY_SOLVER, DIM >::GetActiveTensionAndTensionDerivs().

◆ IsStretchDependent()

virtual bool AbstractContractionModel::IsStretchDependent ( )
pure virtual
Returns
whether the model depend on the stretch. (Pure, to be implemented in the concrete class).

Implemented in ConstantActiveTension, FakeBathContractionModel, Kerchoffs2003ContractionModel, Nash2004ContractionModel, NhsContractionModel, and NonPhysiologicalContractionModel.

◆ IsStretchRateDependent()

virtual bool AbstractContractionModel::IsStretchRateDependent ( )
pure virtual
Returns
whether the model depend on the stretch-rate. (Pure, to be implemented in the concrete class).

Implemented in ConstantActiveTension, FakeBathContractionModel, Kerchoffs2003ContractionModel, Nash2004ContractionModel, NhsContractionModel, and NonPhysiologicalContractionModel.

Referenced by SetStretch().

◆ RunAndUpdate()

virtual void AbstractContractionModel::RunAndUpdate ( double  startTime,
double  endTime,
double  timeStep 
)
pure virtual

Run the contraction (ie if an ODE system) between the given times, and update the state variables. For use in the explicit electromechanics algorithm

Parameters
startTimestart time
endTimeend time
timeSteptimestep to use in ODE solving.

Implemented in AbstractAlgebraicContractionModel, AbstractOdeBasedContractionModel, and NhsModelWithBackwardSolver.

Referenced by ExplicitCardiacMechanicsSolver< ELASTICITY_SOLVER, DIM >::Solve().

◆ RunDoNotUpdate()

virtual void AbstractContractionModel::RunDoNotUpdate ( double  startTime,
double  endTime,
double  timeStep 
)
pure virtual

Run the contraction (ie if an ODE system) between the given times. This should NOT update any state variables. Call UpdateStateVariables() afterwards to update. For use in the implicit electromechanics algorithm

Parameters
startTimestart time
endTimeend time
timeSteptimestep to use in ODE solving.

Implemented in AbstractAlgebraicContractionModel, AbstractOdeBasedContractionModel, and NhsModelWithBackwardSolver.

Referenced by ImplicitCardiacMechanicsSolver< ELASTICITY_SOLVER, DIM >::GetActiveTensionAndTensionDerivs().

◆ SetInputParameters()

virtual void AbstractContractionModel::SetInputParameters ( ContractionModelInputParameters rInputParameters)
pure virtual

Set any input parameters (excl stretch and stretch rate). (Pure, to be implemented in the concrete class).

Parameters
rInputParameterscontains various parameters: voltage, intracellular calcium concentration

Implemented in ConstantActiveTension, FakeBathContractionModel, Kerchoffs2003ContractionModel, Nash2004ContractionModel, NhsContractionModel, and NonPhysiologicalContractionModel.

◆ SetStretch()

void AbstractContractionModel::SetStretch ( double  stretch)
inline

Safe setting of stretch-only, for stretch-rate independent models ONLY.

Parameters
stretchStretch in fibre direction

Definition at line 103 of file AbstractContractionModel.hpp.

References IsStretchRateDependent(), and SetStretchAndStretchRate().

◆ SetStretchAndStretchRate()

virtual void AbstractContractionModel::SetStretchAndStretchRate ( double  stretch,
double  stretchRate 
)
pure virtual

Set the stretch and stretch rate. (Pure, to be implemented in the concrete class).

Parameters
stretchfibre stretch (dimensionless)
stretchRatefibre stretch rate (1/ms)

Implemented in NhsContractionModel, ConstantActiveTension, FakeBathContractionModel, Kerchoffs2003ContractionModel, Nash2004ContractionModel, and NonPhysiologicalContractionModel.

Referenced by ImplicitCardiacMechanicsSolver< ELASTICITY_SOLVER, DIM >::GetActiveTensionAndTensionDerivs(), SetStretch(), and ExplicitCardiacMechanicsSolver< ELASTICITY_SOLVER, DIM >::Solve().

◆ UpdateStateVariables()

virtual void AbstractContractionModel::UpdateStateVariables ( )
pure virtual

After calling RunDoNotUpdate, which ran but should not have updated the state variables, the state variables are updated if this is called.

Implemented in AbstractAlgebraicContractionModel, and AbstractOdeBasedContractionModel.

Referenced by ImplicitCardiacMechanicsSolver< ELASTICITY_SOLVER, DIM >::Solve().


The documentation for this class was generated from the following file: