A class providing discontinuous Galerkin basis functions of bounded total degree. More...
#include <DGBasis.hpp>
Public Member Functions | |
DGBasisBoundedTotalDegree (const UnstructuredGrid &grid, const int degree) | |
Constructor. More... | |
virtual | ~DGBasisBoundedTotalDegree () |
Destructor. | |
virtual int | numBasisFunc () const |
The number of basis functions per cell. | |
virtual int | dimensions () const |
The number of space dimensions. | |
virtual int | degree () const |
The polynomial degree of the basis functions. | |
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. More... | |
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. More... | |
virtual void | addConstant (const double increment, double *coefficients) const |
Modify basis coefficients to add to the function value. More... | |
virtual void | multiplyGradient (const double factor, double *coefficients) const |
Modify basis coefficients to change the function's slope. More... | |
virtual double | functionAverage (const double *coefficients) const |
Compute the average of the function f = sum_i c_i b_i. More... | |
![]() | |
virtual | ~DGBasisInterface () |
Virtual destructor. | |
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. More... | |
A class providing discontinuous Galerkin basis functions of bounded total degree.
The basis functions are the following for each cell (example for 3d): Degree 0: 1. Degree 1: 1, x - xc, y - yc, z - zc where (xc, yc, zc) are the coordinates of the cell centroid. Further degrees await development.
Opm::DGBasisBoundedTotalDegree::DGBasisBoundedTotalDegree | ( | const UnstructuredGrid & | grid, |
const int | degree_arg | ||
) |
Constructor.
[in] | grid | grid on which basis is used (cell-wise) |
[in] | degree | polynomial degree of basis |
|
virtual |
Modify basis coefficients to add to the function value.
A function f = sum_i c_i b_i is assumed, and we change it to (f + increment) by modifying the c_i. This is done without modifying its gradient.
[in] | increment | Add this value to the function. |
[out] | coefficients | Coefficients {c_i} for a single cell. |
Implements Opm::DGBasisInterface.
|
virtual |
Evaluate all basis functions associated with cell at x, writing to f_x.
The array f_x must have size equal to numBasisFunc().
Implements Opm::DGBasisInterface.
|
virtual |
Evaluate gradients of all basis functions associated with cell at x, writing to grad_f_x.
The array grad_f_x must have size numBasisFunc() * dimensions(). The dimensions() components of the first basis function gradient come before the components of the second etc.
Implements Opm::DGBasisInterface.
|
virtual |
Compute the average of the function f = sum_i c_i b_i.
[in] | coefficients | Coefficients {c_i} for a single cell. |
Implements Opm::DGBasisInterface.
|
virtual |
Modify basis coefficients to change the function's slope.
A function f = sum_i c_i b_i is assumed, and we change it to a function g with the property that grad g = factor * grad f by modifying the c_i. This is done without modifying the average, i.e. the integrals of g and f over the cell are the same.
[in] | factor | Multiply gradient by this factor. |
[out] | coefficients | Coefficients {c_i} for a single cell. |
Implements Opm::DGBasisInterface.