Opm::DGBasisBoundedTotalDegree Class Reference

#include <DGBasis.hpp>

Inheritance diagram for Opm::DGBasisBoundedTotalDegree:
Inheritance graph

Public Member Functions

 DGBasisBoundedTotalDegree (const UnstructuredGrid &grid, const int degree)
 
virtual ~DGBasisBoundedTotalDegree ()
 Destructor. More...
 
virtual int numBasisFunc () const
 The number of basis functions per cell. More...
 
virtual int dimensions () const
 The number of space dimensions. More...
 
virtual int degree () const
 The polynomial degree of the basis functions. More...
 
virtual void eval (const int cell, const double *x, double *f_x) const
 
virtual void evalGrad (const int cell, const double *x, double *grad_f_x) const
 
virtual void addConstant (const double increment, double *coefficients) const
 
virtual void multiplyGradient (const double factor, double *coefficients) const
 
virtual double functionAverage (const double *coefficients) const
 
double evalFunc (const int cell, const double *coefficients, const double *x) const
 

Detailed Description

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.

Constructor & Destructor Documentation

Opm::DGBasisBoundedTotalDegree::DGBasisBoundedTotalDegree ( const UnstructuredGrid grid,
const int  degree 
)

Constructor.

Parameters
[in]gridgrid on which basis is used (cell-wise)
[in]degreepolynomial degree of basis
virtual Opm::DGBasisBoundedTotalDegree::~DGBasisBoundedTotalDegree ( )
virtual

Destructor.

Member Function Documentation

virtual void Opm::DGBasisBoundedTotalDegree::addConstant ( const double  increment,
double *  coefficients 
) const
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.

Parameters
[in]incrementAdd this value to the function.
[out]coefficientsCoefficients {c_i} for a single cell.

Implements Opm::DGBasisInterface.

virtual int Opm::DGBasisBoundedTotalDegree::degree ( ) const
virtual

The polynomial degree of the basis functions.

Implements Opm::DGBasisInterface.

virtual int Opm::DGBasisBoundedTotalDegree::dimensions ( ) const
virtual

The number of space dimensions.

Implements Opm::DGBasisInterface.

virtual void Opm::DGBasisBoundedTotalDegree::eval ( const int  cell,
const double *  x,
double *  f_x 
) const
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.

double Opm::DGBasisInterface::evalFunc ( const int  cell,
const double *  coefficients,
const double *  x 
) const
inherited

Evaluate function f = sum_i c_i b_i at the point x. Note that this function is not virtual, but implemented in terms of the virtual functions of the class.

Parameters
[in]cellCell index
[in]coefficientsCoefficients {c_i} for a single cell.
[in]xPoint at which to compute f(x).
virtual void Opm::DGBasisBoundedTotalDegree::evalGrad ( const int  cell,
const double *  x,
double *  grad_f_x 
) const
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 double Opm::DGBasisBoundedTotalDegree::functionAverage ( const double *  coefficients) const
virtual

Compute the average of the function f = sum_i c_i b_i.

Parameters
[in]coefficientsCoefficients {c_i} for a single cell.

Implements Opm::DGBasisInterface.

virtual void Opm::DGBasisBoundedTotalDegree::multiplyGradient ( const double  factor,
double *  coefficients 
) const
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.

Parameters
[in]factorMultiply gradient by this factor.
[out]coefficientsCoefficients {c_i} for a single cell.

Implements Opm::DGBasisInterface.

virtual int Opm::DGBasisBoundedTotalDegree::numBasisFunc ( ) const
virtual

The number of basis functions per cell.

Implements Opm::DGBasisInterface.


The documentation for this class was generated from the following file: