#include <AbstractCardiacTissue.hpp>
Inherits boost::noncopyable.
Inherited by MonodomainTissue< ELEMENT_DIM, SPACE_DIM > [virtual]
.
Class containing "tissue-like" functionality used in monodomain and bidomain problems.
Contains the cardiac cells (ODE systems for each node of the mesh) and conductivity tensors (dependent on fibre directions).
Also contains knowledge of parallelisation in the form of the distributed vector factory. This class deals with created a distributed vector of cells, and getting the ionic current and stimuli from these cells and putting them in replicated arrays for the PDE solvers to call.
Definition at line 78 of file AbstractCardiacTissue.hpp.
AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue | ( | AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM > * | pCellFactory, | |
bool | exchangeHalos = false | |||
) | [inline] |
This constructor is called from the Initialise() method of the CardiacProblem class. It creates all the cell objects, and sets up the conductivities.
Note that pCellFactory contains a pointer to the mesh
pCellFactory | factory to use to create cardiac cells. If this is actually an AbstractPurkinjeCellFactory it creates purkinje cells. | |
exchangeHalos | used in state-variable interpolation. Defaults to false. |
Definition at line 53 of file AbstractCardiacTissue.cpp.
References GenericEventHandler< 16, HeartEventHandler >::BeginEvent(), AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::CreateCardiacCellForNode(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::CreateIntracellularConductivityTensor(), AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::CreatePurkinjeCellForNode(), GenericEventHandler< 16, HeartEventHandler >::EndEvent(), EXCEPTION, AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::FinaliseCellCreation(), AbstractPurkinjeCellFactory< ELEMENT_DIM, SPACE_DIM >::FinalisePurkinjeCellCreation(), DistributedVectorFactory::GetHigh(), DistributedVectorFactory::GetLocalOwnership(), DistributedVectorFactory::GetLow(), AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::GetMesh(), HeartConfig::GetMeshName(), AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::GetNumberOfCells(), HeartConfig::Instance(), PetscTools::IsSequential(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mCellsDistributed, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mExchangeHalos, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mFibreFilePathNoExtension, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHasPurkinje, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIionicCacheReplicated, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIntracellularStimulusCacheReplicated, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpMesh, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeCellsDistributed, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeIionicCacheReplicated, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeIntracellularStimulusCacheReplicated, PetscTools::ReplicateBool(), PetscTools::ReplicateException(), ReplicatableVector::Resize(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetUpHaloCells().
AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue | ( | AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > * | pMesh | ) | [inline] |
This constructor is called by the archiver only.
pMesh | a pointer to the AbstractTetrahedral mesh. |
Definition at line 181 of file AbstractCardiacTissue.cpp.
References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::CreateIntracellularConductivityTensor(), ArchiveLocationInfo::GetArchiveDirectory(), ArchiveLocationInfo::GetMeshFilename(), DistributedVectorFactory::GetProblemSize(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mFibreFilePathNoExtension, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIionicCacheReplicated, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIntracellularStimulusCacheReplicated, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory, and ReplicatableVector::Resize().
AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::~AbstractCardiacTissue | ( | ) | [inline, virtual] |
Virtual destructor
Definition at line 197 of file AbstractCardiacTissue.cpp.
References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mCellsDistributed, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHaloCellsDistributed, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mMeshUnarchived, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpIntracellularConductivityTensors, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpMesh, and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeCellsDistributed.
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::CalculateHaloNodesFromNodeExchange | ( | ) | [inline, protected] |
If the mesh is a tetrahedral mesh then all elements and nodes are known. The halo nodes to the ones which are actually used as cardiac cells must be calculated explicitly.
Definition at line 422 of file AbstractCardiacTissue.cpp.
References PetscTools::GetNumProcs(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHaloNodes, and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mNodesToReceivePerProcess.
Referenced by AbstractCardiacTissue< SPACE_DIM >::load(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetUpHaloCells().
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::CreateIntracellularConductivityTensor | ( | ) | [inline, private] |
Convenience method for intracellular conductivity tensor creation
Definition at line 240 of file AbstractCardiacTissue.cpp.
References RelativeTo::AbsoluteOrCwd, GenericEventHandler< 16, HeartEventHandler >::BeginEvent(), GenericEventHandler< 16, HeartEventHandler >::EndEvent(), FileFinder::Exists(), HeartConfig::GetConductivityHeterogeneities(), HeartConfig::GetConductivityHeterogeneitiesProvided(), HeartConfig::GetConductivityMedia(), HeartConfig::GetIntracellularConductivities(), HeartConfig::GetLoadMesh(), HeartConfig::Instance(), HeartConfig::IsMeshProvided(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mFibreFilePathNoExtension, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpConfig, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpIntracellularConductivityTensors, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpMesh, NEVER_REACHED, and PetscTools::ReplicateException().
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue().
AbstractCardiacCellInterface * AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::GetCardiacCell | ( | unsigned | globalIndex | ) | [inline] |
globalIndex | global node index for which to retrieve a cell |
Definition at line 384 of file AbstractCardiacTissue.cpp.
References DistributedVectorFactory::GetHigh(), DistributedVectorFactory::GetLow(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mCellsDistributed, and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory.
Referenced by CardiacSimulation::CreateAndRun(), and ExtendedBidomainProblem< DIM >::CreateInitialCondition().
AbstractCardiacCellInterface * AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::GetCardiacCellOrHaloCell | ( | unsigned | globalIndex | ) | [inline] |
globalIndex | global node index for which to retrieve a cell |
Definition at line 401 of file AbstractCardiacTissue.cpp.
References EXCEPTION, DistributedVectorFactory::GetLow(), PetscTools::GetMyRank(), DistributedVectorFactory::IsGlobalIndexLocal(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mCellsDistributed, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHaloCellsDistributed, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHaloGlobalToLocalIndexMap, and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory.
bool AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::GetDoCacheReplication | ( | ) | [inline] |
Get whether or not to replicate the caches across all processors.
Definition at line 358 of file AbstractCardiacTissue.cpp.
References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mDoCacheReplication.
AbstractCardiacCellInterface * AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::GetPurkinjeCell | ( | unsigned | globalIndex | ) | [inline] |
globalIndex | global node index for which to retrieve a cell |
Definition at line 392 of file AbstractCardiacTissue.cpp.
References EXCEPT_IF_NOT, DistributedVectorFactory::GetHigh(), DistributedVectorFactory::GetLow(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHasPurkinje, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory, and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeCellsDistributed.
bool AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::HasPurkinje | ( | ) | [inline] |
Definition at line 234 of file AbstractCardiacTissue.cpp.
References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHasPurkinje.
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::load | ( | Archive & | archive, | |
const unsigned int | version | |||
) | [inline, private] |
Unarchive the member variables.
archive | ||
version |
Definition at line 162 of file AbstractCardiacTissue.hpp.
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::LoadCardiacCells | ( | Archive & | archive, | |
const unsigned int | version | |||
) | [inline] |
Load our tissue from an archive.
Handles the checkpoint migration case, deleting loaded cells immediately if they are not local to this process.
Also loads halo cells if we're doing halo exchange, by using the non-local cells from the archive.
archive | the process-specific archive to load from | |
version | archive version |
Definition at line 562 of file AbstractCardiacTissue.hpp.
Referenced by AbstractCardiacTissue< SPACE_DIM >::load().
const AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > * AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::pGetMesh | ( | ) | const [inline] |
Definition at line 773 of file AbstractCardiacTissue.cpp.
References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpMesh.
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::ReplicateCaches | ( | ) | [inline] |
Replicate the Iionic and intracellular stimulus caches.
Definition at line 743 of file AbstractCardiacTissue.cpp.
References DistributedVectorFactory::GetHigh(), DistributedVectorFactory::GetLow(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHasPurkinje, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIionicCacheReplicated, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIntracellularStimulusCacheReplicated, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory, and ReplicatableVector::Replicate().
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SolveCellSystems().
const std::vector< AbstractCardiacCellInterface * > & AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetCellsDistributed | ( | ) | const [inline] |
Definition at line 760 of file AbstractCardiacTissue.cpp.
References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mCellsDistributed.
Referenced by AbstractCardiacTissue< SPACE_DIM >::SaveCardiacCells().
const c_matrix< double, SPACE_DIM, SPACE_DIM > & AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetExtracellularConductivityTensor | ( | unsigned | elementIndex | ) | [inline, virtual] |
elementIndex | index of the element of interest |
Reimplemented in BidomainTissue< SPACE_DIM >, ExtendedBidomainTissue< SPACE_DIM >, BidomainTissue< DIM >, and ExtendedBidomainTissue< DIM >.
Definition at line 378 of file AbstractCardiacTissue.cpp.
References EXCEPTION.
ReplicatableVector & AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetIionicCacheReplicated | ( | ) | [inline] |
Definition at line 702 of file AbstractCardiacTissue.cpp.
References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIionicCacheReplicated.
const c_matrix< double, SPACE_DIM, SPACE_DIM > & AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetIntracellularConductivityTensor | ( | unsigned | elementIndex | ) | [inline] |
elementIndex | index of the element of interest |
Definition at line 364 of file AbstractCardiacTissue.cpp.
References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpConductivityModifier, and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpIntracellularConductivityTensors.
ReplicatableVector & AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetIntracellularStimulusCacheReplicated | ( | ) | [inline] |
Definition at line 708 of file AbstractCardiacTissue.cpp.
References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIntracellularStimulusCacheReplicated.
const std::vector< AbstractCardiacCellInterface * > & AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetPurkinjeCellsDistributed | ( | ) | const [inline] |
Definition at line 766 of file AbstractCardiacTissue.cpp.
References EXCEPT_IF_NOT, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHasPurkinje, and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeCellsDistributed.
Referenced by AbstractCardiacTissue< SPACE_DIM >::SaveCardiacCells().
ReplicatableVector & AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetPurkinjeIionicCacheReplicated | ( | ) | [inline] |
Definition at line 714 of file AbstractCardiacTissue.cpp.
References EXCEPT_IF_NOT, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHasPurkinje, and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeIionicCacheReplicated.
ReplicatableVector & AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetPurkinjeIntracellularStimulusCacheReplicated | ( | ) | [inline] |
Definition at line 721 of file AbstractCardiacTissue.cpp.
References EXCEPT_IF_NOT, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHasPurkinje, and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeIntracellularStimulusCacheReplicated.
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::save | ( | Archive & | archive, | |
const unsigned int | version | |||
) | const [inline, private] |
Archive the member variables.
archive | ||
version |
Definition at line 93 of file AbstractCardiacTissue.hpp.
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SaveCardiacCells | ( | Archive & | archive, | |
const unsigned int | version | |||
) | const [inline] |
Save our tissue to an archive.
Writes:
archive | the process-specific archive to write cells to. | |
version |
Definition at line 520 of file AbstractCardiacTissue.hpp.
Referenced by AbstractCardiacTissue< SPACE_DIM >::save().
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetCacheReplication | ( | bool | doCacheReplication | ) | [inline] |
Set whether or not to replicate the caches across all processors.
See also mDoCacheReplication.
doCacheReplication | - true if the cache needs to be replicated |
Definition at line 352 of file AbstractCardiacTissue.cpp.
References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mDoCacheReplication.
Referenced by MonodomainSolver< ELEMENT_DIM, SPACE_DIM >::MonodomainSolver(), and OperatorSplittingMonodomainSolver< ELEMENT_DIM, SPACE_DIM >::OperatorSplittingMonodomainSolver().
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetConductivityModifier | ( | AbstractConductivityModifier< ELEMENT_DIM, SPACE_DIM > * | pModifier | ) | [inline] |
Set a modifier class which will be used to modifier a conductivity obtained from mpIntracellularConductivityTensors when rGetIntracellularConductivityTensor() is called. For example, it is required when conductivities become deformation-dependent.
pModifier | Pointer to the concrete modifier class |
Definition at line 779 of file AbstractCardiacTissue.cpp.
References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpConductivityModifier.
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetUpHaloCells | ( | AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM > * | pCellFactory | ) | [inline, protected] |
If mExchangeHalos is true, this method calls CalculateHaloNodesFromNodeExchange and sets up the halo cell data structures mHaloCellsDistributed and mHaloGlobalToLocalIndexMap.
pCellFactory | cell factory to use to create halo cells |
Definition at line 435 of file AbstractCardiacTissue.cpp.
References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::CalculateHaloNodesFromNodeExchange(), AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::CreateCardiacCellForNode(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mExchangeHalos, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHaloCellsDistributed, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHaloGlobalToLocalIndexMap, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHaloNodes, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mNodesToReceivePerProcess, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mNodesToSendPerProcess, and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpMesh.
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue().
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SolveCellSystems | ( | Vec | existingSolution, | |
double | time, | |||
double | nextTime, | |||
bool | updateVoltage = false | |||
) | [inline, virtual] |
Integrate the cell ODEs and update ionic current etc for each of the cells, between the two times provided.
existingSolution | the current voltage solution vector | |
time | the current simulation time | |
nextTime | when to simulate the cells until | |
updateVoltage | whether to also solve for the voltage (generally false, true for operator splitting methods). Defaults to false |
Reimplemented in ExtendedBidomainTissue< SPACE_DIM >, and ExtendedBidomainTissue< DIM >.
Definition at line 462 of file AbstractCardiacTissue.cpp.
References DistributedVector::Begin(), GenericEventHandler< 16, HeartEventHandler >::BeginEvent(), DistributedVectorFactory::CreateDistributedVector(), DistributedVector::End(), GenericEventHandler< 16, HeartEventHandler >::EndEvent(), DistributedVectorFactory::GetLow(), PetscTools::GetMyRank(), AbstractCardiacCellInterface::GetNumberOfStateVariables(), PetscTools::GetNumProcs(), PetscVecTools::GetSize(), AbstractCardiacCellInterface::GetStdVecStateVariables(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mCellsDistributed, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mDoCacheReplication, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mExchangeHalos, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHaloCellsDistributed, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHaloGlobalToLocalIndexMap, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHasPurkinje, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mNodesToReceivePerProcess, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mNodesToSendPerProcess, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpMesh, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeCellsDistributed, NEVER_REACHED, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::ReplicateCaches(), PetscTools::ReplicateException(), DistributedVector::Restore(), AbstractCardiacCellInterface::SetStateVariables(), UNUSED_OPT, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::UpdateCaches(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::UpdatePurkinjeCaches().
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::UpdateCaches | ( | unsigned | globalIndex, | |
unsigned | localIndex, | |||
double | nextTime | |||
) | [inline] |
Update the Iionic and intracellular stimulus caches.
globalIndex | global index of the entry to update | |
localIndex | local index of the entry to update | |
nextTime | the next PDE time point, at which to evaluate the stimulus current |
Definition at line 728 of file AbstractCardiacTissue.cpp.
References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mCellsDistributed, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIionicCacheReplicated, and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIntracellularStimulusCacheReplicated.
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SolveCellSystems().
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::UpdatePurkinjeCaches | ( | unsigned | globalIndex, | |
unsigned | localIndex, | |||
double | nextTime | |||
) | [inline] |
Update the Iionic and intracellular stimulus caches for Purkinje cells.
globalIndex | global index of the entry to update | |
localIndex | local index of the entry to update | |
nextTime | the next PDE time point, at which to evaluate the stimulus current |
Definition at line 735 of file AbstractCardiacTissue.cpp.
References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHasPurkinje, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeCellsDistributed, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeIionicCacheReplicated, and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeIntracellularStimulusCacheReplicated.
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SolveCellSystems().
friend class boost::serialization::access [friend] |
Needed for serialization.
Reimplemented in BidomainTissue< SPACE_DIM >, ExtendedBidomainTissue< SPACE_DIM >, MonodomainTissue< ELEMENT_DIM, SPACE_DIM >, BidomainTissue< DIM >, and ExtendedBidomainTissue< DIM >.
Definition at line 83 of file AbstractCardiacTissue.hpp.
std::vector< AbstractCardiacCellInterface* > AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mCellsDistributed [protected] |
The vector of cells. Distributed.
Definition at line 236 of file AbstractCardiacTissue.hpp.
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::GetCardiacCell(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::GetCardiacCellOrHaloCell(), AbstractCardiacTissue< SPACE_DIM >::LoadCardiacCells(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetCellsDistributed(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SolveCellSystems(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::UpdateCaches(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::~AbstractCardiacTissue().
bool AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mDoCacheReplication [protected] |
Whether we need to replicate the caches.
When doing matrix-based RHS assembly, we only actually need information from cells/nodes local to the processor, so replicating the caches is an unnecessary communication overhead.
Defaults to true.
Definition at line 302 of file AbstractCardiacTissue.hpp.
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::GetDoCacheReplication(), AbstractCardiacTissue< SPACE_DIM >::load(), AbstractCardiacTissue< SPACE_DIM >::save(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetCacheReplication(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SolveCellSystems().
bool AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mExchangeHalos [protected] |
Whether to exchange cell models across the halo boundaries. Used in state variable interpolation.
Definition at line 313 of file AbstractCardiacTissue.hpp.
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue(), AbstractCardiacTissue< SPACE_DIM >::load(), AbstractCardiacTissue< SPACE_DIM >::save(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetUpHaloCells(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SolveCellSystems().
std::string AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mFibreFilePathNoExtension [protected] |
Path to the location of the fibre file without extension.
Definition at line 281 of file AbstractCardiacTissue.hpp.
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::CreateIntracellularConductivityTensor(), and AbstractCardiacTissue< SPACE_DIM >::save().
std::vector< AbstractCardiacCellInterface* > AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHaloCellsDistributed [protected] |
The vector of halo cells. Distributed.
Definition at line 319 of file AbstractCardiacTissue.hpp.
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::GetCardiacCellOrHaloCell(), AbstractCardiacTissue< SPACE_DIM >::load(), AbstractCardiacTissue< SPACE_DIM >::LoadCardiacCells(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetUpHaloCells(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SolveCellSystems(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::~AbstractCardiacTissue().
std::map<unsigned, unsigned> AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHaloGlobalToLocalIndexMap [protected] |
Map of global to local indices for halo nodes.
Definition at line 322 of file AbstractCardiacTissue.hpp.
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::GetCardiacCellOrHaloCell(), AbstractCardiacTissue< SPACE_DIM >::load(), AbstractCardiacTissue< SPACE_DIM >::LoadCardiacCells(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetUpHaloCells(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SolveCellSystems().
std::vector<unsigned> AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHaloNodes [protected] |
Vector of halo node indices for current process
Definition at line 316 of file AbstractCardiacTissue.hpp.
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::CalculateHaloNodesFromNodeExchange(), AbstractCardiacTissue< SPACE_DIM >::load(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetUpHaloCells().
bool AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHasPurkinje [protected] |
Whether this tissue has any Purkinje cells.
Definition at line 291 of file AbstractCardiacTissue.hpp.
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::GetPurkinjeCell(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::HasPurkinje(), AbstractCardiacTissue< SPACE_DIM >::load(), AbstractCardiacTissue< SPACE_DIM >::LoadCardiacCells(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::ReplicateCaches(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetPurkinjeCellsDistributed(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetPurkinjeIionicCacheReplicated(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetPurkinjeIntracellularStimulusCacheReplicated(), AbstractCardiacTissue< SPACE_DIM >::save(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SolveCellSystems(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::UpdatePurkinjeCaches().
ReplicatableVector AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIionicCacheReplicated [protected] |
Cache containing all the ionic currents for each node, replicated over all processes.
Definition at line 245 of file AbstractCardiacTissue.hpp.
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::ReplicateCaches(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetIionicCacheReplicated(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::UpdateCaches().
ReplicatableVector AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIntracellularStimulusCacheReplicated [protected] |
Cache containing all the stimulus currents for each node, replicated over all processes.
Definition at line 257 of file AbstractCardiacTissue.hpp.
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::ReplicateCaches(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetIntracellularStimulusCacheReplicated(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::UpdateCaches().
bool AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mMeshUnarchived [protected] |
Whether the mesh was unarchived or got from elsewhere.
Definition at line 307 of file AbstractCardiacTissue.hpp.
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::~AbstractCardiacTissue().
std::vector<std::vector<unsigned> > AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mNodesToReceivePerProcess [protected] |
A vector which will be of size GetNumProcs() for information to receive for process i.
Definition at line 335 of file AbstractCardiacTissue.hpp.
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::CalculateHaloNodesFromNodeExchange(), AbstractCardiacTissue< SPACE_DIM >::load(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetUpHaloCells(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SolveCellSystems().
std::vector<std::vector<unsigned> > AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mNodesToSendPerProcess [protected] |
A vector which will be of size GetNumProcs() where each internal vector except i=GetMyRank() contains an ordered list of indices of nodes to send to process i during data exchange
Definition at line 329 of file AbstractCardiacTissue.hpp.
Referenced by AbstractCardiacTissue< SPACE_DIM >::load(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetUpHaloCells(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SolveCellSystems().
AbstractConductivityModifier<ELEMENT_DIM,SPACE_DIM>* AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpConductivityModifier [protected] |
This class, if not NULL, will be used to modify the conductivity that is obtained from mpIntracellularConductivityTensors when rGetIntracellularConductivityTensor() is called. For example, it is required when conductivities become deformation dependent.
Definition at line 288 of file AbstractCardiacTissue.hpp.
Referenced by AbstractCardiacTissue< SPACE_DIM >::load(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetIntracellularConductivityTensor(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetConductivityModifier().
HeartConfig* AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpConfig [protected] |
Local pointer to the HeartConfig singleton instance, for convenience.
Definition at line 266 of file AbstractCardiacTissue.hpp.
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::CreateIntracellularConductivityTensor().
DistributedVectorFactory* AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory [protected] |
Local pointer to the distributed vector factory associated with the mesh object used.
Used to retrieve node ownership range when needed.
NB: This is set from mpMesh->GetDistributedVectorFactory() and thus always equal to that. We never assume ownership of the object.
Definition at line 276 of file AbstractCardiacTissue.hpp.
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::GetCardiacCell(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::GetCardiacCellOrHaloCell(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::GetPurkinjeCell(), AbstractCardiacTissue< SPACE_DIM >::load(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::ReplicateCaches(), AbstractCardiacTissue< SPACE_DIM >::save(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SolveCellSystems().
AbstractConductivityTensors<ELEMENT_DIM,SPACE_DIM>* AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpIntracellularConductivityTensors [protected] |
Intracellular conductivity tensors. Not archived, since it's loaded from the HeartConfig singleton.
Definition at line 233 of file AbstractCardiacTissue.hpp.
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::CreateIntracellularConductivityTensor(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetIntracellularConductivityTensor(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::~AbstractCardiacTissue().
AbstractTetrahedralMesh<ELEMENT_DIM,SPACE_DIM>* AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpMesh [protected] |
It's handy to keep a pointer to the mesh object
Definition at line 229 of file AbstractCardiacTissue.hpp.
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::CreateIntracellularConductivityTensor(), AbstractCardiacTissue< SPACE_DIM >::load(), AbstractCardiacTissue< SPACE_DIM >::LoadCardiacCells(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::pGetMesh(), AbstractCardiacTissue< SPACE_DIM >::save(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetUpHaloCells(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SolveCellSystems(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::~AbstractCardiacTissue().
std::vector< AbstractCardiacCellInterface* > AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeCellsDistributed [protected] |
The vector of the purkinje cells. Distributed. Empty unless a AbstractPurkinjeCellFactory is given to the constructor.
Definition at line 239 of file AbstractCardiacTissue.hpp.
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::GetPurkinjeCell(), AbstractCardiacTissue< SPACE_DIM >::LoadCardiacCells(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetPurkinjeCellsDistributed(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SolveCellSystems(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::UpdatePurkinjeCaches(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::~AbstractCardiacTissue().
ReplicatableVector AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeIionicCacheReplicated [protected] |
Cache containing all the ionic currents for each purkinje node, replicated over all processes.
Definition at line 251 of file AbstractCardiacTissue.hpp.
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue(), AbstractCardiacTissue< SPACE_DIM >::load(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetPurkinjeIionicCacheReplicated(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::UpdatePurkinjeCaches().
ReplicatableVector AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeIntracellularStimulusCacheReplicated [protected] |
Cache containing all the stimulus currents for each Purkinje node, replicated over all processes.
Definition at line 263 of file AbstractCardiacTissue.hpp.
Referenced by AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetPurkinjeIntracellularStimulusCacheReplicated(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::UpdatePurkinjeCaches().