#include <HeartConfigRelatedCellFactory.hpp>
Public Member Functions | |
HeartConfigRelatedCellFactory () | |
~HeartConfigRelatedCellFactory () | |
AbstractCardiacCell * | CreateCellWithIntracellularStimulus (boost::shared_ptr< AbstractStimulusFunction > intracellularStimulus, unsigned nodeIndex) |
AbstractCardiacCell * | CreateCardiacCellForTissueNode (unsigned nodeIndex) |
void | FillInCellularTransmuralAreas () |
void | SetCellParameters (AbstractCardiacCell *pCell, unsigned nodeIndex) |
void | SetCellIntracellularStimulus (AbstractCardiacCell *pCell, unsigned nodeIndex) |
template<> | |
void | FillInCellularTransmuralAreas () |
Private Member Functions | |
void | PreconvertCellmlFiles () |
DynamicCellModelLoader * | LoadDynamicModel (const cp::ionic_model_selection_type &rModel, bool isCollective) |
Private Attributes | |
cp::ionic_model_selection_type | mDefaultIonicModel |
std::vector< ChasteCuboid < SPACE_DIM > > | mIonicModelRegions |
std::vector < cp::ionic_model_selection_type > | mIonicModelsDefined |
std::vector< ChasteCuboid < SPACE_DIM > > | mStimulatedAreas |
std::vector< boost::shared_ptr < AbstractStimulusFunction > > | mStimuliApplied |
std::vector < AbstractChasteRegion < SPACE_DIM > * > | mCellHeterogeneityAreas |
std::vector< double > | mScaleFactorGks |
std::vector< double > | mScaleFactorIto |
std::vector< double > | mScaleFactorGkr |
std::vector< std::map < std::string, double > > | mParameterSettings |
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 73 of file HeartConfigRelatedCellFactory.hpp.
HeartConfigRelatedCellFactory< SPACE_DIM >::HeartConfigRelatedCellFactory | ( | ) | [inline] |
Constructor reads settings from the configuration file.
Definition at line 39 of file HeartConfigRelatedCellFactory.cpp.
References EXCEPTION, HeartConfig::GetCellHeterogeneities(), HeartConfig::GetIonicModelRegions(), HeartConfig::GetStimuli(), HeartConfig::Instance(), HeartConfigRelatedCellFactory< SPACE_DIM >::mCellHeterogeneityAreas, HeartConfigRelatedCellFactory< SPACE_DIM >::mIonicModelRegions, HeartConfigRelatedCellFactory< SPACE_DIM >::mIonicModelsDefined, HeartConfigRelatedCellFactory< SPACE_DIM >::mParameterSettings, HeartConfigRelatedCellFactory< SPACE_DIM >::mScaleFactorGkr, HeartConfigRelatedCellFactory< SPACE_DIM >::mScaleFactorGks, HeartConfigRelatedCellFactory< SPACE_DIM >::mScaleFactorIto, HeartConfigRelatedCellFactory< SPACE_DIM >::mStimulatedAreas, HeartConfigRelatedCellFactory< SPACE_DIM >::mStimuliApplied, and HeartConfigRelatedCellFactory< SPACE_DIM >::PreconvertCellmlFiles().
HeartConfigRelatedCellFactory< SPACE_DIM >::~HeartConfigRelatedCellFactory | ( | ) | [inline] |
Destructor
Definition at line 107 of file HeartConfigRelatedCellFactory.cpp.
References HeartConfigRelatedCellFactory< SPACE_DIM >::mCellHeterogeneityAreas.
void HeartConfigRelatedCellFactory< SPACE_DIM >::PreconvertCellmlFiles | ( | ) | [inline, 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.
Definition at line 80 of file HeartConfigRelatedCellFactory.cpp.
References HeartConfigRelatedCellFactory< SPACE_DIM >::LoadDynamicModel(), HeartConfigRelatedCellFactory< SPACE_DIM >::mDefaultIonicModel, and HeartConfigRelatedCellFactory< SPACE_DIM >::mIonicModelsDefined.
Referenced by HeartConfigRelatedCellFactory< SPACE_DIM >::HeartConfigRelatedCellFactory().
DynamicCellModelLoader * HeartConfigRelatedCellFactory< SPACE_DIM >::LoadDynamicModel | ( | const cp::ionic_model_selection_type & | rModel, | |
bool | isCollective | |||
) | [inline, private] |
Get a loader for the given (dynamically loadable) cell model.
rModel | model to load | |
isCollective | whether we are being called collectively |
Definition at line 96 of file HeartConfigRelatedCellFactory.cpp.
Referenced by HeartConfigRelatedCellFactory< SPACE_DIM >::CreateCellWithIntracellularStimulus(), and HeartConfigRelatedCellFactory< SPACE_DIM >::PreconvertCellmlFiles().
AbstractCardiacCell * HeartConfigRelatedCellFactory< SPACE_DIM >::CreateCellWithIntracellularStimulus | ( | boost::shared_ptr< AbstractStimulusFunction > | intracellularStimulus, | |
unsigned | nodeIndex | |||
) | [inline] |
Create the correct tissue cell for a given region in the mesh
intracellularStimulus | is computed in CreateCardiacCellForTissueNode determined by the list of stimulation regions | |
nodeIndex | is the global index within the mesh |
Definition at line 116 of file HeartConfigRelatedCellFactory.cpp.
References DynamicCellModelLoader::CreateCell(), EXCEPTION, HeartConfig::GetCheckpointSimulation(), AbstractCardiacCellFactory< SPACE_DIM >::GetMesh(), HeartConfig::Instance(), HeartConfigRelatedCellFactory< SPACE_DIM >::LoadDynamicModel(), HeartConfigRelatedCellFactory< SPACE_DIM >::mDefaultIonicModel, HeartConfigRelatedCellFactory< SPACE_DIM >::mIonicModelRegions, HeartConfigRelatedCellFactory< SPACE_DIM >::mIonicModelsDefined, AbstractCardiacCellFactory< SPACE_DIM >::mpSolver, NEVER_REACHED, and HeartConfigRelatedCellFactory< SPACE_DIM >::SetCellParameters().
Referenced by HeartConfigRelatedCellFactory< SPACE_DIM >::CreateCardiacCellForTissueNode().
AbstractCardiacCell * HeartConfigRelatedCellFactory< SPACE_DIM >::CreateCardiacCellForTissueNode | ( | unsigned | nodeIndex | ) | [inline, virtual] |
Create the 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
nodeIndex | is the global index within the mesh |
Implements AbstractCardiacCellFactory< SPACE_DIM >.
Definition at line 303 of file HeartConfigRelatedCellFactory.cpp.
References HeartConfigRelatedCellFactory< SPACE_DIM >::CreateCellWithIntracellularStimulus(), AbstractCardiacCellFactory< SPACE_DIM >::GetMesh(), HeartConfigRelatedCellFactory< SPACE_DIM >::mStimulatedAreas, and HeartConfigRelatedCellFactory< SPACE_DIM >::mStimuliApplied.
void HeartConfigRelatedCellFactory< SPACE_DIM >::FillInCellularTransmuralAreas | ( | ) | [inline, virtual] |
Helper method to calculate and fill in the heterogeneities areas (mCellHeterogeneityAreas)
Reimplemented from AbstractCardiacCellFactory< SPACE_DIM >.
Definition at line 322 of file HeartConfigRelatedCellFactory.cpp.
References NEVER_REACHED.
void HeartConfigRelatedCellFactory< SPACE_DIM >::SetCellParameters | ( | AbstractCardiacCell * | pCell, | |
unsigned | nodeIndex | |||
) | [inline] |
Set parameters of a cell based on heterogeneity definitions in HeartConfig.
pCell | the cell to set parameters of | |
nodeIndex | the index of the node corresponding to this cell in the mesh |
Definition at line 242 of file HeartConfigRelatedCellFactory.cpp.
References AbstractCardiacCellFactory< SPACE_DIM >::GetMesh(), AbstractParameterisedSystem< VECTOR >::GetParameterIndex(), HeartConfigRelatedCellFactory< SPACE_DIM >::mCellHeterogeneityAreas, HeartConfigRelatedCellFactory< SPACE_DIM >::mParameterSettings, HeartConfigRelatedCellFactory< SPACE_DIM >::mScaleFactorGkr, HeartConfigRelatedCellFactory< SPACE_DIM >::mScaleFactorGks, HeartConfigRelatedCellFactory< SPACE_DIM >::mScaleFactorIto, and AbstractParameterisedSystem< VECTOR >::SetParameter().
Referenced by CardiacSimulation::CreateAndRun(), and HeartConfigRelatedCellFactory< SPACE_DIM >::CreateCellWithIntracellularStimulus().
void HeartConfigRelatedCellFactory< SPACE_DIM >::SetCellIntracellularStimulus | ( | AbstractCardiacCell * | pCell, | |
unsigned | nodeIndex | |||
) | [inline] |
Set the intracellular stimulus for a cell based on the definitions in HeartConfig.
pCell | the cell to set stimulus of | |
nodeIndex | the index of the node corresponding to this cell in the mesh |
Definition at line 284 of file HeartConfigRelatedCellFactory.cpp.
References AbstractCardiacCellFactory< SPACE_DIM >::GetMesh(), HeartConfigRelatedCellFactory< SPACE_DIM >::mStimulatedAreas, HeartConfigRelatedCellFactory< SPACE_DIM >::mStimuliApplied, and AbstractCardiacCellInterface::SetIntracellularStimulusFunction().
Referenced by CardiacSimulation::CreateAndRun().
void HeartConfigRelatedCellFactory< 3u >::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 from AbstractCardiacCellFactory< SPACE_DIM >.
Definition at line 328 of file HeartConfigRelatedCellFactory.cpp.
References HeartGeometryInformation< SPACE_DIM >::DetermineLayerForEachNode(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetDistributedVectorFactory(), HeartConfig::GetEndoLayerFraction(), HeartConfig::GetEndoLayerIndex(), HeartConfig::GetEpiLayerFraction(), HeartConfig::GetEpiLayerIndex(), AbstractCardiacCellFactory< SPACE_DIM >::GetMesh(), HeartConfig::GetMeshName(), HeartConfig::GetMidLayerIndex(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), HeartConfig::Instance(), DistributedVectorFactory::IsGlobalIndexLocal(), HeartConfigRelatedCellFactory< SPACE_DIM >::mCellHeterogeneityAreas, NEVER_REACHED, and HeartGeometryInformation< SPACE_DIM >::rGetLayerForEachNode().
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 77 of file HeartConfigRelatedCellFactory.hpp.
Referenced by HeartConfigRelatedCellFactory< SPACE_DIM >::CreateCellWithIntracellularStimulus(), and HeartConfigRelatedCellFactory< SPACE_DIM >::PreconvertCellmlFiles().
std::vector<ChasteCuboid<SPACE_DIM> > HeartConfigRelatedCellFactory< SPACE_DIM >::mIonicModelRegions [private] |
List of axis-aligned box regions which contain heterogeneous cardiac ionic model types
Definition at line 79 of file HeartConfigRelatedCellFactory.hpp.
Referenced by HeartConfigRelatedCellFactory< SPACE_DIM >::CreateCellWithIntracellularStimulus(), and HeartConfigRelatedCellFactory< SPACE_DIM >::HeartConfigRelatedCellFactory().
std::vector<cp::ionic_model_selection_type> HeartConfigRelatedCellFactory< SPACE_DIM >::mIonicModelsDefined [private] |
List of ionic model (size matches that of mIonicModelRegions)
Definition at line 81 of file HeartConfigRelatedCellFactory.hpp.
Referenced by HeartConfigRelatedCellFactory< SPACE_DIM >::CreateCellWithIntracellularStimulus(), HeartConfigRelatedCellFactory< SPACE_DIM >::HeartConfigRelatedCellFactory(), and HeartConfigRelatedCellFactory< SPACE_DIM >::PreconvertCellmlFiles().
std::vector<ChasteCuboid<SPACE_DIM> > HeartConfigRelatedCellFactory< SPACE_DIM >::mStimulatedAreas [private] |
List of axis-aligned box regions which represent areas to stimulate
Definition at line 84 of file HeartConfigRelatedCellFactory.hpp.
Referenced by HeartConfigRelatedCellFactory< SPACE_DIM >::CreateCardiacCellForTissueNode(), HeartConfigRelatedCellFactory< SPACE_DIM >::HeartConfigRelatedCellFactory(), and HeartConfigRelatedCellFactory< SPACE_DIM >::SetCellIntracellularStimulus().
std::vector<boost::shared_ptr<AbstractStimulusFunction> > HeartConfigRelatedCellFactory< SPACE_DIM >::mStimuliApplied [private] |
List of intracellular current stimuli to apply (size matches that of mStimulatedAreas)
Definition at line 86 of file HeartConfigRelatedCellFactory.hpp.
Referenced by HeartConfigRelatedCellFactory< SPACE_DIM >::CreateCardiacCellForTissueNode(), HeartConfigRelatedCellFactory< SPACE_DIM >::HeartConfigRelatedCellFactory(), and HeartConfigRelatedCellFactory< SPACE_DIM >::SetCellIntracellularStimulus().
std::vector<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 99 of file HeartConfigRelatedCellFactory.hpp.
Referenced by HeartConfigRelatedCellFactory< SPACE_DIM >::FillInCellularTransmuralAreas(), HeartConfigRelatedCellFactory< SPACE_DIM >::HeartConfigRelatedCellFactory(), HeartConfigRelatedCellFactory< SPACE_DIM >::SetCellParameters(), and HeartConfigRelatedCellFactory< SPACE_DIM >::~HeartConfigRelatedCellFactory().
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 101 of file HeartConfigRelatedCellFactory.hpp.
Referenced by HeartConfigRelatedCellFactory< SPACE_DIM >::HeartConfigRelatedCellFactory(), and HeartConfigRelatedCellFactory< SPACE_DIM >::SetCellParameters().
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 103 of file HeartConfigRelatedCellFactory.hpp.
Referenced by HeartConfigRelatedCellFactory< SPACE_DIM >::HeartConfigRelatedCellFactory(), and HeartConfigRelatedCellFactory< SPACE_DIM >::SetCellParameters().
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 105 of file HeartConfigRelatedCellFactory.hpp.
Referenced by HeartConfigRelatedCellFactory< SPACE_DIM >::HeartConfigRelatedCellFactory(), and HeartConfigRelatedCellFactory< SPACE_DIM >::SetCellParameters().
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 108 of file HeartConfigRelatedCellFactory.hpp.
Referenced by HeartConfigRelatedCellFactory< SPACE_DIM >::HeartConfigRelatedCellFactory(), and HeartConfigRelatedCellFactory< SPACE_DIM >::SetCellParameters().