AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <AbstractCardiacTissue.hpp>

Inherits boost::noncopyable.

Inherited by MonodomainTissue< ELEMENT_DIM, SPACE_DIM > [virtual], and MonodomainTissue< ELEMENT_DIM, ELEMENT_DIM > [virtual].

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

List of all members.

Public Member Functions

 AbstractCardiacTissue (AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM > *pCellFactory, bool exchangeHalos=false)
 AbstractCardiacTissue (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh)
virtual ~AbstractCardiacTissue ()
bool HasPurkinje ()
void SetCacheReplication (bool doCacheReplication)
bool GetDoCacheReplication ()
const c_matrix< double,
SPACE_DIM, SPACE_DIM > & 
rGetIntracellularConductivityTensor (unsigned elementIndex)
virtual const c_matrix< double,
SPACE_DIM, SPACE_DIM > & 
rGetExtracellularConductivityTensor (unsigned elementIndex)
AbstractCardiacCellGetCardiacCell (unsigned globalIndex)
AbstractCardiacCellGetPurkinjeCell (unsigned globalIndex)
AbstractCardiacCellGetCardiacCellOrHaloCell (unsigned globalIndex)
virtual void SolveCellSystems (Vec existingSolution, double time, double nextTime, bool updateVoltage=false)
ReplicatableVectorrGetIionicCacheReplicated ()
ReplicatableVectorrGetIntracellularStimulusCacheReplicated ()
ReplicatableVectorrGetPurkinjeIionicCacheReplicated ()
void UpdateCaches (unsigned globalIndex, unsigned localIndex, double nextTime)
void ReplicateCaches ()
const std::vector
< AbstractCardiacCell * > & 
rGetCellsDistributed () const
const std::vector
< AbstractCardiacCell * > & 
rGetPurkinjeCellsDistributed () const
const AbstractTetrahedralMesh
< ELEMENT_DIM, SPACE_DIM > * 
pGetMesh () const
void SetConductivityModifier (AbstractConductivityModifier< ELEMENT_DIM, SPACE_DIM > *pModifier)
template<class Archive >
void SaveCardiacCells (Archive &archive, const unsigned int version) const
template<class Archive >
void LoadCardiacCells (Archive &archive, const unsigned int version)

Protected Member Functions

void CalculateHaloNodesFromNodeExchange ()
void SetUpHaloCells (AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM > *pCellFactory)

Protected Attributes

AbstractTetrahedralMesh
< ELEMENT_DIM, SPACE_DIM > * 
mpMesh
AbstractConductivityTensors
< ELEMENT_DIM, SPACE_DIM > * 
mpIntracellularConductivityTensors
std::vector
< AbstractCardiacCell * > 
mCellsDistributed
std::vector
< AbstractCardiacCell * > 
mPurkinjeCellsDistributed
ReplicatableVector mIionicCacheReplicated
ReplicatableVector mPurkinjeIionicCacheReplicated
ReplicatableVector mIntracellularStimulusCacheReplicated
HeartConfigmpConfig
DistributedVectorFactorympDistributedVectorFactory
std::string mFibreFilePathNoExtension
AbstractConductivityModifier
< ELEMENT_DIM, SPACE_DIM > * 
mpConductivityModifier
bool mHasPurkinje
bool mDoCacheReplication
bool mMeshUnarchived
bool mExchangeHalos
std::vector< unsignedmHaloNodes
std::vector
< AbstractCardiacCell * > 
mHaloCellsDistributed
std::map< unsigned, unsignedmHaloGlobalToLocalIndexMap
std::vector< std::vector
< unsigned > > 
mNodesToSendPerProcess
std::vector< std::vector
< unsigned > > 
mNodesToReceivePerProcess

Private Member Functions

template<class Archive >
void save (Archive &archive, const unsigned int version) const
template<class Archive >
void load (Archive &archive, const unsigned int version)
void CreateIntracellularConductivityTensor ()

Friends

class boost::serialization::access
class TestMonodomainTissue

Detailed Description

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

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 71 of file AbstractCardiacTissue.hpp.


Constructor & Destructor Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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

Parameters:
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 42 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(), 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 >::mPurkinjeCellsDistributed, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeIionicCacheReplicated, PetscTools::ReplicateException(), ReplicatableVector::Resize(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetUpHaloCells().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::AbstractCardiacTissue ( AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *  pMesh  )  [inline]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::~AbstractCardiacTissue (  )  [inline, virtual]

Member Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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 393 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().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::CreateIntracellularConductivityTensor (  )  [inline, private]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractCardiacCell * AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::GetCardiacCell ( unsigned  globalIndex  )  [inline]

Get a pointer to a cell, indexed by the global node index.

Note:
Should only called by the process owning the cell - triggers an assertion otherwise.
Parameters:
globalIndex global node index for which to retrieve a cell

Definition at line 355 of file AbstractCardiacTissue.cpp.

References DistributedVectorFactory::GetHigh(), DistributedVectorFactory::GetLow(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mCellsDistributed, and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory.

Referenced by AdaptiveBidomainProblem::AddCurrentSolutionToAdaptiveMesh(), CardiacSimulation::CreateAndRun(), ExtendedBidomainProblem< DIM >::CreateInitialCondition(), and AdaptiveBidomainProblem::InitializeSolutionOnAdaptedMesh().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractCardiacCell * AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::GetCardiacCellOrHaloCell ( unsigned  globalIndex  )  [inline]

Get a pointer to a halo cell, indexed by the global node index.

Note:
Should only called by the process halo owning the cell - triggers an assertion otherwise.
Parameters:
globalIndex global node index for which to retrieve a cell

Definition at line 372 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.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::GetDoCacheReplication (  )  [inline]

Get whether or not to replicate the caches across all processors.

Returns:
mDoCacheReplication - true if the cache needs to be replicated

Definition at line 329 of file AbstractCardiacTissue.cpp.

References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mDoCacheReplication.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractCardiacCell * AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::GetPurkinjeCell ( unsigned  globalIndex  )  [inline]

Get a pointer to a Purkinje cell, indexed by the global node index.

Note:
Should only called by the process owning the cell - triggers an assertion otherwise.
Parameters:
globalIndex global node index for which to retrieve a cell

Definition at line 363 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.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::HasPurkinje (  )  [inline]

Determine whether this tissue contains Purkinje fibres.

Definition at line 205 of file AbstractCardiacTissue.cpp.

References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHasPurkinje.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
template<class Archive >
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::load ( Archive &  archive,
const unsigned int  version 
) [inline, private]

Unarchive the member variables.

Parameters:
archive 
version 

Definition at line 162 of file AbstractCardiacTissue.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
template<class Archive >
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.

Parameters:
archive the process-specific archive to load from
version archive version

Todo:
#1199 test this
Todo:
#1898

Definition at line 542 of file AbstractCardiacTissue.hpp.

Referenced by AbstractCardiacTissue< SPACE_DIM >::load().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
const AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > * AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::pGetMesh (  )  const [inline]

Returns a pointer to the mesh object

Returns:
pointer to mesh object

Definition at line 657 of file AbstractCardiacTissue.cpp.

References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpMesh.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::ReplicateCaches (  )  [inline]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
const std::vector< AbstractCardiacCell * > & AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetCellsDistributed (  )  const [inline]

Returns a reference to the vector of distributed cells. Needed for archiving.

Definition at line 644 of file AbstractCardiacTissue.cpp.

References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mCellsDistributed.

Referenced by AbstractCardiacTissue< SPACE_DIM >::SaveCardiacCells().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
const c_matrix< double, SPACE_DIM, SPACE_DIM > & AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetExtracellularConductivityTensor ( unsigned  elementIndex  )  [inline, virtual]

Get the extracellular conductivity tensor for the given element (this throws an exception in this abstract class since monodomain don't have extracellular ones) it is overridden in the BidomainTissue.

Parameters:
elementIndex index of the element of interest

Reimplemented in BidomainTissue< SPACE_DIM >, ExtendedBidomainTissue< SPACE_DIM >, BidomainTissue< DIM >, and ExtendedBidomainTissue< DIM >.

Definition at line 349 of file AbstractCardiacTissue.cpp.

References EXCEPTION.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
ReplicatableVector & AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetIionicCacheReplicated (  )  [inline]

Get the entire ionic current cache

Definition at line 599 of file AbstractCardiacTissue.cpp.

References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIionicCacheReplicated.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
const c_matrix< double, SPACE_DIM, SPACE_DIM > & AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetIntracellularConductivityTensor ( unsigned  elementIndex  )  [inline]

Get the intracellular conductivity tensor for the given element

Parameters:
elementIndex index of the element of interest

Definition at line 335 of file AbstractCardiacTissue.cpp.

References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpConductivityModifier, and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpIntracellularConductivityTensors.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
ReplicatableVector & AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetIntracellularStimulusCacheReplicated (  )  [inline]

Get the entire stimulus current cache

Definition at line 605 of file AbstractCardiacTissue.cpp.

References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIntracellularStimulusCacheReplicated.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
const std::vector< AbstractCardiacCell * > & AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetPurkinjeCellsDistributed (  )  const [inline]

Returns a reference to the vector of distributed Purkinje cells. Needed for archiving.

Definition at line 650 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().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
ReplicatableVector & AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetPurkinjeIionicCacheReplicated (  )  [inline]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
template<class Archive >
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::save ( Archive &  archive,
const unsigned int  version 
) const [inline, private]

Archive the member variables.

Parameters:
archive 
version 

Definition at line 86 of file AbstractCardiacTissue.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
template<class Archive >
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SaveCardiacCells ( Archive &  archive,
const unsigned int  version 
) const [inline]

Save our tissue to an archive.

Writes:

  1. mpDistributedVectorFactory
  2. number of cells on this process
  3. each cell pointer in turn, interleaved with Purkinje cells if present
Parameters:
archive the process-specific archive to write cells to.
version 

Definition at line 501 of file AbstractCardiacTissue.hpp.

Referenced by AbstractCardiacTissue< SPACE_DIM >::save().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetCacheReplication ( bool  doCacheReplication  )  [inline]

Set whether or not to replicate the caches across all processors.

See also mDoCacheReplication.

Parameters:
doCacheReplication - true if the cache needs to be replicated

Definition at line 323 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().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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.

Parameters:
pModifier Pointer to the concrete modifier class

Definition at line 663 of file AbstractCardiacTissue.cpp.

References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpConductivityModifier.

Referenced by CardiacElectroMechanicsProblem< DIM >::Initialise().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetUpHaloCells ( AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM > *  pCellFactory  )  [inline, protected]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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.

Parameters:
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 455 of file AbstractCardiacTissue.cpp.

References DistributedVector::Begin(), GenericEventHandler< 16, HeartEventHandler >::BeginEvent(), DistributedVectorFactory::CreateDistributedVector(), DistributedVector::End(), GenericEventHandler< 16, HeartEventHandler >::EndEvent(), DistributedVectorFactory::GetLow(), PetscTools::GetMyRank(), AbstractUntemplatedParameterisedSystem::GetNumberOfStateVariables(), PetscTools::GetNumProcs(), 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 >::mNodesToReceivePerProcess, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mNodesToSendPerProcess, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::ReplicateCaches(), PetscTools::ReplicateException(), DistributedVector::Restore(), AbstractParameterisedSystem< VECTOR >::rGetStateVariables(), AbstractParameterisedSystem< VECTOR >::SetStateVariables(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::UpdateCaches().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::UpdateCaches ( unsigned  globalIndex,
unsigned  localIndex,
double  nextTime 
) [inline]

Update the Iionic and intracellular stimulus caches.

Parameters:
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

Todo:
#1898

Definition at line 618 of file AbstractCardiacTissue.cpp.

References AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mCellsDistributed, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHasPurkinje, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIionicCacheReplicated, AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIntracellularStimulusCacheReplicated, and NEVER_REACHED.

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


Friends And Related Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
friend class boost::serialization::access [friend]

Member Data Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::vector< AbstractCardiacCell* > AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mCellsDistributed [protected]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
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 295 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().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
bool AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mExchangeHalos [protected]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::string AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mFibreFilePathNoExtension [protected]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::vector< AbstractCardiacCell* > AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHaloCellsDistributed [protected]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::map<unsigned, unsigned> AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHaloGlobalToLocalIndexMap [protected]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::vector<unsigned> AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHaloNodes [protected]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
bool AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mHasPurkinje [protected]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
ReplicatableVector AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIionicCacheReplicated [protected]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
ReplicatableVector AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mIntracellularStimulusCacheReplicated [protected]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
bool AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mMeshUnarchived [protected]

Whether the mesh was unarchived or got from elsewhere.

Definition at line 300 of file AbstractCardiacTissue.hpp.

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

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::vector<std::vector<unsigned> > AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mNodesToReceivePerProcess [protected]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
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 322 of file AbstractCardiacTissue.hpp.

Referenced by AbstractCardiacTissue< SPACE_DIM >::load(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetUpHaloCells(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SolveCellSystems().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
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 281 of file AbstractCardiacTissue.hpp.

Referenced by AbstractCardiacTissue< SPACE_DIM >::load(), AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::rGetIntracellularConductivityTensor(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SetConductivityModifier().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
HeartConfig* AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpConfig [protected]

Local pointer to the HeartConfig singleton instance, for convenience.

Definition at line 259 of file AbstractCardiacTissue.hpp.

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

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
DistributedVectorFactory* AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory [protected]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
AbstractConductivityTensors<ELEMENT_DIM,SPACE_DIM>* AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpIntracellularConductivityTensors [protected]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
AbstractTetrahedralMesh<ELEMENT_DIM,SPACE_DIM>* AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mpMesh [protected]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::vector< AbstractCardiacCell* > AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeCellsDistributed [protected]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
ReplicatableVector AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::mPurkinjeIionicCacheReplicated [protected]

The documentation for this class was generated from the following files:
Generated on Thu Dec 22 13:00:44 2011 for Chaste by  doxygen 1.6.3