1 #ifndef ABLATELIBRARY_MATHFUNCTION_HPP
2 #define ABLATELIBRARY_MATHFUNCTION_HPP
6 namespace ablate::mathFunctions {
8 typedef PetscErrorCode (*PetscFunction)(PetscInt dim, PetscReal time,
const PetscReal x[], PetscInt Nf, PetscScalar* u,
void* ctx);
23 [[nodiscard]]
virtual double Eval(
const double& x,
const double& y,
const double& z,
const double& t)
const = 0;
32 [[nodiscard]]
virtual double Eval(
const double* xyz,
const int& ndims,
const double& t)
const = 0;
42 virtual void Eval(
const double& x,
const double& y,
const double& z,
const double& t, std::vector<double>& result)
const = 0;
51 virtual void Eval(
const double* xyz,
const int& ndims,
const double& t, std::vector<double>& result)
const = 0;
Definition: mathFunction.hpp:13
virtual double Eval(const double &x, const double &y, const double &z, const double &t) const =0
virtual void Eval(const double &x, const double &y, const double &z, const double &t, std::vector< double > &result) const =0
virtual double Eval(const double *xyz, const int &ndims, const double &t) const =0
virtual void Eval(const double *xyz, const int &ndims, const double &t, std::vector< double > &result) const =0
virtual PetscFunction GetPetscFunction()=0
virtual ~MathFunction()=default
virtual void * GetContext()=0