Dune Core Modules (2.9.0)

Dune::ScalarLocalToGlobalBasisAdaptor< LocalBasis, Geometry > Class Template Reference

Convert a simple scalar local basis into a global basis. More...

#include <dune/localfunctions/common/localtoglobaladaptors.hh>

Public Member Functions

 ScalarLocalToGlobalBasisAdaptor (const LocalBasis &localBasis_, const Geometry &geometry_)
 construct a ScalarLocalToGlobalBasisAdaptor More...
 
std::size_t order () const
 return maximum polynomial order of the base function More...
 
void evaluateFunction (const Traits::DomainType &in, std::vector< Traits::RangeType > &out) const
 Evaluate all shape functions at given position.
 
void evaluateJacobian (const Traits::DomainType &in, std::vector< Traits::Jacobian > &out) const
 Evaluate Jacobian of all shape functions at given position.
 
void partial (const std::array< unsigned int, Traits::dimDomain > &order, const typename Traits::DomainType &in, std::vector< typename Traits::RangeType > &out) const
 Evaluate partial derivatives of any order of all shape functions. More...
 

Detailed Description

template<class LocalBasis, class Geometry>
class Dune::ScalarLocalToGlobalBasisAdaptor< LocalBasis, Geometry >

Convert a simple scalar local basis into a global basis.

The local basis must be scalar, i.e. LocalBasis::Traits::dimRange must be

  1. It's values are not transformed.

For scalar function \(f\), the gradient is equivalent to the transposed Jacobian \(\nabla f|_x = J_f^T(x)\). The Jacobian is thus transformed using

\[ \nabla f|_{\mu(\hat x)} = \hat J_\mu^{-T}(\hat x) \cdot \hat\nabla\hat f|_{\hat x} \]

Here the hat \(\hat{\phantom x}\) denotes local quantities and \(\mu\) denotes the local-to-global map of the geometry.

Template Parameters
LocalBasisType of the local basis to adapt.
GeometryType of the local-to-global transformation.

Constructor & Destructor Documentation

◆ ScalarLocalToGlobalBasisAdaptor()

template<class LocalBasis , class Geometry >
Dune::ScalarLocalToGlobalBasisAdaptor< LocalBasis, Geometry >::ScalarLocalToGlobalBasisAdaptor ( const LocalBasis &  localBasis_,
const Geometry geometry_ 
)
inline

construct a ScalarLocalToGlobalBasisAdaptor

Parameters
localBasis_The local basis object to adapt.
geometry_The geometry object to use for adaption.
Note
This class stores the references passed here. Any use of this class after these references have become invalid results in undefined behaviour. The exception is that the destructor of this class may still be called.

Member Function Documentation

◆ order()

template<class LocalBasis , class Geometry >
std::size_t Dune::ScalarLocalToGlobalBasisAdaptor< LocalBasis, Geometry >::order ( ) const
inline

return maximum polynomial order of the base function

This is to determine the required quadrature order. For an affine geometry this is the same order as for the local basis. For other geometries this returns the order of the local basis plus the global dimension minus 1. The assumtion for non-affine geometries is that they are still multi-linear.

References Dune::Geometry< mydim, cdim, GridImp, GeometryImp >::affine().

◆ partial()

void Dune::BasisInterface::partial ( const std::array< unsigned int, Traits::dimDomain > &  order,
const typename Traits::DomainType in,
std::vector< typename Traits::RangeType > &  out 
) const
inherited

Evaluate partial derivatives of any order of all shape functions.

Parameters
orderOrder of the partial derivatives, in the classic multi-index notation
inPosition where to evaluate the derivatives
[out]outReturn value: the desired partial derivatives

The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Dec 20, 23:31, 2024)