dune-pdelab 2.7-git
Loading...
Searching...
No Matches
Classes | Functions | Variables
Dune::PDELab::impl Namespace Reference

Classes

class  BlockDiagonalAccumulationViewWrapper
 
struct  BlockDiagonalOperator
 Create ISTL operator that applies a local block diagonal. More...
 
struct  isBlockSORPreconditionerLocalOperator
 
struct  isBlockSORPreconditionerLocalOperator< BlockSORPreconditionerLocalOperator< JacobianLOP, BlockOffDiagonalLOP, GridFunctionSpace > >
 
struct  isFastDGGridOperator
 
struct  isFastDGGridOperator< FastDGGridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV > >
 
class  LocalPointJacobiPreconditioner
 
class  PointDiagonalAccumulationViewWrapper
 
struct  Result
 
class  ScalarL2
 
class  WeightedPointDiagonalAccumulationView
 
class  ZeroViewWrapper
 
class  ZeroViewWrapper< AliasedVectorView< Container, LocalFunctionSpaceCache > >
 

Functions

template<typename T >
constexpr auto lambdaToTemplate (const T &t)
 
template<typename T >
constexpr auto hasOldLOPInterface (T &t) -> typename std::enable_if<(decltype(hasOldOrNewJacobianApplyVolume(t))::value &&!decltype(hasNewJacobianApplyVolume(t))::value)||(decltype(hasOldOrNewJacobianApplyVolumePostSkeleton(t))::value &&!decltype(hasNewJacobianApplyVolumePostSkeleton(t))::value)||(decltype(hasOldOrNewJacobianApplySkeleton(t))::value &&!decltype(hasNewJacobianApplySkeleton(t))::value)||(decltype(hasOldOrNewJacobianApplyBoundary(t))::value &&!decltype(hasNewJacobianApplyBoundary(t))::value), std::true_type >::type
 
template<typename LOP , typename EG , typename LFSU , typename X , typename LFSV , typename Y >
std::enable_if_t< LOP::isLinear > jacobianApplyVolume (const LOP &lop, const EG &eg, const LFSU &lfsu, const X &z, const LFSV &lfsv, Y &y)
 
template<typename LOP , typename EG , typename LFSU , typename X , typename Z , typename LFSV , typename Y >
std::enable_if_t< LOP::isLinear > jacobianApplyVolume (const LOP &lop, const EG &eg, const LFSU &lfsu, const X &x, const Z &z, const LFSV &lfsv, Y &y)
 
template<typename LOP , typename EG , typename LFSU , typename X , typename LFSV , typename Y >
std::enable_if_t< not LOP::isLinear > jacobianApplyVolume (const LOP &lop, const EG &eg, const LFSU &lfsu, const X &z, const LFSV &lfsv, Y &y)
 
template<typename LOP , typename EG , typename LFSU , typename X , typename Z , typename LFSV , typename Y >
std::enable_if_t< not LOP::isLinear > jacobianApplyVolume (const LOP &lop, const EG &eg, const LFSU &lfsu, const X &x, const Z &z, const LFSV &lfsv, Y &y)
 
template<typename LOP , typename IG , typename LFSU , typename X , typename LFSV , typename Y >
std::enable_if_t< LOP::isLinear > jacobianApplySkeleton (const LOP &lop, const IG &ig, const LFSU &lfsu_s, const X &z_s, const LFSV &lfsv_s, const LFSU &lfsu_n, const X &z_n, const LFSV &lfsv_n, Y &y_s, Y &y_n)
 
template<typename LOP , typename IG , typename LFSU , typename X , typename Z , typename LFSV , typename Y >
std::enable_if_t< LOP::isLinear > jacobianApplySkeleton (const LOP &lop, const IG &ig, const LFSU &lfsu_s, const X &x_s, const Z &z_s, const LFSV &lfsv_s, const LFSU &lfsu_n, const X &x_n, const Z &z_n, const LFSV &lfsv_n, Y &y_s, Y &y_n)
 
template<typename LOP , typename IG , typename LFSU , typename X , typename LFSV , typename Y >
std::enable_if_t< not LOP::isLinear > jacobianApplySkeleton (const LOP &lop, const IG &ig, const LFSU &lfsu_s, const X &z_s, const LFSV &lfsv_s, const LFSU &lfsu_n, const X &z_n, const LFSV &lfsv_n, Y &y_s, Y &y_n)
 
template<typename LOP , typename IG , typename LFSU , typename X , typename Z , typename LFSV , typename Y >
std::enable_if_t< not LOP::isLinear > jacobianApplySkeleton (const LOP &lop, const IG &ig, const LFSU &lfsu_s, const X &x_s, const Z &z_s, const LFSV &lfsv_s, const LFSU &lfsu_n, const X &x_n, const Z &z_n, const LFSV &lfsv_n, Y &y_s, Y &y_n)
 
template<typename LOP , typename IG , typename LFSU , typename X , typename LFSV , typename Y >
std::enable_if_t< LOP::isLinear > jacobianApplyBoundary (const LOP &lop, const IG &ig, const LFSU &lfsu_s, const X &z_s, const LFSV &lfsv_s, Y &y_s)
 
template<typename LOP , typename IG , typename LFSU , typename X , typename Z , typename LFSV , typename Y >
std::enable_if_t< LOP::isLinear > jacobianApplyBoundary (const LOP &lop, const IG &ig, const LFSU &lfsu_s, const X &x_s, const Z &z_s, const LFSV &lfsv_s, Y &y_s)
 
template<typename LOP , typename IG , typename LFSU , typename X , typename LFSV , typename Y >
std::enable_if_t< not LOP::isLinear > jacobianApplyBoundary (const LOP &lop, const IG &ig, const LFSU &lfsu_s, const X &z_s, const LFSV &lfsv_s, Y &y_s)
 
template<typename LOP , typename IG , typename LFSU , typename X , typename Z , typename LFSV , typename Y >
std::enable_if_t< not LOP::isLinear > jacobianApplyBoundary (const LOP &lop, const IG &ig, const LFSU &lfsu_s, const X &x_s, const Z &z_s, const LFSV &lfsv_s, Y &y_s)
 

Variables

auto hasNewJacobianApplyVolume
 
auto hasNewJacobianApplyVolumePostSkeleton
 
auto hasNewJacobianApplySkeleton
 
auto hasNewJacobianApplyBoundary
 
auto hasOldOrNewJacobianApplyVolume
 
auto hasOldOrNewJacobianApplyVolumePostSkeleton
 
auto hasOldOrNewJacobianApplySkeleton
 
auto hasOldOrNewJacobianApplyBoundary
 

Function Documentation

◆ hasOldLOPInterface()

template<typename T >
constexpr auto Dune::PDELab::impl::hasOldLOPInterface ( T &  t) -> typename std::enable_if< (decltype(hasOldOrNewJacobianApplyVolume(t))::value && !decltype(hasNewJacobianApplyVolume(t))::value) || (decltype(hasOldOrNewJacobianApplyVolumePostSkeleton(t))::value && !decltype(hasNewJacobianApplyVolumePostSkeleton(t))::value) || (decltype(hasOldOrNewJacobianApplySkeleton(t))::value && !decltype(hasNewJacobianApplySkeleton(t))::value) || (decltype(hasOldOrNewJacobianApplyBoundary(t))::value && !decltype(hasNewJacobianApplyBoundary(t))::value), std::true_type>::type
constexpr

◆ jacobianApplyBoundary() [1/4]

template<typename LOP , typename IG , typename LFSU , typename X , typename Z , typename LFSV , typename Y >
std::enable_if_t< LOP::isLinear > Dune::PDELab::impl::jacobianApplyBoundary ( const LOP &  lop,
const IG &  ig,
const LFSU &  lfsu_s,
const X &  x_s,
const Z &  z_s,
const LFSV &  lfsv_s,
Y &  y_s 
)

◆ jacobianApplyBoundary() [2/4]

template<typename LOP , typename IG , typename LFSU , typename X , typename Z , typename LFSV , typename Y >
std::enable_if_t< not LOP::isLinear > Dune::PDELab::impl::jacobianApplyBoundary ( const LOP &  lop,
const IG &  ig,
const LFSU &  lfsu_s,
const X &  x_s,
const Z &  z_s,
const LFSV &  lfsv_s,
Y &  y_s 
)

◆ jacobianApplyBoundary() [3/4]

template<typename LOP , typename IG , typename LFSU , typename X , typename LFSV , typename Y >
std::enable_if_t< LOP::isLinear > Dune::PDELab::impl::jacobianApplyBoundary ( const LOP &  lop,
const IG &  ig,
const LFSU &  lfsu_s,
const X &  z_s,
const LFSV &  lfsv_s,
Y &  y_s 
)

◆ jacobianApplyBoundary() [4/4]

template<typename LOP , typename IG , typename LFSU , typename X , typename LFSV , typename Y >
std::enable_if_t< not LOP::isLinear > Dune::PDELab::impl::jacobianApplyBoundary ( const LOP &  lop,
const IG &  ig,
const LFSU &  lfsu_s,
const X &  z_s,
const LFSV &  lfsv_s,
Y &  y_s 
)

◆ jacobianApplySkeleton() [1/4]

template<typename LOP , typename IG , typename LFSU , typename X , typename Z , typename LFSV , typename Y >
std::enable_if_t< LOP::isLinear > Dune::PDELab::impl::jacobianApplySkeleton ( const LOP &  lop,
const IG &  ig,
const LFSU &  lfsu_s,
const X &  x_s,
const Z &  z_s,
const LFSV &  lfsv_s,
const LFSU &  lfsu_n,
const X &  x_n,
const Z &  z_n,
const LFSV &  lfsv_n,
Y &  y_s,
Y &  y_n 
)

◆ jacobianApplySkeleton() [2/4]

template<typename LOP , typename IG , typename LFSU , typename X , typename Z , typename LFSV , typename Y >
std::enable_if_t< not LOP::isLinear > Dune::PDELab::impl::jacobianApplySkeleton ( const LOP &  lop,
const IG &  ig,
const LFSU &  lfsu_s,
const X &  x_s,
const Z &  z_s,
const LFSV &  lfsv_s,
const LFSU &  lfsu_n,
const X &  x_n,
const Z &  z_n,
const LFSV &  lfsv_n,
Y &  y_s,
Y &  y_n 
)

◆ jacobianApplySkeleton() [3/4]

template<typename LOP , typename IG , typename LFSU , typename X , typename LFSV , typename Y >
std::enable_if_t< LOP::isLinear > Dune::PDELab::impl::jacobianApplySkeleton ( const LOP &  lop,
const IG &  ig,
const LFSU &  lfsu_s,
const X &  z_s,
const LFSV &  lfsv_s,
const LFSU &  lfsu_n,
const X &  z_n,
const LFSV &  lfsv_n,
Y &  y_s,
Y &  y_n 
)

◆ jacobianApplySkeleton() [4/4]

template<typename LOP , typename IG , typename LFSU , typename X , typename LFSV , typename Y >
std::enable_if_t< not LOP::isLinear > Dune::PDELab::impl::jacobianApplySkeleton ( const LOP &  lop,
const IG &  ig,
const LFSU &  lfsu_s,
const X &  z_s,
const LFSV &  lfsv_s,
const LFSU &  lfsu_n,
const X &  z_n,
const LFSV &  lfsv_n,
Y &  y_s,
Y &  y_n 
)

◆ jacobianApplyVolume() [1/4]

template<typename LOP , typename EG , typename LFSU , typename X , typename Z , typename LFSV , typename Y >
std::enable_if_t< LOP::isLinear > Dune::PDELab::impl::jacobianApplyVolume ( const LOP &  lop,
const EG &  eg,
const LFSU &  lfsu,
const X &  x,
const Z &  z,
const LFSV &  lfsv,
Y &  y 
)

◆ jacobianApplyVolume() [2/4]

template<typename LOP , typename EG , typename LFSU , typename X , typename Z , typename LFSV , typename Y >
std::enable_if_t< not LOP::isLinear > Dune::PDELab::impl::jacobianApplyVolume ( const LOP &  lop,
const EG &  eg,
const LFSU &  lfsu,
const X &  x,
const Z &  z,
const LFSV &  lfsv,
Y &  y 
)

◆ jacobianApplyVolume() [3/4]

template<typename LOP , typename EG , typename LFSU , typename X , typename LFSV , typename Y >
std::enable_if_t< LOP::isLinear > Dune::PDELab::impl::jacobianApplyVolume ( const LOP &  lop,
const EG &  eg,
const LFSU &  lfsu,
const X &  z,
const LFSV &  lfsv,
Y &  y 
)

◆ jacobianApplyVolume() [4/4]

template<typename LOP , typename EG , typename LFSU , typename X , typename LFSV , typename Y >
std::enable_if_t< not LOP::isLinear > Dune::PDELab::impl::jacobianApplyVolume ( const LOP &  lop,
const EG &  eg,
const LFSU &  lfsu,
const X &  z,
const LFSV &  lfsv,
Y &  y 
)

◆ lambdaToTemplate()

template<typename T >
constexpr auto Dune::PDELab::impl::lambdaToTemplate ( const T &  t)
constexpr

Variable Documentation

◆ hasNewJacobianApplyBoundary

auto Dune::PDELab::impl::hasNewJacobianApplyBoundary
Initial value:
=
lambdaToTemplate([](auto&& lop) -> decltype(lop.jacobian_apply_boundary(std::declval<bool>(),
std::declval<int>(),
std::declval<double>(),
std::declval<short int>(),
std::declval<long int>(),
std::declval<long long int&>()
)) {})
constexpr auto lambdaToTemplate(const T &t)
Definition: checklopinterface.hh:53

◆ hasNewJacobianApplySkeleton

auto Dune::PDELab::impl::hasNewJacobianApplySkeleton
Initial value:
=
lambdaToTemplate([](auto&& lop) -> decltype(lop.jacobian_apply_skeleton(std::declval<bool>(),
std::declval<int>(),
std::declval<double>(),
std::declval<short int>(),
std::declval<long int>(),
std::declval<int>(),
std::declval<double>(),
std::declval<short int>(),
std::declval<long int>(),
std::declval<long long int&>(),
std::declval<long long int&>()
)) {})

◆ hasNewJacobianApplyVolume

auto Dune::PDELab::impl::hasNewJacobianApplyVolume
Initial value:
=
lambdaToTemplate([](auto&& lop) -> decltype(lop.jacobian_apply_volume(std::declval<bool>(),
std::declval<int>(),
std::declval<double>(),
std::declval<short int>(),
std::declval<long int>(),
std::declval<long long int&>()
)) {})

◆ hasNewJacobianApplyVolumePostSkeleton

auto Dune::PDELab::impl::hasNewJacobianApplyVolumePostSkeleton
Initial value:
=
lambdaToTemplate([](auto&& lop) -> decltype(lop.jacobian_apply_volume_post_skeleton(std::declval<bool>(),
std::declval<int>(),
std::declval<double>(),
std::declval<short int>(),
std::declval<long int>(),
std::declval<long long int&>()
)) {})

◆ hasOldOrNewJacobianApplyBoundary

auto Dune::PDELab::impl::hasOldOrNewJacobianApplyBoundary
Initial value:
=
lambdaToTemplate([](auto&& lop) -> decltype(lop.jacobian_apply_boundary(std::declval<bool>(),
std::declval<int>(),
std::declval<double>(),
std::declval<double>(),
std::declval<long int>(),
std::declval<long long int&>()
)) {})

◆ hasOldOrNewJacobianApplySkeleton

auto Dune::PDELab::impl::hasOldOrNewJacobianApplySkeleton
Initial value:
=
lambdaToTemplate([](auto&& lop) -> decltype(lop.jacobian_apply_skeleton(std::declval<bool>(),
std::declval<int>(),
std::declval<double>(),
std::declval<double>(),
std::declval<long int>(),
std::declval<int>(),
std::declval<double>(),
std::declval<double>(),
std::declval<long int>(),
std::declval<long long int&>(),
std::declval<long long int&>()
)) {})

◆ hasOldOrNewJacobianApplyVolume

auto Dune::PDELab::impl::hasOldOrNewJacobianApplyVolume
Initial value:
=
lambdaToTemplate([](auto&& lop) -> decltype(lop.jacobian_apply_volume(std::declval<bool>(),
std::declval<int>(),
std::declval<double>(),
std::declval<double>(),
std::declval<long int>(),
std::declval<long long int&>()
)) {})

◆ hasOldOrNewJacobianApplyVolumePostSkeleton

auto Dune::PDELab::impl::hasOldOrNewJacobianApplyVolumePostSkeleton
Initial value:
=
lambdaToTemplate([](auto&& lop) -> decltype(lop.jacobian_apply_volume_post_skeleton(std::declval<bool>(),
std::declval<int>(),
std::declval<double>(),
std::declval<double>(),
std::declval<long int>(),
std::declval<long long int&>()
)) {})