#include <AbstractCardiacCellFactory.hpp>
Inherited by AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >, and PlaneStimulusCellFactory< CELL, ELEMENT_DIM, SPACE_DIM >.
A factory to ease creating cardiac cell objects for use in a mono/bidomain simulation.
The user should implement their own concrete class, in particular implementing CreateCardiacCellForTissueNode(unsigned), which should return the cell corresponding to a given node. The user should also implement GetNumberOfCells() if this isn't equal to the number of nodes. FinaliseCellCreation() can be used to (eg) add stimuli to certain cells after they have been created.
This class saves the user having to create cells in parallel, that work is done by the pde instead.
Definition at line 56 of file AbstractCardiacCellFactory.hpp.
AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacCellFactory | ( | boost::shared_ptr< AbstractIvpOdeSolver > | pSolver = boost::shared_ptr<AbstractIvpOdeSolver>(new EulerIvpOdeSolver) |
) | [inline] |
Default constructor.
pSolver | the ODE solver to use to simulate this cell. |
Definition at line 68 of file AbstractCardiacCellFactory.cpp.
AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::~AbstractCardiacCellFactory | ( | ) | [inline, virtual] |
Destructor: free solver, zero stimulus and fake bath cell.
Definition at line 78 of file AbstractCardiacCellFactory.cpp.
AbstractCardiacCell * AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::CreateCardiacCellForNode | ( | unsigned | nodeIndex | ) | [inline, virtual] |
Create a cell object for the given node.
The default implementation checks whether the node is in the bath (in which case a pointer to a (unique) fake cell is returned) and if not, calls CreateCardiacCellForTissueNode (which must be defined by subclasses).
nodeIndex | Global node index. |
Definition at line 33 of file AbstractCardiacCellFactory.cpp.
References AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::CreateCardiacCellForTissueNode(), HeartRegionCode::IsRegionBath(), AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::mpMesh, AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::mpSolver, and AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::mpZeroStimulus.
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue(), ExtendedBidomainTissue< SPACE_DIM >::ExtendedBidomainTissue(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetUpHaloCells().
virtual AbstractCardiacCell* AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::CreateCardiacCellForTissueNode | ( | unsigned | nodeIndex | ) | [pure virtual] |
Must be overridden by subclasses to return a cell object for the given node.
nodeIndex | Global node index. |
Implemented in RampedQuarterStimulusCellFactory< CELL, DIM >, BathCellFactory< DIM, CELLTYPE >, HeartConfigRelatedCellFactory< SPACE_DIM >, PlaneStimulusCellFactory< CELL, ELEMENT_DIM, SPACE_DIM >, and ZeroStimulusCellFactory< CELL, DIM >.
Referenced by AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::CreateCardiacCellForNode().
void AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::FillInCellularTransmuralAreas | ( | ) | [inline, virtual] |
Method that fills in the vector of heterogeneity areas with the NodesLists that correspond to a given layer (implemented in subclasses)
Reimplemented in HeartConfigRelatedCellFactory< SPACE_DIM >, and HeartConfigRelatedCellFactory< SPACE_DIM >.
Definition at line 55 of file AbstractCardiacCellFactory.cpp.
void AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::FinaliseCellCreation | ( | std::vector< AbstractCardiacCell * > * | pCellsDistributed, | |
unsigned | lo, | |||
unsigned | hi | |||
) | [inline, virtual] |
May be overridden by subclasses to perform any necessary work after all cells have been created.
pCellsDistributed | Pointer to a vector of cardiac cell pointers. | |
lo | Lowest index owned by this process. | |
hi | Highest index owned by this process. |
Definition at line 47 of file AbstractCardiacCellFactory.cpp.
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue(), and ExtendedBidomainTissue< SPACE_DIM >::ExtendedBidomainTissue().
HeartGeometryInformation< SPACE_DIM > * AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::GetHeartGeometryInformation | ( | ) | [inline] |
Definition at line 105 of file AbstractCardiacCellFactory.cpp.
References EXCEPTION, and AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::mpHeartGeometryInformation.
AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > * AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::GetMesh | ( | ) | [inline] |
Definition at line 89 of file AbstractCardiacCellFactory.cpp.
References EXCEPTION, and AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::mpMesh.
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue(), PlaneStimulusCellFactory< CELL, ELEMENT_DIM, SPACE_DIM >::CreateCardiacCellForTissueNode(), and ExtendedBidomainTissue< SPACE_DIM >::ExtendedBidomainTissue().
unsigned AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::GetNumberOfCells | ( | ) | [inline, virtual] |
Definition at line 61 of file AbstractCardiacCellFactory.cpp.
References AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::mpMesh.
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue(), and ExtendedBidomainTissue< SPACE_DIM >::ExtendedBidomainTissue().
void AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::SetHeartGeometryInformation | ( | HeartGeometryInformation< SPACE_DIM > * | pHeartGeometryInformation | ) | [inline] |
Set the HeartGeometryInformation object
pHeartGeometryInformation | the HeartGeometryInformation object that is to be set |
Definition at line 99 of file AbstractCardiacCellFactory.cpp.
References AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::mpHeartGeometryInformation.
void AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::SetMesh | ( | AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > * | pMesh | ) | [inline, virtual] |
pMesh | the mesh for which to create cardiac cells. |
Reimplemented in AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >.
Definition at line 83 of file AbstractCardiacCellFactory.cpp.
References AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::mpMesh.
Referenced by ExtendedBidomainProblem< DIM >::CreateCardiacTissue().
HeartGeometryInformation<SPACE_DIM>* AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::mpHeartGeometryInformation [private] |
A pointer to an HeartGeometryInformation information object Can be accessed via get and set methods in this class.
Definition at line 68 of file AbstractCardiacCellFactory.hpp.
Referenced by AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::GetHeartGeometryInformation(), and AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::SetHeartGeometryInformation().
AbstractTetrahedralMesh<ELEMENT_DIM,SPACE_DIM>* AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::mpMesh [private] |
The mesh is automatically set in MonodomainProblem and BidomainProblem. This member variable should be accessed through GetMesh(), which will check if it has been set before and throw an exception otherwise.
Definition at line 62 of file AbstractCardiacCellFactory.hpp.
Referenced by AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::CreateCardiacCellForNode(), AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::GetMesh(), AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::GetNumberOfCells(), and AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::SetMesh().
boost::shared_ptr<AbstractIvpOdeSolver> AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::mpSolver [protected] |
The solver to give each of the cells
Definition at line 74 of file AbstractCardiacCellFactory.hpp.
Referenced by AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::CreateCardiacCellForNode(), PlaneStimulusCellFactory< CELL, ELEMENT_DIM, SPACE_DIM >::CreateCardiacCellForTissueNode(), and AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::CreatePurkinjeCellForNode().
boost::shared_ptr<ZeroStimulus> AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::mpZeroStimulus [protected] |
For use at un-stimulated cells.
Definition at line 72 of file AbstractCardiacCellFactory.hpp.
Referenced by AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::CreateCardiacCellForNode(), PlaneStimulusCellFactory< CELL, ELEMENT_DIM, SPACE_DIM >::CreateCardiacCellForTissueNode(), and AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::CreatePurkinjeCellForNode().