37 m_discretization(nullptr),
41 m_lapSrcAsb (nullptr),
44 m_useMassLumping(false),
47 m_timeWriter (nullptr),
52 "Passed pointer on PDE problem is null"
@ Laplace
A source term that multiplies grad phi (for FE)
@ Default
Simply add the source term.
@ Stimulation
Apply cardiac specific treatment before adding.
#define CEPS_ABORT_IF(condition, message)
Stops the execution with a message if condition is true. If testing is enabled, only throws a runtime...
DHVecPtr newDofHaloVector() const
Get a new vector from the factory, with halo data.
DVecPtr newDofVector() const
Get a new vector from the factory.
DMatPtr newDofMatrix() const
Get a new matrix from the factory.
Base class for creating PDEs to solve.
CepsOutputFormat getOutputFormat() const
Tells if output is binary or ascii.
CepsString getOutputFileBase() const
Output file name includes the directory.
SourceTermManager * getSourceTermManager() const
Get boundary condition manager.
AbstractDiscretization * getSpatialDiscretization() const
Link to the spatial discretization (FE, FV, etc)
InputParameters * getParameters() const
Text parameters.
CepsBool writesGlobalIndices() const
Tells if global indices are written on top of solution.
virtual void initializeWriter()
Creates the solution writer.
TimeWriter * getTimeWriter() const
Access to Time Writer to be able to add data.
VtkWriter * m_writer
Manages output.
DMatPtr m_lhs
Left hand side of the system.
AbstractAssembler * m_lapSrcAsb
Assembler for laplace source terms.
~AbstractPdeSolver() override
Destructor.
DVecPtr m_rhs
Right hand side of the system.
DMatPtr m_bcMat
Matrix of boundary conditions.
virtual void setupWithParameters(InputParameters *params)
Set attributes from input file. Parameters are passed as arguments in case one wants to use other par...
virtual CepsUInt getExpectedNumberOfOutputs() const =0
Gives the number of outputs.
CepsBool m_hasRegSrc
Flag telling if there are regular source terms.
AbstractDiscretization * m_discretization
Link to PDE discretization.
AbstractAssembler * m_bcAsb
Assembler for Robin and Neumann BCs.
void disableOutput()
Stops output.
void enableOutput()
Starts output.
PdeErrorCalculator * m_errors
Error computation.
LinearSystem * m_linearSystem
Linear system.
AbstractPdeSolver()=delete
Deleted default constructor.
CepsBool m_doOutput
Enables/disables outputs.
CepsBool m_useMassLumping
Put the mass on the diagonal of the matrix.
DMatPtr m_opMat
Matrix of operator.
TimeWriter * m_timeWriter
Writer for time dependant data (even for static problems...)
void disableErrorComputation()
Sets the comparison with analytic solution.
DVecPtr m_bcVec
Vector of boundary conditions.
AbstractAssembler * m_opAsb
Assembler for the operator matrix.
CepsBool m_hasLapSrc
Flag telling if there are Delta f source terms.
AbstractPdeProblem * m_problem
Link to PDE to solve.
CepsBool m_doError
Compute error wrt analytic solution or reference.
DMatPtr m_lapSrcMat
Matrix used for laplace source terms.
Base class for other (big) CEPS classes. All classes can get a pointer to this base class and also co...
Linear system Ax=b to be solved.
void setLhsMatrix(DMatPtr lhs)
Set the left-hand side matrix of the system.
void setupWithParameters(InputParameters *params)
Sets the options from text parameters.
void setRhsVector(DVecPtr rhs)
Set the right hand side.
CepsUInt getNbOfSourceTermsOf(CepsSourceTermFlag flag) const
Number of registered source terms of type flag.
A namespace for all utility methods.
_Type * getNew(_Args... args)
Allocates memory for one object. Be careful, the expansion of arguments may produce some weird result...
CepsBool isNullPtr(_Type *ptr)
Tells if passed pointer is null.
void destroyObject(_Type &)
Destroy[delete] any type.