Dune Core Modules (2.6.0)

Dune::BasisInterfaceSwitch< Basis, Dummy > Struct Template Reference

Switch for uniform treatment of local and global basis classes. More...

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

Public Types

typedef Basis::Traits::DomainField DomainField
 export field types of the coordinates
 
typedef Basis::Traits::DomainLocal DomainLocal
 export vector type of the local coordinates
 
typedef Basis::Traits::RangeField RangeField
 export field type of the values
 
typedef Basis::Traits::Range Range
 export vector type of the values
 

Static Public Member Functions

template<typename Geometry >
static void gradient (const Basis &basis, const Geometry &geometry, const DomainLocal &xl, std::vector< FieldMatrix< RangeField, 1, Geometry::coorddimension > > &grad)
 Compute global gradient for scalar valued bases. More...
 

Static Public Attributes

static const std::size_t dimDomainLocal = Basis::Traits::dimDomainLocal
 export dimension of local coordinates
 
static const std::size_t dimRange = Basis::Traits::dimRange
 export dimension of the values
 
static const std::size_t diffOrder = Basis::Traits::diffOrder
 export number of supported differentiations
 

Detailed Description

template<class Basis, class Dummy = void>
struct Dune::BasisInterfaceSwitch< Basis, Dummy >

Switch for uniform treatment of local and global basis classes.

Template Parameters
BasisType of the basis to handle.
DummyDummy parameter for enable_if. This must be left at the default value of void.

We don't provide any uniform access to the types and constants pertaining to the global domain. Providing this would require the Geometry as template parameter as well, and the user code can build them itself if it needs them with the help of the geometry. The omitted types are DomainGlobal and Jacobian, the omitted constant is dimDomainGlobal.

Note
The local interface is assumed if the constant Basis::Traits::dimDomain exists and has a value greater than 0.

Member Function Documentation

◆ gradient()

template<class Basis , class Dummy = void>
template<typename Geometry >
static void Dune::BasisInterfaceSwitch< Basis, Dummy >::gradient ( const Basis &  basis,
const Geometry geometry,
const DomainLocal xl,
std::vector< FieldMatrix< RangeField, 1, Geometry::coorddimension > > &  grad 
)
inlinestatic

Compute global gradient for scalar valued bases.

Parameters
basisThe basis to get the derivatives from.
geometryThe geometry to use to transform the derivatives (for a local basis, unused in the case of a global basis).
xlThe local coordinates where to evaluate the gradient.
gradThe result (will be resized to the appropriate number of entries.
Note
This make sense only for a scalar valued basis.

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