20 #ifndef OPM_DGBASIS_HEADER_INCLUDED 21 #define OPM_DGBASIS_HEADER_INCLUDED 25 struct UnstructuredGrid;
44 virtual int degree()
const = 0;
49 virtual void eval(
const int cell,
51 double* f_x)
const = 0;
58 virtual void evalGrad(
const int cell,
60 double* grad_f_x)
const = 0;
69 double* coefficients)
const = 0;
79 double* coefficients)
const = 0;
88 const double* coefficients,
89 const double* x)
const;
96 mutable std::vector<double> bvals_;
129 virtual int degree()
const;
134 virtual void eval(
const int cell,
143 virtual void evalGrad(
const int cell,
145 double* grad_f_x)
const;
154 double* coefficients)
const;
164 double* coefficients)
const;
171 const UnstructuredGrid& grid_;
206 virtual int degree()
const;
211 virtual void eval(
const int cell,
220 virtual void evalGrad(
const int cell,
222 double* grad_f_x)
const;
231 double* coefficients)
const;
241 double* coefficients)
const;
248 const UnstructuredGrid& grid_;
259 #endif // OPM_DGBASIS_HEADER_INCLUDED virtual double functionAverage(const double *coefficients) const
Compute the average of the function f = sum_i c_i b_i.
Definition: DGBasis.cpp:336
virtual int dimensions() const
The number of space dimensions.
Definition: DGBasis.cpp:94
virtual ~DGBasisMultilin()
Destructor.
Definition: DGBasis.cpp:205
A class providing discontinuous Galerkin basis functions of multi-degree 1 (bilinear or trilinear fun...
Definition: DGBasis.hpp:188
virtual void addConstant(const double increment, double *coefficients) const
Modify basis coefficients to add to the function value.
Definition: DGBasis.cpp:307
virtual void evalGrad(const int cell, const double *x, double *grad_f_x) const
Evaluate gradients of all basis functions associated with cell at x, writing to grad_f_x.
Definition: DGBasis.cpp:271
virtual int numBasisFunc() const =0
The number of basis functions per cell.
virtual void multiplyGradient(const double factor, double *coefficients) const
Modify basis coefficients to change the function's slope.
Definition: DGBasis.cpp:167
virtual double functionAverage(const double *coefficients) const
Compute the average of the function f = sum_i c_i b_i.
Definition: DGBasis.cpp:178
virtual double functionAverage(const double *coefficients) const =0
Compute the average of the function f = sum_i c_i b_i.
virtual int degree() const
The polynomial degree of the basis functions.
Definition: DGBasis.cpp:231
Definition: AnisotropicEikonal.cpp:446
virtual void addConstant(const double increment, double *coefficients) const =0
Modify basis coefficients to add to the function value.
virtual void multiplyGradient(const double factor, double *coefficients) const
Modify basis coefficients to change the function's slope.
Definition: DGBasis.cpp:324
virtual int numBasisFunc() const
The number of basis functions per cell.
Definition: DGBasis.cpp:210
virtual int numBasisFunc() const
The number of basis functions per cell.
Definition: DGBasis.cpp:79
virtual void evalGrad(const int cell, const double *x, double *grad_f_x) const
Evaluate gradients of all basis functions associated with cell at x, writing to grad_f_x.
Definition: DGBasis.cpp:134
Base class for Discontinuous Galerkin bases, intended for time-of-flight computations.
Definition: DGBasis.hpp:31
virtual void multiplyGradient(const double factor, double *coefficients) const =0
Modify basis coefficients to change the function's slope.
virtual int dimensions() const
The number of space dimensions.
Definition: DGBasis.cpp:225
virtual ~DGBasisInterface()
Virtual destructor.
Definition: DGBasis.cpp:33
virtual void eval(const int cell, const double *x, double *f_x) const
Evaluate all basis functions associated with cell at x, writing to f_x.
Definition: DGBasis.cpp:239
virtual int degree() const =0
The polynomial degree of the basis functions.
DGBasisBoundedTotalDegree(const UnstructuredGrid &grid, const int degree)
Constructor.
Definition: DGBasis.cpp:60
virtual void eval(const int cell, const double *x, double *f_x) const
Evaluate all basis functions associated with cell at x, writing to f_x.
Definition: DGBasis.cpp:108
double evalFunc(const int cell, const double *coefficients, const double *x) const
Evaluate function f = sum_i c_i b_i at the point x.
Definition: DGBasis.cpp:43
virtual void eval(const int cell, const double *x, double *f_x) const =0
Evaluate all basis functions associated with cell at x, writing to f_x.
virtual int dimensions() const =0
The number of space dimensions.
virtual ~DGBasisBoundedTotalDegree()
Destructor.
Definition: DGBasis.cpp:74
virtual int degree() const
The polynomial degree of the basis functions.
Definition: DGBasis.cpp:100
A class providing discontinuous Galerkin basis functions of bounded total degree. ...
Definition: DGBasis.hpp:111
DGBasisMultilin(const UnstructuredGrid &grid, const int degree)
Constructor.
Definition: DGBasis.cpp:191
virtual void evalGrad(const int cell, const double *x, double *grad_f_x) const =0
Evaluate gradients of all basis functions associated with cell at x, writing to grad_f_x.
virtual void addConstant(const double increment, double *coefficients) const
Modify basis coefficients to add to the function value.
Definition: DGBasis.cpp:154