template<unsigned DIM>
class AbstractCardiacMechanicsSolverInterface< DIM >
This class declares all the main public methods in AbstractCardiacMechanicsSolver.
The methods declared here are all pure virtual, and implemented in AbstractCardiacMechanicsSolver or it's children. The point of this class is that it is nothing templated over elasticity solver (unlike AbstractCardiacMechanicsSolver), so is more convenient to use, in particular the cardiac electro-mechanics problem class can own a pointer to one of these (ie, a AbstractCardiacMechanicsSolverInterface<DIM>*), and then the problem does not also require templating over solver.
Definition at line 55 of file AbstractCardiacMechanicsSolverInterface.hpp.
Compute the deformation gradient, and stretch in the fibre direction, for each element in the mesh. Note: using quadratic interpolation for position, the deformation gradients and stretches actually vary linearly in each element. However, for computational efficiency reasons, when computing deformation gradients and stretches to pass back to the electrophysiology solver, we just assume they are constant in each element (ie ignoring the quadratic correction to the displacement). This means that the (const) deformation gradient and stretch for each element can be computed in advance and stored, and we don't have to worry about interpolation onto the precise location of the cell-model (electrics-mesh) node, just which element it is in, and ditto the electric mesh element centroid.
To compute this (elementwise-)constant F (and from it the constant stretch), we just have to compute F using the deformed positions at the vertices only, with linear bases, rather than all the nodes and quadratic bases.
- Parameters
-
rDeformationGradients | A reference of a std::vector in which the deformation gradient in each element will be returned. Must be allocated prior to being passed in. |
rStretches | A reference of a std::vector in which the stretch in each element will be returned. Must be allocated prior to being passed in. |
Implemented in AbstractCardiacMechanicsSolver< ELASTICITY_SOLVER, DIM >.
Set the intracellular Calcium concentrations and voltages at each quad point. Pure.
Implicit solvers (for contraction models which are functions of stretch (and maybe stretch rate) would integrate the contraction model with this Ca/V/t using the current stretch (ie inside AssembleOnElement, ie inside GetActiveTensionAndTensionDerivs). Explicit solvers (for contraction models which are NOT functions of stretch can immediately integrate the contraction models to get the active tension.
- Parameters
-
rCalciumConcentrations | Reference to a vector of intracellular calcium concentrations at each quadrature point |
rVoltages | Reference to a vector of voltages at each quadrature point |
Implemented in AbstractCardiacMechanicsSolver< ELASTICITY_SOLVER, DIM >.
Set a variable fibre-sheet-normal direction (matrices), from file. If the second parameter is false, there should be one fibre-sheet definition for each element; otherwise there should be one fibre-sheet definition for each *quadrature point* in the mesh. In the first case, the file should be a .ortho file (ie each line has the fibre dir, sheet dir, normal dir for that element), in the second it should have .orthoquad as the format.
- Parameters
-
rOrthoFile | the file containing the fibre/sheet directions |
definedPerQuadraturePoint | whether the fibre-sheet definitions are for each quadrature point in the mesh (if not, one for each element is assumed). |
Implemented in AbstractCardiacMechanicsSolver< ELASTICITY_SOLVER, DIM >.