50 if (not words.empty())
#define CEPS_SEPARATOR
Writes a separator in the debug log and in the terminal.
Eigen::Matrix< CepsScalar, 3, 3 > CepsMathTensor
Tensor, eigen format.
std::vector< _Type, _Alloc > CepsVector
C++ vector.
CepsBool hasAnalyticSolution() const
Tells if there is an analytic or reference solution.
void setProblemName(const CepsString &name)
Set the name of the problem.
void addUnknown(const CepsString &label, CepsSet< CepsAttribute > attrs={}, CepsLocationFlag flag=CepsLocationFlag::Point, const CepsString &unit="")
Register a new unknown.
InputParameters * m_parameters
Input file data.
Astract Problem which does not depend on time.
void initializeEquation() override
Initializes equations (unknowns, bc, source term) and creates the spatial discretization This method ...
CepsArray2< CepsArray3< CepsReal > > m_errors
Will store Linf, L1 and L2 relative errors.
void solve() override
Solves the whole PDE in time.
CepsArray2< CepsArray3< CepsReal > > getErrors() const
Gets the currently computed errors. First index selects absolute(0) orrelative(1) second index is L-i...
Profiler * getProfiler() const
Access to profiler.
Encapsulates all the geometrical data.
LaplacianProblem(Geometry *g, InputParameters *p=nullptr, const CepsMathTensor &k=CepsMathTensor::Identity())
Constructor from geometry and optional input file.
CepsMathTensor m_k
Diffusion tensor.
void run() override
Run does nothing. The tests call directly a LaplacianSolver solve method.
~LaplacianProblem() override
Destructor.
void setupWithParameters(InputParameters *p) override
Sets the diffusion tensor.
CepsMathTensor getDiffusionTensor(Unknown *u=nullptr) const
Diffusion tensor.
void defineUnknowns() override
Lists the unknowns of the problem (one here)
Solve laplacian equation with backward Euler, constant time step, using Finite Elements.
void stop(CepsString lbl)
Stops the measure of a labeled chronometer.
void start(CepsString lbl, CepsString dspl="")
Creates or continue a labeled chronometer.
A class used to defined an unknown of a PDE problem The unknown can be defined on a specific region,...
CepsMathTensor toMathTensor(const CepsVector< CepsString > &vec)
Cast a CepsVector of CepsString to CepsMathTensor.
CepsVector< CepsString > split(const CepsString &s, const CepsString &delimiters=CepsString(" \t"))
Splits a string using mulitple delimiters in a single string.
CepsBool isProfiling()
Check if we are currently profiling on the master proc (always false on slave procs).