Chaste Commit::ca8ccdedf819b6e02855bc0e8e6f50bdecbc5208
AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM > Class Template Referenceabstract

#include <AbstractPurkinjeCellFactory.hpp>

+ Inheritance diagram for AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >:
+ Collaboration diagram for AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >:

Public Member Functions

void SetMesh (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh)
 
AbstractCardiacCellInterfaceCreatePurkinjeCellForNode (Node< SPACE_DIM > *pNode, AbstractCardiacCellInterface *pCardiacCell)
 
virtual void FinalisePurkinjeCellCreation (std::vector< AbstractCardiacCellInterface * > *pPurkinjeCellsDistributed, unsigned lo, unsigned hi)
 
MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM > * GetMixedDimensionMesh ()
 
- Public Member Functions inherited from AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >
virtual AbstractCardiacCellInterfaceCreateCardiacCellForNode (Node< SPACE_DIM > *pNode)
 
virtual AbstractCardiacCellInterfaceCreateCardiacCellForTissueNode (Node< SPACE_DIM > *pNode)=0
 
virtual void FinaliseCellCreation (std::vector< AbstractCardiacCellInterface * > *pCellsDistributed, unsigned lo, unsigned hi)
 
virtual void FillInCellularTransmuralAreas ()
 
virtual unsigned GetNumberOfCells ()
 
 AbstractCardiacCellFactory (boost::shared_ptr< AbstractIvpOdeSolver > pSolver=boost::shared_ptr< AbstractIvpOdeSolver >(new EulerIvpOdeSolver))
 
virtual ~AbstractCardiacCellFactory ()
 
AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > * GetMesh ()
 
void SetHeartGeometryInformation (HeartGeometryInformation< SPACE_DIM > *pHeartGeometryInformation)
 
HeartGeometryInformation< SPACE_DIM > * GetHeartGeometryInformation ()
 

Protected Member Functions

virtual AbstractCardiacCellInterfaceCreatePurkinjeCellForTissueNode (Node< SPACE_DIM > *pNode, AbstractCardiacCellInterface *pCardiacCell)=0
 
void CreateJunction (const Node< SPACE_DIM > *pNode, AbstractCardiacCellInterface *pPurkinjeCell, AbstractCardiacCellInterface *pCardiacCell, double resistance)
 
void CreateJunctionFromFile (const Node< SPACE_DIM > *pNode, AbstractCardiacCellInterface *pPurkinjeCell, AbstractCardiacCellInterface *pCardiacCell)
 

Protected Attributes

MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM > * mpMixedDimensionMesh
 
std::set< unsignedmLocalPurkinjeNodes
 
std::map< unsigned, doublemJunctionMap
 
- Protected Attributes inherited from AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >
boost::shared_ptr< ZeroStimulusmpZeroStimulus
 
boost::shared_ptr< AbstractIvpOdeSolvermpSolver
 

Private Member Functions

void ReadJunctionsFile ()
 

Detailed Description

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
class AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >

Subclass for also creating cell models for Purkinje cells. The user has to implement the CreatePurkinjeCellForTissueNode() method.

The dimensions should be 2 or 3.

Definition at line 49 of file AbstractPurkinjeCellFactory.hpp.

Constructor & Destructor Documentation

◆ AbstractPurkinjeCellFactory()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::AbstractPurkinjeCellFactory ( )

Definition at line 44 of file AbstractPurkinjeCellFactory.cpp.

Member Function Documentation

◆ CreateJunction()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::CreateJunction ( const Node< SPACE_DIM > *  pNode,
AbstractCardiacCellInterface pPurkinjeCell,
AbstractCardiacCellInterface pCardiacCell,
double  resistance 
)
protected

Create purkinje-ventricular junction between the two cells provided.

Parameters
pNodethe node in the mesh at which this junction is located
pPurkinjeCellthe Purkinje cell
pCardiacCellthe ventricular cell
resistancethe junction resistance, in kilo-Ohms

Definition at line 119 of file AbstractPurkinjeCellFactory.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetAttribute(), HeartConfig::GetPurkinjeSurfaceAreaToVolumeRatio(), AbstractCardiacCellInterface::GetStimulusFunction(), HeartConfig::Instance(), and AbstractCardiacCellInterface::SetStimulusFunction().

◆ CreateJunctionFromFile()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::CreateJunctionFromFile ( const Node< SPACE_DIM > *  pNode,
AbstractCardiacCellInterface pPurkinjeCell,
AbstractCardiacCellInterface pCardiacCell 
)
protected

Create purkinje-ventricular junction between the two cells provided if the junction is defined in the corresponding .pvj file.

ReadJunctionsFile() must be called before calling this method

Parameters
pNodethe node in the mesh at which this junction is located
pPurkinjeCellthe Purkinje cell
pCardiacCellthe ventricular cell

Definition at line 210 of file AbstractPurkinjeCellFactory.cpp.

References Node< SPACE_DIM >::GetIndex().

◆ CreatePurkinjeCellForNode()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractCardiacCellInterface * AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::CreatePurkinjeCellForNode ( Node< SPACE_DIM > *  pNode,
AbstractCardiacCellInterface pCardiacCell 
)
Returns
a newly created cell object for the given node.

The default implementation checks whether the node is in a Purkinje node, in which case it calls CreatePurkinjeCellForTissueNode (which must be defined by subclasses), otherwise it returns a pointer to a (unique) fake cell

Parameters
pNodepointer to node
pCardiacCellthe cardiac cell that has already been created at this node

Definition at line 184 of file AbstractPurkinjeCellFactory.cpp.

References Node< SPACE_DIM >::GetIndex().

Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue().

◆ CreatePurkinjeCellForTissueNode()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
virtual AbstractCardiacCellInterface * AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::CreatePurkinjeCellForTissueNode ( Node< SPACE_DIM > *  pNode,
AbstractCardiacCellInterface pCardiacCell 
)
protectedpure virtual
Returns
a newly created purkinje cells for the given node. Must be overridden by subclasses to return a Purkinje cell object for the given node.
Parameters
pNodepointer to node object
pCardiacCellthe cardiac cell that has already been created at this node

◆ FinalisePurkinjeCellCreation()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
virtual void AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::FinalisePurkinjeCellCreation ( std::vector< AbstractCardiacCellInterface * > *  pPurkinjeCellsDistributed,
unsigned  lo,
unsigned  hi 
)
inlinevirtual

May be overridden by subclasses to perform any necessary work after all Purkinje cells have been created.

Parameters
pPurkinjeCellsDistributedPointer to a vector of Purkinje cell pointers.
loLowest index owned by this process.
hiHighest index owned by this process.

Definition at line 139 of file AbstractPurkinjeCellFactory.hpp.

Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue().

◆ GetMixedDimensionMesh()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM > * AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::GetMixedDimensionMesh ( )
Returns
the mixed dimension mesh (for possible use in CreatePurkinjeCellForTissueNode()). Note: GetMesh() just returns a pointer to an AbstractTetrahedralMesh.

Definition at line 200 of file AbstractPurkinjeCellFactory.cpp.

References EXCEPTION.

◆ ReadJunctionsFile()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::ReadJunctionsFile ( )
private

Reads in node id and resistance values of junction nodes

The .pvj file path is specified by HeartConfig::Instance()->GetMeshFileName() + ".pvj"

Note, this is called by SetMesh

Definition at line 51 of file AbstractPurkinjeCellFactory.cpp.

References RelativeTo::AbsoluteOrCwd, EXCEPTION, FileFinder::Exists(), FileFinder::GetAbsolutePath(), HeartConfig::GetMeshName(), and HeartConfig::Instance().

◆ SetMesh()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::SetMesh ( AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *  pMesh)
virtual

Overridden set mesh which must take a MixedDimensionMesh

Parameters
pMeshPointer to the mesh.

Reimplemented from AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >.

Definition at line 163 of file AbstractPurkinjeCellFactory.cpp.

References EXCEPTION, and AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::SetMesh().

Member Data Documentation

◆ mJunctionMap

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::map<unsigned, double> AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::mJunctionMap
protected

A map between junction node ids and resistances

Definition at line 69 of file AbstractPurkinjeCellFactory.hpp.

◆ mLocalPurkinjeNodes

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::set<unsigned> AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::mLocalPurkinjeNodes
protected

A set of local purkinje node indices

Definition at line 66 of file AbstractPurkinjeCellFactory.hpp.

◆ mpMixedDimensionMesh

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
MixedDimensionMesh<ELEMENT_DIM,SPACE_DIM>* AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::mpMixedDimensionMesh
protected

Saved pointer to the mixed dimension mesh

Definition at line 63 of file AbstractPurkinjeCellFactory.hpp.


The documentation for this class was generated from the following files: