std::make_unsigned_t< CepsInt > CepsUInt
Unsigned version on CepsInt.
std::shared_ptr< DistributedMatrix > DMatPtr
Short typedef for pointer on dist matrix.
std::shared_ptr< DistributedVector > DVecPtr
Short typedef for pointer on distributed vector.
Common elements for linear system assembly.
Abstract Class for all numerical method (FE, FD, FV etc)
Base class for creating PDEs to solve.
Base class for PDE solving.
virtual void initializeWriter()
Creates the solution writer.
virtual void initializeAssemblers()=0
Creates the right type of assemblers for LHS and BCs. Needs to be overriden.
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.
virtual void assembleAndSolve()=0
Main routine used during solving, perform one single step on time problem or solve directly in static...
virtual void updateAssemblers()=0
Update assemblers and recompute everything is needed.
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 & operator=(const AbstractPdeSolver &that)=delete
No assignment.
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.
AbstractPdeSolver(const AbstractPdeSolver &that)=delete
No copy.
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.
virtual void solve()=0
Main method of the solver class that computes a solution vector.
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.
Utility to measure distance with respect to analytic solution or given vectors.
A class that enables the output of binary parallel VTK format files.