Chaste
Release::2018.1
|
#include <ImplicitCardiacMechanicsSolver.hpp>
Private Member Functions | |
bool | IsImplicitSolver () |
void | GetActiveTensionAndTensionDerivs (double currentFibreStretch, unsigned currentQuadPointGlobalIndex, bool assembleJacobian, double &rActiveTension, double &rDerivActiveTensionWrtLambda, double &rDerivActiveTensionWrtDLambdaDt) |
Friends | |
class | TestImplicitCardiacMechanicsSolver |
class | TestExplicitCardiacMechanicsSolver |
Implicit Cardiac Mechanics Solver
The first template parameter should be either IncompressibleNonlinearElasticitySolver or CompressibleNonlinearElasticityAssembler; this will be the class that this class ultimately inherits from.
Solves cardiac mechanics implicitly (together with the contraction models for determining the active tension), taking in the intracellular calcium concentration. See CardiacElectroMechanicsProblem documentation for more detail.
Definition at line 59 of file ImplicitCardiacMechanicsSolver.hpp.
ImplicitCardiacMechanicsSolver< ELASTICITY_SOLVER, DIM >::ImplicitCardiacMechanicsSolver | ( | QuadraticMesh< DIM > & | rQuadMesh, |
ElectroMechanicsProblemDefinition< DIM > & | rProblemDefinition, | ||
std::string | outputDirectory | ||
) |
Constructor
rQuadMesh | A reference to the mesh. |
rProblemDefinition | Object defining body force and boundary conditions |
outputDirectory | The output directory, relative to TEST_OUTPUT |
Definition at line 39 of file ImplicitCardiacMechanicsSolver.cpp.
|
virtual |
Destructor
Definition at line 51 of file ImplicitCardiacMechanicsSolver.cpp.
|
privatevirtual |
A method called by AbstractCardiacMechanicsSolver::AssembleOnElement(), providing the active tension (and other info) at a particular quadrature point. This version uses C to determine the current stretch and stretch rate, and integrates the contraction model ODEs to determine the active tension, and derivatives of the active tension with respect to stretch and stretch rate.
currentFibreStretch | The stretch in the fibre direction |
currentQuadPointGlobalIndex | Quadrature point integrand currently being evaluated at in AssembleOnElement. |
assembleJacobian | A bool stating whether to assemble the Jacobian matrix. |
rActiveTension | The returned active tension |
rDerivActiveTensionWrtLambda | The returned dT_dLam, derivative of active tension wrt stretch |
rDerivActiveTensionWrtDLambdaDt | The returned dT_dLamDot, derivative of active tension wrt stretch rate |
Implements AbstractCardiacMechanicsSolver< ELASTICITY_SOLVER, DIM >.
Definition at line 89 of file ImplicitCardiacMechanicsSolver.cpp.
References DataAtQuadraturePoint_::ContractionModel, EXCEPTION, AbstractContractionModel::GetNextActiveTension(), NEVER_REACHED, AbstractContractionModel::RunDoNotUpdate(), AbstractContractionModel::SetStretchAndStretchRate(), DataAtQuadraturePoint_::Stretch, and DataAtQuadraturePoint_::StretchLastTimeStep.
|
inlineprivatevirtual |
Implements AbstractCardiacMechanicsSolver< ELASTICITY_SOLVER, DIM >.
Definition at line 65 of file ImplicitCardiacMechanicsSolver.hpp.
|
virtual |
Solve for the deformation using quasi-static nonlinear elasticity. (not dynamic nonlinear elasticity, despite the times taken in - just ONE deformation is solved for. The cell models are integrated implicitly over the time range using the ODE timestep provided, as part of the solve, and updated at the end once the solution has been found, as is lambda.
time | the current time |
nextTime | the next time |
odeTimestep | the ODE timestep |
Implements AbstractCardiacMechanicsSolver< ELASTICITY_SOLVER, DIM >.
Definition at line 57 of file ImplicitCardiacMechanicsSolver.cpp.
References AbstractContractionModel::UpdateStateVariables().