AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <AbstractPurkinjeCellFactory.hpp>

Inherits AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >.

Collaboration diagram for AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >:
Collaboration graph
[legend]

List of all members.

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 ()

Protected Member Functions

virtual
AbstractCardiacCellInterface
CreatePurkinjeCellForTissueNode (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

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.


Member Function Documentation

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 
) [inline, protected]
Returns:
a newly created purkinje-ventricular junction between the two cells provided.
Parameters:
pNode the node in the mesh at which this junction is located
pPurkinjeCell the Purkinje cell
pCardiacCell the ventricular cell
resistance the junction resistance, in kilo-Ohms

Definition at line 121 of file AbstractPurkinjeCellFactory.cpp.

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

Referenced by AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::CreateJunctionFromFile().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::CreateJunctionFromFile ( const Node< SPACE_DIM > *  pNode,
AbstractCardiacCellInterface pPurkinjeCell,
AbstractCardiacCellInterface pCardiacCell 
) [inline, protected]
Returns:
a newly created 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:
pNode the node in the mesh at which this junction is located
pPurkinjeCell the Purkinje cell
pCardiacCell the ventricular cell

Definition at line 215 of file AbstractPurkinjeCellFactory.cpp.

References AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::CreateJunction(), Node< SPACE_DIM >::GetIndex(), and AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::mJunctionMap.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractCardiacCellInterface * AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::CreatePurkinjeCellForNode ( Node< SPACE_DIM > *  pNode,
AbstractCardiacCellInterface pCardiacCell 
) [inline]
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:
pNode pointer to node
pCardiacCell the cardiac cell that has already been created at this node

Definition at line 188 of file AbstractPurkinjeCellFactory.cpp.

References AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::CreatePurkinjeCellForTissueNode(), Node< SPACE_DIM >::GetIndex(), AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::mLocalPurkinjeNodes, AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::mpSolver, and AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::mpZeroStimulus.

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

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
virtual AbstractCardiacCellInterface* AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::CreatePurkinjeCellForTissueNode ( Node< SPACE_DIM > *  pNode,
AbstractCardiacCellInterface pCardiacCell 
) [protected, pure 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:
pNode pointer to node object
pCardiacCell the cardiac cell that has already been created at this node

Referenced by AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::CreatePurkinjeCellForNode().

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 
) [inline, virtual]

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

Parameters:
pPurkinjeCellsDistributed Pointer to a vector of Purkinje cell pointers.
lo Lowest index owned by this process.
hi Highest index owned by this process.

Definition at line 139 of file AbstractPurkinjeCellFactory.hpp.

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

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

Definition at line 205 of file AbstractPurkinjeCellFactory.cpp.

References EXCEPTION, and AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::mpMixedDimensionMesh.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::ReadJunctionsFile (  )  [inline, private]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::SetMesh ( AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *  pMesh  )  [inline, virtual]

Member Data Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::map<unsigned, double> AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::mJunctionMap [protected]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::set<unsigned> AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::mLocalPurkinjeNodes [protected]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
MixedDimensionMesh<ELEMENT_DIM,SPACE_DIM>* AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::mpMixedDimensionMesh [protected]

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

Generated by  doxygen 1.6.2