dune-pdelab  2.7-git
Modules | Classes | Typedefs | Enumerator | Functions | Variables
LocalOperator
Collaboration diagram for LocalOperator:

Modules

 LocalOperatorDefaultImp
 

Classes

class  Dune::PDELab::CG2DGProlongation
 
class  Dune::PDELab::BlockDiagonalLocalOperatorFullCoupling< ScalarLOP >
 Block diagonal extension of scalar local operator. More...
 
class  Dune::PDELab::CombinedOperator< ApplyOp, Args >
 A local operator to take combine different local operators. More...
 
class  Dune::PDELab::Electrodynamic_T< Eps >
 Construct matrix T for the Electrodynamic operator. More...
 
class  Dune::PDELab::Electrodynamic_S< Mu >
 Contruct matrix S for the Electrodynamic operator. More...
 
class  Dune::PDELab::LocalOperatorDefaultFlags
 Default flags for all local operators. More...
 
class  Dune::PDELab::InstationaryLocalOperatorDefaultMethods< R >
 Default class for additional methods in instationary local operators. More...
 
class  Dune::PDELab::LocalOperatorInterface
 Class to document the stationary local operator interface. More...
 
class  Dune::PDELab::L2
 
class  Dune::PDELab::L2VolumeFunctional< F >
 A local operator that tests a function against a test function space defined on the entire grid. More...
 
class  Dune::PDELab::LinearElasticity< T >
 
struct  Dune::PDELab::NonLinearConvectionDiffusionParameterTraits< GV, RF >
 traits class for two phase parameter class More...
 
class  Dune::PDELab::NonLinearConvectionDiffusionParameterInterface< T, Imp >
 base class for parameter class More...
 
class  Dune::PDELab::BCTypeParam_CD< T >
 
class  Dune::PDELab::DirichletBoundaryCondition_CD< T >
 
class  Dune::PDELab::NonLinearConvectionDiffusionFEM< T >
 
class  Dune::PDELab::ScaledLocalOperator< Backend, Factor, Time >
 A local operator that scales the result of another local operator. More...
 
class  Dune::PDELab::InstationarySumLocalOperator< Args >
 A local operator to take the sum of other local operators. More...
 
class  Dune::PDELab::InstationarySumLocalOperator< std::tuple< Args... > >
 deprecated specialization of More...
 
class  Dune::PDELab::TaylorHoodNavierStokes< P >
 A local operator for the Navier-Stokes equations. More...
 
class  Dune::PDELab::WeightedSumLocalOperator< K, Args >
 A local operator to take the weighted sum of other local operators. More...
 
struct  Dune::PDELab::WeightedSumLocalOperator< K, Args >::WeightedContainer
 
class  Dune::PDELab::WeightedSumLocalOperator< K, std::tuple< Args... > >
 deprecated specialization of More...
 
class  Dune::PDELab::ZeroLocalOperator< Time >
 Do-nothing local operator. More...
 

Typedefs

using Dune::PDELab::CombinedOperator< ApplyOp, Args >::ArgPtrs = std::tuple< std::shared_ptr< std::remove_reference_t< Args > >... >
 
using Dune::PDELab::CombinedOperator< ApplyOp, Args >::ArgRefs = std::tuple< Args &... >
 
using Dune::PDELab::WeightedSumLocalOperator< K, Args >::Base = CombinedOperator< WeightedSumLocalOperator< K, Args... >, Args... >
 
using Dune::PDELab::WeightedSumLocalOperator< K, Args >::ArgPtrs = typename Base::ArgPtrs
 
using Dune::PDELab::WeightedSumLocalOperator< K, Args >::ArgRefs = typename Base::ArgRefs
 
using Dune::PDELab::WeightedSumLocalOperator< K, Args >::Weights = FieldVector< K, sizeof...(Args)>
 

Functions

template<typename... FArgs>
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::applyLops (FArgs &... args) const
 
template<typename LOP >
static void Dune::PDELab::CombinedOperator< ApplyOp, Args >::Apply::setTime (const LOP &lop, RealType t)
 
template<typename LOP >
static void Dune::PDELab::CombinedOperator< ApplyOp, Args >::Apply::preStep (const LOP &lop, RealType time, RealType dt, int stages)
 
template<typename LOP >
static void Dune::PDELab::CombinedOperator< ApplyOp, Args >::Apply::postStep (const LOP &lop)
 
template<typename LOP >
static void Dune::PDELab::CombinedOperator< ApplyOp, Args >::Apply::preStage (const LOP &lop, RealType time, int r)
 
template<typename LOP >
static void Dune::PDELab::CombinedOperator< ApplyOp, Args >::Apply::postStage (const LOP &lop)
 
template<typename LOP >
static RealType Dune::PDELab::CombinedOperator< ApplyOp, Args >::Apply::suggestTimestep (const LOP &lop, RealType &dt)
 
template<class Eps >
Electrodynamic_T< std::decay_t< Eps > > Dune::PDELab::makeLocalOperatorEdynT (Eps &&eps, int qorder=2)
 construct an Electrodynamic_T operator More...
 
template<class Mu >
Electrodynamic_S< std::decay_t< Mu > > Dune::PDELab::makeLocalOperatorEdynS (Mu &&mu, int qorder=2)
 construct an Electrodynamic_S operator More...
 
 Dune::PDELab::InstationarySumLocalOperator< Args >::InstationarySumLocalOperator ()
 Default-construct an InstationarySumLocalOperator. Expects the operators to be added later through the setSummand method. More...
 
 Dune::PDELab::InstationarySumLocalOperator< Args >::InstationarySumLocalOperator (Args &... lops)
 construct a InstationarySumLocalOperator from a set of local operators More...
 
 Dune::PDELab::InstationarySumLocalOperator< Args >::InstationarySumLocalOperator (Args &&... lops)
 construct a InstationarySumLocalOperator from a set of local operators (rvalue reference) More...
 
 Dune::PDELab::InstationarySumLocalOperator< Args >::InstationarySumLocalOperator (ArgPtrs &&lops)
 
 Dune::PDELab::InstationarySumLocalOperator< std::tuple< Args... > >::InstationarySumLocalOperator ()
 Default-construct an InstationarySumLocalOperator. Expects the operators to be added later through the setSummand method. More...
 
 Dune::PDELab::InstationarySumLocalOperator< std::tuple< Args... > >::InstationarySumLocalOperator (const ArgRefs &lops)
 construct a InstationarySumLocalOperator from a tuple of local operators More...
 
template<class C >
auto Dune::PDELab::WeightedSumLocalOperator< K, Args >::WeightedContainer::require (C &c) -> decltype(Concept::requireType< typename C::weight_type >(), const_cast< C & >(c).weight())
 
template<typename... FArgs>
void Dune::PDELab::WeightedSumLocalOperator< K, Args >::getWeights (FieldVector< K, sizeof...(FArgs)> &aweights, std::tuple< FArgs... > fargs) const
 
template<typename... FArgs>
void Dune::PDELab::WeightedSumLocalOperator< K, Args >::setWeights (const FieldVector< K, sizeof...(FArgs)> &aweights, std::tuple< FArgs... > fargs) const
 
template<typename F , typename... FArgs>
void Dune::PDELab::WeightedSumLocalOperator< K, Args >::applyLops (F &&f, FArgs &... fargs) const
 
 Dune::PDELab::WeightedSumLocalOperator< K, std::tuple< Args... > >::WeightedSumLocalOperator (const Weights &weights_=Weights(1))
 construct a WeightedSumLocalOperator More...
 
 Dune::PDELab::WeightedSumLocalOperator< K, std::tuple< Args... > >::WeightedSumLocalOperator (const ArgRefs &lops_, const Weights &weights_=Weights(1))
 construct a WeightedSumLocalOperator from a tuple of local operators More...
 

Variables

ArgPtrs Dune::PDELab::CombinedOperator< ApplyOp, Args >::lops
 
friend Dune::PDELab::WeightedSumLocalOperator< K, Args >::Base
 
Weights Dune::PDELab::WeightedSumLocalOperator< K, Args >::weights
 

Control flags

enum  { Dune::PDELab::CombinedOperator< ApplyOp, Args >::doPatternVolume }
 Whether to assemble the pattern on the elements, i.e. whether or not pattern_volume() should be called. More...
 
enum  { Dune::PDELab::CombinedOperator< ApplyOp, Args >::doPatternVolumePostSkeleton }
 Whether to assemble the pattern on the elements after the skeleton has been handled, i.e. whether or not pattern_volume_post_skeleton() should be called. More...
 
enum  { Dune::PDELab::CombinedOperator< ApplyOp, Args >::doPatternSkeleton }
 Whether to assemble the pattern on the interior intersections, i.e. whether or not pattern_skeleton() should be called. More...
 
enum  { Dune::PDELab::CombinedOperator< ApplyOp, Args >::doPatternBoundary }
 Whether to assemble the pattern on the boundary intersections, i.e. whether or not pattern_boundary() should be called. More...
 
enum  { Dune::PDELab::CombinedOperator< ApplyOp, Args >::doAlphaVolume }
 Whether to call the local operator's alpha_volume(), jacobian_apply_volume() and jacobian_volume(). More...
 
enum  { Dune::PDELab::CombinedOperator< ApplyOp, Args >::doAlphaVolumePostSkeleton }
 Whether to call the local operator's alpha_volume_post_skeleton(), jacobian_apply_volume_post_skeleton() and jacobian_volume_post_skeleton(). More...
 
enum  { Dune::PDELab::CombinedOperator< ApplyOp, Args >::doAlphaSkeleton }
 Whether to call the local operator's alpha_skeleton(), jacobian_apply_skeleton() and jacobian_skeleton(). More...
 
enum  { Dune::PDELab::CombinedOperator< ApplyOp, Args >::doAlphaBoundary }
 Whether to call the local operator's alpha_boundary(), jacobian_apply_boundary() and jacobian_boundary(). More...
 
enum  { Dune::PDELab::CombinedOperator< ApplyOp, Args >::doLambdaVolume }
 Whether to call the local operator's lambda_volume(). More...
 
enum  { Dune::PDELab::CombinedOperator< ApplyOp, Args >::doLambdaVolumePostSkeleton }
 Whether to call the local operator's lambda_volume_post_skeleton(). More...
 
enum  { Dune::PDELab::CombinedOperator< ApplyOp, Args >::doLambdaSkeleton }
 Whether to call the local operator's lambda_skeleton(). More...
 
enum  { Dune::PDELab::CombinedOperator< ApplyOp, Args >::doLambdaBoundary }
 Whether to call the local operator's lambda_boundary(). More...
 
enum  { Dune::PDELab::CombinedOperator< ApplyOp, Args >::doSkeletonTwoSided }
 Whether to visit the skeleton methods from both sides. More...
 
enum  { Dune::PDELab::CombinedOperator< ApplyOp, Args >::isLinear = std::conjunction_v<std::integral_constant<bool,Args::isLinear>...> }
 Whether this is a linear operator. More...
 

Methods for instationary problems

typedef std::tuple_element< 0, std::tuple< Args... > >::type::RealType Dune::PDELab::CombinedOperator< ApplyOp, Args >::RealType
 Export type used for time values. More...
 
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::setTime (RealType t)
 set time for subsequent evaluation More...
 
RealType Dune::PDELab::CombinedOperator< ApplyOp, Args >::getTime () const
 get current time More...
 
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::preStep (RealType time, RealType dt, int stages)
 to be called once before each time step More...
 
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::postStep ()
 to be called once at the end of each time step More...
 
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::preStage (RealType time, int r)
 to be called once before each stage More...
 
int Dune::PDELab::CombinedOperator< ApplyOp, Args >::getStage () const
 get current stage More...
 
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::postStage ()
 to be called once at the end of each stage More...
 
RealType Dune::PDELab::CombinedOperator< ApplyOp, Args >::suggestTimestep (RealType dt) const
 to be called after stage 1 More...
 

Construction and modification

 Dune::PDELab::CombinedOperator< ApplyOp, Args >::CombinedOperator ()
 
 Dune::PDELab::CombinedOperator< ApplyOp, Args >::CombinedOperator (Args &... args)
 
 Dune::PDELab::CombinedOperator< ApplyOp, Args >::CombinedOperator (Args &&... args)
 
 Dune::PDELab::CombinedOperator< ApplyOp, Args >::CombinedOperator (ArgPtrs &&l)
 
template<std::size_t i>
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::setSummand (typename std::tuple_element_t< i, ArgRefs > summand)
 set the i'th component of the sum More...
 
template<std::size_t i>
std::tuple_element_t< i, ArgRefsDune::PDELab::CombinedOperator< ApplyOp, Args >::getSummand ()
 get the i'th component of the sum More...
 

Methods for the sparsity pattern

template<typename LFSU , typename LFSV , typename LocalPattern >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::pattern_volume (const LFSU &lfsu, const LFSV &lfsv, LocalPattern &pattern) const
 get an element's contribution to the sparsity pattern More...
 
template<typename LFSU , typename LFSV , typename LocalPattern >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::pattern_volume_post_skeleton (const LFSU &lfsu, const LFSV &lfsv, LocalPattern &pattern) const
 get an element's contribution to the sparsity pattern after the intersections have been handled More...
 
template<typename LFSU , typename LFSV , typename LocalPattern >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::pattern_skeleton (const LFSU &lfsu_s, const LFSV &lfsv_s, const LFSU &lfsu_n, const LFSV &lfsv_n, LocalPattern &pattern_sn, LocalPattern &pattern_ns) const
 get an internal intersection's contribution to the sparsity pattern More...
 
template<typename LFSU , typename LFSV , typename LocalPattern >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::pattern_boundary (const LFSU &lfsu_s, const LFSV &lfsv_s, LocalPattern &pattern_ss) const
 get a boundary intersection's contribution to the sparsity pattern More...
 

Methods for the residual – non-constant parts

template<typename EG , typename LFSU , typename X , typename LFSV , typename R >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::alpha_volume (const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, R &r) const
 get an element's contribution to alpha More...
 
template<typename EG , typename LFSU , typename X , typename LFSV , typename R >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::alpha_volume_post_skeleton (const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, R &r) const
 get an element's contribution to alpha after the intersections have been handled More...
 
template<typename IG , typename LFSU , typename X , typename LFSV , typename R >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::alpha_skeleton (const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, const LFSU &lfsu_n, const X &x_n, const LFSV &lfsv_n, R &r_s, R &r_n) const
 get an internal intersections's contribution to alpha More...
 
template<typename IG , typename LFSU , typename X , typename LFSV , typename R >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::alpha_boundary (const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, R &r_s) const
 get a boundary intersections's contribution to alpha More...
 

Methods for the residual – constant parts

template<typename EG , typename LFSV , typename R >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::lambda_volume (const EG &eg, const LFSV &lfsv, R &r) const
 get an element's contribution to lambda More...
 
template<typename EG , typename LFSV , typename R >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::lambda_volume_post_skeleton (const EG &eg, const LFSV &lfsv, R &r) const
 get an element's contribution to lambda after the intersections have been handled More...
 
template<typename IG , typename LFSV , typename R >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::lambda_skeleton (const IG &ig, const LFSV &lfsv_s, const LFSV &lfsv_n, R &r_s, R &r_n) const
 get an internal intersections's contribution to lambda More...
 
template<typename IG , typename LFSV , typename R >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::lambda_boundary (const IG &ig, const LFSV &lfsv_s, R &r_s) const
 get a boundary intersections's contribution to lambda More...
 

Methods for the application of the jacobian

template<typename EG , typename LFSU , typename X , typename LFSV , typename Y >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::jacobian_apply_volume (const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, Y &y) const
 apply an element's jacobian More...
 
template<typename EG , typename LFSU , typename X , typename LFSV , typename Y >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::jacobian_apply_volume_post_skeleton (const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, Y &y) const
 apply an element's jacobian after the intersections have been handled More...
 
template<typename IG , typename LFSU , typename X , typename LFSV , typename Y >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::jacobian_apply_skeleton (const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, const LFSU &lfsu_n, const X &x_n, const LFSV &lfsv_n, Y &y_s, Y &y_n) const
 apply an internal intersections's jacobians More...
 
template<typename IG , typename LFSU , typename X , typename LFSV , typename Y >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::jacobian_apply_boundary (const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, Y &y_s) const
 apply a boundary intersections's jacobian More...
 

Methods to extract the jacobian

template<typename EG , typename LFSU , typename X , typename LFSV , typename LocalMatrix >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::jacobian_volume (const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, LocalMatrix &mat) const
 get an element's jacobian More...
 
template<typename EG , typename LFSU , typename X , typename LFSV , typename LocalMatrix >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::jacobian_volume_post_skeleton (const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, LocalMatrix &mat) const
 get an element's jacobian after the intersections have been handled More...
 
template<typename IG , typename LFSU , typename X , typename LFSV , typename LocalMatrix >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::jacobian_skeleton (const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, const LFSU &lfsu_n, const X &x_n, const LFSV &lfsv_n, LocalMatrix &mat_ss, LocalMatrix &mat_sn, LocalMatrix &mat_ns, LocalMatrix &mat_nn) const
 apply an internal intersections's jacobians More...
 
template<typename IG , typename LFSU , typename X , typename LFSV , typename LocalMatrix >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::jacobian_boundary (const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, LocalMatrix &mat_ss) const
 get a boundary intersections's jacobian More...
 

Construction and modification

 Dune::PDELab::WeightedSumLocalOperator< K, Args >::WeightedSumLocalOperator (const Weights &weights_=Weights(1))
 construct a WeightedSumLocalOperator More...
 
 Dune::PDELab::WeightedSumLocalOperator< K, Args >::WeightedSumLocalOperator (Args &... lops_, const Weights &weights_=Weights(1))
 
 Dune::PDELab::WeightedSumLocalOperator< K, Args >::WeightedSumLocalOperator (Args &&... lops_, const Weights &weights_=Weights(1))
 
 Dune::PDELab::WeightedSumLocalOperator< K, Args >::WeightedSumLocalOperator (ArgPtrs &&lops, const Weights &weights_)
 
void Dune::PDELab::WeightedSumLocalOperator< K, Args >::setWeight (K w, std::size_t i)
 set the weight for the i'th component of the sum More...
 
Dune::PDELab::WeightedSumLocalOperator< K, Args >::getWeight (std::size_t i)
 get the weight for the i'th component of the sum More...
 

Detailed Description

Typedef Documentation

◆ ArgPtrs [1/2]

template<typename ApplyOp , typename... Args>
using Dune::PDELab::CombinedOperator< ApplyOp, Args >::ArgPtrs = std::tuple<std::shared_ptr<std::remove_reference_t<Args> >...>
protected

◆ ArgPtrs [2/2]

template<typename K , typename... Args>
using Dune::PDELab::WeightedSumLocalOperator< K, Args >::ArgPtrs = typename Base::ArgPtrs
protected

◆ ArgRefs [1/2]

template<typename ApplyOp , typename... Args>
using Dune::PDELab::CombinedOperator< ApplyOp, Args >::ArgRefs = std::tuple<Args&...>
protected

◆ ArgRefs [2/2]

template<typename K , typename... Args>
using Dune::PDELab::WeightedSumLocalOperator< K, Args >::ArgRefs = typename Base::ArgRefs
protected

◆ Base

template<typename K , typename... Args>
using Dune::PDELab::WeightedSumLocalOperator< K, Args >::Base = CombinedOperator<WeightedSumLocalOperator<K, Args...>, Args...>
protected

◆ RealType

template<typename ApplyOp , typename... Args>
typedef std::tuple_element<0, std::tuple<Args...> >::type::RealType Dune::PDELab::CombinedOperator< ApplyOp, Args >::RealType

Export type used for time values.

◆ Weights

template<typename K , typename... Args>
using Dune::PDELab::WeightedSumLocalOperator< K, Args >::Weights = FieldVector<K, sizeof...(Args)>
protected

Enumeration Type Documentation

◆ anonymous enum

template<typename ApplyOp , typename... Args>
anonymous enum

Whether to assemble the pattern on the elements, i.e. whether or not pattern_volume() should be called.

Enumerator
doPatternVolume 

◆ anonymous enum

template<typename ApplyOp , typename... Args>
anonymous enum

Whether to assemble the pattern on the elements after the skeleton has been handled, i.e. whether or not pattern_volume_post_skeleton() should be called.

Enumerator
doPatternVolumePostSkeleton 

◆ anonymous enum

template<typename ApplyOp , typename... Args>
anonymous enum

Whether to assemble the pattern on the interior intersections, i.e. whether or not pattern_skeleton() should be called.

Enumerator
doPatternSkeleton 

◆ anonymous enum

template<typename ApplyOp , typename... Args>
anonymous enum

Whether to assemble the pattern on the boundary intersections, i.e. whether or not pattern_boundary() should be called.

Enumerator
doPatternBoundary 

◆ anonymous enum

template<typename ApplyOp , typename... Args>
anonymous enum

Whether to call the local operator's alpha_volume(), jacobian_apply_volume() and jacobian_volume().

Enumerator
doAlphaVolume 

◆ anonymous enum

template<typename ApplyOp , typename... Args>
anonymous enum

Whether to call the local operator's alpha_volume_post_skeleton(), jacobian_apply_volume_post_skeleton() and jacobian_volume_post_skeleton().

Enumerator
doAlphaVolumePostSkeleton 

◆ anonymous enum

template<typename ApplyOp , typename... Args>
anonymous enum

Whether to call the local operator's alpha_skeleton(), jacobian_apply_skeleton() and jacobian_skeleton().

Enumerator
doAlphaSkeleton 

◆ anonymous enum

template<typename ApplyOp , typename... Args>
anonymous enum

Whether to call the local operator's alpha_boundary(), jacobian_apply_boundary() and jacobian_boundary().

Enumerator
doAlphaBoundary 

◆ anonymous enum

template<typename ApplyOp , typename... Args>
anonymous enum

Whether to call the local operator's lambda_volume().

Enumerator
doLambdaVolume 

◆ anonymous enum

template<typename ApplyOp , typename... Args>
anonymous enum

Whether to call the local operator's lambda_volume_post_skeleton().

Enumerator
doLambdaVolumePostSkeleton 

◆ anonymous enum

template<typename ApplyOp , typename... Args>
anonymous enum

Whether to call the local operator's lambda_skeleton().

Enumerator
doLambdaSkeleton 

◆ anonymous enum

template<typename ApplyOp , typename... Args>
anonymous enum

Whether to call the local operator's lambda_boundary().

Enumerator
doLambdaBoundary 

◆ anonymous enum

template<typename ApplyOp , typename... Args>
anonymous enum

Whether to visit the skeleton methods from both sides.

Enumerator
doSkeletonTwoSided 

◆ anonymous enum

template<typename ApplyOp , typename... Args>
anonymous enum

Whether this is a linear operator.

Enumerator
isLinear 

Function Documentation

◆ alpha_boundary()

template<typename ApplyOp , typename... Args>
template<typename IG , typename LFSU , typename X , typename LFSV , typename R >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::alpha_boundary ( const IG &  ig,
const LFSU &  lfsu_s,
const X &  x_s,
const LFSV &  lfsv_s,
R &  r_s 
) const
inline

get a boundary intersections's contribution to alpha

Note
Summands with zero weight don't contribute to the residual, and the calls to the evaluation methods are eliminated at run-time.

◆ alpha_skeleton()

template<typename ApplyOp , typename... Args>
template<typename IG , typename LFSU , typename X , typename LFSV , typename R >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::alpha_skeleton ( const IG &  ig,
const LFSU &  lfsu_s,
const X &  x_s,
const LFSV &  lfsv_s,
const LFSU &  lfsu_n,
const X &  x_n,
const LFSV &  lfsv_n,
R &  r_s,
R &  r_n 
) const
inline

get an internal intersections's contribution to alpha

Note
Summands with zero weight don't contribute to the residual, and the calls to the evaluation methods are eliminated at run-time.

◆ alpha_volume()

template<typename ApplyOp , typename... Args>
template<typename EG , typename LFSU , typename X , typename LFSV , typename R >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::alpha_volume ( const EG &  eg,
const LFSU &  lfsu,
const X &  x,
const LFSV &  lfsv,
R &  r 
) const
inline

get an element's contribution to alpha

Note
Summands with zero weight don't contribute to the residual, and the calls to the evaluation methods are eliminated at run-time.

◆ alpha_volume_post_skeleton()

template<typename ApplyOp , typename... Args>
template<typename EG , typename LFSU , typename X , typename LFSV , typename R >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::alpha_volume_post_skeleton ( const EG &  eg,
const LFSU &  lfsu,
const X &  x,
const LFSV &  lfsv,
R &  r 
) const
inline

get an element's contribution to alpha after the intersections have been handled

Note
Summands with zero weight don't contribute to the residual, and the calls to the evaluation methods are eliminated at run-time.

◆ applyLops() [1/2]

template<typename K , typename... Args>
template<typename F , typename... FArgs>
void Dune::PDELab::WeightedSumLocalOperator< K, Args >::applyLops ( F &&  f,
FArgs &...  fargs 
) const
inlineprotected

◆ applyLops() [2/2]

template<typename ApplyOp , typename... Args>
template<typename... FArgs>
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::applyLops ( FArgs &...  args) const
inlineprotected

◆ CombinedOperator() [1/4]

template<typename ApplyOp , typename... Args>
Dune::PDELab::CombinedOperator< ApplyOp, Args >::CombinedOperator ( )
inline

◆ CombinedOperator() [2/4]

template<typename ApplyOp , typename... Args>
Dune::PDELab::CombinedOperator< ApplyOp, Args >::CombinedOperator ( ArgPtrs &&  l)
inlineprotected

◆ CombinedOperator() [3/4]

template<typename ApplyOp , typename... Args>
Dune::PDELab::CombinedOperator< ApplyOp, Args >::CombinedOperator ( Args &&...  args)
inline

◆ CombinedOperator() [4/4]

template<typename ApplyOp , typename... Args>
Dune::PDELab::CombinedOperator< ApplyOp, Args >::CombinedOperator ( Args &...  args)
inline

◆ getStage()

template<typename ApplyOp , typename... Args>
int Dune::PDELab::CombinedOperator< ApplyOp, Args >::getStage ( ) const
inline

get current stage

◆ getSummand()

template<typename ApplyOp , typename... Args>
template<std::size_t i>
std::tuple_element_t<i,ArgRefs> Dune::PDELab::CombinedOperator< ApplyOp, Args >::getSummand ( )
inline

get the i'th component of the sum

◆ getTime()

template<typename ApplyOp , typename... Args>
RealType Dune::PDELab::CombinedOperator< ApplyOp, Args >::getTime ( ) const
inline

get current time

◆ getWeight()

template<typename K , typename... Args>
K Dune::PDELab::WeightedSumLocalOperator< K, Args >::getWeight ( std::size_t  i)
inline

get the weight for the i'th component of the sum

◆ getWeights()

template<typename K , typename... Args>
template<typename... FArgs>
void Dune::PDELab::WeightedSumLocalOperator< K, Args >::getWeights ( FieldVector< K, sizeof...(FArgs)> &  aweights,
std::tuple< FArgs... >  fargs 
) const
inlineprotected

◆ InstationarySumLocalOperator() [1/6]

template<typename... Args>
Dune::PDELab::InstationarySumLocalOperator< Args >::InstationarySumLocalOperator ( )
inline

Default-construct an InstationarySumLocalOperator. Expects the operators to be added later through the setSummand method.

◆ InstationarySumLocalOperator() [2/6]

template<typename... Args>
Dune::PDELab::InstationarySumLocalOperator< std::tuple< Args... > >::InstationarySumLocalOperator ( )
inline

Default-construct an InstationarySumLocalOperator. Expects the operators to be added later through the setSummand method.

◆ InstationarySumLocalOperator() [3/6]

template<typename... Args>
Dune::PDELab::InstationarySumLocalOperator< Args >::InstationarySumLocalOperator ( ArgPtrs &&  lops)
inlineprotected

◆ InstationarySumLocalOperator() [4/6]

template<typename... Args>
Dune::PDELab::InstationarySumLocalOperator< Args >::InstationarySumLocalOperator ( Args &&...  lops)
inline

construct a InstationarySumLocalOperator from a set of local operators (rvalue reference)

◆ InstationarySumLocalOperator() [5/6]

template<typename... Args>
Dune::PDELab::InstationarySumLocalOperator< Args >::InstationarySumLocalOperator ( Args &...  lops)
inline

construct a InstationarySumLocalOperator from a set of local operators

◆ InstationarySumLocalOperator() [6/6]

template<typename... Args>
Dune::PDELab::InstationarySumLocalOperator< std::tuple< Args... > >::InstationarySumLocalOperator ( const ArgRefs &  lops)
inline

construct a InstationarySumLocalOperator from a tuple of local operators

◆ jacobian_apply_boundary()

template<typename ApplyOp , typename... Args>
template<typename IG , typename LFSU , typename X , typename LFSV , typename Y >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::jacobian_apply_boundary ( const IG &  ig,
const LFSU &  lfsu_s,
const X &  x_s,
const LFSV &  lfsv_s,
Y &  y_s 
) const
inline

apply a boundary intersections's jacobian

Note
Summands with zero weight don't contribute to the jacobian, and the calls to the evaluation methods are eliminated at run-time.

◆ jacobian_apply_skeleton()

template<typename ApplyOp , typename... Args>
template<typename IG , typename LFSU , typename X , typename LFSV , typename Y >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::jacobian_apply_skeleton ( const IG &  ig,
const LFSU &  lfsu_s,
const X &  x_s,
const LFSV &  lfsv_s,
const LFSU &  lfsu_n,
const X &  x_n,
const LFSV &  lfsv_n,
Y &  y_s,
Y &  y_n 
) const
inline

apply an internal intersections's jacobians

Note
Summands with zero weight don't contribute to the jacobian, and the calls to the evaluation methods are eliminated at run-time.

◆ jacobian_apply_volume()

template<typename ApplyOp , typename... Args>
template<typename EG , typename LFSU , typename X , typename LFSV , typename Y >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::jacobian_apply_volume ( const EG &  eg,
const LFSU &  lfsu,
const X &  x,
const LFSV &  lfsv,
Y &  y 
) const
inline

apply an element's jacobian

Note
Summands with zero weight don't contribute to the jacobian, and the calls to the evaluation methods are eliminated at run-time.

◆ jacobian_apply_volume_post_skeleton()

template<typename ApplyOp , typename... Args>
template<typename EG , typename LFSU , typename X , typename LFSV , typename Y >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::jacobian_apply_volume_post_skeleton ( const EG &  eg,
const LFSU &  lfsu,
const X &  x,
const LFSV &  lfsv,
Y &  y 
) const
inline

apply an element's jacobian after the intersections have been handled

Note
Summands with zero weight don't contribute to the jacobian, and the calls to the evaluation methods are eliminated at run-time.

◆ jacobian_boundary()

template<typename ApplyOp , typename... Args>
template<typename IG , typename LFSU , typename X , typename LFSV , typename LocalMatrix >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::jacobian_boundary ( const IG &  ig,
const LFSU &  lfsu_s,
const X &  x_s,
const LFSV &  lfsv_s,
LocalMatrix mat_ss 
) const
inline

get a boundary intersections's jacobian

Note
Summands with zero weight don't contribute to the jacobian, and the calls to the evaluation methods are eliminated at run-time.

◆ jacobian_skeleton()

template<typename ApplyOp , typename... Args>
template<typename IG , typename LFSU , typename X , typename LFSV , typename LocalMatrix >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::jacobian_skeleton ( const IG &  ig,
const LFSU &  lfsu_s,
const X &  x_s,
const LFSV &  lfsv_s,
const LFSU &  lfsu_n,
const X &  x_n,
const LFSV &  lfsv_n,
LocalMatrix mat_ss,
LocalMatrix mat_sn,
LocalMatrix mat_ns,
LocalMatrix mat_nn 
) const
inline

apply an internal intersections's jacobians

Note
Summands with zero weight don't contribute to the jacobian, and the calls to the evaluation methods are eliminated at run-time.

◆ jacobian_volume()

template<typename ApplyOp , typename... Args>
template<typename EG , typename LFSU , typename X , typename LFSV , typename LocalMatrix >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::jacobian_volume ( const EG &  eg,
const LFSU &  lfsu,
const X &  x,
const LFSV &  lfsv,
LocalMatrix mat 
) const
inline

get an element's jacobian

Note
Summands with zero weight don't contribute to the jacobian, and the calls to the evaluation methods are eliminated at run-time.

◆ jacobian_volume_post_skeleton()

template<typename ApplyOp , typename... Args>
template<typename EG , typename LFSU , typename X , typename LFSV , typename LocalMatrix >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::jacobian_volume_post_skeleton ( const EG &  eg,
const LFSU &  lfsu,
const X &  x,
const LFSV &  lfsv,
LocalMatrix mat 
) const
inline

get an element's jacobian after the intersections have been handled

Note
Summands with zero weight don't contribute to the jacobian, and the calls to the evaluation methods are eliminated at run-time.

◆ lambda_boundary()

template<typename ApplyOp , typename... Args>
template<typename IG , typename LFSV , typename R >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::lambda_boundary ( const IG &  ig,
const LFSV &  lfsv_s,
R &  r_s 
) const
inline

get a boundary intersections's contribution to lambda

Note
Summands with zero weight don't contribute to the residual, and the calls to the evaluation methods are eliminated at run-time.

◆ lambda_skeleton()

template<typename ApplyOp , typename... Args>
template<typename IG , typename LFSV , typename R >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::lambda_skeleton ( const IG &  ig,
const LFSV &  lfsv_s,
const LFSV &  lfsv_n,
R &  r_s,
R &  r_n 
) const
inline

get an internal intersections's contribution to lambda

Note
Summands with zero weight don't contribute to the residual, and the calls to the evaluation methods are eliminated at run-time.

◆ lambda_volume()

template<typename ApplyOp , typename... Args>
template<typename EG , typename LFSV , typename R >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::lambda_volume ( const EG &  eg,
const LFSV &  lfsv,
R &  r 
) const
inline

get an element's contribution to lambda

Note
Summands with zero weight don't contribute to the residual, and the calls to the evaluation methods are eliminated at run-time.

◆ lambda_volume_post_skeleton()

template<typename ApplyOp , typename... Args>
template<typename EG , typename LFSV , typename R >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::lambda_volume_post_skeleton ( const EG &  eg,
const LFSV &  lfsv,
R &  r 
) const
inline

get an element's contribution to lambda after the intersections have been handled

Note
Summands with zero weight don't contribute to the residual, and the calls to the evaluation methods are eliminated at run-time.

◆ makeLocalOperatorEdynS()

template<class Mu >
Electrodynamic_S<std::decay_t<Mu> > Dune::PDELab::makeLocalOperatorEdynS ( Mu &&  mu,
int  qorder = 2 
)

construct an Electrodynamic_S operator

This relieves the user from the need to construct the type of mu.

◆ makeLocalOperatorEdynT()

template<class Eps >
Electrodynamic_T<std::decay_t<Eps> > Dune::PDELab::makeLocalOperatorEdynT ( Eps &&  eps,
int  qorder = 2 
)

construct an Electrodynamic_T operator

This relieves the user from the need to construct the type of eps.

◆ pattern_boundary()

template<typename ApplyOp , typename... Args>
template<typename LFSU , typename LFSV , typename LocalPattern >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::pattern_boundary ( const LFSU &  lfsu_s,
const LFSV &  lfsv_s,
LocalPattern &  pattern_ss 
) const
inline

get a boundary intersection's contribution to the sparsity pattern

Note
Summands with zero weight don't contribute to the sparsity pattern, and the calls to the pattern methods are eliminated at run-time.

◆ pattern_skeleton()

template<typename ApplyOp , typename... Args>
template<typename LFSU , typename LFSV , typename LocalPattern >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::pattern_skeleton ( const LFSU &  lfsu_s,
const LFSV &  lfsv_s,
const LFSU &  lfsu_n,
const LFSV &  lfsv_n,
LocalPattern &  pattern_sn,
LocalPattern &  pattern_ns 
) const
inline

get an internal intersection's contribution to the sparsity pattern

Note
Summands with zero weight don't contribute to the sparsity pattern, and the calls to the pattern methods are eliminated at run-time.

◆ pattern_volume()

template<typename ApplyOp , typename... Args>
template<typename LFSU , typename LFSV , typename LocalPattern >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::pattern_volume ( const LFSU &  lfsu,
const LFSV &  lfsv,
LocalPattern &  pattern 
) const
inline

get an element's contribution to the sparsity pattern

Note
Summands with zero weight don't contribute to the sparsity pattern, and the calls to the pattern methods are eliminated at run-time.

◆ pattern_volume_post_skeleton()

template<typename ApplyOp , typename... Args>
template<typename LFSU , typename LFSV , typename LocalPattern >
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::pattern_volume_post_skeleton ( const LFSU &  lfsu,
const LFSV &  lfsv,
LocalPattern &  pattern 
) const
inline

get an element's contribution to the sparsity pattern after the intersections have been handled

Note
Summands with zero weight don't contribute to the sparsity pattern, and the calls to the pattern methods are eliminated at run-time.

◆ postStage() [1/2]

template<typename ApplyOp , typename... Args>
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::postStage ( )
inline

to be called once at the end of each stage

◆ postStage() [2/2]

template<typename ApplyOp , typename... Args>
template<typename LOP >
static void Dune::PDELab::CombinedOperator< ApplyOp, Args >::Apply::postStage ( const LOP &  lop)
inlinestatic

◆ postStep() [1/2]

template<typename ApplyOp , typename... Args>
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::postStep ( )
inline

to be called once at the end of each time step

◆ postStep() [2/2]

template<typename ApplyOp , typename... Args>
template<typename LOP >
static void Dune::PDELab::CombinedOperator< ApplyOp, Args >::Apply::postStep ( const LOP &  lop)
inlinestatic

◆ preStage() [1/2]

template<typename ApplyOp , typename... Args>
template<typename LOP >
static void Dune::PDELab::CombinedOperator< ApplyOp, Args >::Apply::preStage ( const LOP &  lop,
RealType  time,
int  r 
)
inlinestatic

◆ preStage() [2/2]

template<typename ApplyOp , typename... Args>
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::preStage ( RealType  time,
int  r 
)
inline

to be called once before each stage

◆ preStep() [1/2]

template<typename ApplyOp , typename... Args>
template<typename LOP >
static void Dune::PDELab::CombinedOperator< ApplyOp, Args >::Apply::preStep ( const LOP &  lop,
RealType  time,
RealType  dt,
int  stages 
)
inlinestatic

◆ preStep() [2/2]

template<typename ApplyOp , typename... Args>
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::preStep ( RealType  time,
RealType  dt,
int  stages 
)
inline

to be called once before each time step

◆ require()

template<typename K , typename... Args>
template<class C >
auto Dune::PDELab::WeightedSumLocalOperator< K, Args >::WeightedContainer::require ( C &  c) -> decltype(Concept::requireType< typename C::weight_type >(), const_cast< C & >(c).weight())

◆ setSummand()

template<typename ApplyOp , typename... Args>
template<std::size_t i>
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::setSummand ( typename std::tuple_element_t< i, ArgRefs summand)
inline

set the i'th component of the sum

◆ setTime() [1/2]

template<typename ApplyOp , typename... Args>
template<typename LOP >
static void Dune::PDELab::CombinedOperator< ApplyOp, Args >::Apply::setTime ( const LOP &  lop,
RealType  t 
)
inlinestatic

◆ setTime() [2/2]

template<typename ApplyOp , typename... Args>
void Dune::PDELab::CombinedOperator< ApplyOp, Args >::setTime ( RealType  t)
inline

set time for subsequent evaluation

◆ setWeight()

template<typename K , typename... Args>
void Dune::PDELab::WeightedSumLocalOperator< K, Args >::setWeight ( w,
std::size_t  i 
)
inline

set the weight for the i'th component of the sum

◆ setWeights()

template<typename K , typename... Args>
template<typename... FArgs>
void Dune::PDELab::WeightedSumLocalOperator< K, Args >::setWeights ( const FieldVector< K, sizeof...(FArgs)> &  aweights,
std::tuple< FArgs... >  fargs 
) const
inlineprotected

◆ suggestTimestep() [1/2]

template<typename ApplyOp , typename... Args>
template<typename LOP >
static RealType Dune::PDELab::CombinedOperator< ApplyOp, Args >::Apply::suggestTimestep ( const LOP &  lop,
RealType dt 
)
inlinestatic

◆ suggestTimestep() [2/2]

template<typename ApplyOp , typename... Args>
RealType Dune::PDELab::CombinedOperator< ApplyOp, Args >::suggestTimestep ( RealType  dt) const
inline

to be called after stage 1

Note
This operator simply chains suggestTimestep() methods of all the component local operators together and hopes that the result will be meaningful.

◆ WeightedSumLocalOperator() [1/6]

template<typename K , typename... Args>
Dune::PDELab::WeightedSumLocalOperator< K, Args >::WeightedSumLocalOperator ( ArgPtrs &&  lops,
const Weights weights_ 
)
inlineprotected

◆ WeightedSumLocalOperator() [2/6]

template<typename K , typename... Args>
Dune::PDELab::WeightedSumLocalOperator< K, Args >::WeightedSumLocalOperator ( Args &&...  lops_,
const Weights weights_ = Weights(1) 
)
inline

construct a WeightedSumLocalOperator from a set of local operators (rvalue reference)

◆ WeightedSumLocalOperator() [3/6]

template<typename K , typename... Args>
Dune::PDELab::WeightedSumLocalOperator< K, Args >::WeightedSumLocalOperator ( Args &...  lops_,
const Weights weights_ = Weights(1) 
)
inline

construct a WeightedSumLocalOperator from a set of local operators

◆ WeightedSumLocalOperator() [4/6]

template<typename K , typename... Args>
Dune::PDELab::WeightedSumLocalOperator< K, std::tuple< Args... > >::WeightedSumLocalOperator ( const ArgRefs &  lops_,
const Weights &  weights_ = Weights(1) 
)
inline

construct a WeightedSumLocalOperator from a tuple of local operators

◆ WeightedSumLocalOperator() [5/6]

template<typename K , typename... Args>
Dune::PDELab::WeightedSumLocalOperator< K, Args >::WeightedSumLocalOperator ( const Weights weights_ = Weights(1))
inline

construct a WeightedSumLocalOperator

No summand local operators are set. They must be initialized with setSummand() before the constructed object is used.

◆ WeightedSumLocalOperator() [6/6]

template<typename K , typename... Args>
Dune::PDELab::WeightedSumLocalOperator< K, std::tuple< Args... > >::WeightedSumLocalOperator ( const Weights &  weights_ = Weights(1))
inline

construct a WeightedSumLocalOperator

No summand local operators are set. They must be initialized with setSummand() before the constructed object is used.

Variable Documentation

◆ Base

template<typename K , typename... Args>
friend Dune::PDELab::WeightedSumLocalOperator< K, Args >::Base
protected

◆ lops

template<typename ApplyOp , typename... Args>
ArgPtrs Dune::PDELab::CombinedOperator< ApplyOp, Args >::lops
protected

◆ weights

template<typename K , typename... Args>
Weights Dune::PDELab::WeightedSumLocalOperator< K, Args >::weights
protected