Chaste  Release::2017.1
HeartConfigRelatedCellFactory< SPACE_DIM > Class Template Reference

#include <HeartConfigRelatedCellFactory.hpp>

+ Inheritance diagram for HeartConfigRelatedCellFactory< SPACE_DIM >:
+ Collaboration diagram for HeartConfigRelatedCellFactory< SPACE_DIM >:

Public Member Functions

 HeartConfigRelatedCellFactory ()
 
 ~HeartConfigRelatedCellFactory ()
 
AbstractCardiacCellInterfaceCreateCellWithIntracellularStimulus (boost::shared_ptr< AbstractStimulusFunction > intracellularStimulus, unsigned nodeIndex)
 
AbstractCardiacCellInterfaceCreateCardiacCellForTissueNode (Node< SPACE_DIM > *pNode)
 
void FillInCellularTransmuralAreas ()
 
void SetCellParameters (AbstractCardiacCellInterface *pCell, unsigned nodeIndex)
 
void SetCellIntracellularStimulus (AbstractCardiacCellInterface *pCell, unsigned nodeIndex)
 
template<>
void FillInCellularTransmuralAreas ()
 
- Public Member Functions inherited from AbstractCardiacCellFactory< SPACE_DIM >
virtual AbstractCardiacCellInterfaceCreateCardiacCellForNode (Node< ELEMENT_DIM > *pNode)
 
virtual AbstractCardiacCellInterfaceCreateCardiacCellForTissueNode (Node< ELEMENT_DIM > *pNode)=0
 
virtual void FinaliseCellCreation (std::vector< AbstractCardiacCellInterface * > *pCellsDistributed, unsigned lo, unsigned hi)
 
virtual unsigned GetNumberOfCells ()
 
 AbstractCardiacCellFactory (boost::shared_ptr< AbstractIvpOdeSolver > pSolver=boost::shared_ptr< AbstractIvpOdeSolver >(new EulerIvpOdeSolver))
 
virtual ~AbstractCardiacCellFactory ()
 
virtual void SetMesh (AbstractTetrahedralMesh< ELEMENT_DIM, ELEMENT_DIM > *pMesh)
 
AbstractTetrahedralMesh< ELEMENT_DIM, ELEMENT_DIM > * GetMesh ()
 
void SetHeartGeometryInformation (HeartGeometryInformation< ELEMENT_DIM > *pHeartGeometryInformation)
 
HeartGeometryInformation< ELEMENT_DIM > * GetHeartGeometryInformation ()
 

Private Member Functions

void PreconvertCellmlFiles ()
 
DynamicCellModelLoaderPtr LoadDynamicModel (const cp::ionic_model_selection_type &rModel, bool isCollective)
 

Private Attributes

cp::ionic_model_selection_type mDefaultIonicModel
 
std::vector< boost::shared_ptr< AbstractChasteRegion< SPACE_DIM > > > mIonicModelRegions
 
std::vector< cp::ionic_model_selection_type > mIonicModelsDefined
 
std::vector< boost::shared_ptr< AbstractChasteRegion< SPACE_DIM > > > mStimulatedAreas
 
std::vector< boost::shared_ptr< AbstractStimulusFunction > > mStimuliApplied
 
std::vector< boost::shared_ptr< AbstractChasteRegion< SPACE_DIM > > > mCellHeterogeneityAreas
 
std::vector< doublemScaleFactorGks
 
std::vector< doublemScaleFactorIto
 
std::vector< doublemScaleFactorGkr
 
std::vector< std::map< std::string, double > > mParameterSettings
 

Additional Inherited Members

- Protected Attributes inherited from AbstractCardiacCellFactory< SPACE_DIM >
boost::shared_ptr< ZeroStimulusmpZeroStimulus
 
boost::shared_ptr< AbstractIvpOdeSolvermpSolver
 

Detailed Description

template<unsigned SPACE_DIM>
class HeartConfigRelatedCellFactory< SPACE_DIM >

This is a cardiac cell factory which uses the settings from HeartConfig to set up the cells.

It thus supports such features as heterogeneities (in both the type of cell, and for some cells, cell model parameters), and the ability to dynamically convert CellML files into C++ code, compile this, and load the resulting model.

Definition at line 96 of file HeartConfigRelatedCellFactory.hpp.

Constructor & Destructor Documentation

template<unsigned SPACE_DIM>
HeartConfigRelatedCellFactory< SPACE_DIM >::~HeartConfigRelatedCellFactory ( )

Destructor

Definition at line 106 of file HeartConfigRelatedCellFactory.cpp.

Member Function Documentation

template<unsigned SPACE_DIM>
AbstractCardiacCellInterface * HeartConfigRelatedCellFactory< SPACE_DIM >::CreateCardiacCellForTissueNode ( Node< SPACE_DIM > *  pNode)
Returns
a newly created correct stimulated tissue cell for a given region in the mesh The stimulus is determined in this method (using the list of stimulation regions). The cardiac cell type (and parameters) are determined in the CreateCellWithIntracellularStimulus method
Parameters
pNodepointer to the node.

Definition at line 334 of file HeartConfigRelatedCellFactory.cpp.

References HeartConfigRelatedCellFactory< SPACE_DIM >::CreateCellWithIntracellularStimulus(), Node< SPACE_DIM >::GetIndex(), Node< SPACE_DIM >::GetPoint(), HeartConfigRelatedCellFactory< SPACE_DIM >::mStimulatedAreas, and HeartConfigRelatedCellFactory< SPACE_DIM >::mStimuliApplied.

template<unsigned SPACE_DIM>
void HeartConfigRelatedCellFactory< SPACE_DIM >::FillInCellularTransmuralAreas ( )
virtual

Helper method to calculate and fill in the heterogeneities areas (mCellHeterogeneityAreas)

Reimplemented from AbstractCardiacCellFactory< SPACE_DIM >.

Definition at line 355 of file HeartConfigRelatedCellFactory.cpp.

References NEVER_REACHED.

template<unsigned SPACE_DIM>
DynamicCellModelLoaderPtr HeartConfigRelatedCellFactory< SPACE_DIM >::LoadDynamicModel ( const cp::ionic_model_selection_type &  rModel,
bool  isCollective 
)
private
Returns
a loader for the given (dynamically loadable) cell model.
Parameters
rModelmodel to load
isCollectivewhether we are being called collectively

Definition at line 95 of file HeartConfigRelatedCellFactory.cpp.

References CellMLToSharedLibraryConverter::Convert().

Referenced by HeartConfigRelatedCellFactory< SPACE_DIM >::CreateCellWithIntracellularStimulus(), and HeartConfigRelatedCellFactory< SPACE_DIM >::PreconvertCellmlFiles().

template<unsigned SPACE_DIM>
void HeartConfigRelatedCellFactory< SPACE_DIM >::PreconvertCellmlFiles ( )
private

Called by the constructor to convert any CellML files used as dynamically loaded cell models to shared libraries. This is necessary since the conversion process must be done collectively.

Note
Must be called collectively.

Definition at line 79 of file HeartConfigRelatedCellFactory.cpp.

References HeartConfigRelatedCellFactory< SPACE_DIM >::LoadDynamicModel(), HeartConfigRelatedCellFactory< SPACE_DIM >::mDefaultIonicModel, and HeartConfigRelatedCellFactory< SPACE_DIM >::mIonicModelsDefined.

Referenced by HeartConfigRelatedCellFactory< SPACE_DIM >::HeartConfigRelatedCellFactory().

template<unsigned SPACE_DIM>
void HeartConfigRelatedCellFactory< SPACE_DIM >::SetCellIntracellularStimulus ( AbstractCardiacCellInterface pCell,
unsigned  nodeIndex 
)

Set the intracellular stimulus for a cell based on the definitions in HeartConfig.

Parameters
pCellthe cell to set stimulus of
nodeIndexthe index of the node corresponding to this cell in the mesh

Definition at line 316 of file HeartConfigRelatedCellFactory.cpp.

References AbstractCardiacCellFactory< SPACE_DIM >::GetMesh(), HeartConfigRelatedCellFactory< SPACE_DIM >::mStimulatedAreas, HeartConfigRelatedCellFactory< SPACE_DIM >::mStimuliApplied, and AbstractCardiacCellInterface::SetIntracellularStimulusFunction().

Referenced by CardiacSimulation::CreateAndRun().

Member Data Documentation

template<unsigned SPACE_DIM>
std::vector<boost::shared_ptr<AbstractChasteRegion<SPACE_DIM> > > HeartConfigRelatedCellFactory< SPACE_DIM >::mCellHeterogeneityAreas
private

List of regions which represent areas in which to give parametric heterogeneity (scaling gating parameters) This vector will be filled in by the HeartConfig::GetCellHeterogeneity method if the user requested to specify the heterogeneity areas by cuboids, or, alternatively, by the FillInCellularTransmuralAreas method in the cell factory called by the problem class AFTER setting the mesh (which is needed for the calculations of the distance maps for the calculations of heterogeneities).

When creating a cardiac cell for each node (CreateCardiacCellForTissueNode) the code will check whether that node is contained in the heterogeneity area or not.

Definition at line 122 of file HeartConfigRelatedCellFactory.hpp.

Referenced by HeartConfigRelatedCellFactory< SPACE_DIM >::FillInCellularTransmuralAreas(), HeartConfigRelatedCellFactory< SPACE_DIM >::HeartConfigRelatedCellFactory(), and HeartConfigRelatedCellFactory< SPACE_DIM >::SetCellParameters().

template<unsigned SPACE_DIM>
cp::ionic_model_selection_type HeartConfigRelatedCellFactory< SPACE_DIM >::mDefaultIonicModel
private

Default cardiac cell model to be used in all tissue (except heterogeneous regions)

Definition at line 100 of file HeartConfigRelatedCellFactory.hpp.

Referenced by HeartConfigRelatedCellFactory< SPACE_DIM >::CreateCellWithIntracellularStimulus(), and HeartConfigRelatedCellFactory< SPACE_DIM >::PreconvertCellmlFiles().

template<unsigned SPACE_DIM>
std::vector<boost::shared_ptr<AbstractChasteRegion<SPACE_DIM> > > HeartConfigRelatedCellFactory< SPACE_DIM >::mIonicModelRegions
private

List of axis-aligned box regions which contain heterogeneous cardiac ionic model types

Definition at line 102 of file HeartConfigRelatedCellFactory.hpp.

Referenced by HeartConfigRelatedCellFactory< SPACE_DIM >::CreateCellWithIntracellularStimulus(), and HeartConfigRelatedCellFactory< SPACE_DIM >::HeartConfigRelatedCellFactory().

template<unsigned SPACE_DIM>
std::vector<cp::ionic_model_selection_type> HeartConfigRelatedCellFactory< SPACE_DIM >::mIonicModelsDefined
private
template<unsigned SPACE_DIM>
std::vector<std::map<std::string, double> > HeartConfigRelatedCellFactory< SPACE_DIM >::mParameterSettings
private

Named parameters to be set in each region (size of list matches that of mCellHeterogeneityAreas)

Definition at line 131 of file HeartConfigRelatedCellFactory.hpp.

Referenced by HeartConfigRelatedCellFactory< SPACE_DIM >::HeartConfigRelatedCellFactory(), and HeartConfigRelatedCellFactory< SPACE_DIM >::SetCellParameters().

template<unsigned SPACE_DIM>
std::vector<double> HeartConfigRelatedCellFactory< SPACE_DIM >::mScaleFactorGkr
private

List of scale factors for Gkr scaling in each region (size of list matches that of mCellHeterogeneityAreas)

Definition at line 128 of file HeartConfigRelatedCellFactory.hpp.

Referenced by HeartConfigRelatedCellFactory< SPACE_DIM >::HeartConfigRelatedCellFactory(), and HeartConfigRelatedCellFactory< SPACE_DIM >::SetCellParameters().

template<unsigned SPACE_DIM>
std::vector<double> HeartConfigRelatedCellFactory< SPACE_DIM >::mScaleFactorGks
private

List of scale factors for Gks scaling in each region (size of list matches that of mCellHeterogeneityAreas)

Definition at line 124 of file HeartConfigRelatedCellFactory.hpp.

Referenced by HeartConfigRelatedCellFactory< SPACE_DIM >::HeartConfigRelatedCellFactory(), and HeartConfigRelatedCellFactory< SPACE_DIM >::SetCellParameters().

template<unsigned SPACE_DIM>
std::vector<double> HeartConfigRelatedCellFactory< SPACE_DIM >::mScaleFactorIto
private

List of scale factors for Ito scaling in each region (size of list matches that of mCellHeterogeneityAreas)

Definition at line 126 of file HeartConfigRelatedCellFactory.hpp.

Referenced by HeartConfigRelatedCellFactory< SPACE_DIM >::HeartConfigRelatedCellFactory(), and HeartConfigRelatedCellFactory< SPACE_DIM >::SetCellParameters().

template<unsigned SPACE_DIM>
std::vector<boost::shared_ptr<AbstractChasteRegion<SPACE_DIM> > > HeartConfigRelatedCellFactory< SPACE_DIM >::mStimulatedAreas
private
template<unsigned SPACE_DIM>
std::vector<boost::shared_ptr<AbstractStimulusFunction> > HeartConfigRelatedCellFactory< SPACE_DIM >::mStimuliApplied
private

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