Dune-Fufem 2.11-git
Loading...
Searching...
No Matches
Dune::Fufem::Forms::BoundUnaryOperator< Op, V > Class Template Reference

Wrapper binding a linear operator to a coefficient vector. More...

#include <dune/fufem/forms/boundunaryoperator.hh>

Inheritance diagram for Dune::Fufem::Forms::BoundUnaryOperator< Op, V >:
Inheritance graph

Classes

class  LocalOperator
 

Public Types

using Basis = std::decay_t< decltype(std::get< 0 >(std::declval< UnaryOperator >().basis()))>
 
using Vector = V
 
using Coefficient = Dune::AutonomousValue< decltype(std::declval< Vector >()[std::declval< typename Basis::MultiIndex >()])>
 
using GridView = typename Basis::GridView
 
using EntitySet = typename Dune::Functions::GridViewEntitySet< GridView, 0 >
 
using Domain = typename EntitySet::GlobalCoordinate
 
using LocalDomain = typename EntitySet::LocalCoordinate
 
using Element = typename EntitySet::Element
 
using Range = std::decay_t< decltype(std::declval< Coefficient >() *std::declval< typename UnaryOperator::Range >())>
 

Public Member Functions

 BoundUnaryOperator (const UnaryOperator &unaryOperator, const Vector &coefficients)
 
 BoundUnaryOperator (const UnaryOperator &unaryOperator, Vector &&coefficients)
 
 BoundUnaryOperator (const UnaryOperator &unaryOperator, std::shared_ptr< const Vector > coefficients)
 
auto basis () const
 
auto treePath () const
 
Range operator() (const Domain &x) const
 Evaluate function in global coordinates.
 
const EntitySetentitySet () const
 Get associated set of entities the local-function can be bound to.
 
const auto & unaryOperator () const
 
const auto & coefficients () const
 

Static Public Attributes

static constexpr std::size_t arity
 

Friends

LocalOperator localOperator (const BoundUnaryOperator &boundUnaryOperator)
 
template<bool dummy = true, std::enable_if_t< dummy and(BoundUnaryOperator::arity==0), int > = 0>
LocalFunctionAdaptor< LocalOperatorlocalFunction (const BoundUnaryOperator &boundUnaryOperator)
 
auto jacobian (const BoundUnaryOperator &f)
 
auto gradient (const BoundUnaryOperator &f)
 
auto grad (const BoundUnaryOperator &f)
 
auto divergence (const BoundUnaryOperator &f)
 
auto div (const BoundUnaryOperator &f)
 

Detailed Description

template<class Op, class V>
class Dune::Fufem::Forms::BoundUnaryOperator< Op, V >

Wrapper binding a linear operator to a coefficient vector.

Template Parameters
OpType of unary operator to be bound
VType of coefficient vector

Given a 1-linear operator on discrete function space associated to a basis, this returns the 0-linear operator obtained by application of the operator to the element of the function space represented by the coefficient vector.

The return value implements both, the Dune::Fufem::Forms interface of a 0-linear operator and the Dune::Functions interface of a GridFunction. Thus it can be used as coefficient in composed Dune::Fufem::Form expressions or in places requiring a GridFunction, e.g., for writing to vtk-files.

Member Typedef Documentation

◆ Basis

template<class Op , class V >
using Dune::Fufem::Forms::BoundUnaryOperator< Op, V >::Basis = std::decay_t<decltype(std::get<0>(std::declval<UnaryOperator>().basis()))>

◆ Coefficient

template<class Op , class V >
using Dune::Fufem::Forms::BoundUnaryOperator< Op, V >::Coefficient = Dune::AutonomousValue<decltype(std::declval<Vector>()[std::declval<typename Basis::MultiIndex>()])>

◆ Domain

template<class Op , class V >
using Dune::Fufem::Forms::BoundUnaryOperator< Op, V >::Domain = typename EntitySet::GlobalCoordinate

◆ Element

template<class Op , class V >
using Dune::Fufem::Forms::BoundUnaryOperator< Op, V >::Element = typename EntitySet::Element

◆ EntitySet

template<class Op , class V >
using Dune::Fufem::Forms::BoundUnaryOperator< Op, V >::EntitySet = typename Dune::Functions::GridViewEntitySet<GridView, 0>

◆ GridView

template<class Op , class V >
using Dune::Fufem::Forms::BoundUnaryOperator< Op, V >::GridView = typename Basis::GridView

◆ LocalDomain

template<class Op , class V >
using Dune::Fufem::Forms::BoundUnaryOperator< Op, V >::LocalDomain = typename EntitySet::LocalCoordinate

◆ Range

template<class Op , class V >
using Dune::Fufem::Forms::BoundUnaryOperator< Op, V >::Range = std::decay_t<decltype(std::declval<Coefficient>() * std::declval<typename UnaryOperator::Range>())>

◆ Vector

template<class Op , class V >
using Dune::Fufem::Forms::BoundUnaryOperator< Op, V >::Vector = V

Constructor & Destructor Documentation

◆ BoundUnaryOperator() [1/3]

template<class Op , class V >
Dune::Fufem::Forms::BoundUnaryOperator< Op, V >::BoundUnaryOperator ( const UnaryOperator &  unaryOperator,
const Vector coefficients 
)
inline

◆ BoundUnaryOperator() [2/3]

template<class Op , class V >
Dune::Fufem::Forms::BoundUnaryOperator< Op, V >::BoundUnaryOperator ( const UnaryOperator &  unaryOperator,
Vector &&  coefficients 
)
inline

◆ BoundUnaryOperator() [3/3]

template<class Op , class V >
Dune::Fufem::Forms::BoundUnaryOperator< Op, V >::BoundUnaryOperator ( const UnaryOperator &  unaryOperator,
std::shared_ptr< const Vector coefficients 
)
inline

Member Function Documentation

◆ basis()

template<class Op , class V >
auto Dune::Fufem::Forms::BoundUnaryOperator< Op, V >::basis ( ) const
inline

◆ coefficients()

template<class Op , class V >
const auto & Dune::Fufem::Forms::BoundUnaryOperator< Op, V >::coefficients ( ) const
inline

◆ entitySet()

template<class Op , class V >
const EntitySet & Dune::Fufem::Forms::BoundUnaryOperator< Op, V >::entitySet ( ) const
inline

Get associated set of entities the local-function can be bound to.

◆ operator()()

template<class Op , class V >
Range Dune::Fufem::Forms::BoundUnaryOperator< Op, V >::operator() ( const Domain x) const
inline

Evaluate function in global coordinates.

Note
This is not implemented and will throw an exception.

◆ treePath()

template<class Op , class V >
auto Dune::Fufem::Forms::BoundUnaryOperator< Op, V >::treePath ( ) const
inline

◆ unaryOperator()

template<class Op , class V >
const auto & Dune::Fufem::Forms::BoundUnaryOperator< Op, V >::unaryOperator ( ) const
inline

Friends And Related Symbol Documentation

◆ div

template<class Op , class V >
auto div ( const BoundUnaryOperator< Op, V > &  f)
friend

◆ divergence

template<class Op , class V >
auto divergence ( const BoundUnaryOperator< Op, V > &  f)
friend

◆ grad

template<class Op , class V >
auto grad ( const BoundUnaryOperator< Op, V > &  f)
friend

◆ gradient

template<class Op , class V >
auto gradient ( const BoundUnaryOperator< Op, V > &  f)
friend

◆ jacobian

template<class Op , class V >
auto jacobian ( const BoundUnaryOperator< Op, V > &  f)
friend

◆ localFunction

template<class Op , class V >
template<bool dummy = true, std::enable_if_t< dummy and(BoundUnaryOperator::arity==0), int > = 0>
LocalFunctionAdaptor< LocalOperator > localFunction ( const BoundUnaryOperator< Op, V > &  boundUnaryOperator)
friend

◆ localOperator

template<class Op , class V >
LocalOperator localOperator ( const BoundUnaryOperator< Op, V > &  boundUnaryOperator)
friend

Member Data Documentation

◆ arity

constexpr std::size_t Dune::Fufem::Forms::MultilinearOperator< k >::arity
staticconstexprinherited

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