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;
177 mSolverType = solver;
259 assert(mpContractionCellFactory);
272 mContractionModelOdeTimeStep = timestep;
280 assert(mContractionModelOdeTimeStep>0.0);
289 assert(mMechanicsSolveTimestep>0.0);
332 assert(mReadFibreSheetInformationFromFile);
344 assert(mReadFibreSheetInformationFromFile);
356 if (numIncrements==0)
358 EXCEPTION(
"Number of increments for initial deformation must be 1 or more");
360 mNumIncrementsForInitialDeformation = numIncrements;
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()