Opm::DGBasisMultilin Class Reference

#include <DGBasis.hpp>

Inheritance diagram for Opm::DGBasisMultilin:
Inheritance graph

Public Member Functions

 DGBasisMultilin (const UnstructuredGrid &grid, const int degree)
 
virtual ~DGBasisMultilin ()
 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 multi-degree 1 (bilinear or trilinear functions).

The basis functions for a cell are the following Degree 0: 1. (for 2 dims:) (Bi)degree 1: (x-)(y-), (x-)(y+), (x+)(y-), (x+)(y+) where (x-) = (1/2 - x + xc), (x+) = (1/2 + x - xc) and xc is the x-coordinate of the cell centroid. Similar for (y-), (y+).

Constructor & Destructor Documentation

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

Constructor.

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

Destructor.

Member Function Documentation

virtual void Opm::DGBasisMultilin::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::DGBasisMultilin::degree ( ) const
virtual

The polynomial degree of the basis functions.

Implements Opm::DGBasisInterface.

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

The number of space dimensions.

Implements Opm::DGBasisInterface.

virtual void Opm::DGBasisMultilin::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::DGBasisMultilin::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::DGBasisMultilin::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::DGBasisMultilin::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::DGBasisMultilin::numBasisFunc ( ) const
virtual

The number of basis functions per cell.

Implements Opm::DGBasisInterface.


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