dune-pdelab  2.7-git
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Dune::PDELab::InstationarySumLocalOperator< std::tuple< Args... > > Class Template Reference

deprecated specialization of More...

#include <dune/pdelab/localoperator/sum.hh>

Inheritance diagram for Dune::PDELab::InstationarySumLocalOperator< std::tuple< Args... > >:
Inheritance graph

Public Member Functions

 InstationarySumLocalOperator ()
 Default-construct an InstationarySumLocalOperator. Expects the operators to be added later through the setSummand method. More...
 
 InstationarySumLocalOperator (const ArgRefs &lops)
 construct a InstationarySumLocalOperator from a tuple of local operators More...
 

Protected Member Functions

void applyLops (FArgs &... args) const
 

Protected Attributes

ArgPtrs lops
 

Construction and modification

void setSummand (typename std::tuple_element_t< i, ArgRefs > summand)
 set the i'th component of the sum More...
 
std::tuple_element_t< i, ArgRefs > getSummand ()
 get the i'th component of the sum More...
 

Methods for the sparsity pattern

void pattern_volume (const LFSU &lfsu, const LFSV &lfsv, LocalPattern &pattern) const
 get an element's contribution to the sparsity pattern More...
 
void 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...
 
void 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...
 
void 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

void 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...
 
void 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...
 
void 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...
 
void 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

void lambda_volume (const EG &eg, const LFSV &lfsv, R &r) const
 get an element's contribution to lambda More...
 
void 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...
 
void 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...
 
void 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

void jacobian_apply_volume (const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, Y &y) const
 apply an element's jacobian More...
 
void 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...
 
void 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...
 
void 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

void jacobian_volume (const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, LocalMatrix &mat) const
 get an element's jacobian More...
 
void 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...
 
void 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...
 
void 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...
 

Methods for instationary problems

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

Control flags

enum  
 Whether to assemble the pattern on the elements, i.e. whether or not pattern_volume() should be called. More...
 
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. More...
 
enum  
 Whether to assemble the pattern on the interior intersections, i.e. whether or not pattern_skeleton() should be called. More...
 
enum  
 Whether to assemble the pattern on the boundary intersections, i.e. whether or not pattern_boundary() should be called. More...
 
enum  
 Whether to call the local operator's alpha_volume(), jacobian_apply_volume() and jacobian_volume(). More...
 
enum  
 Whether to call the local operator's alpha_volume_post_skeleton(), jacobian_apply_volume_post_skeleton() and jacobian_volume_post_skeleton(). More...
 
enum  
 Whether to call the local operator's alpha_skeleton(), jacobian_apply_skeleton() and jacobian_skeleton(). More...
 
enum  
 Whether to call the local operator's alpha_boundary(), jacobian_apply_boundary() and jacobian_boundary(). More...
 
enum  
 Whether to call the local operator's lambda_volume(). More...
 
enum  
 Whether to call the local operator's lambda_volume_post_skeleton(). More...
 
enum  
 Whether to call the local operator's lambda_skeleton(). More...
 
enum  
 Whether to call the local operator's lambda_boundary(). More...
 
enum  
 Whether to visit the skeleton methods from both sides. More...
 
enum  
 Whether this is a linear operator. More...
 

Detailed Description

template<typename... Args>
class Dune::PDELab::InstationarySumLocalOperator< std::tuple< Args... > >

deprecated specialization of

See also
InstationarySumLocalOperator
Template Parameters
ArgsTuple of local operators. Must fulfill tuple_size<Args>::value>=1.

Member Typedef Documentation

◆ RealType

typedef std::tuple_element<0, std::tuple<Args...> >::type::RealType Dune::PDELab::CombinedOperator< InstationarySumLocalOperator< Args... > , Args >::RealType
inherited

Export type used for time values.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
inherited

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

◆ anonymous enum

anonymous enum
inherited

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.

◆ anonymous enum

anonymous enum
inherited

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

◆ anonymous enum

anonymous enum
inherited

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

◆ anonymous enum

anonymous enum
inherited

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

◆ anonymous enum

anonymous enum
inherited

◆ anonymous enum

anonymous enum
inherited

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

◆ anonymous enum

anonymous enum
inherited

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

◆ anonymous enum

anonymous enum
inherited

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

◆ anonymous enum

anonymous enum
inherited

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

◆ anonymous enum

anonymous enum
inherited

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

◆ anonymous enum

anonymous enum
inherited

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

◆ anonymous enum

anonymous enum
inherited

Whether to visit the skeleton methods from both sides.

◆ anonymous enum

anonymous enum
inherited

Whether this is a linear operator.

Member Function Documentation

◆ alpha_boundary()

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

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()

void Dune::PDELab::CombinedOperator< InstationarySumLocalOperator< Args... > , 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
inlineinherited

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()

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

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()

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

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()

void Dune::PDELab::CombinedOperator< InstationarySumLocalOperator< Args... > , Args >::applyLops ( FArgs &...  args) const
inlineprotectedinherited

◆ getStage()

int Dune::PDELab::CombinedOperator< InstationarySumLocalOperator< Args... > , Args >::getStage ( ) const
inlineinherited

get current stage

◆ getSummand()

std::tuple_element_t<i,ArgRefs> Dune::PDELab::CombinedOperator< InstationarySumLocalOperator< Args... > , Args >::getSummand ( )
inlineinherited

get the i'th component of the sum

◆ getTime()

RealType Dune::PDELab::CombinedOperator< InstationarySumLocalOperator< Args... > , Args >::getTime ( ) const
inlineinherited

get current time

◆ jacobian_apply_boundary()

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

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()

void Dune::PDELab::CombinedOperator< InstationarySumLocalOperator< Args... > , 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
inlineinherited

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()

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

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()

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

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()

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

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()

void Dune::PDELab::CombinedOperator< InstationarySumLocalOperator< Args... > , 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
inlineinherited

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()

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

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()

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

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()

void Dune::PDELab::CombinedOperator< InstationarySumLocalOperator< Args... > , Args >::lambda_boundary ( const IG &  ig,
const LFSV &  lfsv_s,
R &  r_s 
) const
inlineinherited

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()

void Dune::PDELab::CombinedOperator< InstationarySumLocalOperator< Args... > , Args >::lambda_skeleton ( const IG &  ig,
const LFSV &  lfsv_s,
const LFSV &  lfsv_n,
R &  r_s,
R &  r_n 
) const
inlineinherited

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()

void Dune::PDELab::CombinedOperator< InstationarySumLocalOperator< Args... > , Args >::lambda_volume ( const EG &  eg,
const LFSV &  lfsv,
R &  r 
) const
inlineinherited

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()

void Dune::PDELab::CombinedOperator< InstationarySumLocalOperator< Args... > , Args >::lambda_volume_post_skeleton ( const EG &  eg,
const LFSV &  lfsv,
R &  r 
) const
inlineinherited

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.

◆ pattern_boundary()

void Dune::PDELab::CombinedOperator< InstationarySumLocalOperator< Args... > , Args >::pattern_boundary ( const LFSU &  lfsu_s,
const LFSV &  lfsv_s,
LocalPattern &  pattern_ss 
) const
inlineinherited

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()

void Dune::PDELab::CombinedOperator< InstationarySumLocalOperator< Args... > , 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
inlineinherited

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()

void Dune::PDELab::CombinedOperator< InstationarySumLocalOperator< Args... > , Args >::pattern_volume ( const LFSU &  lfsu,
const LFSV &  lfsv,
LocalPattern &  pattern 
) const
inlineinherited

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()

void Dune::PDELab::CombinedOperator< InstationarySumLocalOperator< Args... > , Args >::pattern_volume_post_skeleton ( const LFSU &  lfsu,
const LFSV &  lfsv,
LocalPattern &  pattern 
) const
inlineinherited

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()

void Dune::PDELab::CombinedOperator< InstationarySumLocalOperator< Args... > , Args >::postStage ( )
inlineinherited

to be called once at the end of each stage

◆ postStep()

void Dune::PDELab::CombinedOperator< InstationarySumLocalOperator< Args... > , Args >::postStep ( )
inlineinherited

to be called once at the end of each time step

◆ preStage()

void Dune::PDELab::CombinedOperator< InstationarySumLocalOperator< Args... > , Args >::preStage ( RealType  time,
int  r 
)
inlineinherited

to be called once before each stage

◆ preStep()

void Dune::PDELab::CombinedOperator< InstationarySumLocalOperator< Args... > , Args >::preStep ( RealType  time,
RealType  dt,
int  stages 
)
inlineinherited

to be called once before each time step

◆ setSummand()

void Dune::PDELab::CombinedOperator< InstationarySumLocalOperator< Args... > , Args >::setSummand ( typename std::tuple_element_t< i, ArgRefs summand)
inlineinherited

set the i'th component of the sum

◆ setTime()

void Dune::PDELab::CombinedOperator< InstationarySumLocalOperator< Args... > , Args >::setTime ( RealType  t)
inlineinherited

set time for subsequent evaluation

◆ suggestTimestep()

RealType Dune::PDELab::CombinedOperator< InstationarySumLocalOperator< Args... > , Args >::suggestTimestep ( RealType  dt) const
inlineinherited

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.

Member Data Documentation

◆ lops

ArgPtrs Dune::PDELab::CombinedOperator< InstationarySumLocalOperator< Args... > , Args >::lops
protectedinherited

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