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"
55 friend class TestExplicitCardiacMechanicsSolver;
56 friend class TestImplicitCardiacMechanicsSolver;
57 friend class TestElectroMechanicsProblemDefinition;
356 if (numIncrements==0)
358 EXCEPTION(
"Number of increments for initial deformation must be 1 or more");
#define EXCEPTION(message)
bool GetFibreSheetDirectionsDefinedPerQuadraturePoint()
void SetContractionModel(ContractionModelName contractionModel, double timestep)
void SetSolverType(SolverType solver)
AbstractMaterialLaw< DIM > * mpDefaultMaterialLaw
virtual ~ElectroMechanicsProblemDefinition()
double mSheetTensionFraction
void SetNumIncrementsForInitialDeformation(unsigned numIncrements)
bool ReadFibreSheetDirectionsFromFile()
double mSheetNormalTensionFraction
void SetUseDefaultCardiacMaterialLaw(CompressibilityType compressibilityType)
bool GetDeformationAffectsConductivity()
void SetVariableFibreSheetDirectionsFile(const FileFinder &rFibreSheetDirectionsFile, bool definedPerQuadPoint)
bool mDeformationAffectsCellModels
bool GetDeformationAffectsCellModels()
void SetApplyAnisotropicCrossFibreTension(bool applyCrossFibreTension, double sheetTensionFraction, double sheetNormalTensionFraction)
bool mApplyCrossFibreTension
double GetContractionModelOdeTimestep()
double GetSheetNormalTensionFraction()
double mMechanicsSolveTimestep
bool mDeformationAffectsConductivity
bool mReadFibreSheetInformationFromFile
FileFinder mFibreSheetDirectionsFile
AbstractContractionCellFactory< DIM > * GetContractionCellFactory()
unsigned mNumIncrementsForInitialDeformation
void SetContractionModelOdeTimestep(double timestep)
void SetDeformationAffectsElectrophysiology(bool deformationAffectsConductivity, bool deformationAffectsCellModels)
double GetMechanicsSolveTimestep()
AbstractContractionCellFactory< DIM > * mpContractionCellFactory
double mContractionModelOdeTimeStep
SolverType GetSolverType()
bool mFibreSheetDirectionsDefinedPerQuadraturePoint
void SetApplyIsotropicCrossFibreTension(bool applyCrossFibreTension, double crossFibreTensionFraction)
unsigned GetNumIncrementsForInitialDeformation()
double GetSheetTensionFraction()
void SetMechanicsSolveTimestep(double timestep)
void SetContractionCellFactory(AbstractContractionCellFactory< DIM > *pCellFactory)
FileFinder GetFibreSheetDirectionsFile()
double GetApplyCrossFibreTension()
std::string GetAbsolutePath() const