version 3.10-dev
Dumux::Detail::Newton Namespace Reference

Classes

struct  PriVarSwitchVariablesType
 
struct  PriVarSwitchVariablesType< Assembler, false >
 
struct  supportsPartialReassembly
 helper struct detecting if an assembler supports partial reassembly More...
 

Typedefs

template<class Assembler >
using AssemblerGridVariablesType = typename Assembler::GridVariables
 
template<class Assembler >
using PriVarSwitchVariables = typename PriVarSwitchVariablesType< Assembler, assemblerExportsGridVariables< Assembler > >::Type
 
template<class C >
using dynamicIndexAccess = decltype(std::declval< C >()[0])
 
template<class C >
using staticIndexAccess = decltype(std::declval< C >()[Dune::Indices::_0])
 

Functions

template<class V , class Scalar , class Reduce , class Transform >
auto hybridInnerProduct (const V &v1, const V &v2, Scalar init, Reduce &&r, Transform &&t) -> std::enable_if_t< hasDynamicIndexAccess< V >(), Scalar >
 
template<class Scalar , class V >
auto maxRelativeShift (const V &v1, const V &v2) -> std::enable_if_t< Dune::IsNumber< V >::value, Scalar >
 
template<class To , class From >
void assign (To &to, const From &from)
 

Variables

template<class Assembler >
constexpr bool assemblerExportsGridVariables = Dune::Std::is_detected_v<AssemblerGridVariablesType, Assembler>
 
template<class C >
static constexpr auto hasDynamicIndexAccess = Dune::Std::is_detected<dynamicIndexAccess, C>{}
 
template<class C >
static constexpr auto hasStaticIndexAccess = Dune::Std::is_detected<staticIndexAccess, C>{}
 

Typedef Documentation

◆ AssemblerGridVariablesType

template<class Assembler >
using Dumux::Detail::Newton::AssemblerGridVariablesType = typedef typename Assembler::GridVariables

◆ dynamicIndexAccess

template<class C >
using Dumux::Detail::Newton::dynamicIndexAccess = typedef decltype(std::declval<C>()[0])

◆ PriVarSwitchVariables

template<class Assembler >
using Dumux::Detail::Newton::PriVarSwitchVariables = typedef typename PriVarSwitchVariablesType<Assembler, assemblerExportsGridVariables<Assembler> >::Type

◆ staticIndexAccess

template<class C >
using Dumux::Detail::Newton::staticIndexAccess = typedef decltype(std::declval<C>()[Dune::Indices::_0])

Function Documentation

◆ assign()

template<class To , class From >
void Dumux::Detail::Newton::assign ( To &  to,
const From &  from 
)

◆ hybridInnerProduct()

template<class V , class Scalar , class Reduce , class Transform >
auto Dumux::Detail::Newton::hybridInnerProduct ( const V &  v1,
const V &  v2,
Scalar  init,
Reduce &&  r,
Transform &&  t 
) -> std::enable_if_t<hasDynamicIndexAccess<V>(), Scalar>

◆ maxRelativeShift()

template<class Scalar , class V >
auto Dumux::Detail::Newton::maxRelativeShift ( const V &  v1,
const V &  v2 
) -> std::enable_if_t<Dune::IsNumber<V>::value, Scalar>

Variable Documentation

◆ assemblerExportsGridVariables

template<class Assembler >
constexpr bool Dumux::Detail::Newton::assemblerExportsGridVariables = Dune::Std::is_detected_v<AssemblerGridVariablesType, Assembler>
inlineconstexpr

◆ hasDynamicIndexAccess

template<class C >
constexpr auto Dumux::Detail::Newton::hasDynamicIndexAccess = Dune::Std::is_detected<dynamicIndexAccess, C>{}
staticconstexpr

◆ hasStaticIndexAccess

template<class C >
constexpr auto Dumux::Detail::Newton::hasStaticIndexAccess = Dune::Std::is_detected<staticIndexAccess, C>{}
staticconstexpr