#include <ElectroMechanicsProblemDefinition.hpp>
Inherits SolidMechanicsProblemDefinition< DIM >.
Subclass of SolidMechanicsProblemDefinition with some cardiac-electro-mechanics-specific methods.
Definition at line 44 of file ElectroMechanicsProblemDefinition.hpp.
ElectroMechanicsProblemDefinition< DIM >::ElectroMechanicsProblemDefinition | ( | QuadraticMesh< DIM > & | rMesh | ) | [inline] |
Constructor
rMesh | the mesh |
Definition at line 32 of file ElectroMechanicsProblemDefinition.cpp.
ElectroMechanicsProblemDefinition< DIM >::~ElectroMechanicsProblemDefinition | ( | ) | [inline] |
Destructor
Definition at line 44 of file ElectroMechanicsProblemDefinition.cpp.
References ElectroMechanicsProblemDefinition< DIM >::mpDefaultMaterialLaw.
ContractionModelName ElectroMechanicsProblemDefinition< DIM >::GetContractionModel | ( | ) | [inline] |
Get the contraction model
Definition at line 172 of file ElectroMechanicsProblemDefinition.hpp.
References ElectroMechanicsProblemDefinition< DIM >::mContractionModel, and ElectroMechanicsProblemDefinition< DIM >::mContractionModelOdeTimeStep.
double ElectroMechanicsProblemDefinition< DIM >::GetContractionModelOdeTimestep | ( | ) | [inline] |
Get the contraction model timestep
Definition at line 181 of file ElectroMechanicsProblemDefinition.hpp.
References ElectroMechanicsProblemDefinition< DIM >::mContractionModelOdeTimeStep.
bool ElectroMechanicsProblemDefinition< DIM >::GetDeformationAffectsCellModels | ( | ) | [inline] |
Get whether the deformation affects the cardiac cell models, for example if there are stretch-activated channels in the cell model.
Definition at line 209 of file ElectroMechanicsProblemDefinition.hpp.
References ElectroMechanicsProblemDefinition< DIM >::mDeformationAffectsCellModels.
bool ElectroMechanicsProblemDefinition< DIM >::GetDeformationAffectsConductivity | ( | ) | [inline] |
Get whether the deformation affects the electrical physiological conductivity (or whether this effect is neglected).
Definition at line 200 of file ElectroMechanicsProblemDefinition.hpp.
References ElectroMechanicsProblemDefinition< DIM >::mDeformationAffectsConductivity.
bool ElectroMechanicsProblemDefinition< DIM >::GetFibreSheetDirectionsDefinedPerQuadraturePoint | ( | ) | [inline] |
Get whether the fibre-sheet info is defined for each quadrature point in the mesh (if not, if it defined for each element in the mesh). (Should only be called if ReadFibreSheetDirectionsFromFile() returns true).
Definition at line 237 of file ElectroMechanicsProblemDefinition.hpp.
References ElectroMechanicsProblemDefinition< DIM >::mFibreSheetDirectionsDefinedPerQuadraturePoint, and ElectroMechanicsProblemDefinition< DIM >::mReadFibreSheetInformationFromFile.
std::string ElectroMechanicsProblemDefinition< DIM >::GetFibreSheetDirectionsFile | ( | ) | [inline] |
Get the fibre-sheet file (should only be called if ReadFibreSheetDirectionsFromFile() returns true).
Definition at line 225 of file ElectroMechanicsProblemDefinition.hpp.
References ElectroMechanicsProblemDefinition< DIM >::mFibreSheetDirectionsFile, and ElectroMechanicsProblemDefinition< DIM >::mReadFibreSheetInformationFromFile.
double ElectroMechanicsProblemDefinition< DIM >::GetMechanicsSolveTimestep | ( | ) | [inline] |
Get how often the mechanics is solved
Definition at line 190 of file ElectroMechanicsProblemDefinition.hpp.
References ElectroMechanicsProblemDefinition< DIM >::mMechanicsSolveTimestep.
bool ElectroMechanicsProblemDefinition< DIM >::ReadFibreSheetDirectionsFromFile | ( | ) | [inline] |
Whether the fibre-sheet info should be read from file (if not the defaults should be used).
Definition at line 217 of file ElectroMechanicsProblemDefinition.hpp.
References ElectroMechanicsProblemDefinition< DIM >::mReadFibreSheetInformationFromFile.
void ElectroMechanicsProblemDefinition< DIM >::SetContractionModel | ( | ContractionModelName | contractionModel, | |
double | timestep | |||
) | [inline] |
Set the contraction model to be used (throughout the tissue).
Note the timestep should be set to a (typical) ODE time-step even if the contraction model is not going to solve ODEs.
contractionModel | contraction model (from the enumeration ContractionModelName) | |
timestep | timestep to be used in solving (ODE-based) contraction models. |
Definition at line 53 of file ElectroMechanicsProblemDefinition.cpp.
References ElectroMechanicsProblemDefinition< DIM >::mContractionModel, and ElectroMechanicsProblemDefinition< DIM >::mContractionModelOdeTimeStep.
void ElectroMechanicsProblemDefinition< DIM >::SetDeformationAffectsElectrophysiology | ( | bool | deformationAffectsConductivity, | |
bool | deformationAffectsCellModels | |||
) | [inline] |
Set if and how the deformation should affect the electro-physiology.
deformationAffectsConductivity | Whether the deformation should affect the electrical physiological conductivity (or whether this effect is neglected) | |
deformationAffectsCellModels | Whether the deformation should affect the cardiac cell models, for example if there are stretch-activated channels in the cell model. |
Several important things to note: (i) this can't be called if fibre-sheet directions have been defined from file for each quadrature point (as opposed to each mechanics element) - this is because if the stretch is to be passed back to the electric mesh nodes, the fibre direction has to be defined at those nodes (ii) currently the set-up stage (computing mechanics mesh elements and weights for electrics mesh nodes) is inefficiently implemented - setup will be very slow for big meshes (iii) if deformationAffectsCellModels is true, the cell model ought to be one for which AbstractCardiacCell::SetStretch() has been implemented to do something (i.e. not generated automatically from CellML). (iv) deformationAffectsConductivity is not currently allowed in the compressible material law case as the effect of the determinant of the deformation gradient on the conductivity has not currently been implemented.
Definition at line 81 of file ElectroMechanicsProblemDefinition.cpp.
References ElectroMechanicsProblemDefinition< DIM >::mDeformationAffectsCellModels, and ElectroMechanicsProblemDefinition< DIM >::mDeformationAffectsConductivity.
void ElectroMechanicsProblemDefinition< DIM >::SetMechanicsSolveTimestep | ( | double | timestep | ) | [inline] |
Set how often the mechanics is solved for.
timestep | timestep |
Definition at line 88 of file ElectroMechanicsProblemDefinition.cpp.
References ElectroMechanicsProblemDefinition< DIM >::mMechanicsSolveTimestep.
void ElectroMechanicsProblemDefinition< DIM >::SetUseDefaultCardiacMaterialLaw | ( | CompressibilityType | compressibilityType | ) | [inline] |
Use the default material law (NashHunter in the incompressible case, exponential in the compressible case), throughout the tissue.
compressibilityType | Either INCOMPRESSIBLE or COMPRESSIBLE |
Definition at line 61 of file ElectroMechanicsProblemDefinition.cpp.
References ElectroMechanicsProblemDefinition< DIM >::mpDefaultMaterialLaw, and SolidMechanicsProblemDefinition< DIM >::SetMaterialLaw().
void ElectroMechanicsProblemDefinition< DIM >::SetVariableFibreSheetDirectionsFile | ( | std::string | fibreSheetDirectionsFile, | |
bool | definedPerQuadPoint | |||
) | [inline] |
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 standard .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.
If this method is not called, the default fibre-sheet directions are used - ie fibres parallel to X-axis, sheets parallel to Y-axis.
fibreSheetDirectionsFile | the file containing the fibre/sheet directions | |
definedPerQuadPoint | whether the fibre-sheet definitions are for each quadrature point in the mesh (if not, one for each element is assumed). |
Definition at line 95 of file ElectroMechanicsProblemDefinition.cpp.
References ElectroMechanicsProblemDefinition< DIM >::mFibreSheetDirectionsDefinedPerQuadraturePoint, ElectroMechanicsProblemDefinition< DIM >::mFibreSheetDirectionsFile, and ElectroMechanicsProblemDefinition< DIM >::mReadFibreSheetInformationFromFile.
void ElectroMechanicsProblemDefinition< DIM >::Validate | ( | ) | [inline, virtual] |
Check all variables are set appropriately. Exceptions are thrown if any are not. Derived classes can override but should call this version as well.
Reimplemented from SolidMechanicsProblemDefinition< DIM >.
Definition at line 103 of file ElectroMechanicsProblemDefinition.cpp.
References EXCEPTION, SolidMechanicsProblemDefinition< DIM >::GetCompressibilityType(), ElectroMechanicsProblemDefinition< DIM >::mContractionModelOdeTimeStep, ElectroMechanicsProblemDefinition< DIM >::mDeformationAffectsCellModels, ElectroMechanicsProblemDefinition< DIM >::mDeformationAffectsConductivity, ElectroMechanicsProblemDefinition< DIM >::mFibreSheetDirectionsDefinedPerQuadraturePoint, ElectroMechanicsProblemDefinition< DIM >::mMechanicsSolveTimestep, and ElectroMechanicsProblemDefinition< DIM >::mReadFibreSheetInformationFromFile.
ContractionModelName ElectroMechanicsProblemDefinition< DIM >::mContractionModel [private] |
The contraction model used (ContractionModelName is an enumeration containing all contraction models implemented.
Definition at line 51 of file ElectroMechanicsProblemDefinition.hpp.
Referenced by ElectroMechanicsProblemDefinition< DIM >::GetContractionModel(), and ElectroMechanicsProblemDefinition< DIM >::SetContractionModel().
double ElectroMechanicsProblemDefinition< DIM >::mContractionModelOdeTimeStep [private] |
Timestep to use when solving contraction models
Definition at line 54 of file ElectroMechanicsProblemDefinition.hpp.
Referenced by ElectroMechanicsProblemDefinition< DIM >::GetContractionModel(), ElectroMechanicsProblemDefinition< DIM >::GetContractionModelOdeTimestep(), ElectroMechanicsProblemDefinition< DIM >::SetContractionModel(), and ElectroMechanicsProblemDefinition< DIM >::Validate().
bool ElectroMechanicsProblemDefinition< DIM >::mDeformationAffectsCellModels [private] |
Whether the deformation should affect the cardiac cell models, for example if there are stretch-activated channels in the cell model.
Definition at line 69 of file ElectroMechanicsProblemDefinition.hpp.
Referenced by ElectroMechanicsProblemDefinition< DIM >::GetDeformationAffectsCellModels(), ElectroMechanicsProblemDefinition< DIM >::SetDeformationAffectsElectrophysiology(), and ElectroMechanicsProblemDefinition< DIM >::Validate().
bool ElectroMechanicsProblemDefinition< DIM >::mDeformationAffectsConductivity [private] |
Whether the deformation should affect the electrical physiological conductivity (or whether this effect is neglected)
Definition at line 63 of file ElectroMechanicsProblemDefinition.hpp.
Referenced by ElectroMechanicsProblemDefinition< DIM >::GetDeformationAffectsConductivity(), ElectroMechanicsProblemDefinition< DIM >::SetDeformationAffectsElectrophysiology(), and ElectroMechanicsProblemDefinition< DIM >::Validate().
bool ElectroMechanicsProblemDefinition< DIM >::mFibreSheetDirectionsDefinedPerQuadraturePoint [private] |
Whether the mFibreSheetDirectionsFile file gives the fibre-sheet info for each element or for each quadrature point
Definition at line 90 of file ElectroMechanicsProblemDefinition.hpp.
Referenced by ElectroMechanicsProblemDefinition< DIM >::GetFibreSheetDirectionsDefinedPerQuadraturePoint(), ElectroMechanicsProblemDefinition< DIM >::SetVariableFibreSheetDirectionsFile(), and ElectroMechanicsProblemDefinition< DIM >::Validate().
std::string ElectroMechanicsProblemDefinition< DIM >::mFibreSheetDirectionsFile [private] |
.ortho/.orthoquad file from which to read element-wise, or quadrature-point-wise fibre-sheet-normal-directions
Definition at line 84 of file ElectroMechanicsProblemDefinition.hpp.
Referenced by ElectroMechanicsProblemDefinition< DIM >::GetFibreSheetDirectionsFile(), and ElectroMechanicsProblemDefinition< DIM >::SetVariableFibreSheetDirectionsFile().
double ElectroMechanicsProblemDefinition< DIM >::mMechanicsSolveTimestep [private] |
How often a mechanics solve should be done
Definition at line 57 of file ElectroMechanicsProblemDefinition.hpp.
Referenced by ElectroMechanicsProblemDefinition< DIM >::GetMechanicsSolveTimestep(), ElectroMechanicsProblemDefinition< DIM >::SetMechanicsSolveTimestep(), and ElectroMechanicsProblemDefinition< DIM >::Validate().
AbstractMaterialLaw<DIM>* ElectroMechanicsProblemDefinition< DIM >::mpDefaultMaterialLaw [private] |
This member variable is used if SetDefaultCardiacMateriawLaw() is called.
Definition at line 74 of file ElectroMechanicsProblemDefinition.hpp.
Referenced by ElectroMechanicsProblemDefinition< DIM >::SetUseDefaultCardiacMaterialLaw(), and ElectroMechanicsProblemDefinition< DIM >::~ElectroMechanicsProblemDefinition().
bool ElectroMechanicsProblemDefinition< DIM >::mReadFibreSheetInformationFromFile [private] |
Whether to read fibre-sheet information from file
Definition at line 78 of file ElectroMechanicsProblemDefinition.hpp.
Referenced by ElectroMechanicsProblemDefinition< DIM >::GetFibreSheetDirectionsDefinedPerQuadraturePoint(), ElectroMechanicsProblemDefinition< DIM >::GetFibreSheetDirectionsFile(), ElectroMechanicsProblemDefinition< DIM >::ReadFibreSheetDirectionsFromFile(), ElectroMechanicsProblemDefinition< DIM >::SetVariableFibreSheetDirectionsFile(), and ElectroMechanicsProblemDefinition< DIM >::Validate().