CEPS  24.01
Cardiac ElectroPhysiology Simulator
AbstractTimedPdeProblem Class Reference

Detailed Description

Astract Problem which does depend on time.

Definition at line 36 of file AbstractTimedPdeProblem.hpp.

#include <AbstractTimedPdeProblem.hpp>

Inheritance diagram for AbstractTimedPdeProblem:
[legend]

Public Member Functions

 AbstractTimedPdeProblem (Geometry *geom, InputParameters *params=nullptr)
 Constructor with geometry and optional parameters. More...
 
void setupWithParameters (InputParameters *params) override
 Set attributes from input file. Parameters are passed as arguments in case one wants to use other parameters. More...
 
CepsReal getStartTime () const override
 pde start time More...
 
CepsReal getEndTime () const override
 pde end time More...
 
CepsReal getTimeStep () const
 pde time step More...
 
void setTimes (CepsReal tStart, CepsReal tEnd, CepsReal dt)
 Define the start and end times, also time step. More...
 
CepsReal getSnapshotTime () const override
 Periodicity of outputs, in time units. More...
 
void setSnapshotTime (CepsReal st)
 Periodicity of outputs, in time units. More...
 
virtual void defineInitialCondition ()
 Sets the pointer on function for initial guess. Here it is set to nullptr, so it will be 0. More...
 
virtual void getInitialCondition (DHVecPtr v) const
 Build vector from function pointed by m_initialCondition. More...
 
void initializeEquation () override
 Initializes equations (unknowns, bc, source term) and creates the spatial discretization This method should be called at the start of run() methods. More...
 
CepsArray2< CepsArray3< CepsArray3< CepsReal > > > getErrors () const
 Get the errors. More...
 
CepsBool canComputeErrorAtTime (CepsReal t) const
 Tells if either analytic solution or reference solution has a snapshot at time t. More...
 
- Public Member Functions inherited from AbstractPdeProblem
 AbstractPdeProblem (Geometry *geom, InputParameters *params=nullptr)
 Constructor with geometry and optional parameters. More...
 
virtual ~AbstractPdeProblem ()
 destructor More...
 
 AbstractPdeProblem (const AbstractPdeProblem &that)=delete
 No copy constructor. More...
 
AbstractPdeProblemoperator= (const AbstractPdeProblem &that)=delete
 No assignment operator. More...
 
InputParametersgetParameters () const
 Text parameters. More...
 
virtual void run ()
 Computes the solution to the problem. Default does nothing, override it ! More...
 
void setProblemName (const CepsString &name)
 Set the name of the problem. More...
 
CepsString getProblemName () const
 Get the name of the problem. More...
 
GeometrygetGeometry () const
 Link to geometry on which the pb is defined. More...
 
AbstractDiscretizationgetSpatialDiscretization () const
 Link to the spatial discretization (FE, FV, etc) More...
 
void setSpatialDiscretization (AbstractDiscretization *discr)
 Link to the spatial discretization (FE, FV, etc) More...
 
void createSpatialDiscretization ()
 Compute the discretization structure. More...
 
virtual void defineUnknowns ()=0
 Define all the unknowns of the problem here. Must be overriden, and call all necessary addUnknown, addZeroDUnknown, addUnknownInteraction. More...
 
const CepsVector< Unknown * > & getUnknowns () const
 List of unknowns of the pb. More...
 
UnknowngetUnknown (const CepsString &label) const
 Get an unknown by its name. More...
 
UnknowngetUnknown (CepsUnknownIndex uid) const
 Get an unknown by its id. More...
 
CepsVector< Unknown * > getSpatialUnknowns () const
 A vector of all unknowns of pb defined on cells or points. More...
 
CepsVector< Unknown * > getZeroDUnknowns () const
 A vector of all zeroD unknowns of the pb. More...
 
const CepsVector< UnknownInteraction * > & getUnknownsInteractions () const
 All the interactions between unknowns. More...
 
CepsBool unknownsInteract (Unknown *u1, Unknown *u2, const CepsSet< CepsAttribute > &attrs={CepsUniversal}) const
 Tells if unknowns interact on an entity with attributes. More...
 
CepsBool ignoreZeroDUnknownsForError () const
 Tells if 0D must not be taken into account in error computation. More...
 
CepsBool hasAnalyticSolution () const
 Tells if there is an analytic or reference solution. More...
 
ScalarFunctiongetAnalyticSolution () const
 Pointer on analytic or refScalarFunction solution. More...
 
virtual void defineAnalyticSolution ()
 Set directly the analytic function, default sets no solution, unless there is a collection of reference solution files, provided at init or from parameters. More...
 
void setReferenceSolution (const CepsString &baseFiles, CepsReal snapDt)
 Externally define the referece solution from files. Can be used for convergence tests. More...
 
CepsBool usesReferenceSolution () const
 Tells if analytic solution and if it is loaded from files. More...
 
CepsReal getReferenceSolutionOutputPeriod () const
 Output dt of reference. More...
 
FunctionDictionarygetFunctionDictionary () const
 Get functions manager. More...
 
void setFunctionDictionary (FunctionDictionary *)
 Set functions manager. More...
 
virtual void defineBoundaryConditions ()
 Define the boundary conditions. Should be defined in derived classes. Default is no BC. More...
 
BoundaryConditionManagergetBoundaryConditionManager () const
 Get boundary condition manager. More...
 
void setBoundaryConditionManager (BoundaryConditionManager *bcm)
 Set boundary condition manager. More...
 
virtual void defineSourceTerms ()
 Define the source terms. Should be defined in derived classes. Default is no src term. More...
 
SourceTermManagergetSourceTermManager () const
 Get boundary condition manager. More...
 
void setSourceTermManager (SourceTermManager *stm)
 Set boundary condition manager. More...
 
CepsString getOutputFileBase () const
 Output file name includes the directory. More...
 
void setOutputFileBase (CepsString fileName)
 Output file name includes the directory. More...
 
CepsOutputFormat getOutputFormat () const
 Tells if output is binary or ascii. More...
 
void setOutputFormat (CepsOutputFormat opt)
 Enable/disable binary output. More...
 
CepsBool writesGlobalIndices () const
 Tells if global indices are written on top of solution. More...
 
void writeGlobalIndices (CepsBool opt)
 Activate/deactivate global indices writing. More...
 
CepsVector< CepsReal3DgetProbePoints () const
 Returns points where single data output should be written. More...
 
- Public Member Functions inherited from CepsObject
 CepsObject ()=default
 default constructor More...
 
 CepsObject (const CepsObject &)=default
 Copy constructor. More...
 
virtual ~CepsObject ()=default
 Destructor. More...
 
CepsObjectoperator= (const CepsObject &)=default
 Assignment operator. More...
 
CepsObjecttoBaseObject ()
 Returns a pointer to CepsObject class. More...
 
const CepsObjecttoBaseObject () const
 Returns a pointer to CepsObject class, const version. More...
 
ProfilergetProfiler () const
 Access to profiler. More...
 

Static Public Attributes

static constexpr CepsBool isStatic = false
 Flag for static/timed. More...
 

Protected Attributes

CepsReal m_pdeStartTime
 Initial time. More...
 
CepsReal m_pdeEndTime
 End time. More...
 
CepsReal m_pdeTimeStep
 Time Step for the PDE. More...
 
CepsReal m_pdeSnapshotTime
 Periodicity of outputs. More...
 
ScalarFunctionm_initialCondition
 Function defining the initial condition, which is 0 if pointer is null. More...
 
CepsArray2< CepsArray3< CepsArray3< CepsReal > > > m_errors
 Will store Linf, L1 and L2 relative errors. More...
 
- Protected Attributes inherited from AbstractPdeProblem
CepsString m_name
 Name of the problem. More...
 
Geometrym_geom
 Link to geometry on which the pb is defined. More...
 
InputParametersm_parameters
 Input file data. More...
 
AbstractDiscretizationm_discr
 Discretization method (eg FE for now) More...
 
CepsBool m_ownedDiscr
 True if instance used new to create discretization. More...
 
CepsVector< Unknown * > m_unknowns
 All maths unknowns of the problem. More...
 
CepsVector< UnknownInteraction * > m_unknownsInteractions
 Describes how unknowns interact. More...
 
ScalarFunctionm_analyticSolution
 analytic or reference solution More...
 
CepsBool m_ownedRefSol
 Flag for reference ownership. More...
 
CepsString m_refSolFiles
 base name of reference solution file, if any More...
 
CepsReal m_refSolSnapDt
 reference solution output period More...
 
FunctionDictionarym_functions
 Collection of custom functions. More...
 
BoundaryConditionManagerm_boundaryConditions
 All BCs should be there. More...
 
SourceTermManagerm_sourceTerms
 All source terms. More...
 
CepsBool m_ownedFunctions
 True if instance used new to create dictionary. More...
 
CepsBool m_ownedBCs
 True if instance used new to create BC manager. More...
 
CepsBool m_ownedSrcs
 True if instance used new to create src term manager. More...
 
CepsString m_outputFileBase
 File names prefix. More...
 
CepsOutputFormat m_outputFormat
 Output format selector. More...
 
CepsBool m_writeGlobalIDs
 Writes CEPS indices as well. More...
 
CepsVector< CepsReal3Dm_probePoints
 Single point data outputs. More...
 
CepsBool m_ignoreZeroDError
 Ignore 0D unknowns when computing errors. More...
 

Additional Inherited Members

- Public Types inherited from AbstractPdeProblem
using ScalarFunction = ceps::Function< CepsReal(CepsStandardArgs)>
 Typedef for analytic solution. More...
 
- Protected Member Functions inherited from AbstractPdeProblem
void addUnknown (const CepsString &label, CepsSet< CepsAttribute > attrs={}, CepsLocationFlag flag=CepsLocationFlag::Point, const CepsString &unit="")
 Register a new unknown. More...
 
void addZeroDUnknown (CepsString label, const CepsString &unit="")
 Register a new unknown, defined outside of geometry. More...
 
void addUnknownInteraction (CepsString label1, CepsString label2, CepsSet< CepsAttribute > attrs={})
 Register interaction between unknowns. Also sets the interaction within Unknown instances label1 and label2. More...
 
- Static Protected Attributes inherited from CepsObject
static Profiler m_profiler
 The same profiler for each big object. More...
 

Constructor & Destructor Documentation

◆ AbstractTimedPdeProblem()

AbstractTimedPdeProblem::AbstractTimedPdeProblem ( Geometry geom,
InputParameters params = nullptr 
)
explicit

Constructor with geometry and optional parameters.

Parameters
geomGeometry, required, otherwise it's not a pde
paramsSimulation parameters (nullptr = defaults)

Definition at line 36 of file AbstractTimedPdeProblem.cpp.

Member Function Documentation

◆ canComputeErrorAtTime()

CepsBool AbstractTimedPdeProblem::canComputeErrorAtTime ( CepsReal  t) const

Tells if either analytic solution or reference solution has a snapshot at time t.

Definition at line 135 of file AbstractTimedPdeProblem.cpp.

◆ defineInitialCondition()

void AbstractTimedPdeProblem::defineInitialCondition ( )
virtual

Sets the pointer on function for initial guess. Here it is set to nullptr, so it will be 0.

Definition at line 108 of file AbstractTimedPdeProblem.cpp.

◆ getEndTime()

CepsReal AbstractTimedPdeProblem::getEndTime ( ) const
overridevirtual

pde end time

Reimplemented from AbstractPdeProblem.

Definition at line 66 of file AbstractTimedPdeProblem.cpp.

◆ getErrors()

CepsArray2< CepsArray3< CepsArray3< CepsReal > > > AbstractTimedPdeProblem::getErrors ( ) const

Get the errors.

Definition at line 129 of file AbstractTimedPdeProblem.cpp.

◆ getInitialCondition()

void AbstractTimedPdeProblem::getInitialCondition ( DHVecPtr  v) const
virtual

Build vector from function pointed by m_initialCondition.

Reimplemented in PacemakerPoissonProblem, PacemakerBidomainProblem, CardiacProblem, and BidomainProblem.

Definition at line 114 of file AbstractTimedPdeProblem.cpp.

◆ getSnapshotTime()

CepsReal AbstractTimedPdeProblem::getSnapshotTime ( ) const
overridevirtual

Periodicity of outputs, in time units.

Reimplemented from AbstractPdeProblem.

Definition at line 89 of file AbstractTimedPdeProblem.cpp.

◆ getStartTime()

CepsReal AbstractTimedPdeProblem::getStartTime ( ) const
overridevirtual

pde start time

Reimplemented from AbstractPdeProblem.

Definition at line 60 of file AbstractTimedPdeProblem.cpp.

◆ getTimeStep()

CepsReal AbstractTimedPdeProblem::getTimeStep ( ) const

pde time step

Definition at line 72 of file AbstractTimedPdeProblem.cpp.

◆ initializeEquation()

void AbstractTimedPdeProblem::initializeEquation ( )
overridevirtual

Initializes equations (unknowns, bc, source term) and creates the spatial discretization This method should be called at the start of run() methods.

Reimplemented from AbstractPdeProblem.

Definition at line 122 of file AbstractTimedPdeProblem.cpp.

◆ setSnapshotTime()

void AbstractTimedPdeProblem::setSnapshotTime ( CepsReal  st)

Periodicity of outputs, in time units.

Definition at line 95 of file AbstractTimedPdeProblem.cpp.

◆ setTimes()

void AbstractTimedPdeProblem::setTimes ( CepsReal  tStart,
CepsReal  tEnd,
CepsReal  dt 
)

Define the start and end times, also time step.

Definition at line 78 of file AbstractTimedPdeProblem.cpp.

◆ setupWithParameters()

void AbstractTimedPdeProblem::setupWithParameters ( InputParameters params)
overridevirtual

Set attributes from input file. Parameters are passed as arguments in case one wants to use other parameters.

Reimplemented from AbstractPdeProblem.

Reimplemented in HeatProblem.

Definition at line 51 of file AbstractTimedPdeProblem.cpp.

Field Documentation

◆ isStatic

constexpr CepsBool AbstractTimedPdeProblem::isStatic = false
staticconstexpr

Flag for static/timed.

Definition at line 104 of file AbstractTimedPdeProblem.hpp.

◆ m_errors

CepsArray2<CepsArray3<CepsArray3<CepsReal> > > AbstractTimedPdeProblem::m_errors
protected

Will store Linf, L1 and L2 relative errors.

Definition at line 118 of file AbstractTimedPdeProblem.hpp.

◆ m_initialCondition

ScalarFunction* AbstractTimedPdeProblem::m_initialCondition
protected

Function defining the initial condition, which is 0 if pointer is null.

Definition at line 115 of file AbstractTimedPdeProblem.hpp.

◆ m_pdeEndTime

CepsReal AbstractTimedPdeProblem::m_pdeEndTime
protected

End time.

Definition at line 110 of file AbstractTimedPdeProblem.hpp.

◆ m_pdeSnapshotTime

CepsReal AbstractTimedPdeProblem::m_pdeSnapshotTime
protected

Periodicity of outputs.

Definition at line 112 of file AbstractTimedPdeProblem.hpp.

◆ m_pdeStartTime

CepsReal AbstractTimedPdeProblem::m_pdeStartTime
protected

Initial time.

Definition at line 109 of file AbstractTimedPdeProblem.hpp.

◆ m_pdeTimeStep

CepsReal AbstractTimedPdeProblem::m_pdeTimeStep
protected

Time Step for the PDE.

Definition at line 111 of file AbstractTimedPdeProblem.hpp.


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