36 #ifndef ELECTROMECHANICSPROBLEMDEFINITION_HPP_
37 #define ELECTROMECHANICSPROBLEMDEFINITION_HPP_
39 #include "SolidMechanicsProblemDefinition.hpp"
40 #include "ContractionModelName.hpp"
41 #include "NashHunterPoleZeroLaw.hpp"
42 #include "CompressibleExponentialLaw.hpp"
43 #include "FileFinder.hpp"
44 #include "AbstractContractionCellFactory.hpp"
45 #include "SolverType.hpp"
51 template<
unsigned DIM>
55 friend class TestExplicitCardiacMechanicsSolver;
56 friend class TestImplicitCardiacMechanicsSolver;
57 friend class TestElectroMechanicsProblemDefinition;
358 EXCEPTION(
"Number of increments for initial deformation must be 1 or more");
404 #endif // ELECTROMECHANICSPROBLEMDEFINITION_HPP_
ElectroMechanicsProblemDefinition(QuadraticMesh< DIM > &rMesh)
double GetSheetNormalTensionFraction()
FileFinder GetFibreSheetDirectionsFile()
void SetContractionCellFactory(AbstractContractionCellFactory< DIM > *pCellFactory)
bool mFibreSheetDirectionsDefinedPerQuadraturePoint
double mMechanicsSolveTimestep
SolverType GetSolverType()
AbstractContractionCellFactory< DIM > * mpContractionCellFactory
std::string GetAbsolutePath() const
AbstractContractionCellFactory< DIM > * GetContractionCellFactory()
#define EXCEPTION(message)
AbstractMaterialLaw< DIM > * mpDefaultMaterialLaw
void SetContractionModel(ContractionModelName contractionModel, double timestep)
void SetSolverType(SolverType solver)
void SetNumIncrementsForInitialDeformation(unsigned numIncrements)
void SetContractionModelOdeTimestep(double timestep)
void SetMechanicsSolveTimestep(double timestep)
unsigned mNumIncrementsForInitialDeformation
void SetVariableFibreSheetDirectionsFile(const FileFinder &rFibreSheetDirectionsFile, bool definedPerQuadPoint)
bool GetFibreSheetDirectionsDefinedPerQuadraturePoint()
bool ReadFibreSheetDirectionsFromFile()
bool GetDeformationAffectsConductivity()
virtual ~ElectroMechanicsProblemDefinition()
double mSheetTensionFraction
double mContractionModelOdeTimeStep
bool mReadFibreSheetInformationFromFile
bool mDeformationAffectsCellModels
double GetApplyCrossFibreTension()
bool mApplyCrossFibreTension
double GetContractionModelOdeTimestep()
void SetApplyAnisotropicCrossFibreTension(bool applyCrossFibreTension, double sheetTensionFraction, double sheetNormalTensionFraction)
double mSheetNormalTensionFraction
unsigned GetNumIncrementsForInitialDeformation()
bool mDeformationAffectsConductivity
double GetSheetTensionFraction()
void SetDeformationAffectsElectrophysiology(bool deformationAffectsConductivity, bool deformationAffectsCellModels)
bool GetDeformationAffectsCellModels()
void SetApplyIsotropicCrossFibreTension(bool applyCrossFibreTension, double crossFibreTensionFraction)
void SetUseDefaultCardiacMaterialLaw(CompressibilityType compressibilityType)
FileFinder mFibreSheetDirectionsFile
double GetMechanicsSolveTimestep()