KASKADE 7 development version
Public Types | Public Member Functions | List of all members
Kaskade::CacheBase< Functional, Cache, ScalarT > Class Template Reference

Provides implementations of d1 and d2 for (possibly mixed) use of scalar and power spaces. More...

#include <functional_aux.hh>

Detailed Description

template<class Functional, class Cache, class ScalarT = typename Functional::Scalar>
class Kaskade::CacheBase< Functional, Cache, ScalarT >

Provides implementations of d1 and d2 for (possibly mixed) use of scalar and power spaces.

Implemented using CRTP. Just derive publicly from this functional if you want to use it. Uses VariationalArg as perturbation.

Todo:
docme better
Template Parameters
Functionalactual functional (only transports static information)
CacheFunctional::DomainCache or Functional::BoundaryCache, must implement Scalar d1_impl(...); and Scalar d2_impl(...);

Definition at line 327 of file functional_aux.hh.

Inheritance diagram for Kaskade::CacheBase< Functional, Cache, ScalarT >:
Kaskade::TrivialCacheBase< Functional::AnsatzVars, Functional::TestVars >

Public Types

using Scalar = ScalarT
 
using AnsatzVars = typename Functional::AnsatzVars
 
using TestVars = typename Functional::TestVars
 

Public Member Functions

template<int row, int dimw>
Scalar d1_local (VariationalArg< Scalar, dimw, TestComponents< row >::value > const &arg) const
 forward to implementation via CRTP More...
 
template<int row, int dimw>
Dune::FieldVector< Scalar, 1 > d1 (VariationalArg< Scalar, dimw, TestComponents< row >::value > const &arg) const
 
template<int row, int dimw, class enable = typename std::enable_if_t<Functional_Aux_Detail::LessThan<1,TestComponents<row>::value>::value>>
Vector< row > d1 (VariationalArg< Scalar, dimw > const &scalarArg) const
 scalar argument for multi-component variables More...
 
template<int row, int col, int dim>
Scalar d2_local (VariationalArg< Scalar, dim, TestComponents< row >::value > const &arg1, VariationalArg< Scalar, dim, AnsatzComponents< col >::value > const &arg2) const
 forward to implementation via CRTP More...
 
template<int row, int col, int dim, class enable1 = typename std::enable_if_t<Functional_Aux_Detail::LessThan<1,TestComponents<row>::value>::value>, class enable2 = typename std::enable_if_t<Functional_Aux_Detail::LessThan<1,AnsatzComponents<row>::value>::value>>
Dune::FieldMatrix< Scalar, 1, 1 > d2 (VariationalArg< Scalar, dim, TestComponents< row >::value > const &arg1, VariationalArg< Scalar, dim, AnsatzComponents< col >::value > const &arg2) const
 
template<int row, int col, int dim, int m2, class enable1 = typename std::enable_if<Functional_Aux_Detail::LessThan<1,TestComponents<row>::value>::value>::type, class enable2 = typename std::enable_if<Functional_Aux_Detail::Equals<m2,AnsatzComponents<col>::value>::value>::type, class enable3 = typename std::enable_if<Functional_Aux_Detail::LessThan<1,AnsatzComponents<col>::value>::value>::type>
Vector< row > d2 (VariationalArg< Scalar, dim > const &scalarArg, VariationalArg< Scalar, dim, m2 > const &arg2) const
 scalar argument for multi-component variables More...
 
template<int row, int col, int dim, int m1, class enable1 = typename std::enable_if<Functional_Aux_Detail::Equals<m1,TestComponents<row>::value>::value>::type, class enable2 = typename std::enable_if<Functional_Aux_Detail::LessThan<1,TestComponents<row>::value>::value>::type, class enable3 = typename std::enable_if<Functional_Aux_Detail::LessThan<1,AnsatzComponents<col>::value>::value>::type>
Vector< row > d2 (VariationalArg< Scalar, dim, m1 > const &arg1, VariationalArg< Scalar, dim > const &scalarArg) const
 scalar argument for multi-component variables More...
 
template<int row, int col, int dim>
Matrix< row, col > d2 (VariationalArg< Scalar, dim > const &scalarArg1, VariationalArg< Scalar, dim > const &scalarArg2) const
 scalar argument for multi-component variables More...
 
template<int row, int col, int dim>
Scalar b2_local (VariationalArg< Scalar, dim, TestComponents< row >::value > const &arg1, VariationalArg< Scalar, dim, AnsatzComponents< col >::value > const &arg2) const
 forward to implementation via CRTP More...
 
template<int row, int col, int dim, class enable1 = typename std::enable_if<Functional_Aux_Detail::LessThan<1,TestComponents<row>::value>::value>::type, class enable2 = typename std::enable_if<Functional_Aux_Detail::LessThan<1,AnsatzComponents<row>::value>::value>::type>
Dune::FieldMatrix< Scalar, 1, 1 > b2 (VariationalArg< Scalar, dim, TestComponents< row >::value > const &arg1, VariationalArg< Scalar, dim, AnsatzComponents< col >::value > const &arg2) const
 
template<int row, int col, int dim, int m2, class enable1 = typename std::enable_if<Functional_Aux_Detail::LessThan<1,TestComponents<row>::value>::value>::type, class enable2 = typename std::enable_if<Functional_Aux_Detail::Equals<m2,AnsatzComponents<col>::value>::value>::type, class enable3 = typename std::enable_if<Functional_Aux_Detail::LessThan<1,AnsatzComponents<col>::value>::value>::type>
Vector< row > b2 (VariationalArg< Scalar, dim > const &scalarArg, VariationalArg< Scalar, dim, m2 > const &arg2) const
 scalar argument for multi-component variables More...
 
template<int row, int col, int dim, int m1, class enable1 = typename std::enable_if<Functional_Aux_Detail::Equals<m1,TestComponents<row>::value>::value>::type, class enable2 = typename std::enable_if<Functional_Aux_Detail::LessThan<1,TestComponents<row>::value>::value>::type, class enable3 = typename std::enable_if<Functional_Aux_Detail::LessThan<1,AnsatzComponents<col>::value>::value>::type>
Vector< row > b2 (VariationalArg< Scalar, dim, m1 > const &arg1, VariationalArg< Scalar, dim > const &scalarArg) const
 scalar argument for multi-component variables More...
 
template<int row, int col, int dim>
Matrix< row, col > b2 (VariationalArg< Scalar, dim > const &scalarArg1, VariationalArg< Scalar, dim > const &scalarArg2) const
 scalar argument for multi-component variables More...
 
void moveTo (Entity const &)
 
void evaluateAt (Position const &, Evaluators const &)
 
Scalar d0 ()
 
Dune::FieldVector< Scalar, TestVars::template components< row > > d1 (VariationalArg< Scalar, dim > const &arg) const
 
Dune::FieldMatrix< Scalar, TestVars::template components< row >, AnsatzVars::template components< row > > d2 (VariationalArg< Scalar, dim > const &, VariationalArg< Scalar, dim > const &) const
 

Member Typedef Documentation

◆ AnsatzVars

template<class Functional , class Cache , class ScalarT = typename Functional::Scalar>
using Kaskade::CacheBase< Functional, Cache, ScalarT >::AnsatzVars = typename Functional::AnsatzVars

Definition at line 331 of file functional_aux.hh.

◆ Scalar

template<class Functional , class Cache , class ScalarT = typename Functional::Scalar>
using Kaskade::CacheBase< Functional, Cache, ScalarT >::Scalar = ScalarT

Definition at line 330 of file functional_aux.hh.

◆ TestVars

template<class Functional , class Cache , class ScalarT = typename Functional::Scalar>
using Kaskade::CacheBase< Functional, Cache, ScalarT >::TestVars = typename Functional::TestVars

Definition at line 332 of file functional_aux.hh.

Member Function Documentation

◆ b2() [1/4]

template<class Functional , class Cache , class ScalarT = typename Functional::Scalar>
template<int row, int col, int dim, int m2, class enable1 = typename std::enable_if<Functional_Aux_Detail::LessThan<1,TestComponents<row>::value>::value>::type, class enable2 = typename std::enable_if<Functional_Aux_Detail::Equals<m2,AnsatzComponents<col>::value>::value>::type, class enable3 = typename std::enable_if<Functional_Aux_Detail::LessThan<1,AnsatzComponents<col>::value>::value>::type>
Vector< row > Kaskade::CacheBase< Functional, Cache, ScalarT >::b2 ( VariationalArg< Scalar, dim > const &  scalarArg,
VariationalArg< Scalar, dim, m2 > const &  arg2 
) const
inline

scalar argument for multi-component variables

Definition at line 476 of file functional_aux.hh.

◆ b2() [2/4]

template<class Functional , class Cache , class ScalarT = typename Functional::Scalar>
template<int row, int col, int dim>
Matrix< row, col > Kaskade::CacheBase< Functional, Cache, ScalarT >::b2 ( VariationalArg< Scalar, dim > const &  scalarArg1,
VariationalArg< Scalar, dim > const &  scalarArg2 
) const
inline

scalar argument for multi-component variables

Definition at line 514 of file functional_aux.hh.

◆ b2() [3/4]

template<class Functional , class Cache , class ScalarT = typename Functional::Scalar>
template<int row, int col, int dim, int m1, class enable1 = typename std::enable_if<Functional_Aux_Detail::Equals<m1,TestComponents<row>::value>::value>::type, class enable2 = typename std::enable_if<Functional_Aux_Detail::LessThan<1,TestComponents<row>::value>::value>::type, class enable3 = typename std::enable_if<Functional_Aux_Detail::LessThan<1,AnsatzComponents<col>::value>::value>::type>
Vector< row > Kaskade::CacheBase< Functional, Cache, ScalarT >::b2 ( VariationalArg< Scalar, dim, m1 > const &  arg1,
VariationalArg< Scalar, dim > const &  scalarArg 
) const
inline

scalar argument for multi-component variables

Definition at line 497 of file functional_aux.hh.

◆ b2() [4/4]

template<class Functional , class Cache , class ScalarT = typename Functional::Scalar>
template<int row, int col, int dim, class enable1 = typename std::enable_if<Functional_Aux_Detail::LessThan<1,TestComponents<row>::value>::value>::type, class enable2 = typename std::enable_if<Functional_Aux_Detail::LessThan<1,AnsatzComponents<row>::value>::value>::type>
Dune::FieldMatrix< Scalar, 1, 1 > Kaskade::CacheBase< Functional, Cache, ScalarT >::b2 ( VariationalArg< Scalar, dim, TestComponents< row >::value > const &  arg1,
VariationalArg< Scalar, dim, AnsatzComponents< col >::value > const &  arg2 
) const
inline

Definition at line 465 of file functional_aux.hh.

◆ b2_local()

template<class Functional , class Cache , class ScalarT = typename Functional::Scalar>
template<int row, int col, int dim>
Scalar Kaskade::CacheBase< Functional, Cache, ScalarT >::b2_local ( VariationalArg< Scalar, dim, TestComponents< row >::value > const &  arg1,
VariationalArg< Scalar, dim, AnsatzComponents< col >::value > const &  arg2 
) const
inline

forward to implementation via CRTP

Definition at line 456 of file functional_aux.hh.

◆ d0()

Scalar Kaskade::TrivialCacheBase< Functional::AnsatzVars , Functional::TestVars >::d0 ( )
inlineinherited

Definition at line 291 of file functional_aux.hh.

◆ d1() [1/3]

Dune::FieldVector< Scalar, TestVars::template components< row > > Kaskade::TrivialCacheBase< Functional::AnsatzVars , Functional::TestVars >::d1 ( VariationalArg< Scalar, dim > const &  arg) const
inlineinherited

Definition at line 297 of file functional_aux.hh.

◆ d1() [2/3]

template<class Functional , class Cache , class ScalarT = typename Functional::Scalar>
template<int row, int dimw, class enable = typename std::enable_if_t<Functional_Aux_Detail::LessThan<1,TestComponents<row>::value>::value>>
Vector< row > Kaskade::CacheBase< Functional, Cache, ScalarT >::d1 ( VariationalArg< Scalar, dimw > const &  scalarArg) const
inline

scalar argument for multi-component variables

Definition at line 356 of file functional_aux.hh.

◆ d1() [3/3]

template<class Functional , class Cache , class ScalarT = typename Functional::Scalar>
template<int row, int dimw>
Dune::FieldVector< Scalar, 1 > Kaskade::CacheBase< Functional, Cache, ScalarT >::d1 ( VariationalArg< Scalar, dimw, TestComponents< row >::value > const &  arg) const
inline

Definition at line 349 of file functional_aux.hh.

◆ d1_local()

template<class Functional , class Cache , class ScalarT = typename Functional::Scalar>
template<int row, int dimw>
Scalar Kaskade::CacheBase< Functional, Cache, ScalarT >::d1_local ( VariationalArg< Scalar, dimw, TestComponents< row >::value > const &  arg) const
inline

forward to implementation via CRTP

Definition at line 343 of file functional_aux.hh.

◆ d2() [1/5]

Dune::FieldMatrix< Scalar, TestVars::template components< row >, AnsatzVars::template components< row > > Kaskade::TrivialCacheBase< Functional::AnsatzVars , Functional::TestVars >::d2 ( VariationalArg< Scalar, dim > const &  ,
VariationalArg< Scalar, dim > const &   
) const
inlineinherited

Definition at line 304 of file functional_aux.hh.

◆ d2() [2/5]

template<class Functional , class Cache , class ScalarT = typename Functional::Scalar>
template<int row, int col, int dim, int m2, class enable1 = typename std::enable_if<Functional_Aux_Detail::LessThan<1,TestComponents<row>::value>::value>::type, class enable2 = typename std::enable_if<Functional_Aux_Detail::Equals<m2,AnsatzComponents<col>::value>::value>::type, class enable3 = typename std::enable_if<Functional_Aux_Detail::LessThan<1,AnsatzComponents<col>::value>::value>::type>
Vector< row > Kaskade::CacheBase< Functional, Cache, ScalarT >::d2 ( VariationalArg< Scalar, dim > const &  scalarArg,
VariationalArg< Scalar, dim, m2 > const &  arg2 
) const
inline

scalar argument for multi-component variables

Definition at line 394 of file functional_aux.hh.

◆ d2() [3/5]

template<class Functional , class Cache , class ScalarT = typename Functional::Scalar>
template<int row, int col, int dim>
Matrix< row, col > Kaskade::CacheBase< Functional, Cache, ScalarT >::d2 ( VariationalArg< Scalar, dim > const &  scalarArg1,
VariationalArg< Scalar, dim > const &  scalarArg2 
) const
inline

scalar argument for multi-component variables

Definition at line 432 of file functional_aux.hh.

◆ d2() [4/5]

template<class Functional , class Cache , class ScalarT = typename Functional::Scalar>
template<int row, int col, int dim, int m1, class enable1 = typename std::enable_if<Functional_Aux_Detail::Equals<m1,TestComponents<row>::value>::value>::type, class enable2 = typename std::enable_if<Functional_Aux_Detail::LessThan<1,TestComponents<row>::value>::value>::type, class enable3 = typename std::enable_if<Functional_Aux_Detail::LessThan<1,AnsatzComponents<col>::value>::value>::type>
Vector< row > Kaskade::CacheBase< Functional, Cache, ScalarT >::d2 ( VariationalArg< Scalar, dim, m1 > const &  arg1,
VariationalArg< Scalar, dim > const &  scalarArg 
) const
inline

scalar argument for multi-component variables

Definition at line 415 of file functional_aux.hh.

◆ d2() [5/5]

template<class Functional , class Cache , class ScalarT = typename Functional::Scalar>
template<int row, int col, int dim, class enable1 = typename std::enable_if_t<Functional_Aux_Detail::LessThan<1,TestComponents<row>::value>::value>, class enable2 = typename std::enable_if_t<Functional_Aux_Detail::LessThan<1,AnsatzComponents<row>::value>::value>>
Dune::FieldMatrix< Scalar, 1, 1 > Kaskade::CacheBase< Functional, Cache, ScalarT >::d2 ( VariationalArg< Scalar, dim, TestComponents< row >::value > const &  arg1,
VariationalArg< Scalar, dim, AnsatzComponents< col >::value > const &  arg2 
) const
inline

Definition at line 383 of file functional_aux.hh.

◆ d2_local()

template<class Functional , class Cache , class ScalarT = typename Functional::Scalar>
template<int row, int col, int dim>
Scalar Kaskade::CacheBase< Functional, Cache, ScalarT >::d2_local ( VariationalArg< Scalar, dim, TestComponents< row >::value > const &  arg1,
VariationalArg< Scalar, dim, AnsatzComponents< col >::value > const &  arg2 
) const
inline

forward to implementation via CRTP

Definition at line 374 of file functional_aux.hh.

◆ evaluateAt()

void Kaskade::TrivialCacheBase< Functional::AnsatzVars , Functional::TestVars >::evaluateAt ( Position const &  ,
Evaluators const &   
)
inlineinherited

Definition at line 289 of file functional_aux.hh.

◆ moveTo()

void Kaskade::TrivialCacheBase< Functional::AnsatzVars , Functional::TestVars >::moveTo ( Entity const &  )
inlineinherited

Definition at line 286 of file functional_aux.hh.


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