Chaste  Release::2018.1
AbstractConvergenceTester< CELL, CARDIAC_PROBLEM, DIM, PROBLEM_DIM > Class Template Referenceabstract

#include <AbstractConvergenceTester.hpp>

+ Inheritance diagram for AbstractConvergenceTester< CELL, CARDIAC_PROBLEM, DIM, PROBLEM_DIM >:
+ Collaboration diagram for AbstractConvergenceTester< CELL, CARDIAC_PROBLEM, DIM, PROBLEM_DIM >:

Public Member Functions

void Converge (std::string nameOfTest)
 
void DisplayRun ()
 
virtual void SetInitialConvergenceParameters ()=0
 
virtual void UpdateConvergenceParameters ()=0
 
virtual bool GiveUpConvergence ()=0
 
virtual double Abscissa ()=0
 
virtual void PopulateStandardResult (std::vector< double > &result, std::vector< double > &times)
 
bool IsConverged ()
 
void SetMeshWidth (double meshWidth)
 

Additional Inherited Members

- Public Attributes inherited from AbstractUntemplatedConvergenceTester
double OdeTimeStep
 
double PdeTimeStep
 
unsigned MeshNum
 
double RelativeConvergenceCriterion
 
double LastDifference
 
double Apd90FirstQn
 
double Apd90ThirdQn
 
double ConductionVelocity
 
bool PopulatedResult
 
bool FixedResult
 
double AbsoluteStimulus
 
bool SimulateFullActionPotential
 
bool Converged
 
StimulusType Stimulus
 
double NeumannStimulus
 
- Protected Attributes inherited from AbstractUntemplatedConvergenceTester
double mMeshWidth
 

Detailed Description

template<class CELL, class CARDIAC_PROBLEM, unsigned DIM, unsigned PROBLEM_DIM>
class AbstractConvergenceTester< CELL, CARDIAC_PROBLEM, DIM, PROBLEM_DIM >

AbstractConvergenceTester Run convergence for a particular cell type, mono/bidomain and dimension

Definition at line 235 of file AbstractConvergenceTester.hpp.

Member Function Documentation

template<class CELL , class CARDIAC_PROBLEM , unsigned DIM, unsigned PROBLEM_DIM>
virtual double AbstractConvergenceTester< CELL, CARDIAC_PROBLEM, DIM, PROBLEM_DIM >::Abscissa ( )
pure virtual
template<class CELL , class CARDIAC_PROBLEM , unsigned DIM, unsigned PROBLEM_DIM>
void AbstractConvergenceTester< CELL, CARDIAC_PROBLEM, DIM, PROBLEM_DIM >::Converge ( std::string  nameOfTest)
inlinevirtual

Run the same test at different levels of refinement until some convergence criterion is met.

Parameters
nameOfTestThe name of the convergence test (typically the name in the suite) for use in naming files.
Todo:
This is a scarily long method; could do with some parts extracted?
Todo:
consider reducing all stimuli to match this one.
Todo:
remove magic number? (#1884)

Implements AbstractUntemplatedConvergenceTester.

Definition at line 243 of file AbstractConvergenceTester.hpp.

References AbstractConvergenceTester< CELL, CARDIAC_PROBLEM, DIM, PROBLEM_DIM >::Abscissa(), AbstractUntemplatedConvergenceTester::AbsoluteStimulus, PetscTools::AmMaster(), AbstractUntemplatedConvergenceTester::Apd90FirstQn, AbstractUntemplatedConvergenceTester::Apd90ThirdQn, PropagationPropertiesCalculator::CalculateActionPotentialDuration(), PropagationPropertiesCalculator::CalculateConductionVelocity(), AbstractUntemplatedConvergenceTester::ConductionVelocity, CuboidMeshConstructor< ELEMENT_DIM, SPACE_DIM >::Construct(), AbstractUntemplatedConvergenceTester::Converged, AbstractConvergenceTester< CELL, CARDIAC_PROBLEM, DIM, PROBLEM_DIM >::DisplayRun(), OutputFileHandler::FindFile(), AbstractUntemplatedConvergenceTester::FixedResult, FileFinder::GetAbsolutePath(), Timer::GetElapsedTime(), Exception::GetMessage(), CuboidMeshConstructor< ELEMENT_DIM, SPACE_DIM >::GetNumElements(), Hdf5DataReader::GetUnlimitedDimensionValues(), Hdf5DataReader::GetVariableOverTime(), CuboidMeshConstructor< ELEMENT_DIM, SPACE_DIM >::GetWidth(), AbstractConvergenceTester< CELL, CARDIAC_PROBLEM, DIM, PROBLEM_DIM >::GiveUpConvergence(), HeartConfig::Instance(), AbstractUntemplatedConvergenceTester::LastDifference, AbstractUntemplatedConvergenceTester::MeshNum, AbstractUntemplatedConvergenceTester::mMeshWidth, AbstractUntemplatedConvergenceTester::NeumannStimulus, NEVER_REACHED, AbstractUntemplatedConvergenceTester::OdeTimeStep, OutputFileHandler::OpenOutputFile(), AbstractUntemplatedConvergenceTester::PdeTimeStep, AbstractUntemplatedConvergenceTester::PopulatedResult, AbstractConvergenceTester< CELL, CARDIAC_PROBLEM, DIM, PROBLEM_DIM >::PopulateStandardResult(), AbstractUntemplatedConvergenceTester::RelativeConvergenceCriterion, Timer::Reset(), AbstractConvergenceTester< CELL, CARDIAC_PROBLEM, DIM, PROBLEM_DIM >::SetInitialConvergenceParameters(), HeartConfig::SetOdePdeAndPrintingTimeSteps(), HeartConfig::SetOutputDirectory(), HeartConfig::SetOutputFilenamePrefix(), HeartConfig::SetSimulationDuration(), AbstractUntemplatedConvergenceTester::SimulateFullActionPotential, SmallPow(), AbstractUntemplatedConvergenceTester::Stimulus, and AbstractConvergenceTester< CELL, CARDIAC_PROBLEM, DIM, PROBLEM_DIM >::UpdateConvergenceParameters().

template<class CELL , class CARDIAC_PROBLEM , unsigned DIM, unsigned PROBLEM_DIM>
virtual bool AbstractConvergenceTester< CELL, CARDIAC_PROBLEM, DIM, PROBLEM_DIM >::GiveUpConvergence ( )
pure virtual
template<class CELL , class CARDIAC_PROBLEM , unsigned DIM, unsigned PROBLEM_DIM>
bool AbstractConvergenceTester< CELL, CARDIAC_PROBLEM, DIM, PROBLEM_DIM >::IsConverged ( )
inline
Returns
when the convergence criterion is met

Definition at line 702 of file AbstractConvergenceTester.hpp.

References AbstractUntemplatedConvergenceTester::Converged.

template<class CELL , class CARDIAC_PROBLEM , unsigned DIM, unsigned PROBLEM_DIM>
virtual void AbstractConvergenceTester< CELL, CARDIAC_PROBLEM, DIM, PROBLEM_DIM >::PopulateStandardResult ( std::vector< double > &  result,
std::vector< double > &  times 
)
inlinevirtual

This is currently used as stub for convergence testers which need to converge to a known standardised result (the StimulusConvergence tester in projects/jmpf).

Parameters
resulta standard vector to be sized and filled with V_m values by this method (in subclass)
timesa standard vector to be sized and filled with times values by this method (in subclass)

Definition at line 692 of file AbstractConvergenceTester.hpp.

References AbstractUntemplatedConvergenceTester::PopulatedResult.

Referenced by AbstractConvergenceTester< CELL, CARDIAC_PROBLEM, DIM, PROBLEM_DIM >::Converge().

template<class CELL , class CARDIAC_PROBLEM , unsigned DIM, unsigned PROBLEM_DIM>
virtual void AbstractConvergenceTester< CELL, CARDIAC_PROBLEM, DIM, PROBLEM_DIM >::SetInitialConvergenceParameters ( )
pure virtual
template<class CELL , class CARDIAC_PROBLEM , unsigned DIM, unsigned PROBLEM_DIM>
void AbstractConvergenceTester< CELL, CARDIAC_PROBLEM, DIM, PROBLEM_DIM >::SetMeshWidth ( double  meshWidth)
inline
Parameters
meshWidthset the dimension of the cuboid mesh (default value is 0.2cm)

Definition at line 710 of file AbstractConvergenceTester.hpp.

References AbstractUntemplatedConvergenceTester::mMeshWidth.

template<class CELL , class CARDIAC_PROBLEM , unsigned DIM, unsigned PROBLEM_DIM>
virtual void AbstractConvergenceTester< CELL, CARDIAC_PROBLEM, DIM, PROBLEM_DIM >::UpdateConvergenceParameters ( )
pure virtual

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