DUNE-FEM (unstable)
A temporary function carrying values for one entity. More...
#include <dune/fem/function/localfunction/temporary.hh>
Public Types | |
typedef BaseType::EntityType | EntityType |
type of Entity | |
typedef BaseType::DiscreteFunctionSpaceType | DiscreteFunctionSpaceType |
type of the discrete function space | |
typedef BaseType::BasisFunctionSetType | BasisFunctionSetType |
type of BasisFunctionSet | |
typedef BaseType::LocalDofVectorType | LocalDofVectorType |
type of LocalDofVector | |
typedef LocalDofVectorType::value_type | DofType |
type of DoF use with the discrete function | |
typedef LocalDofVectorType::size_type | SizeType |
type of index | |
typedef EntityType::Geometry | Geometry |
type of the geometry, the local function lives on is given by the space | |
typedef BasisFunctionSetType::FunctionSpaceType | FunctionSpaceType |
type of functionspace | |
typedef FunctionSpaceType::DomainFieldType | DomainFieldType |
field type of the domain | |
typedef FunctionSpaceType::RangeFieldType | RangeFieldType |
field type of the range | |
typedef FunctionSpaceType::DomainType | DomainType |
type of domain vectors, i.e., type of coordinates | |
typedef FunctionSpaceType::RangeType | RangeType |
type of range vectors, i.e., type of function values | |
typedef FunctionSpaceType::JacobianRangeType | JacobianRangeType |
type of the Jacobian, i.e., type of evaluated Jacobian matrix | |
typedef FunctionSpaceType::HessianRangeType | HessianRangeType |
type of the Hessian | |
typedef Geometry::LocalCoordinate | LocalCoordinateType |
type of local coordinates | |
typedef Traits::derived_type | derived_type |
type of derived vector class | |
typedef Traits::value_type | value_type |
export the type representing the field | |
typedef FieldTraits< value_type >::field_type | field_type |
export the type representing the field | |
typedef Traits::value_type | block_type |
export the type representing the components | |
typedef Traits::size_type | size_type |
The type used for the index access and size operation. | |
typedef DenseIterator< DenseVector, value_type > | Iterator |
Iterator class for sequential access. | |
typedef Iterator | iterator |
typedef for stl compliant access | |
typedef DenseIterator< const DenseVector, const value_type > | ConstIterator |
ConstIterator class for sequential access. | |
typedef ConstIterator | const_iterator |
typedef for stl compliant access | |
Public Member Functions | |
TemporaryLocalFunction (const DiscreteFunctionSpaceType &dfSpace) | |
constructor creating a local function without binding it to an entity More... | |
TemporaryLocalFunction (const DiscreteFunctionSpaceType &dfSpace, const EntityType &entity) | |
constructor creating a local function and binding it to an entity More... | |
void | init (const EntityType &entity) |
initialize the local function for an entity More... | |
void | bind (const EntityType &entity) |
initialize the local function for an entity More... | |
void | bind (const IntersectionType &intersection, IntersectionSide side) |
initialize the local function for an entity adjacent to the intersection More... | |
void | unbind () |
Unbinds a local function from an entity. | |
const DiscreteFunctionSpaceType & | space () const |
return discrete function space this local function belongs to | |
const LocalDofVectorType & | localDofVector () const |
return const reference to local Dof Vector | |
LocalDofVectorType & | localDofVector () |
return mutable reference to local Dof Vector | |
const DofType & | operator[] (SizeType num) const |
access to local dofs (read-only) More... | |
DofType & | operator[] (SizeType num) |
access to local dofs (read-write) More... | |
value_type & | operator[] (size_type i) |
random access | |
void | assign (const LocalFunction< DiscreteFunctionSpace ::BasisFunctionSetType, T > &other) |
assign all DoFs of this local function More... | |
void | clear () |
set all DoFs to zero | |
void | axpy (const PointType &x, const RangeType &factor) |
axpy operation for local function More... | |
void | axpy (const PointType &x, const JacobianRangeType &factor) |
axpy operation for local function More... | |
void | axpy (const PointType &x, const RangeType &factor1, const JacobianRangeType &factor2) |
axpy operation for local function More... | |
derived_type & | axpy (const field_type &a, const DenseVector< Other > &x) |
vector space axpy operation ( *this += a x ) | |
int | order () const |
obtain the order of this local function More... | |
const BasisFunctionSetType & | basisFunctionSet () const |
obtain the basis function set for this local function More... | |
const EntityType & | entity () const |
obtain the entity, this local function lives on More... | |
const Geometry & | geometry () const |
obtain the geometry, this local function lives on More... | |
void | evaluate (const PointType &x, RangeType &ret) const |
evaluate the local function More... | |
void | jacobian (const PointType &x, JacobianRangeType &ret) const |
evaluate Jacobian of the local function More... | |
void | hessian (const PointType &x, HessianRangeType &ret) const |
evaluate Hessian of the local function More... | |
int | numDofs () const |
obtain the number of local DoFs More... | |
SizeType | size () const |
obtain the number of local DoFs More... | |
void | axpyQuadrature (const QuadratureType &quad, const Vectors &... values) |
evaluate all basisfunctions for all quadrature points, multiply with the given factor and add the result to the local coefficients | |
void | axpyQuadrature (const QuadratureType &quad, const RangeVectorType &rangeVector, const JacobianRangeVectorType &jacobianVector) |
evaluate all basisfunctions for all quadrature points, multiply with the given factor and add the result to the local coefficients | |
void | evaluateQuadrature (const QuadratureType &quad, Vectors &... vec) const |
evaluate all basisfunctions for all quadrature points and store the results in the result vector | |
void | jacobianQuadrature (const QuadratureType &quad, Vectors &... vec) const |
evaluate all Jacobians for all basis functions for all quadrature points and store the results in the result vector | |
void | hessianQuadrature (const QuadratureType &quad, Vectors &... vec) const |
evaluate all hessians of all basis functions for all quadrature points and store the results in the result vector | |
bool | valid () const |
Returns true if local function if bind or init was previously called. | |
value_type & | front () |
return reference to first element | |
const value_type & | front () const |
return reference to first element | |
value_type & | back () |
return reference to last element | |
const value_type & | back () const |
return reference to last element | |
bool | empty () const |
checks whether the container is empty | |
Iterator | begin () |
begin iterator | |
ConstIterator | begin () const |
begin ConstIterator | |
Iterator | end () |
end iterator | |
ConstIterator | end () const |
end ConstIterator | |
Iterator | beforeEnd () |
ConstIterator | beforeEnd () const |
Iterator | beforeBegin () |
ConstIterator | beforeBegin () const |
Iterator | find (size_type i) |
return iterator to given element or end() | |
ConstIterator | find (size_type i) const |
return iterator to given element or end() | |
derived_type & | operator+= (const DenseVector< Other > &x) |
vector space addition | |
std::enable_if< std::is_convertible< ValueType, value_type >::value, derived_type >::type & | operator+= (const ValueType &kk) |
vector space add scalar to all comps More... | |
derived_type & | operator-= (const DenseVector< Other > &x) |
vector space subtraction | |
std::enable_if< std::is_convertible< ValueType, value_type >::value, derived_type >::type & | operator-= (const ValueType &kk) |
vector space subtract scalar from all comps More... | |
derived_type | operator+ (const DenseVector< Other > &b) const |
Binary vector addition. | |
derived_type | operator- (const DenseVector< Other > &b) const |
Binary vector subtraction. | |
derived_type | operator- () const |
Vector negation. | |
std::enable_if< std::is_convertible< FieldType, field_type >::value, derived_type >::type & | operator*= (const FieldType &kk) |
vector space multiplication with scalar More... | |
std::enable_if< std::is_convertible< FieldType, field_type >::value, derived_type >::type & | operator/= (const FieldType &kk) |
vector space division by scalar More... | |
bool | operator== (const DenseVector< Other > &x) const |
Binary vector comparison. | |
bool | operator!= (const DenseVector< Other > &x) const |
Binary vector incomparison. | |
PromotionTraits< field_type, typenameDenseVector< Other >::field_type >::PromotedType | operator* (const DenseVector< Other > &x) const |
indefinite vector dot product \(\left (x^T \cdot y \right)\) which corresponds to Petsc's VecTDot More... | |
PromotionTraits< field_type, typenameDenseVector< Other >::field_type >::PromotedType | dot (const DenseVector< Other > &x) const |
vector dot product \(\left (x^H \cdot y \right)\) which corresponds to Petsc's VecDot More... | |
FieldTraits< value_type >::real_type | one_norm () const |
one norm (sum over absolute values of entries) | |
FieldTraits< value_type >::real_type | one_norm_real () const |
simplified one norm (uses Manhattan norm for complex values) | |
FieldTraits< value_type >::real_type | two_norm () const |
two norm sqrt(sum over squared values of entries) | |
FieldTraits< value_type >::real_type | two_norm2 () const |
square of two norm (sum over squared values of entries), need for block recursion | |
FieldTraits< vt >::real_type | infinity_norm () const |
infinity norm (maximum of absolute values of entries) | |
FieldTraits< vt >::real_type | infinity_norm () const |
infinity norm (maximum of absolute values of entries) | |
FieldTraits< vt >::real_type | infinity_norm_real () const |
simplified infinity norm (uses Manhattan norm for complex values) | |
FieldTraits< vt >::real_type | infinity_norm_real () const |
simplified infinity norm (uses Manhattan norm for complex values) | |
size_type | N () const |
number of blocks in the vector (are of size 1 here) | |
size_type | dim () const |
dimension of the vector space | |
Protected Member Functions | |
void | init (const BasisFunctionSetType &basisFunctionSet) |
initialize the local function for an basisFunctionSet More... | |
Related Functions | |
(Note that these are not member functions.) | |
std::ostream & | operator<< (std::ostream &s, const DenseVector< LocalFunction< DiscreteFunctionSpace ::BasisFunctionSetType, Dune::DynamicVector< typename DiscreteFunctionSpace::RangeFieldType > > > &v) |
Write a DenseVector to an output stream. More... | |
Detailed Description
class Dune::Fem::TemporaryLocalFunction< DiscreteFunctionSpace, Dof >
A temporary function carrying values for one entity.
A TemporaryLocalFunction is a LocalFunction which is not associated with any DiscreteFunction. It can be used when generating discrete functions to temporarily store values for one entity.
- Note
- Local DoF numbers correspond directly to array indices. Hence it may be more cache efficient to generate a TemporaryLocalFunction and then do only one update step on the discrete function's LocalFunction.
- Parameters
-
DiscreteFunctionSpaceImp type of the discrete function space, the local function shall belong to
Constructor & Destructor Documentation
◆ TemporaryLocalFunction() [1/2]
|
inlineexplicit |
constructor creating a local function without binding it to an entity
Creates the local function without initializing the fields depending on the current entity.
- Note
- Before using the local function it must be bound by localFunction.bind( entity );const EntityType & entity() constobtain the entity, this local function lives onDefinition: localfunction.hh:305
- Parameters
-
[in] dfSpace discrete function space the local function shall belong to
◆ TemporaryLocalFunction() [2/2]
|
inline |
constructor creating a local function and binding it to an entity
Creates the local function and initializes the fields depending on the current entity. It is not necessary, though allowed, to call bind before using the discrete function.
- Note
- The degrees of freedom are not initialized by this function.
- Parameters
-
[in] dfSpace discrete function space the local function shall belong to [in] entity entity for initialize the local function to
Member Function Documentation
◆ assign()
|
inlineinherited |
assign all DoFs of this local function
- Parameters
-
[in] lf local function to assign DoFs from
◆ axpy() [1/3]
|
inlineinherited |
axpy operation for local function
Denoting the DoFs of the local function by \(u_i\) and the basis functions by \(\varphi_i\), this function performs the following operation:
\[ u_i = u_i + factor \cdot \nabla\varphi_i( x ) \]
- Parameters
-
[in] x point to evaluate jacobian of basis functions in [in] factor axpy factor
◆ axpy() [2/3]
|
inlineinherited |
axpy operation for local function
Denoting the DoFs of the local function by \(u_i\) and the basis functions by \(\varphi_i\), this function performs the following operation:
\[ u_i = u_i + factor \cdot \varphi_i( x ) \]
- Parameters
-
[in] x point to evaluate basis functions in [in] factor axpy factor
◆ axpy() [3/3]
|
inlineinherited |
axpy operation for local function
Denoting the DoFs of the local function by \(u_i\) and the basis functions by \(\varphi_i\), this function performs the following operation:
\[ u_i = u_i + factor1 \cdot \varphi_i( x ) + factor2 \cdot \nabla\varphi_i( x ) \]
- Parameters
-
[in] x point to evaluate basis functions in [in] factor1 axpy factor for \(\varphi( x )\) [in] factor2 axpy factor for \(\nabla\varphi( x )\)
◆ basisFunctionSet()
|
inlineinherited |
obtain the basis function set for this local function
- Returns
- reference to the basis function set
◆ beforeBegin() [1/2]
|
inlineinherited |
- Returns
- an iterator that is positioned before the first entry of the vector.
◆ beforeBegin() [2/2]
|
inlineinherited |
- Returns
- an iterator that is positioned before the first entry of the vector.
◆ beforeEnd() [1/2]
|
inlineinherited |
- Returns
- an iterator that is positioned before the end iterator of the vector, i.e. at the last entry.
◆ beforeEnd() [2/2]
|
inlineinherited |
- Returns
- an iterator that is positioned before the end iterator of the vector. i.e. at the last element
◆ bind() [1/2]
|
inlineinherited |
initialize the local function for an entity
Binds the local function to an entity.
- Note
- A local function must be initialized to an entity before it can be used.
- This function can be called multiple times to use the local function for more than one entity.
- Parameters
-
[in] entity entity to bind the local function to
◆ bind() [2/2]
|
inlineinherited |
initialize the local function for an entity adjacent to the intersection
Binds the local function to an entity.
- Note
- A local function must be initialized to an entity before it can be used.
- This function can be called multiple times to use the local function for more than one entity.
- Parameters
-
[in] intersection to bind the local function to either inside or outside entity [in] side side of intersection, i.e. in or out
◆ dot()
|
inlineinherited |
vector dot product \(\left (x^H \cdot y \right)\) which corresponds to Petsc's VecDot
http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Vec/VecDot.html
- Parameters
-
x other vector
- Returns
◆ entity()
|
inlineinherited |
obtain the entity, this local function lives on
- Returns
- reference to the entity
◆ evaluate()
|
inlineinherited |
evaluate the local function
- Parameters
-
[in] x evaluation point in local coordinates [out] ret value of the function in the given point
◆ geometry()
|
inlineinherited |
obtain the geometry, this local function lives on
- Returns
- reference to the geometry
◆ hessian()
|
inlineinherited |
evaluate Hessian of the local function
- Note
- Though the Hessian is evaluated on the reference element, the return value is the Hessian with respect to the actual entity.
- Parameters
-
[in] x evaluation point in local coordinates [out] ret Hessian of the function in the evaluation point
◆ init() [1/2]
|
inlineprotectedinherited |
initialize the local function for an basisFunctionSet
Binds the local function to an basisFunctionSet and entity.
- Note
- A local function must be initialized to an entity before it can be used.
- This function can be called multiple times to use the local function for more than one entity.
- Parameters
-
[in] basisFunctionSet to bind the local function to
◆ init() [2/2]
|
inlineinherited |
initialize the local function for an entity
Binds the local function to an entity.
- Note
- A local function must be initialized to an entity before it can be used.
- This function can be called multiple times to use the local function for more than one entity.
- Parameters
-
[in] entity entity to bind the local function to
◆ jacobian()
|
inlineinherited |
evaluate Jacobian of the local function
- Note
- Though the Jacobian is evaluated on the reference element, the return value is the Jacobian with respect to the actual entity.
- Parameters
-
[in] x evaluation point in local coordinates [out] ret Jacobian of the function in the evaluation point
◆ numDofs()
|
inlineinherited |
obtain the number of local DoFs
Obtain the number of local DoFs of this local function. The value is identical to the number of basis functons on the entity.
- Returns
- number of local DoFs
◆ operator*()
|
inlineinherited |
indefinite vector dot product \(\left (x^T \cdot y \right)\) which corresponds to Petsc's VecTDot
http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Vec/VecTDot.html
- Parameters
-
x other vector
- Returns
◆ operator*=()
|
inlineinherited |
vector space multiplication with scalar
we use enable_if to avoid an ambiguity, if the function parameter can be converted to field_type implicitly. (see FS#1457)
The function is only enabled, if the parameter is directly convertible to field_type.
◆ operator+=()
|
inlineinherited |
vector space add scalar to all comps
we use enable_if to avoid an ambiguity, if the function parameter can be converted to value_type implicitly. (see FS#1457)
The function is only enabled, if the parameter is directly convertible to value_type.
◆ operator-=()
|
inlineinherited |
vector space subtract scalar from all comps
we use enable_if to avoid an ambiguity, if the function parameter can be converted to value_type implicitly. (see FS#1457)
The function is only enabled, if the parameter is directly convertible to value_type.
◆ operator/=()
|
inlineinherited |
vector space division by scalar
we use enable_if to avoid an ambiguity, if the function parameter can be converted to field_type implicitly. (see FS#1457)
The function is only enabled, if the parameter is directly convertible to field_type.
◆ operator[]() [1/2]
|
inlineinherited |
access to local dofs (read-write)
- Parameters
-
[in] num local DoF number
- Returns
- reference to DoF
◆ operator[]() [2/2]
|
inlineinherited |
access to local dofs (read-only)
- Parameters
-
[in] num local dof number
- Returns
- reference to dof
◆ order()
|
inlineinherited |
obtain the order of this local function
The order of a local function refers to the polynomial order required to integrate it exactly.
- Note
- It is not completely clear what this value should be, e.g., for bilinear basis functions.
- Returns
- order of the local function
◆ size()
|
inlineinherited |
obtain the number of local DoFs
Obtain the number of local DoFs of this local function. The value is identical to the number of basis functons on the entity.
- Returns
- number of local DoFs
Friends And Related Function Documentation
◆ operator<<()
|
related |
Write a DenseVector to an output stream.
- Parameters
-
[in] s std :: ostream to write to [in] v DenseVector to write
- Returns
- the output stream (s)
The documentation for this class was generated from the following file:
- dune/fem/function/localfunction/temporary.hh