CEPS  24.01
Cardiac ElectroPhysiology Simulator
AbstractPdeSolver Class Referenceabstract

Detailed Description

Base class for PDE solving.

Definition at line 44 of file AbstractPdeSolver.hpp.

#include <AbstractPdeSolver.hpp>

Inheritance diagram for AbstractPdeSolver:
[legend]

Public Member Functions

 AbstractPdeSolver ()=delete
 Deleted default constructor. More...
 
 AbstractPdeSolver (AbstractPdeProblem *pb)
 Constructor with problem. More...
 
 AbstractPdeSolver (const AbstractPdeSolver &that)=delete
 No copy. More...
 
AbstractPdeSolveroperator= (const AbstractPdeSolver &that)=delete
 No assignment. More...
 
 ~AbstractPdeSolver () override
 Destructor. More...
 
virtual void setupWithParameters (InputParameters *params)
 Set attributes from input file. Parameters are passed as arguments in case one wants to use other parameters. More...
 
virtual void solve ()=0
 Main method of the solver class that computes a solution vector. More...
 
void disableOutput ()
 Stops output. More...
 
void enableOutput ()
 Starts output. More...
 
virtual CepsUInt getExpectedNumberOfOutputs () const =0
 Gives the number of outputs. More...
 
TimeWritergetTimeWriter () const
 Access to Time Writer to be able to add data. More...
 
void disableErrorComputation ()
 Sets the comparison with analytic solution. 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...
 

Protected Member Functions

virtual void updateAssemblers ()=0
 Update assemblers and recompute everything is needed. More...
 
virtual void assembleAndSolve ()=0
 Main routine used during solving, perform one single step on time problem or solve directly in static ones. This function is defined in child classes. More...
 
virtual void initializeWriter ()
 Creates the solution writer. More...
 
virtual void initializeAssemblers ()=0
 Creates the right type of assemblers for LHS and BCs. Needs to be overriden. More...
 

Protected Attributes

AbstractPdeProblemm_problem
 Link to PDE to solve. More...
 
AbstractDiscretizationm_discretization
 Link to PDE discretization. More...
 
LinearSystemm_linearSystem
 Linear system. More...
 
DMatPtr m_lhs
 Left hand side of the system. More...
 
DVecPtr m_rhs
 Right hand side of the system. More...
 
AbstractAssemblerm_opAsb
 Assembler for the operator matrix. More...
 
DMatPtr m_opMat
 Matrix of operator. More...
 
AbstractAssemblerm_bcAsb
 Assembler for Robin and Neumann BCs. More...
 
DMatPtr m_bcMat
 Matrix of boundary conditions. More...
 
DVecPtr m_bcVec
 Vector of boundary conditions. More...
 
AbstractAssemblerm_lapSrcAsb
 Assembler for laplace source terms. More...
 
DMatPtr m_lapSrcMat
 Matrix used for laplace source terms. More...
 
CepsBool m_hasRegSrc
 Flag telling if there are regular source terms. More...
 
CepsBool m_hasLapSrc
 Flag telling if there are Delta f source terms. More...
 
CepsBool m_useMassLumping
 Put the mass on the diagonal of the matrix. More...
 
CepsBool m_doOutput
 Enables/disables outputs. More...
 
VtkWriterm_writer
 Manages output. More...
 
TimeWriterm_timeWriter
 Writer for time dependant data (even for static problems...) More...
 
CepsBool m_doError
 Compute error wrt analytic solution or reference. More...
 
PdeErrorCalculatorm_errors
 Error computation. More...
 

Additional Inherited Members

- Static Protected Attributes inherited from CepsObject
static Profiler m_profiler
 The same profiler for each big object. More...
 

Constructor & Destructor Documentation

◆ AbstractPdeSolver() [1/3]

AbstractPdeSolver::AbstractPdeSolver ( )
delete

Deleted default constructor.

◆ AbstractPdeSolver() [2/3]

AbstractPdeSolver::AbstractPdeSolver ( AbstractPdeProblem pb)

Constructor with problem.

Definition at line 34 of file AbstractPdeSolver.cpp.

◆ AbstractPdeSolver() [3/3]

AbstractPdeSolver::AbstractPdeSolver ( const AbstractPdeSolver that)
delete

No copy.

◆ ~AbstractPdeSolver()

AbstractPdeSolver::~AbstractPdeSolver ( )
override

Destructor.

Definition at line 83 of file AbstractPdeSolver.cpp.

Member Function Documentation

◆ assembleAndSolve()

virtual void AbstractPdeSolver::assembleAndSolve ( )
protectedpure virtual

Main routine used during solving, perform one single step on time problem or solve directly in static ones. This function is defined in child classes.

Implemented in FETimedSolver, FEStaticSolver, CardiacSolver, PacemakerPoissonSolver, and PacemakerBidomainSolver.

◆ disableErrorComputation()

void AbstractPdeSolver::disableErrorComputation ( )

Sets the comparison with analytic solution.

Definition at line 118 of file AbstractPdeSolver.cpp.

◆ disableOutput()

void AbstractPdeSolver::disableOutput ( )

Stops output.

Definition at line 98 of file AbstractPdeSolver.cpp.

◆ enableOutput()

void AbstractPdeSolver::enableOutput ( )

Starts output.

Definition at line 104 of file AbstractPdeSolver.cpp.

◆ getExpectedNumberOfOutputs()

virtual CepsUInt AbstractPdeSolver::getExpectedNumberOfOutputs ( ) const
pure virtual

Gives the number of outputs.

Implemented in AbstractTimedPdeSolver, and AbstractStaticPdeSolver.

◆ getTimeWriter()

TimeWriter * AbstractPdeSolver::getTimeWriter ( ) const

Access to Time Writer to be able to add data.

Definition at line 110 of file AbstractPdeSolver.cpp.

◆ initializeAssemblers()

virtual void AbstractPdeSolver::initializeAssemblers ( )
protectedpure virtual

◆ initializeWriter()

void AbstractPdeSolver::initializeWriter ( )
protectedvirtual

Creates the solution writer.

Definition at line 134 of file AbstractPdeSolver.cpp.

◆ operator=()

AbstractPdeSolver& AbstractPdeSolver::operator= ( const AbstractPdeSolver that)
delete

No assignment.

◆ setupWithParameters()

void AbstractPdeSolver::setupWithParameters ( InputParameters params)
virtual

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

Reimplemented in AbstractTimedPdeSolver, FluxAnodeCathodeSolver, AbstractStaticPdeSolver, and ExtendedBidomainSolver.

Definition at line 127 of file AbstractPdeSolver.cpp.

◆ solve()

virtual void AbstractPdeSolver::solve ( )
pure virtual

Main method of the solver class that computes a solution vector.

Must be reimplemented in child class.

Implemented in AbstractTimedPdeSolver, FluxAnodeCathodeSolver, AbstractStaticPdeSolver, and CardiacSolver.

◆ updateAssemblers()

virtual void AbstractPdeSolver::updateAssemblers ( )
protectedpure virtual

Update assemblers and recompute everything is needed.

Implemented in AbstractTimedPdeSolver, and AbstractStaticPdeSolver.

Field Documentation

◆ m_bcAsb

AbstractAssembler* AbstractPdeSolver::m_bcAsb
protected

Assembler for Robin and Neumann BCs.

Definition at line 144 of file AbstractPdeSolver.hpp.

◆ m_bcMat

DMatPtr AbstractPdeSolver::m_bcMat
protected

Matrix of boundary conditions.

Definition at line 145 of file AbstractPdeSolver.hpp.

◆ m_bcVec

DVecPtr AbstractPdeSolver::m_bcVec
protected

Vector of boundary conditions.

Definition at line 146 of file AbstractPdeSolver.hpp.

◆ m_discretization

AbstractDiscretization* AbstractPdeSolver::m_discretization
protected

Link to PDE discretization.

Definition at line 132 of file AbstractPdeSolver.hpp.

◆ m_doError

CepsBool AbstractPdeSolver::m_doError
protected

Compute error wrt analytic solution or reference.

Definition at line 168 of file AbstractPdeSolver.hpp.

◆ m_doOutput

CepsBool AbstractPdeSolver::m_doOutput
protected

Enables/disables outputs.

Definition at line 159 of file AbstractPdeSolver.hpp.

◆ m_errors

PdeErrorCalculator* AbstractPdeSolver::m_errors
protected

Error computation.

Definition at line 169 of file AbstractPdeSolver.hpp.

◆ m_hasLapSrc

CepsBool AbstractPdeSolver::m_hasLapSrc
protected

Flag telling if there are Delta f source terms.

Definition at line 152 of file AbstractPdeSolver.hpp.

◆ m_hasRegSrc

CepsBool AbstractPdeSolver::m_hasRegSrc
protected

Flag telling if there are regular source terms.

Definition at line 151 of file AbstractPdeSolver.hpp.

◆ m_lapSrcAsb

AbstractAssembler* AbstractPdeSolver::m_lapSrcAsb
protected

Assembler for laplace source terms.

Definition at line 148 of file AbstractPdeSolver.hpp.

◆ m_lapSrcMat

DMatPtr AbstractPdeSolver::m_lapSrcMat
protected

Matrix used for laplace source terms.

Definition at line 149 of file AbstractPdeSolver.hpp.

◆ m_lhs

DMatPtr AbstractPdeSolver::m_lhs
protected

Left hand side of the system.

Definition at line 138 of file AbstractPdeSolver.hpp.

◆ m_linearSystem

LinearSystem* AbstractPdeSolver::m_linearSystem
protected

Linear system.

Definition at line 137 of file AbstractPdeSolver.hpp.

◆ m_opAsb

AbstractAssembler* AbstractPdeSolver::m_opAsb
protected

Assembler for the operator matrix.

Definition at line 141 of file AbstractPdeSolver.hpp.

◆ m_opMat

DMatPtr AbstractPdeSolver::m_opMat
protected

Matrix of operator.

Definition at line 142 of file AbstractPdeSolver.hpp.

◆ m_problem

AbstractPdeProblem* AbstractPdeSolver::m_problem
protected

Link to PDE to solve.

Definition at line 131 of file AbstractPdeSolver.hpp.

◆ m_rhs

DVecPtr AbstractPdeSolver::m_rhs
protected

Right hand side of the system.

Definition at line 139 of file AbstractPdeSolver.hpp.

◆ m_timeWriter

TimeWriter* AbstractPdeSolver::m_timeWriter
protected

Writer for time dependant data (even for static problems...)

Definition at line 163 of file AbstractPdeSolver.hpp.

◆ m_useMassLumping

CepsBool AbstractPdeSolver::m_useMassLumping
protected

Put the mass on the diagonal of the matrix.

Definition at line 154 of file AbstractPdeSolver.hpp.

◆ m_writer

VtkWriter* AbstractPdeSolver::m_writer
protected

Manages output.

Definition at line 161 of file AbstractPdeSolver.hpp.


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