- Home
- About DUNE
- Download
- Documentation
- Community
- Development
#include <p1function.hh>
Inheritance diagram for Dune::P1Function< GV, RT, LC, m >:

This class implements the interface of a DifferentiableGridFunction with piecewise linear elements using a Lagrange basis. It is implemented using the general shape functions, thus it should work for all element types and dimensions.
In addition to the DifferentiableGridFunction interface P1 functions can be initialized from a C0GridFunction via Lagrange interpolation. Dereferencing delivers the coefficient vector.
GV The grid view
Public Types | |
| enum | |
| export dimension of domain and range | |
| typedef DT | DomainFieldType |
| export type for domain components | |
| typedef RT | RangeFieldType |
| export type for range components | |
| enum | |
| export dimension of domain and range | |
| typedef G::ctype | DomainFieldType |
| export type for domain components | |
| typedef RT | RangeFieldType |
| export type for range components | |
Public Member Functions | |
| P1Function (const GV &gridView, LC lcomm, bool extendoverlap=false) | |
| allocate data | |
| ~P1Function () | |
| deallocate the vector | |
| virtual RT | derivative (int comp, const Dune::FieldVector< int, n > &d, const Dune::FieldVector< DT, n > &x) const |
| evaluate partial derivative | |
| virtual int | order () const |
| return number of partial derivatives that can be taken | |
| virtual RT | evallocal (int comp, const Entity &e, const Dune::FieldVector< DT, n > &xi) const |
| evaluate single component comp in the entity e at local coordinates xi | |
| virtual void | evalalllocal (const Entity &e, const Dune::FieldVector< DT, G::dimension > &xi, Dune::FieldVector< RT, m > &y) const |
| evaluate all components in the entity e at local coordinates xi | |
| virtual RT | derivativelocal (int comp, const Dune::FieldVector< int, n > &d, const Entity &e, const Dune::FieldVector< DT, n > &xi) const |
| evaluate derivative in local coordinates | |
| void | interpolate (const C0GridFunction< G, RT, m > &u) |
| interpolate nodal values from a grid function | |
| void | interpolate (const P0Function< GV, RT, m > &u) |
| const RepresentationType & | operator * () const |
| return const reference to coefficient vector | |
| RepresentationType & | operator * () |
| return reference to coefficient vector | |
| void | fillIndexInfoFromGrid (P1IndexInfoFromGrid &info) |
| deliver communication object | |
| void | preAdapt () |
| void | postAdapt (P1FunctionManager< G, RT > &manager) |
| Initiate update process. | |
| const VM & | mapper () const |
| export the mapper for external use | |
| const GV & | gridview () const |
| export the gridview for external use | |
| void | vtkout (VTKWriter< GV > &vtkwriter, std::string s) const |
| VTK output. | |
| virtual RT | eval (int comp, const Dune::FieldVector< DT, n > &xi) const |
| implement global evaluation with local evaluation | |
| virtual RT | eval (int comp, const Dune::FieldVector< DT, n > &x) const=0 |
| evaluate single component comp at global point x | |
| virtual RT | evallocal (int comp, const Entity &e, const Dune::FieldVector< DT, n > &xi) const =0 |
| evaluate single component comp in the entity e at local coordinates xi | |
| virtual void | evalalllocal (const Entity &e, const Dune::FieldVector< DT, GV::Grid::dimension > &xi, Dune::FieldVector< RT, m > &y) const=0 |
| evaluate all components in the entity e at local coordinates xi | |
| virtual void | evalall (const Dune::FieldVector< DT, n > &x, Dune::FieldVector< RT, m > &y) const=0 |
| evaluate all components at point x and store result in y | |
| virtual void | evalall (const Dune::FieldVector< GV::Grid::ctype, n > &x, Dune::FieldVector< RT, m > &y) const |
| default implemention for evaluation of all components | |
| virtual RT | derivativelocal (int comp, const Dune::FieldVector< int, n > &d, const Entity &e, const Dune::FieldVector< DT, n > &xi) const=0 |
| evaluate derivative in local coordinates | |
| virtual RT | evallocal (int comp, const Entity &e, const Dune::FieldVector< DT, n > &xi) const =0 |
| evaluate single component comp in the entity e at local coordinates xi | |
| virtual void | evalalllocal (const Entity &e, const Dune::FieldVector< DT, G::dimension > &xi, Dune::FieldVector< RT, m > &y) const=0 |
| evaluate all components in the entity e at local coordinates xi | |
| virtual RT | eval (int comp, const Dune::FieldVector< G::ctype, n > &x) const=0 |
| evaluate single component comp at global point x | |
| virtual void | evalall (const Dune::FieldVector< G::ctype, n > &x, Dune::FieldVector< RT, m > &y) const=0 |
| evaluate all components at point x and store result in y | |
| virtual RT | derivative (int comp, const Dune::FieldVector< int, n > &d, const Dune::FieldVector< DT, n > &x) const=0 |
| evaluate partial derivative | |
| virtual RT Dune::P1Function< GV, RT, LC, m >::derivative | ( | int | comp, | |
| const Dune::FieldVector< int, n > & | d, | |||
| const Dune::FieldVector< DT, n > & | x | |||
| ) | const [inline, virtual] |
evaluate partial derivative
Evaluate partial derivative of a component of the vector-valued function.
| [in] | comp | number of component that should be differentiated |
| [in] | d | vector giving order of derivative for each variable |
| [in] | x | position where derivative is to be evaluated |
Implements Dune::DifferentiableFunction< G::ctype, RT, G::dimension, m >.
| virtual int Dune::P1Function< GV, RT, LC, m >::order | ( | ) | const [inline, virtual] |
return number of partial derivatives that can be taken
A DifferentiableFunction can say how many derivatives exist and can be safely evaluated.
Reimplemented from Dune::H1Function< GV::Grid::ctype, RT, GV::Grid::dimension, m >.
| virtual RT Dune::P1Function< GV, RT, LC, m >::evallocal | ( | int | comp, | |
| const Entity & | e, | |||
| const Dune::FieldVector< DT, n > & | xi | |||
| ) | const [inline, virtual] |
evaluate single component comp in the entity e at local coordinates xi
Evaluate the function in an entity at local coordinates.
| [in] | comp | number of component to be evaluated |
| [in] | e | reference to grid entity of codimension 0 |
| [in] | xi | point in local coordinates of the reference element of e |
| virtual void Dune::P1Function< GV, RT, LC, m >::evalalllocal | ( | const Entity & | e, | |
| const Dune::FieldVector< DT, G::dimension > & | xi, | |||
| Dune::FieldVector< RT, m > & | y | |||
| ) | const [inline, virtual] |
evaluate all components in the entity e at local coordinates xi
Evaluates all components of a function at once.
| [in] | e | reference to grid entity of codimension 0 |
| [in] | xi | point in local coordinates of the reference element of e |
| [out] | y | vector with values to be filled |
| virtual RT Dune::P1Function< GV, RT, LC, m >::derivativelocal | ( | int | comp, | |
| const Dune::FieldVector< int, n > & | d, | |||
| const Entity & | e, | |||
| const Dune::FieldVector< DT, n > & | xi | |||
| ) | const [inline, virtual] |
evaluate derivative in local coordinates
Evaluate the partial derivative a the given position in local coordinates in an entity.
| [in] | comp | number of component that should be differentiated |
| [in] | d | vector giving order of derivative for each variable |
| [in] | e | reference to grid entity of codimension 0 |
| [in] | xi | point in local coordinates of the reference element of e |
| void Dune::P1Function< GV, RT, LC, m >::interpolate | ( | const C0GridFunction< G, RT, m > & | u | ) | [inline] |
interpolate nodal values from a grid function
Lagrange interpolation of a P1 finite element function from given continuous grid function. Evaluation is done by visiting the vertices of each element and storing a bitvector of visited vertices.
| [in] | u | a continuous grid function |
| void Dune::P1Function< GV, RT, LC, m >::interpolate | ( | const P0Function< GV, RT, m > & | u | ) | [inline] |
| const RepresentationType& Dune::P1Function< GV, RT, LC, m >::operator * | ( | ) | const [inline] |
return const reference to coefficient vector
Dereferencing a finite element function returns the coefficient representation of the finite element function. This is the const version.
| RepresentationType& Dune::P1Function< GV, RT, LC, m >::operator * | ( | ) | [inline] |
return reference to coefficient vector
Dereferencing a finite element function returns the coefficient representation of the finite element function. This is the non-const version.
| void Dune::P1Function< GV, RT, LC, m >::preAdapt | ( | ) | [inline] |
empty method to maintain symmetry For vertex data nothing is required in preAdapt but for other finite element functions this method is necessary.
| void Dune::P1Function< GV, RT, LC, m >::postAdapt | ( | P1FunctionManager< G, RT > & | manager | ) | [inline] |
Initiate update process.
Call this method after the grid has been adapted. The representation is now updated to the new grid and the finite element function can be used on the new grid. However the data is not initialized. The old representation (with respect to the old grid) can still be accessed if it has been saved. It is deleted in endUpdate().
| virtual RT Dune::GridFunctionGlobalEvalDefault< GV, RT, m >::eval | ( | int | comp, | |
| const Dune::FieldVector< DT, n > & | xi | |||
| ) | const [inline, virtual, inherited] |
implement global evaluation with local evaluation
The local entity is searched via a hierarchic search
| [in] | comp | number of component to be evaluated |
| [in] | xi | point in local coordinates of the reference element of e |
| virtual RT Dune::FunctionBase< DT, RT, n, m >::eval | ( | int | comp, | |
| const Dune::FieldVector< DT, n > & | x | |||
| ) | const [pure virtual, inherited] |
evaluate single component comp at global point x
Evaluate a single component of the vector-valued function.
| [in] | comp | number of component to be evaluated |
| [in] | x | position to be evaluated |
Implemented in Dune::GridFunctionAdapter< G, RT, m >, Dune::DifferentiableGridFunctionAdapter< G, RT, m >, Dune::GridLevelLeafFunctionAdapter< G, RT, m >, Dune::GridLeafFunctionAdapter< G, IS, RT, m >, Dune::GridFunctionGradient< G, RT >, Dune::GridFunctionMinus< G, RT, m >, Dune::GridFunctionGlobalEvalDefault< GV, RT, 1 >, Dune::GridFunctionGlobalEvalDefault< G::LevelGridView, RT, m >, Dune::GridFunctionGlobalEvalDefault< G::LeafGridView, RT, 1 >, Dune::GridFunctionGlobalEvalDefault< G::LeafGridView, RT, m >, and Dune::GridFunctionGlobalEvalDefault< G::LevelGridView, RT, 1 >.
| virtual RT Dune::GridFunction< GV::Grid , RT , m >::evallocal | ( | int | comp, | |
| const Entity & | e, | |||
| const Dune::FieldVector< DT, n > & | xi | |||
| ) | const [pure virtual, inherited] |
evaluate single component comp in the entity e at local coordinates xi
Evaluate the function in an entity at local coordinates.
| [in] | comp | number of component to be evaluated |
| [in] | e | reference to grid entity of codimension 0 |
| [in] | xi | point in local coordinates of the reference element of e |
| virtual void Dune::GridFunction< GV::Grid , RT , m >::evalalllocal | ( | const Entity & | e, | |
| const Dune::FieldVector< DT, GV::Grid ::dimension > & | xi, | |||
| Dune::FieldVector< RT , m > & | y | |||
| ) | const [pure virtual, inherited] |
evaluate all components in the entity e at local coordinates xi
Evaluates all components of a function at once.
| [in] | e | reference to grid entity of codimension 0 |
| [in] | xi | point in local coordinates of the reference element of e |
| [out] | y | vector with values to be filled |
| virtual void Dune::FunctionBase< DT, RT, n, m >::evalall | ( | const Dune::FieldVector< DT, n > & | x, | |
| Dune::FieldVector< RT, m > & | y | |||
| ) | const [pure virtual, inherited] |
evaluate all components at point x and store result in y
Evaluation function for all components at once.
| [in] | x | position to be evaluated |
| [out] | y | result vector to be filled |
Implemented in Dune::FunctionDefault< DT, RT, n, m >.
| virtual void Dune::FunctionDefault< GV::Grid::ctype , RT , n, m >::evalall | ( | const Dune::FieldVector< GV::Grid::ctype , n > & | x, | |
| Dune::FieldVector< RT , m > & | y | |||
| ) | const [inline, virtual, inherited] |
default implemention for evaluation of all components
Evaluate all components at once using componentwise evaluation function
| [in] | x | position to be evaluated |
| [out] | y | result vector to be filled |
| virtual RT Dune::DifferentiableGridFunction< G, RT, m >::derivativelocal | ( | int | comp, | |
| const Dune::FieldVector< int, n > & | d, | |||
| const Entity & | e, | |||
| const Dune::FieldVector< DT, n > & | xi | |||
| ) | const [pure virtual, inherited] |
evaluate derivative in local coordinates
Evaluate the partial derivative a the given position in local coordinates in an entity.
| [in] | comp | number of component that should be differentiated |
| [in] | d | vector giving order of derivative for each variable |
| [in] | e | reference to grid entity of codimension 0 |
| [in] | xi | point in local coordinates of the reference element of e |
Implemented in Dune::DifferentiableGridFunctionDefault< G, RT, m >.
| virtual RT Dune::GridFunction< G, RT, m >::evallocal | ( | int | comp, | |
| const Entity & | e, | |||
| const Dune::FieldVector< DT, n > & | xi | |||
| ) | const [pure virtual, inherited] |
evaluate single component comp in the entity e at local coordinates xi
Evaluate the function in an entity at local coordinates.
| [in] | comp | number of component to be evaluated |
| [in] | e | reference to grid entity of codimension 0 |
| [in] | xi | point in local coordinates of the reference element of e |
Implemented in Dune::GridFunctionDefault< G, RT, m >, and Dune::GridFunctionDefault< G, RT, G::dimension >.
| virtual void Dune::GridFunction< G, RT, m >::evalalllocal | ( | const Entity & | e, | |
| const Dune::FieldVector< DT, G::dimension > & | xi, | |||
| Dune::FieldVector< RT, m > & | y | |||
| ) | const [pure virtual, inherited] |
evaluate all components in the entity e at local coordinates xi
Evaluates all components of a function at once.
| [in] | e | reference to grid entity of codimension 0 |
| [in] | xi | point in local coordinates of the reference element of e |
| [out] | y | vector with values to be filled |
Implemented in Dune::GridFunctionDefault< G, RT, m >, and Dune::GridFunctionDefault< G, RT, G::dimension >.
| virtual RT Dune::FunctionBase< G::ctype , RT , n, m >::eval | ( | int | comp, | |
| const Dune::FieldVector< G::ctype , n > & | x | |||
| ) | const [pure virtual, inherited] |
evaluate single component comp at global point x
Evaluate a single component of the vector-valued function.
| [in] | comp | number of component to be evaluated |
| [in] | x | position to be evaluated |
Implemented in Dune::GridFunctionAdapter< G, RT, m >, Dune::DifferentiableGridFunctionAdapter< G, RT, m >, Dune::GridLevelLeafFunctionAdapter< G, RT, m >, Dune::GridLeafFunctionAdapter< G, IS, RT, m >, Dune::GridFunctionGradient< G, RT >, Dune::GridFunctionMinus< G, RT, m >, Dune::GridFunctionGlobalEvalDefault< GV, RT, 1 >, Dune::GridFunctionGlobalEvalDefault< G::LevelGridView, RT, m >, Dune::GridFunctionGlobalEvalDefault< G::LeafGridView, RT, 1 >, Dune::GridFunctionGlobalEvalDefault< G::LeafGridView, RT, m >, and Dune::GridFunctionGlobalEvalDefault< G::LevelGridView, RT, 1 >.
| virtual void Dune::FunctionBase< G::ctype , RT , n, m >::evalall | ( | const Dune::FieldVector< G::ctype , n > & | x, | |
| Dune::FieldVector< RT , m > & | y | |||
| ) | const [pure virtual, inherited] |
evaluate all components at point x and store result in y
Evaluation function for all components at once.
| [in] | x | position to be evaluated |
| [out] | y | result vector to be filled |
| virtual RT Dune::DifferentiableFunction< DT, RT, n, m >::derivative | ( | int | comp, | |
| const Dune::FieldVector< int, n > & | d, | |||
| const Dune::FieldVector< DT, n > & | x | |||
| ) | const [pure virtual, inherited] |
evaluate partial derivative
Evaluate partial derivative of a component of the vector-valued function.
| [in] | comp | number of component that should be differentiated |
| [in] | d | vector giving order of derivative for each variable |
| [in] | x | position where derivative is to be evaluated |
Implemented in Dune::DifferentiableGridFunctionAdapter< G, RT, m >, Dune::DifferentiableFunctionDefault< DT, RT, n, m >, Dune::P1Function< GV, RT, LC, m >, Dune::GridFunctionGlobalDifferentiationDefault< GV, RT, 1 >, Dune::GridFunctionGlobalDifferentiationDefault< G::LeafGridView, RT, 1 >, Dune::GridFunctionGlobalDifferentiationDefault< G::LevelGridView, RT, 1 >, Dune::P1Function< G::LevelGridView, RT, Dune::LevelCommunicate< G >, m >, and Dune::P1Function< G::LeafGridView, RT, Dune::LeafCommunicate< G >, m >.