ExtendedBidomainProblem< DIM > Class Template Reference

#include <ExtendedBidomainProblem.hpp>

Inherits AbstractCardiacProblem< DIM, DIM, 3 >.

Collaboration diagram for ExtendedBidomainProblem< DIM >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ExtendedBidomainProblem (AbstractCardiacCellFactory< DIM > *pCellFactory, AbstractCardiacCellFactory< DIM > *pSecondCellFactory, bool hasBath=false)
 ExtendedBidomainProblem ()
 ~ExtendedBidomainProblem ()
void SetFixedExtracellularPotentialNodes (std::vector< unsigned > nodes)
void SetIntracellularConductivitiesForSecondCell (c_vector< double, DIM > conductivities)
void SetExtendedBidomainParameters (double Am1, double Am2, double AmGap, double Cm1, double Cm2, double Ggap)
void SetGgapHeterogeneities (std::vector< boost::shared_ptr< AbstractChasteRegion< DIM > > > &rGgapHeterogeneityRegions, std::vector< double > &rGgapValues)
void SetExtracellularStimulusFactory (AbstractStimulusFactory< DIM > *pFactory)
void SetNodeForAverageOfPhiZeroed (unsigned node)
ExtendedBidomainTissue< DIM > * GetExtendedBidomainTissue ()
void WriteInfo (double time)
virtual void DefineWriterColumns (bool extending)
virtual void WriteOneStep (double time, Vec voltageVec)
void PreSolveChecks ()
bool GetHasBath ()
void SetHasBath (bool hasBath)

Protected Member Functions

Vec CreateInitialCondition ()
void AnalyseMeshForBath ()
void ProcessExtracellularStimulus ()
virtual AbstractCardiacTissue
< DIM > * 
CreateCardiacTissue ()
virtual
AbstractDynamicLinearPdeSolver
< DIM, DIM, 3 > * 
CreateSolver ()

Protected Attributes

AbstractCardiacCellFactory
< DIM, DIM > * 
mpSecondCellFactory
ExtendedBidomainTissue< DIM > * mpExtendedBidomainTissue
std::vector< unsignedmFixedExtracellularPotentialNodes
c_vector< double, DIM > mIntracellularConductivitiesSecondCell
unsigned mVoltageColumnId_Vm1
unsigned mVoltageColumnId_Vm2
unsigned mVoltageColumnId_Phie
std::vector< signed int > mVariablesIDs
bool mUserSpecifiedSecondCellConductivities
bool mUserHasSetBidomainValuesExplicitly
double mAmFirstCell
double mAmSecondCell
double mAmGap
double mCmFirstCell
double mCmSecondCell
double mGGap
std::vector< boost::shared_ptr
< AbstractChasteRegion< DIM > > > 
mGgapHeterogeneityRegions
std::vector< doublemGgapHeterogenousValues
AbstractStimulusFactory< DIM > * mpExtracellularStimulusFactory
int mRowForAverageOfPhiZeroed
unsigned mApplyAveragePhieZeroConstraintAfterSolving
bool mUserSuppliedExtracellularStimulus
bool mHasBath
AbstractExtendedBidomainSolver
< DIM, DIM > * 
mpSolver

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)

Friends

class boost::serialization::access
class TestArchivingExtendedBidomain

Detailed Description

template<unsigned DIM>
class ExtendedBidomainProblem< DIM >

Class which specifies and solves an extended bidomain problem.

See Buist ML, Poh YC. An Extended Bidomain Framework Incorporating Multiple Cell Types. Biophysical Journal, Volume 99, Issue 1, 13-18, 7 July 2010.

Briefly, the problems consits of 3 equations, 2 parabolic and one elliptic. The space is divided in 3 compartments:

The three unkowns are the the intracellular potential of the two cells and the extracellular potential. This class allows the user to specify the parameters specific for the these simulations and also different intracellular conductivities for the two cells.

The solution vector used for calculations is arranged as a striped vector with this order:

However, the OUTPUT is rearranged as follows. The rearrangament occurs AFTER the solution is calculated:

Unlike a bidomain problem, a node-wise extracellular stimulus can be set up in extended bidomain problems in absence of a bath. This is done by setting a stimulus factory via the method SetExtracellularStimulusFactory. See documentation of AbstractStimulusFactory and ElectrodesStimulusFactory for more details. Note that compatibility conditions will be taken care of by this class by calling specific methods within the stimulus factory class.

Definition at line 84 of file ExtendedBidomainProblem.hpp.


Constructor & Destructor Documentation

template<unsigned DIM>
ExtendedBidomainProblem< DIM >::ExtendedBidomainProblem ( AbstractCardiacCellFactory< DIM > *  pCellFactory,
AbstractCardiacCellFactory< DIM > *  pSecondCellFactory,
bool  hasBath = false 
) [inline]

Constructor

Parameters:
pCellFactory User defined cell factory which shows how the pde should create cells.
pSecondCellFactory User defined cell factory which shows how the pde should create cells.
hasBath Whether the simulation has a bath (if this is true, all elements with attribute = 1 will be set to be bath elements (the rest should have attribute = 0)).

Definition at line 41 of file ExtendedBidomainProblem.cpp.

References ExtendedBidomainProblem< DIM >::mFixedExtracellularPotentialNodes.

template<unsigned DIM>
ExtendedBidomainProblem< DIM >::ExtendedBidomainProblem (  )  [inline]

Archiving constructor

Definition at line 58 of file ExtendedBidomainProblem.cpp.

References ExtendedBidomainProblem< DIM >::mFixedExtracellularPotentialNodes.

template<unsigned DIM>
ExtendedBidomainProblem< DIM >::~ExtendedBidomainProblem (  )  [inline]

Member Function Documentation

template<unsigned DIM>
void ExtendedBidomainProblem< DIM >::AnalyseMeshForBath (  )  [protected]

Annotate bath nodes with the correct region code, if a bath is present. Will throw if mHasBath is set but no bath is present in the mesh.

template<unsigned DIM>
AbstractCardiacTissue< DIM > * ExtendedBidomainProblem< DIM >::CreateCardiacTissue (  )  [inline, protected, virtual]

Create our bidomain PDE object

Implements AbstractCardiacProblem< DIM, DIM, 3 >.

Definition at line 137 of file ExtendedBidomainProblem.cpp.

References ExtendedBidomainTissue< SPACE_DIM >::CreateGGapConductivities(), ExtendedBidomainTissue< SPACE_DIM >::CreateIntracellularConductivityTensorSecondCell(), HeartConfig::GetIntracellularConductivities(), HeartConfig::Instance(), ExtendedBidomainProblem< DIM >::mAmFirstCell, ExtendedBidomainProblem< DIM >::mAmGap, ExtendedBidomainProblem< DIM >::mAmSecondCell, ExtendedBidomainProblem< DIM >::mCmFirstCell, ExtendedBidomainProblem< DIM >::mCmSecondCell, ExtendedBidomainProblem< DIM >::mGGap, ExtendedBidomainProblem< DIM >::mGgapHeterogeneityRegions, ExtendedBidomainProblem< DIM >::mGgapHeterogenousValues, ExtendedBidomainProblem< DIM >::mIntracellularConductivitiesSecondCell, AbstractCardiacProblem< DIM, DIM, 3 >::mpCellFactory, ExtendedBidomainProblem< DIM >::mpExtendedBidomainTissue, ExtendedBidomainProblem< DIM >::mpExtracellularStimulusFactory, AbstractCardiacProblem< DIM, DIM, 3 >::mpMesh, ExtendedBidomainProblem< DIM >::mpSecondCellFactory, ExtendedBidomainProblem< DIM >::mUserHasSetBidomainValuesExplicitly, ExtendedBidomainProblem< DIM >::mUserSpecifiedSecondCellConductivities, ExtendedBidomainProblem< DIM >::mUserSuppliedExtracellularStimulus, ExtendedBidomainProblem< DIM >::ProcessExtracellularStimulus(), ExtendedBidomainTissue< SPACE_DIM >::SetAmFirstCell(), ExtendedBidomainTissue< SPACE_DIM >::SetAmGap(), ExtendedBidomainTissue< SPACE_DIM >::SetAmSecondCell(), ExtendedBidomainTissue< SPACE_DIM >::SetCmFirstCell(), ExtendedBidomainTissue< SPACE_DIM >::SetCmSecondCell(), ExtendedBidomainTissue< SPACE_DIM >::SetGGap(), ExtendedBidomainTissue< SPACE_DIM >::SetGgapHeterogeneities(), ExtendedBidomainTissue< SPACE_DIM >::SetIntracellularConductivitiesSecondCell(), AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM >::SetMesh(), and ExtendedBidomainTissue< SPACE_DIM >::SetUserSuppliedExtracellularStimulus().

template<unsigned DIM>
Vec ExtendedBidomainProblem< DIM >::CreateInitialCondition (  )  [inline, protected, virtual]
template<unsigned DIM>
AbstractDynamicLinearPdeSolver< DIM, DIM, 3 > * ExtendedBidomainProblem< DIM >::CreateSolver (  )  [inline, protected, virtual]
template<unsigned DIM>
void ExtendedBidomainProblem< DIM >::DefineWriterColumns ( bool  extending  )  [inline, virtual]

Define what variables are written to the primary results file. Hardcoded variable names are "V", "V_2" and "Phi_e" for the three variables. If you request any extra variable (via HeartConfig), this method will also define the extra variables by calling a method in the parent class.

Parameters:
extending whether we are extending an existing results file

Reimplemented from AbstractCardiacProblem< DIM, DIM, 3 >.

Definition at line 342 of file ExtendedBidomainProblem.cpp.

References AbstractCardiacProblem< DIM, DIM, 3 >::DefineExtraVariablesWriterColumns(), Hdf5DataWriter::DefineFixedDimension(), Hdf5DataWriter::DefineUnlimitedDimension(), Hdf5DataWriter::DefineVariable(), Hdf5DataWriter::GetVariableByName(), AbstractCardiacProblem< DIM, DIM, 3 >::mNodesToOutput, AbstractCardiacProblem< DIM, DIM, 3 >::mpMesh, AbstractCardiacProblem< DIM, DIM, 3 >::mpWriter, ExtendedBidomainProblem< DIM >::mVariablesIDs, ExtendedBidomainProblem< DIM >::mVoltageColumnId_Phie, ExtendedBidomainProblem< DIM >::mVoltageColumnId_Vm1, and ExtendedBidomainProblem< DIM >::mVoltageColumnId_Vm2.

template<unsigned DIM>
ExtendedBidomainTissue< DIM > * ExtendedBidomainProblem< DIM >::GetExtendedBidomainTissue (  )  [inline]

Access the tissue object. Can only be called after Initialise()

Definition at line 305 of file ExtendedBidomainProblem.cpp.

References ExtendedBidomainProblem< DIM >::mpExtendedBidomainTissue.

template<unsigned DIM>
bool ExtendedBidomainProblem< DIM >::GetHasBath (  )  [inline, virtual]

Return whether this is a problem with bath or not

Reimplemented from AbstractCardiacProblem< DIM, DIM, 3 >.

Definition at line 433 of file ExtendedBidomainProblem.cpp.

References ExtendedBidomainProblem< DIM >::mHasBath.

template<unsigned DIM>
template<class Archive >
void ExtendedBidomainProblem< DIM >::load ( Archive &  archive,
const unsigned int  version 
) [inline, private]

Load the member variables from an archive.

Parameters:
archive 
version 

Reimplemented from AbstractCardiacProblem< DIM, DIM, 3 >.

Definition at line 191 of file ExtendedBidomainProblem.hpp.

References DistributedVector::Begin(), DistributedVector::End(), ArchiveLocationInfo::GetArchiveDirectory(), ArchiveLocationInfo::GetArchiveRelativePath(), Hdf5DataReader::GetVariableOverNodes(), FileFinder::IsAbsolutePath(), ExtendedBidomainProblem< DIM >::mAmFirstCell, ExtendedBidomainProblem< DIM >::mAmGap, ExtendedBidomainProblem< DIM >::mAmSecondCell, ExtendedBidomainProblem< DIM >::mApplyAveragePhieZeroConstraintAfterSolving, ExtendedBidomainProblem< DIM >::mCmFirstCell, ExtendedBidomainProblem< DIM >::mCmSecondCell, ExtendedBidomainProblem< DIM >::mFixedExtracellularPotentialNodes, ExtendedBidomainProblem< DIM >::mGGap, ExtendedBidomainProblem< DIM >::mGgapHeterogeneityRegions, ExtendedBidomainProblem< DIM >::mGgapHeterogenousValues, ExtendedBidomainProblem< DIM >::mHasBath, ExtendedBidomainProblem< DIM >::mIntracellularConductivitiesSecondCell, ExtendedBidomainProblem< DIM >::mpExtendedBidomainTissue, AbstractCardiacProblem< DIM, DIM, 3 >::mpMesh, ExtendedBidomainProblem< DIM >::mRowForAverageOfPhiZeroed, AbstractCardiacProblem< DIM, DIM, 3 >::mSolution, ExtendedBidomainProblem< DIM >::mUserHasSetBidomainValuesExplicitly, ExtendedBidomainProblem< DIM >::mUserSpecifiedSecondCellConductivities, ExtendedBidomainProblem< DIM >::mUserSuppliedExtracellularStimulus, ExtendedBidomainProblem< DIM >::mVariablesIDs, and DistributedVector::Restore().

template<unsigned DIM>
void ExtendedBidomainProblem< DIM >::PreSolveChecks (  )  [inline, virtual]

Performs a series of checks before solving. Checks that a suitable method of resolving the singularity is being used.

Reimplemented from AbstractCardiacProblem< DIM, DIM, 3 >.

Definition at line 413 of file ExtendedBidomainProblem.cpp.

References EXCEPTION, HeartConfig::GetUseRelativeTolerance(), HeartConfig::Instance(), ExtendedBidomainProblem< DIM >::mFixedExtracellularPotentialNodes, and ExtendedBidomainProblem< DIM >::mRowForAverageOfPhiZeroed.

template<unsigned DIM>
void ExtendedBidomainProblem< DIM >::ProcessExtracellularStimulus (  )  [inline, protected]

Small helper tidy-up method that incorporates everything related to the initialisation of the extracellular stimulus.

It checks whether there is any extracellular stimulus, If not, it creates a one (with default implementation to zero stimulus). In any case, it passes the mesh into the stimulus, calls the SetCompatibleExtracellularStimulus method and also checks if there are any grounded nodes. If so, it calls SetFixedExtracellularPotentialNodes.

Definition at line 101 of file ExtendedBidomainProblem.cpp.

References PetscTools::Barrier(), AbstractStimulusFactory< ELEMENT_DIM, SPACE_DIM >::GetRegionsToBeGrounded(), ExtendedBidomainProblem< DIM >::mpExtracellularStimulusFactory, AbstractCardiacProblem< DIM, DIM, 3 >::mpMesh, ExtendedBidomainProblem< DIM >::mUserSuppliedExtracellularStimulus, AbstractStimulusFactory< ELEMENT_DIM, SPACE_DIM >::SetCompatibleExtracellularStimulus(), ExtendedBidomainProblem< DIM >::SetFixedExtracellularPotentialNodes(), and AbstractStimulusFactory< ELEMENT_DIM, SPACE_DIM >::SetMesh().

Referenced by ExtendedBidomainProblem< DIM >::CreateCardiacTissue().

template<unsigned DIM>
template<class Archive >
void ExtendedBidomainProblem< DIM >::save ( Archive &  archive,
const unsigned int  version 
) const [inline, private]

Save the member variables to an archive.

Parameters:
archive 
version 

Todo:
#1369

Reimplemented from AbstractCardiacProblem< DIM, DIM, 3 >.

Definition at line 98 of file ExtendedBidomainProblem.hpp.

References DistributedVector::Begin(), DistributedVector::End(), ArchiveLocationInfo::GetArchiveDirectory(), ArchiveLocationInfo::GetArchiveRelativePath(), HeartConfig::Instance(), ExtendedBidomainProblem< DIM >::mAmFirstCell, ExtendedBidomainProblem< DIM >::mAmGap, ExtendedBidomainProblem< DIM >::mAmSecondCell, ExtendedBidomainProblem< DIM >::mApplyAveragePhieZeroConstraintAfterSolving, ExtendedBidomainProblem< DIM >::mCmFirstCell, ExtendedBidomainProblem< DIM >::mCmSecondCell, ExtendedBidomainProblem< DIM >::mFixedExtracellularPotentialNodes, ExtendedBidomainProblem< DIM >::mGGap, ExtendedBidomainProblem< DIM >::mGgapHeterogeneityRegions, ExtendedBidomainProblem< DIM >::mGgapHeterogenousValues, ExtendedBidomainProblem< DIM >::mHasBath, ExtendedBidomainProblem< DIM >::mIntracellularConductivitiesSecondCell, ExtendedBidomainProblem< DIM >::mpExtendedBidomainTissue, AbstractCardiacProblem< DIM, DIM, 3 >::mpMesh, ExtendedBidomainProblem< DIM >::mRowForAverageOfPhiZeroed, AbstractCardiacProblem< DIM, DIM, 3 >::mSolution, ExtendedBidomainProblem< DIM >::mUserHasSetBidomainValuesExplicitly, ExtendedBidomainProblem< DIM >::mUserSpecifiedSecondCellConductivities, ExtendedBidomainProblem< DIM >::mUserSuppliedExtracellularStimulus, ExtendedBidomainProblem< DIM >::mVariablesIDs, and DistributedVector::Restore().

template<unsigned DIM>
void ExtendedBidomainProblem< DIM >::SetExtendedBidomainParameters ( double  Am1,
double  Am2,
double  AmGap,
double  Cm1,
double  Cm2,
double  Ggap 
) [inline]

Allow the user to specify different values for the bidomain parameters in the extened bidomain framework. This method switches the mUserHasSetBidomainValuesExplicitly to true and tells the problem to overwrite the corresponding parameters in HeartConfig. It needs to be called before Initialise() to have any effect.

Parameters:
Am1 value of the surface-to-volume ratio for the first cell
Am2 value of the surface-to-volume ratio for the second cell
AmGap value of the surface-to-volume ratio for the gap junction
Cm1 value of the capacitance for the first cell
Cm2 value of the capacitance for the second cell
Ggap value, in mS of the gap junction conductance

Definition at line 193 of file ExtendedBidomainProblem.cpp.

References ExtendedBidomainProblem< DIM >::mAmFirstCell, ExtendedBidomainProblem< DIM >::mAmGap, ExtendedBidomainProblem< DIM >::mAmSecondCell, ExtendedBidomainProblem< DIM >::mCmFirstCell, ExtendedBidomainProblem< DIM >::mCmSecondCell, ExtendedBidomainProblem< DIM >::mGGap, and ExtendedBidomainProblem< DIM >::mUserHasSetBidomainValuesExplicitly.

template<unsigned DIM>
void ExtendedBidomainProblem< DIM >::SetExtracellularStimulusFactory ( AbstractStimulusFactory< DIM > *  pFactory  )  [inline]

Sets a stimulus factory as the extracellular one.

Parameters:
pFactory the factory to be set.

Definition at line 217 of file ExtendedBidomainProblem.cpp.

References ExtendedBidomainProblem< DIM >::mpExtracellularStimulusFactory, and ExtendedBidomainProblem< DIM >::mUserSuppliedExtracellularStimulus.

template<unsigned DIM>
void ExtendedBidomainProblem< DIM >::SetFixedExtracellularPotentialNodes ( std::vector< unsigned nodes  )  [inline]

Set the nodes at which phi_e (the extracellular potential) is fixed to zero. This does not necessarily have to be called. If it is not, phi_e is only defined up to a constant.

Parameters:
nodes the nodes to be fixed.
Note:
currently, the value of phi_e at the fixed nodes cannot be set to be anything other than zero.

Definition at line 278 of file ExtendedBidomainProblem.cpp.

References ExtendedBidomainProblem< DIM >::mFixedExtracellularPotentialNodes.

Referenced by ExtendedBidomainProblem< DIM >::ProcessExtracellularStimulus().

template<unsigned DIM>
void ExtendedBidomainProblem< DIM >::SetGgapHeterogeneities ( std::vector< boost::shared_ptr< AbstractChasteRegion< DIM > > > &  rGgapHeterogeneityRegions,
std::vector< double > &  rGgapValues 
) [inline]

Set the values of mCellHeterogeneityRegions and mGgapValues for the heterogeneities of Ggap. It just sets the member variables here that will later be passed on to the tissue object. It also checks that the two have the same size. Throws otherwise.

Parameters:
rGgapHeterogeneityRegions a vector of heterogeneity regions for gap junctions
rGgapValues a vector (of the same size as rGgapHeterogeneityRegions) with the respective values of Ggap for every region.

Definition at line 206 of file ExtendedBidomainProblem.cpp.

References EXCEPTION, ExtendedBidomainProblem< DIM >::mGgapHeterogeneityRegions, and ExtendedBidomainProblem< DIM >::mGgapHeterogenousValues.

template<unsigned DIM>
void ExtendedBidomainProblem< DIM >::SetHasBath ( bool  hasBath  )  [inline]

Set whether there is a bath or not. Useful for covering exceptions only (for example if bath problems are not supported and there is no method to analyse the mesh for a bath).

Parameters:
hasBath whether we want the problem to have bath or not.

Definition at line 440 of file ExtendedBidomainProblem.cpp.

References ExtendedBidomainProblem< DIM >::mHasBath.

template<unsigned DIM>
void ExtendedBidomainProblem< DIM >::SetIntracellularConductivitiesForSecondCell ( c_vector< double, DIM >  conductivities  )  [inline]

Allow the user to specify different values for the conductivities of the second cell type

Parameters:
conductivities : the intracellular conductivities of the second cell that you wish to set

Definition at line 268 of file ExtendedBidomainProblem.cpp.

References ExtendedBidomainProblem< DIM >::mIntracellularConductivitiesSecondCell, and ExtendedBidomainProblem< DIM >::mUserSpecifiedSecondCellConductivities.

template<unsigned DIM>
void ExtendedBidomainProblem< DIM >::SetNodeForAverageOfPhiZeroed ( unsigned  node  )  [inline]

Set which row of the linear system should be used to enforce the condition that the average of phi_e is zero. If not called, this condition will not be used.

Parameters:
node the mesh node index giving the row at which to impose the constraint

Definition at line 291 of file ExtendedBidomainProblem.cpp.

References ExtendedBidomainProblem< DIM >::mRowForAverageOfPhiZeroed.

template<unsigned DIM>
void ExtendedBidomainProblem< DIM >::WriteInfo ( double  time  )  [inline, virtual]

Print out time and max/min of the intracellular potential of the two cells and phi_e values at current time.

Parameters:
time current time.

Implements AbstractCardiacProblem< DIM, DIM, 3 >.

Definition at line 312 of file ExtendedBidomainProblem.cpp.

References PetscTools::AmMaster(), and AbstractCardiacProblem< DIM, DIM, 3 >::mSolution.

template<unsigned DIM>
void ExtendedBidomainProblem< DIM >::WriteOneStep ( double  time,
Vec  voltageVec 
) [inline, virtual]

Write one timestep of output data to the primary results file. The solution of the problem is in term of Phi_i_1, Phi_i_2 and Phi_e (i.e., intracellular potential of the two cells plus extracellular potential). This method works out the transmembrane potential of the two cells (V and V_2) calculated as V = Phi_i_1 - Phi_e and V_2 = Phi_i_2-Phi_e. It then writes to file V, V_2 and Phi_e.

It also writes any extra variable (defined by HeartConfig). Note that it does the job by calling the method in the parent class. This implies that the extra variable must be in the first cell (not the second) because the generic method to write extra variables only looks into the first cell factory. TODO: write a specific method for extended problems that looks in both cell factories

Parameters:
time the current time
voltageVec the solution vector to write

Implements AbstractCardiacProblem< DIM, DIM, 3 >.

Definition at line 377 of file ExtendedBidomainProblem.cpp.

References DistributedVector::Begin(), DistributedVector::End(), AbstractCardiacProblem< DIM, DIM, 3 >::mpMesh, AbstractCardiacProblem< DIM, DIM, 3 >::mpWriter, ExtendedBidomainProblem< DIM >::mVariablesIDs, Hdf5DataWriter::PutStripedVector(), Hdf5DataWriter::PutUnlimitedVariable(), DistributedVector::Restore(), and AbstractCardiacProblem< DIM, DIM, 3 >::WriteExtraVariablesOneStep().


Friends And Related Function Documentation

template<unsigned DIM>
friend class boost::serialization::access [friend]

Needed for serialization.

Reimplemented from AbstractCardiacProblem< DIM, DIM, 3 >.

Definition at line 87 of file ExtendedBidomainProblem.hpp.


Member Data Documentation

template<unsigned DIM>
double ExtendedBidomainProblem< DIM >::mAmFirstCell [protected]
template<unsigned DIM>
double ExtendedBidomainProblem< DIM >::mAmGap [protected]
template<unsigned DIM>
double ExtendedBidomainProblem< DIM >::mAmSecondCell [protected]

An alternative method for constraining the solution and resolving singularity. Singular system is solved and THEN the constraint is applied on the phi_e (after calculating.

This variable is checked within the specialization of "OnEndOfTimestep" method. False by default as initialised in the constructor.

Definition at line 339 of file ExtendedBidomainProblem.hpp.

Referenced by ExtendedBidomainProblem< DIM >::load(), and ExtendedBidomainProblem< DIM >::save().

template<unsigned DIM>
double ExtendedBidomainProblem< DIM >::mCmFirstCell [protected]
template<unsigned DIM>
double ExtendedBidomainProblem< DIM >::mCmSecondCell [protected]
template<unsigned DIM>
std::vector<unsigned> ExtendedBidomainProblem< DIM >::mFixedExtracellularPotentialNodes [protected]
template<unsigned DIM>
double ExtendedBidomainProblem< DIM >::mGGap [protected]

Conductance, in mS of the gap junction conductance, set by the user and, if so, set into the PDE (otherwise its default value is 0

Definition at line 310 of file ExtendedBidomainProblem.hpp.

Referenced by ExtendedBidomainProblem< DIM >::CreateCardiacTissue(), ExtendedBidomainProblem< DIM >::load(), ExtendedBidomainProblem< DIM >::save(), and ExtendedBidomainProblem< DIM >::SetExtendedBidomainParameters().

template<unsigned DIM>
std::vector<boost::shared_ptr<AbstractChasteRegion<DIM> > > ExtendedBidomainProblem< DIM >::mGgapHeterogeneityRegions [protected]

Vector of Ggap heterogeneity regions. Set by the user, it is passed on to the tissue object. If empty (i.e., the user did not specify any heterogeneities) then the empty vector will still be passed to the tissue object, which, seeing the empty vector, will apply mGgap everywhere

Definition at line 317 of file ExtendedBidomainProblem.hpp.

Referenced by ExtendedBidomainProblem< DIM >::CreateCardiacTissue(), ExtendedBidomainProblem< DIM >::load(), ExtendedBidomainProblem< DIM >::save(), and ExtendedBidomainProblem< DIM >::SetGgapHeterogeneities().

template<unsigned DIM>
std::vector<double> ExtendedBidomainProblem< DIM >::mGgapHeterogenousValues [protected]

Corresponding vector of values of Ggap for every heterogeneous region in mGgapHeterogeneityRegions

Definition at line 320 of file ExtendedBidomainProblem.hpp.

Referenced by ExtendedBidomainProblem< DIM >::CreateCardiacTissue(), ExtendedBidomainProblem< DIM >::load(), ExtendedBidomainProblem< DIM >::save(), and ExtendedBidomainProblem< DIM >::SetGgapHeterogeneities().

template<unsigned DIM>
bool ExtendedBidomainProblem< DIM >::mHasBath [protected]
template<unsigned DIM>
c_vector<double, DIM> ExtendedBidomainProblem< DIM >::mIntracellularConductivitiesSecondCell [protected]
template<unsigned DIM>
ExtendedBidomainTissue<DIM>* ExtendedBidomainProblem< DIM >::mpExtendedBidomainTissue [protected]
template<unsigned DIM>
AbstractStimulusFactory<DIM>* ExtendedBidomainProblem< DIM >::mpExtracellularStimulusFactory [protected]
template<unsigned DIM>
AbstractCardiacCellFactory<DIM,DIM>* ExtendedBidomainProblem< DIM >::mpSecondCellFactory [protected]

The cell factory creates the cells for each node

Definition at line 273 of file ExtendedBidomainProblem.hpp.

Referenced by ExtendedBidomainProblem< DIM >::CreateCardiacTissue().

template<unsigned DIM>
AbstractExtendedBidomainSolver<DIM,DIM>* ExtendedBidomainProblem< DIM >::mpSolver [protected]

We need to save the assembler that is being used to be able to switch off the electrodes (by adding default boundary conditions to the assembler)

Reimplemented from AbstractCardiacProblem< DIM, DIM, 3 >.

Definition at line 375 of file ExtendedBidomainProblem.hpp.

Referenced by ExtendedBidomainProblem< DIM >::CreateSolver().

template<unsigned DIM>
int ExtendedBidomainProblem< DIM >::mRowForAverageOfPhiZeroed [protected]

Another method of resolving the singularity in the bidomain equations. Specifies a row of the matrix at which to impose an extra condition.

Definition at line 330 of file ExtendedBidomainProblem.hpp.

Referenced by ExtendedBidomainProblem< DIM >::CreateSolver(), ExtendedBidomainProblem< DIM >::load(), ExtendedBidomainProblem< DIM >::PreSolveChecks(), ExtendedBidomainProblem< DIM >::save(), and ExtendedBidomainProblem< DIM >::SetNodeForAverageOfPhiZeroed().

template<unsigned DIM>
bool ExtendedBidomainProblem< DIM >::mUserHasSetBidomainValuesExplicitly [protected]
template<unsigned DIM>
bool ExtendedBidomainProblem< DIM >::mUserSpecifiedSecondCellConductivities [protected]

Flag for checking that the user specified conductivities for the second cell. Get method available for this variable.

Definition at line 294 of file ExtendedBidomainProblem.hpp.

Referenced by ExtendedBidomainProblem< DIM >::CreateCardiacTissue(), ExtendedBidomainProblem< DIM >::load(), ExtendedBidomainProblem< DIM >::save(), and ExtendedBidomainProblem< DIM >::SetIntracellularConductivitiesForSecondCell().

template<unsigned DIM>
bool ExtendedBidomainProblem< DIM >::mUserSuppliedExtracellularStimulus [protected]
template<unsigned DIM>
std::vector<signed int> ExtendedBidomainProblem< DIM >::mVariablesIDs [protected]
template<unsigned DIM>
unsigned ExtendedBidomainProblem< DIM >::mVoltageColumnId_Phie [protected]

Used by the writer, extracellular potential

Definition at line 289 of file ExtendedBidomainProblem.hpp.

Referenced by ExtendedBidomainProblem< DIM >::DefineWriterColumns().

template<unsigned DIM>
unsigned ExtendedBidomainProblem< DIM >::mVoltageColumnId_Vm1 [protected]

Used by the writer, transmembrane potential of the first cell

Definition at line 285 of file ExtendedBidomainProblem.hpp.

Referenced by ExtendedBidomainProblem< DIM >::DefineWriterColumns().

template<unsigned DIM>
unsigned ExtendedBidomainProblem< DIM >::mVoltageColumnId_Vm2 [protected]

Used by the writer, transmembrane potential of the second cell

Definition at line 287 of file ExtendedBidomainProblem.hpp.

Referenced by ExtendedBidomainProblem< DIM >::DefineWriterColumns().


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