CEPS
24.01
Cardiac ElectroPhysiology Simulator
|
Base class for PDE solving.
Definition at line 44 of file AbstractPdeSolver.hpp.
#include <AbstractPdeSolver.hpp>
Public Member Functions | |
AbstractPdeSolver ()=delete | |
Deleted default constructor. More... | |
AbstractPdeSolver (AbstractPdeProblem *pb) | |
Constructor with problem. More... | |
AbstractPdeSolver (const AbstractPdeSolver &that)=delete | |
No copy. More... | |
AbstractPdeSolver & | operator= (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... | |
TimeWriter * | getTimeWriter () 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... | |
CepsObject & | operator= (const CepsObject &)=default |
Assignment operator. More... | |
CepsObject * | toBaseObject () |
Returns a pointer to CepsObject class. More... | |
const CepsObject * | toBaseObject () const |
Returns a pointer to CepsObject class, const version. More... | |
Profiler * | getProfiler () 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 | |
AbstractPdeProblem * | m_problem |
Link to PDE to solve. More... | |
AbstractDiscretization * | m_discretization |
Link to PDE discretization. More... | |
LinearSystem * | m_linearSystem |
Linear system. More... | |
DMatPtr | m_lhs |
Left hand side of the system. More... | |
DVecPtr | m_rhs |
Right hand side of the system. More... | |
AbstractAssembler * | m_opAsb |
Assembler for the operator matrix. More... | |
DMatPtr | m_opMat |
Matrix of operator. More... | |
AbstractAssembler * | m_bcAsb |
Assembler for Robin and Neumann BCs. More... | |
DMatPtr | m_bcMat |
Matrix of boundary conditions. More... | |
DVecPtr | m_bcVec |
Vector of boundary conditions. More... | |
AbstractAssembler * | m_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... | |
VtkWriter * | m_writer |
Manages output. More... | |
TimeWriter * | m_timeWriter |
Writer for time dependant data (even for static problems...) More... | |
CepsBool | m_doError |
Compute error wrt analytic solution or reference. More... | |
PdeErrorCalculator * | m_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... | |
|
delete |
Deleted default constructor.
AbstractPdeSolver::AbstractPdeSolver | ( | AbstractPdeProblem * | pb | ) |
Constructor with problem.
Definition at line 34 of file AbstractPdeSolver.cpp.
|
delete |
No copy.
|
override |
Destructor.
Definition at line 83 of file AbstractPdeSolver.cpp.
|
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.
void AbstractPdeSolver::disableErrorComputation | ( | ) |
Sets the comparison with analytic solution.
Definition at line 118 of file AbstractPdeSolver.cpp.
void AbstractPdeSolver::disableOutput | ( | ) |
Stops output.
Definition at line 98 of file AbstractPdeSolver.cpp.
void AbstractPdeSolver::enableOutput | ( | ) |
Starts output.
Definition at line 104 of file AbstractPdeSolver.cpp.
|
pure virtual |
Gives the number of outputs.
Implemented in AbstractTimedPdeSolver, and AbstractStaticPdeSolver.
TimeWriter * AbstractPdeSolver::getTimeWriter | ( | ) | const |
Access to Time Writer to be able to add data.
Definition at line 110 of file AbstractPdeSolver.cpp.
|
protectedpure virtual |
Creates the right type of assemblers for LHS and BCs. Needs to be overriden.
Implemented in HeatSolver, LaplacianSolver, FluxAnodeCathodeSolver, DirichletAnodeCathodeSolver, MonodomainSolver, ExtendedBidomainSolver, BilayerMonodomainSolver, BidomainSolver, PacemakerPoissonSolver, and PacemakerBidomainSolver.
|
protectedvirtual |
Creates the solution writer.
Definition at line 134 of file AbstractPdeSolver.cpp.
|
delete |
No assignment.
|
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.
|
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.
|
protectedpure virtual |
Update assemblers and recompute everything is needed.
Implemented in AbstractTimedPdeSolver, and AbstractStaticPdeSolver.
|
protected |
Assembler for Robin and Neumann BCs.
Definition at line 144 of file AbstractPdeSolver.hpp.
|
protected |
Matrix of boundary conditions.
Definition at line 145 of file AbstractPdeSolver.hpp.
|
protected |
Vector of boundary conditions.
Definition at line 146 of file AbstractPdeSolver.hpp.
|
protected |
Link to PDE discretization.
Definition at line 132 of file AbstractPdeSolver.hpp.
|
protected |
Compute error wrt analytic solution or reference.
Definition at line 168 of file AbstractPdeSolver.hpp.
|
protected |
Enables/disables outputs.
Definition at line 159 of file AbstractPdeSolver.hpp.
|
protected |
Error computation.
Definition at line 169 of file AbstractPdeSolver.hpp.
|
protected |
Flag telling if there are Delta f source terms.
Definition at line 152 of file AbstractPdeSolver.hpp.
|
protected |
Flag telling if there are regular source terms.
Definition at line 151 of file AbstractPdeSolver.hpp.
|
protected |
Assembler for laplace source terms.
Definition at line 148 of file AbstractPdeSolver.hpp.
|
protected |
Matrix used for laplace source terms.
Definition at line 149 of file AbstractPdeSolver.hpp.
|
protected |
Left hand side of the system.
Definition at line 138 of file AbstractPdeSolver.hpp.
|
protected |
Linear system.
Definition at line 137 of file AbstractPdeSolver.hpp.
|
protected |
Assembler for the operator matrix.
Definition at line 141 of file AbstractPdeSolver.hpp.
|
protected |
Matrix of operator.
Definition at line 142 of file AbstractPdeSolver.hpp.
|
protected |
Link to PDE to solve.
Definition at line 131 of file AbstractPdeSolver.hpp.
|
protected |
Right hand side of the system.
Definition at line 139 of file AbstractPdeSolver.hpp.
|
protected |
Writer for time dependant data (even for static problems...)
Definition at line 163 of file AbstractPdeSolver.hpp.
|
protected |
Put the mass on the diagonal of the matrix.
Definition at line 154 of file AbstractPdeSolver.hpp.
|
protected |
Manages output.
Definition at line 161 of file AbstractPdeSolver.hpp.