dune-fem 2.8.0
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | List of all members
Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue > Class Template Reference

#include <dune/fem/schemes/integrands.hh>

Public Types

typedef GridPart GridPartType
 
typedef DomainValue DomainValueType
 
typedef RangeValue RangeValueType
 
typedef GridPartType::template Codim< 0 >::EntityType EntityType
 
typedef GridPartType::IntersectionType IntersectionType
 
using RRangeType = typename detail::GetDimRange< std::tuple_element_t< 0, RangeValueType > >::type
 
typedef std::array< int, RRangeType::dimension > DirichletComponentType
 
typedef EntityType::Geometry::LocalCoordinate DomainType
 

Public Member Functions

template<class Integrands , std::enable_if_t< IntegrandsTraits< std::decay_t< Integrands > >::isFull &&!isVirtualized< Integrands >::value, int > = 0>
 VirtualizedIntegrands (Integrands integrands)
 
template<class Integrands , std::enable_if_t< !IntegrandsTraits< Integrands >::isFull &&!isVirtualized< Integrands >::value, int > = 0>
 VirtualizedIntegrands (Integrands integrands)
 
 VirtualizedIntegrands (const This &other)
 
 VirtualizedIntegrands (This &&)=default
 
VirtualizedIntegrandsoperator= (const This &other)
 
VirtualizedIntegrandsoperator= (This &&)=default
 
 operator bool () const
 
bool init (const EntityType &entity)
 
bool init (const IntersectionType &intersection)
 
void unbind ()
 
bool hasInterior () const
 
template<class Quadrature , std::enable_if_t< std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0>
RangeValueType interior (const Fem::QuadraturePointWrapper< Quadrature > &x, const DomainValueType &u) const
 
template<class Quadrature , std::enable_if_t< !std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0>
RangeValueType interior (const Fem::QuadraturePointWrapper< Quadrature > &x, const DomainValueType &u) const
 
template<class Quadrature , std::enable_if_t< std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0>
auto linearizedInterior (const Fem::QuadraturePointWrapper< Quadrature > &x, const DomainValueType &u) const
 
template<class Quadrature , std::enable_if_t< !std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0>
auto linearizedInterior (const Fem::QuadraturePointWrapper< Quadrature > &x, const DomainValueType &u) const
 
bool hasBoundary () const
 
template<class Quadrature , std::enable_if_t< std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0>
RangeValueType boundary (const Fem::QuadraturePointWrapper< Quadrature > &x, const DomainValueType &u) const
 
template<class Quadrature , std::enable_if_t< !std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0>
RangeValueType boundary (const Fem::QuadraturePointWrapper< Quadrature > &x, const DomainValueType &u) const
 
template<class Quadrature , std::enable_if_t< std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0>
auto linearizedBoundary (const Fem::QuadraturePointWrapper< Quadrature > &x, const DomainValueType &u) const
 
template<class Quadrature , std::enable_if_t< !std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0>
auto linearizedBoundary (const Fem::QuadraturePointWrapper< Quadrature > &x, const DomainValueType &u) const
 
bool hasSkeleton () const
 
template<class Quadrature , std::enable_if_t< std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0>
std::pair< RangeValueType, RangeValueTypeskeleton (const Fem::QuadraturePointWrapper< Quadrature > &xIn, const DomainValueType &uIn, const Fem::QuadraturePointWrapper< Quadrature > &xOut, const DomainValueType &uOut) const
 
template<class Quadrature , std::enable_if_t< !std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0>
std::pair< RangeValueType, RangeValueTypeskeleton (const Fem::QuadraturePointWrapper< Quadrature > &xIn, const DomainValueType &uIn, const Fem::QuadraturePointWrapper< Quadrature > &xOut, const DomainValueType &uOut) const
 
template<class Quadrature , std::enable_if_t< std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0>
auto linearizedSkeleton (const Fem::QuadraturePointWrapper< Quadrature > &xIn, const DomainValueType &uIn, const Fem::QuadraturePointWrapper< Quadrature > &xOut, const DomainValueType &uOut) const
 
template<class Quadrature , std::enable_if_t< !std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0>
auto linearizedSkeleton (const Fem::QuadraturePointWrapper< Quadrature > &xIn, const DomainValueType &uIn, const Fem::QuadraturePointWrapper< Quadrature > &xOut, const DomainValueType &uOut) const
 
bool hasDirichletBoundary () const
 
bool isDirichletIntersection (const IntersectionType &inter, DirichletComponentType &dirichletComponent) const
 
void dirichlet (int bndId, const DomainType &x, RRangeType &value) const
 

Member Typedef Documentation

◆ DirichletComponentType

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
typedef std::array<int,RRangeType::dimension> Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::DirichletComponentType

◆ DomainType

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
typedef EntityType::Geometry::LocalCoordinate Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::DomainType

◆ DomainValueType

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
typedef DomainValue Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::DomainValueType

◆ EntityType

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
typedef GridPartType::template Codim<0>::EntityType Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::EntityType

◆ GridPartType

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
typedef GridPart Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::GridPartType

◆ IntersectionType

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
typedef GridPartType::IntersectionType Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::IntersectionType

◆ RangeValueType

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
typedef RangeValue Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::RangeValueType

◆ RRangeType

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
using Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::RRangeType = typename detail::GetDimRange<std::tuple_element_t<0,RangeValueType> >::type

Constructor & Destructor Documentation

◆ VirtualizedIntegrands() [1/4]

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
template<class Integrands , std::enable_if_t< IntegrandsTraits< std::decay_t< Integrands > >::isFull &&!isVirtualized< Integrands >::value, int > = 0>
Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::VirtualizedIntegrands ( Integrands  integrands)
inlineexplicit

◆ VirtualizedIntegrands() [2/4]

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
template<class Integrands , std::enable_if_t< !IntegrandsTraits< Integrands >::isFull &&!isVirtualized< Integrands >::value, int > = 0>
Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::VirtualizedIntegrands ( Integrands  integrands)
inlineexplicit

◆ VirtualizedIntegrands() [3/4]

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::VirtualizedIntegrands ( const This other)
inline

◆ VirtualizedIntegrands() [4/4]

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::VirtualizedIntegrands ( This &&  )
default

Member Function Documentation

◆ boundary() [1/2]

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
template<class Quadrature , std::enable_if_t< std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0>
RangeValueType Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::boundary ( const Fem::QuadraturePointWrapper< Quadrature > &  x,
const DomainValueType u 
) const
inline

◆ boundary() [2/2]

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
template<class Quadrature , std::enable_if_t< !std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0>
RangeValueType Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::boundary ( const Fem::QuadraturePointWrapper< Quadrature > &  x,
const DomainValueType u 
) const
inline

◆ dirichlet()

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
void Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::dirichlet ( int  bndId,
const DomainType x,
RRangeType value 
) const
inline

◆ hasBoundary()

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
bool Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::hasBoundary ( ) const
inline

◆ hasDirichletBoundary()

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
bool Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::hasDirichletBoundary ( ) const
inline

◆ hasInterior()

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
bool Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::hasInterior ( ) const
inline

◆ hasSkeleton()

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
bool Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::hasSkeleton ( ) const
inline

◆ init() [1/2]

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
bool Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::init ( const EntityType entity)
inline

◆ init() [2/2]

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
bool Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::init ( const IntersectionType intersection)
inline

◆ interior() [1/2]

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
template<class Quadrature , std::enable_if_t< std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0>
RangeValueType Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::interior ( const Fem::QuadraturePointWrapper< Quadrature > &  x,
const DomainValueType u 
) const
inline

◆ interior() [2/2]

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
template<class Quadrature , std::enable_if_t< !std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0>
RangeValueType Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::interior ( const Fem::QuadraturePointWrapper< Quadrature > &  x,
const DomainValueType u 
) const
inline

◆ isDirichletIntersection()

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
bool Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::isDirichletIntersection ( const IntersectionType inter,
DirichletComponentType dirichletComponent 
) const
inline

◆ linearizedBoundary() [1/2]

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
template<class Quadrature , std::enable_if_t< std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0>
auto Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::linearizedBoundary ( const Fem::QuadraturePointWrapper< Quadrature > &  x,
const DomainValueType u 
) const
inline

◆ linearizedBoundary() [2/2]

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
template<class Quadrature , std::enable_if_t< !std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0>
auto Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::linearizedBoundary ( const Fem::QuadraturePointWrapper< Quadrature > &  x,
const DomainValueType u 
) const
inline

◆ linearizedInterior() [1/2]

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
template<class Quadrature , std::enable_if_t< std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0>
auto Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::linearizedInterior ( const Fem::QuadraturePointWrapper< Quadrature > &  x,
const DomainValueType u 
) const
inline

◆ linearizedInterior() [2/2]

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
template<class Quadrature , std::enable_if_t< !std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0>
auto Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::linearizedInterior ( const Fem::QuadraturePointWrapper< Quadrature > &  x,
const DomainValueType u 
) const
inline

◆ linearizedSkeleton() [1/2]

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
template<class Quadrature , std::enable_if_t< std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0>
auto Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::linearizedSkeleton ( const Fem::QuadraturePointWrapper< Quadrature > &  xIn,
const DomainValueType uIn,
const Fem::QuadraturePointWrapper< Quadrature > &  xOut,
const DomainValueType uOut 
) const
inline

◆ linearizedSkeleton() [2/2]

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
template<class Quadrature , std::enable_if_t< !std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0>
auto Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::linearizedSkeleton ( const Fem::QuadraturePointWrapper< Quadrature > &  xIn,
const DomainValueType uIn,
const Fem::QuadraturePointWrapper< Quadrature > &  xOut,
const DomainValueType uOut 
) const
inline

◆ operator bool()

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::operator bool ( ) const
inlineexplicit

◆ operator=() [1/2]

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
VirtualizedIntegrands & Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::operator= ( const This other)
inline

◆ operator=() [2/2]

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
VirtualizedIntegrands & Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::operator= ( This &&  )
default

◆ skeleton() [1/2]

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
template<class Quadrature , std::enable_if_t< std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0>
std::pair< RangeValueType, RangeValueType > Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::skeleton ( const Fem::QuadraturePointWrapper< Quadrature > &  xIn,
const DomainValueType uIn,
const Fem::QuadraturePointWrapper< Quadrature > &  xOut,
const DomainValueType uOut 
) const
inline

◆ skeleton() [2/2]

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
template<class Quadrature , std::enable_if_t< !std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0>
std::pair< RangeValueType, RangeValueType > Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::skeleton ( const Fem::QuadraturePointWrapper< Quadrature > &  xIn,
const DomainValueType uIn,
const Fem::QuadraturePointWrapper< Quadrature > &  xOut,
const DomainValueType uOut 
) const
inline

◆ unbind()

template<class GridPart , class DomainValue , class RangeValue = DomainValue>
void Dune::Fem::VirtualizedIntegrands< GridPart, DomainValue, RangeValue >::unbind ( )
inline

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