Chaste Commit::baa90ac2819b962188b7562f2326be23c47859a7
ExtendedBidomainProblem< DIM > Class Template Reference

#include <ExtendedBidomainProblem.hpp>

+ Inheritance diagram for ExtendedBidomainProblem< DIM >:
+ Collaboration diagram for ExtendedBidomainProblem< DIM >:

Public Member Functions

 ExtendedBidomainProblem (AbstractCardiacCellFactory< DIM > *pCellFactory, AbstractCardiacCellFactory< DIM > *pSecondCellFactory, bool hasBath=false)
 
 ExtendedBidomainProblem ()
 
virtual ~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)
 
- Public Member Functions inherited from AbstractCardiacProblem< DIM, DIM, 3 >
 AbstractCardiacProblem (AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM > *pCellFactory)
 
 AbstractCardiacProblem ()
 
virtual ~AbstractCardiacProblem ()
 
void Initialise ()
 
void SetNodesPerProcessorFilename (const std::string &rFilename)
 
void SetBoundaryConditionsContainer (BccType pBcc)
 
void SetMesh (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh)
 
void PrintOutput (bool rPrintOutput)
 
void SetWriteInfo (bool writeInfo=true)
 
Vec GetSolution ()
 
DistributedVector GetSolutionDistributedVector ()
 
double GetCurrentTime ()
 
AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > & rGetMesh ()
 
AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM > * GetTissue ()
 
void Solve ()
 
void CloseFilesAndPostProcess ()
 
void DefineExtraVariablesWriterColumns (bool extending)
 
void WriteExtraVariablesOneStep ()
 
bool InitialiseWriter ()
 
void SetUseHdf5DataWriterCache (bool useCache=true)
 
void SetHdf5DataWriterTargetChunkSizeAndAlignment (hsize_t size)
 
void SetOutputNodes (std::vector< unsigned > &rNodesToOutput)
 
Hdf5DataReader GetDataReader ()
 
virtual void AtBeginningOfTimestep (double time)
 
virtual void OnEndOfTimestep (double time)
 
virtual void SetUpAdditionalStoppingTimes (std::vector< double > &rAdditionalStoppingTimes)
 
void SetUseTimeAdaptivityController (bool useAdaptivity, AbstractTimeAdaptivityController *pController=NULL)
 
void LoadExtraArchive (Archive &archive, unsigned version)
 
virtual void SetElectrodes ()
 
void AddOutputModifier (boost::shared_ptr< AbstractOutputModifier > pOutputModifier)
 
- Public Member Functions inherited from AbstractUntemplatedCardiacProblem
virtual ~AbstractUntemplatedCardiacProblem ()
 

Protected Member Functions

Vec CreateInitialCondition ()
 
void AnalyseMeshForBath ()
 
void ProcessExtracellularStimulus ()
 
virtual AbstractCardiacTissue< DIM > * CreateCardiacTissue ()
 
virtual AbstractDynamicLinearPdeSolver< DIM, DIM, 3 > * CreateSolver ()
 
- Protected Member Functions inherited from AbstractCardiacProblem< DIM, DIM, 3 >
virtual void CreateMeshFromHeartConfig ()
 

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
 
- Protected Attributes inherited from AbstractCardiacProblem< DIM, DIM, 3 >
std::string mMeshFilename
 
bool mAllocatedMemoryForMesh
 
bool mWriteInfo
 
bool mPrintOutput
 
std::vector< unsignedmNodesToOutput
 
unsigned mVoltageColumnId
 
std::vector< unsignedmExtraVariablesId
 
unsigned mTimeColumnId
 
unsigned mNodeColumnId
 
AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM > * mpCardiacTissue
 
BccType mpBoundaryConditionsContainer
 
BccType mpDefaultBoundaryConditionsContainer
 
AbstractDynamicLinearPdeSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM > * mpSolver
 
AbstractCardiacCellFactory< ELEMENT_DIM, SPACE_DIM > * mpCellFactory
 
AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > * mpMesh
 
Vec mSolution
 
double mCurrentTime
 
AbstractTimeAdaptivityControllermpTimeAdaptivityController
 
Hdf5DataWritermpWriter
 
bool mUseHdf5DataWriterCache
 
hsize_t mHdf5DataWriterChunkSizeAndAlignment
 
std::vector< boost::shared_ptr< AbstractOutputModifier > > mOutputModifiers
 

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:

  • First cell
  • Second cell
  • Extracellular space.

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:

  • Transmembrane potential of the first cell
  • Transmembrane potential of the second cell
  • Extracellular potential

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 85 of file ExtendedBidomainProblem.hpp.

Constructor & Destructor Documentation

◆ ExtendedBidomainProblem() [1/2]

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

Constructor

Parameters
pCellFactoryUser defined cell factory which shows how the pde should create cells.
pSecondCellFactoryUser defined cell factory which shows how the pde should create cells.
hasBathWhether 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 46 of file ExtendedBidomainProblem.cpp.

References ExtendedBidomainProblem< DIM >::mFixedExtracellularPotentialNodes.

◆ ExtendedBidomainProblem() [2/2]

◆ ~ExtendedBidomainProblem()

template<unsigned DIM>
ExtendedBidomainProblem< DIM >::~ExtendedBidomainProblem ( )
virtual

Destructor

Definition at line 260 of file ExtendedBidomainProblem.cpp.

Member Function Documentation

◆ AnalyseMeshForBath()

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.

◆ CreateCardiacTissue()

template<unsigned DIM>
AbstractCardiacTissue< DIM > * ExtendedBidomainProblem< DIM >::CreateCardiacTissue ( )
protectedvirtual
Returns
a newly created bidomain PDE object

Implements AbstractCardiacProblem< DIM, DIM, 3 >.

Definition at line 141 of file ExtendedBidomainProblem.cpp.

References HeartConfig::GetIntracellularConductivities(), and HeartConfig::Instance().

◆ CreateInitialCondition()

template<unsigned DIM>
Vec ExtendedBidomainProblem< DIM >::CreateInitialCondition ( )
protectedvirtual

Create normal initial condition but overwrite V to zero for bath nodes, if there are any.

Returns
the newly created intial conditions vector

Reimplemented from AbstractCardiacProblem< DIM, DIM, 3 >.

Definition at line 78 of file ExtendedBidomainProblem.cpp.

References DistributedVector::Begin(), DistributedVectorFactory::CreateDistributedVector(), DistributedVectorFactory::CreateVec(), DistributedVector::End(), and DistributedVector::Restore().

◆ CreateSolver()

template<unsigned DIM>
AbstractDynamicLinearPdeSolver< DIM, DIM, 3 > * ExtendedBidomainProblem< DIM >::CreateSolver ( )
protectedvirtual
Returns
a newly created suitable bidomain solver

Implements AbstractCardiacProblem< DIM, DIM, 3 >.

Definition at line 228 of file ExtendedBidomainProblem.cpp.

◆ DefineWriterColumns()

template<unsigned DIM>
void ExtendedBidomainProblem< DIM >::DefineWriterColumns ( bool  extending)
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
extendingwhether we are extending an existing results file

Reimplemented from AbstractCardiacProblem< DIM, DIM, 3 >.

Definition at line 341 of file ExtendedBidomainProblem.cpp.

References AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::DefineExtraVariablesWriterColumns(), TimeStepper::EstimateTimeSteps(), and HeartConfig::Instance().

◆ GetExtendedBidomainTissue()

template<unsigned DIM>
ExtendedBidomainTissue< DIM > * ExtendedBidomainProblem< DIM >::GetExtendedBidomainTissue ( )
Returns
the tissue object. Can only be called after Initialise()

Definition at line 306 of file ExtendedBidomainProblem.cpp.

◆ GetHasBath()

template<unsigned DIM>
bool ExtendedBidomainProblem< DIM >::GetHasBath ( )
virtual
Returns
whether this is a problem with bath or not

Reimplemented from AbstractCardiacProblem< DIM, DIM, 3 >.

Definition at line 438 of file ExtendedBidomainProblem.cpp.

◆ load()

template<unsigned DIM>
template<class Archive >
void ExtendedBidomainProblem< DIM >::load ( Archive &  archive,
const unsigned int  version 
)
inlineprivate

◆ PreSolveChecks()

template<unsigned DIM>
void ExtendedBidomainProblem< DIM >::PreSolveChecks ( )
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 418 of file ExtendedBidomainProblem.cpp.

References EXCEPTION, HeartConfig::Instance(), and AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::PreSolveChecks().

◆ ProcessExtracellularStimulus()

template<unsigned DIM>
void ExtendedBidomainProblem< DIM >::ProcessExtracellularStimulus ( )
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 105 of file ExtendedBidomainProblem.cpp.

References PetscTools::Barrier().

◆ save()

template<unsigned DIM>
template<class Archive >
void ExtendedBidomainProblem< DIM >::save ( Archive &  archive,
const unsigned int  version 
) const
inlineprivate

Save the member variables to an archive.

Parameters
archive
version

Definition at line 99 of file ExtendedBidomainProblem.hpp.

References Hdf5DataWriter::DefineFixedDimension(), Hdf5DataWriter::DefineUnlimitedDimension(), Hdf5DataWriter::DefineVariable(), Hdf5DataWriter::EndDefineMode(), ArchiveLocationInfo::GetArchiveRelativePath(), 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, Hdf5DataWriter::PutStripedVector(), and Hdf5DataWriter::PutUnlimitedVariable().

◆ SetExtendedBidomainParameters()

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

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
Am1value of the surface-to-volume ratio for the first cell
Am2value of the surface-to-volume ratio for the second cell
AmGapvalue of the surface-to-volume ratio for the gap junction
Cm1value of the capacitance for the first cell
Cm2value of the capacitance for the second cell
Ggapvalue, in mS of the gap junction conductance

Definition at line 197 of file ExtendedBidomainProblem.cpp.

◆ SetExtracellularStimulusFactory()

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

Sets a stimulus factory as the extracellular one.

Parameters
pFactorythe factory to be set.

Definition at line 221 of file ExtendedBidomainProblem.cpp.

◆ SetFixedExtracellularPotentialNodes()

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

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
nodesthe nodes to be fixed.
Note
currently, the value of phi_e at the fixed nodes cannot be set to be anything other than zero.
Todo:
turn this into an exception if the user calls this twice...

Definition at line 279 of file ExtendedBidomainProblem.cpp.

◆ SetGgapHeterogeneities()

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

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
rGgapHeterogeneityRegionsa vector of heterogeneity regions for gap junctions
rGgapValuesa vector (of the same size as rGgapHeterogeneityRegions) with the respective values of Ggap for every region.

Definition at line 210 of file ExtendedBidomainProblem.cpp.

References EXCEPTION.

◆ SetHasBath()

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

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
hasBathwhether we want the problem to have bath or not.

Definition at line 444 of file ExtendedBidomainProblem.cpp.

◆ SetIntracellularConductivitiesForSecondCell()

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

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 269 of file ExtendedBidomainProblem.cpp.

◆ SetNodeForAverageOfPhiZeroed()

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

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
nodethe mesh node index giving the row at which to impose the constraint

Definition at line 292 of file ExtendedBidomainProblem.cpp.

◆ WriteInfo()

template<unsigned DIM>
void ExtendedBidomainProblem< DIM >::WriteInfo ( double  time)
virtual

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

Parameters
timecurrent time.

Implements AbstractCardiacProblem< DIM, DIM, 3 >.

Definition at line 313 of file ExtendedBidomainProblem.cpp.

References PetscTools::AmMaster(), and CHASTE_PETSC_NULLPTR.

◆ WriteOneStep()

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

Write one timestep of output data to the primary results file. The solution of the problem is in terms of V_1, V_2 and Phi_e (i.e., transmembrane potentials of the two cells plus extracellular potential). It then writes to file V_1, 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
timethe current time
voltageVecthe solution vector to write
Todo:
write a specific method for this class

Implements AbstractCardiacProblem< DIM, DIM, 3 >.

Definition at line 381 of file ExtendedBidomainProblem.cpp.

References DistributedVector::Begin(), PetscTools::Destroy(), DistributedVector::End(), DistributedVector::Restore(), and AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::WriteExtraVariablesOneStep().

Friends And Related Symbol Documentation

◆ boost::serialization::access

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

Needed for serialization.

Definition at line 88 of file ExtendedBidomainProblem.hpp.

◆ TestArchivingExtendedBidomain

template<unsigned DIM>
friend class TestArchivingExtendedBidomain
friend

Definition at line 90 of file ExtendedBidomainProblem.hpp.

Member Data Documentation

◆ mAmFirstCell

template<unsigned DIM>
double ExtendedBidomainProblem< DIM >::mAmFirstCell
protected

Am for the first cell, set by the user and, if so, set into the PDE

Definition at line 268 of file ExtendedBidomainProblem.hpp.

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

◆ mAmGap

template<unsigned DIM>
double ExtendedBidomainProblem< DIM >::mAmGap
protected

Am for the gap junctions, set by the user and, if so, set into the PDE

Definition at line 272 of file ExtendedBidomainProblem.hpp.

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

◆ mAmSecondCell

template<unsigned DIM>
double ExtendedBidomainProblem< DIM >::mAmSecondCell
protected

Am for the second cell, set by the user and, if so, set into the PDE

Definition at line 270 of file ExtendedBidomainProblem.hpp.

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

◆ mApplyAveragePhieZeroConstraintAfterSolving

template<unsigned DIM>
unsigned ExtendedBidomainProblem< DIM >::mApplyAveragePhieZeroConstraintAfterSolving
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 308 of file ExtendedBidomainProblem.hpp.

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

◆ mCmFirstCell

template<unsigned DIM>
double ExtendedBidomainProblem< DIM >::mCmFirstCell
protected

Cm for the first cell, set by the user and, if so, set into the PDE

Definition at line 274 of file ExtendedBidomainProblem.hpp.

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

◆ mCmSecondCell

template<unsigned DIM>
double ExtendedBidomainProblem< DIM >::mCmSecondCell
protected

Cm for the second cell, set by the user and, if so, set into the PDE

Definition at line 276 of file ExtendedBidomainProblem.hpp.

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

◆ mFixedExtracellularPotentialNodes

template<unsigned DIM>
std::vector<unsigned> ExtendedBidomainProblem< DIM >::mFixedExtracellularPotentialNodes
protected

◆ mGGap

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 279 of file ExtendedBidomainProblem.hpp.

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

◆ mGgapHeterogeneityRegions

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 286 of file ExtendedBidomainProblem.hpp.

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

◆ mGgapHeterogenousValues

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 289 of file ExtendedBidomainProblem.hpp.

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

◆ mHasBath

template<unsigned DIM>
bool ExtendedBidomainProblem< DIM >::mHasBath
protected

Whether the mesh has a bath, ie whether this is a bath simulation

Definition at line 314 of file ExtendedBidomainProblem.hpp.

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

◆ mIntracellularConductivitiesSecondCell

template<unsigned DIM>
c_vector<double, DIM> ExtendedBidomainProblem< DIM >::mIntracellularConductivitiesSecondCell
protected

stores the values of the conductivities for the second cell.

Definition at line 249 of file ExtendedBidomainProblem.hpp.

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

◆ mpExtendedBidomainTissue

template<unsigned DIM>
ExtendedBidomainTissue<DIM>* ExtendedBidomainProblem< DIM >::mpExtendedBidomainTissue
protected

The bidomain tissue object for the extended problem

Definition at line 243 of file ExtendedBidomainProblem.hpp.

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

◆ mpExtracellularStimulusFactory

template<unsigned DIM>
AbstractStimulusFactory<DIM>* ExtendedBidomainProblem< DIM >::mpExtracellularStimulusFactory
protected

Factory to generate the stimulus

Definition at line 293 of file ExtendedBidomainProblem.hpp.

◆ mpSecondCellFactory

template<unsigned DIM>
AbstractCardiacCellFactory<DIM,DIM>* ExtendedBidomainProblem< DIM >::mpSecondCellFactory
protected

The cell factory creates the cells for each node

Definition at line 240 of file ExtendedBidomainProblem.hpp.

◆ mpSolver

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)

Definition at line 345 of file ExtendedBidomainProblem.hpp.

◆ mRowForAverageOfPhiZeroed

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 299 of file ExtendedBidomainProblem.hpp.

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

◆ mUserHasSetBidomainValuesExplicitly

template<unsigned DIM>
bool ExtendedBidomainProblem< DIM >::mUserHasSetBidomainValuesExplicitly
protected

flag used to check whwther the user wanted specific, out-of-heartconfig values

Definition at line 265 of file ExtendedBidomainProblem.hpp.

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

◆ mUserSpecifiedSecondCellConductivities

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 262 of file ExtendedBidomainProblem.hpp.

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

◆ mUserSuppliedExtracellularStimulus

template<unsigned DIM>
bool ExtendedBidomainProblem< DIM >::mUserSuppliedExtracellularStimulus
protected

keeps track of whether the user set an extracellular stimulus. True if the user did.

Definition at line 311 of file ExtendedBidomainProblem.hpp.

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

◆ mVariablesIDs

template<unsigned DIM>
std::vector<signed int> ExtendedBidomainProblem< DIM >::mVariablesIDs
protected

Used by the writer, stores the variable output names

Definition at line 258 of file ExtendedBidomainProblem.hpp.

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

◆ mVoltageColumnId_Phie

template<unsigned DIM>
unsigned ExtendedBidomainProblem< DIM >::mVoltageColumnId_Phie
protected

Used by the writer, extracellular potential

Definition at line 256 of file ExtendedBidomainProblem.hpp.

◆ mVoltageColumnId_Vm1

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

Used by the writer, transmembrane potential of the first cell

Definition at line 252 of file ExtendedBidomainProblem.hpp.

◆ mVoltageColumnId_Vm2

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

Used by the writer, transmembrane potential of the second cell

Definition at line 254 of file ExtendedBidomainProblem.hpp.


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