36 #include "AbstractCardiacCellFactory.hpp" 37 #include "FakeBathCell.hpp" 38 #include "AbstractCvodeCell.hpp" 39 #include "HeartConfig.hpp" 41 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
47 return new FakeBathCell(this->mpSolver, this->mpZeroStimulus);
53 if (dynamic_cast<AbstractCvodeCell*>(p_cell))
55 #if CHASTE_SUNDIALS_VERSION >= 20400 60 #endif // SUNDIALS_VERSION 64 #endif // CHASTE_CVODE 69 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
71 std::vector< AbstractCardiacCellInterface* >* pCellsDistributed,
77 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
80 EXCEPTION(
"To get here you have probably asked for Epi/Mid/Endo CellularHeterogeneities in your HeartConfig " 81 "options or configuration .xml file, to use this you will need to provide a method" 82 " `FillInCellularTransmuralAreas()` in your cell factory to override this one.");
85 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
88 assert(mpMesh != NULL);
89 return mpMesh->GetNumNodes();
92 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
94 boost::shared_ptr<AbstractIvpOdeSolver> pSolver)
96 mpHeartGeometryInformation(NULL),
102 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
107 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
113 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
118 EXCEPTION(
"The mesh object has not been set in the cell factory");
123 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
129 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
134 EXCEPTION(
"HeartGeometryInformation object has not been set in the cell factory");
virtual void FinaliseCellCreation(std::vector< AbstractCardiacCellInterface * > *pCellsDistributed, unsigned lo, unsigned hi)
virtual AbstractCardiacCellInterface * CreateCardiacCellForNode(Node< SPACE_DIM > *pNode)
AbstractCardiacCellFactory(boost::shared_ptr< AbstractIvpOdeSolver > pSolver=boost::shared_ptr< AbstractIvpOdeSolver >(new EulerIvpOdeSolver))
static bool IsRegionBath(HeartRegionType regionId)
virtual unsigned GetNumberOfCells()
AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > * GetMesh()
#define EXCEPTION(message)
virtual ~AbstractCardiacCellFactory()
HeartGeometryInformation< SPACE_DIM > * GetHeartGeometryInformation()
double GetPdeTimeStep() const
unsigned GetRegion() const
HeartGeometryInformation< SPACE_DIM > * mpHeartGeometryInformation
virtual void FillInCellularTransmuralAreas()
virtual void SetMesh(AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh)
AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > * mpMesh
void SetHeartGeometryInformation(HeartGeometryInformation< SPACE_DIM > *pHeartGeometryInformation)
static HeartConfig * Instance()