dune-pdelab
2.7-git
|
A local operator to take the sum of other local operators. More...
#include <dune/pdelab/localoperator/sum.hh>
Public Member Functions | |
InstationarySumLocalOperator () | |
Default-construct an InstationarySumLocalOperator. Expects the operators to be added later through the setSummand method. More... | |
InstationarySumLocalOperator (Args &... lops) | |
construct a InstationarySumLocalOperator from a set of local operators More... | |
InstationarySumLocalOperator (Args &&... lops) | |
construct a InstationarySumLocalOperator from a set of local operators (rvalue reference) More... | |
Protected Types | |
using | ArgRefs = std::tuple< Args &... > |
Protected Member Functions | |
InstationarySumLocalOperator (ArgPtrs &&lops) | |
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... | |
A local operator to take the sum of other local operators.
Args | variadic list of local operators |
|
protectedinherited |
|
inherited |
Export type used for time values.
|
inherited |
Whether to assemble the pattern on the elements, i.e. whether or not pattern_volume() should be called.
|
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.
|
inherited |
Whether to assemble the pattern on the interior intersections, i.e. whether or not pattern_skeleton() should be called.
|
inherited |
Whether to assemble the pattern on the boundary intersections, i.e. whether or not pattern_boundary() should be called.
|
inherited |
Whether to call the local operator's alpha_volume(), jacobian_apply_volume() and jacobian_volume().
|
inherited |
Whether to call the local operator's alpha_volume_post_skeleton(), jacobian_apply_volume_post_skeleton() and jacobian_volume_post_skeleton().
|
inherited |
Whether to call the local operator's alpha_skeleton(), jacobian_apply_skeleton() and jacobian_skeleton().
|
inherited |
Whether to call the local operator's alpha_boundary(), jacobian_apply_boundary() and jacobian_boundary().
|
inherited |
Whether to call the local operator's lambda_volume().
|
inherited |
Whether to call the local operator's lambda_volume_post_skeleton().
|
inherited |
Whether to call the local operator's lambda_skeleton().
|
inherited |
Whether to call the local operator's lambda_boundary().
|
inherited |
Whether to visit the skeleton methods from both sides.
|
inherited |
Whether this is a linear operator.
|
inlineinherited |
get a boundary intersections's contribution to alpha
|
inlineinherited |
get an internal intersections's contribution to alpha
|
inlineinherited |
get an element's contribution to alpha
|
inlineinherited |
get an element's contribution to alpha after the intersections have been handled
|
inlineprotectedinherited |
|
inlineinherited |
get current stage
|
inlineinherited |
get the i'th component of the sum
|
inlineinherited |
get current time
|
inlineinherited |
apply a boundary intersections's jacobian
|
inlineinherited |
apply an internal intersections's jacobians
|
inlineinherited |
apply an element's jacobian
|
inlineinherited |
apply an element's jacobian after the intersections have been handled
|
inlineinherited |
get a boundary intersections's jacobian
|
inlineinherited |
apply an internal intersections's jacobians
|
inlineinherited |
get an element's jacobian
|
inlineinherited |
get an element's jacobian after the intersections have been handled
|
inlineinherited |
get a boundary intersections's contribution to lambda
|
inlineinherited |
get an internal intersections's contribution to lambda
|
inlineinherited |
get an element's contribution to lambda
|
inlineinherited |
get an element's contribution to lambda after the intersections have been handled
|
inlineinherited |
get a boundary intersection's contribution to the sparsity pattern
|
inlineinherited |
get an internal intersection's contribution to the sparsity pattern
|
inlineinherited |
get an element's contribution to the sparsity pattern
|
inlineinherited |
get an element's contribution to the sparsity pattern after the intersections have been handled
|
inlineinherited |
to be called once at the end of each stage
|
inlineinherited |
to be called once at the end of each time step
|
inlineinherited |
to be called once before each stage
|
inlineinherited |
to be called once before each time step
|
inlineinherited |
set the i'th component of the sum
|
inlineinherited |
set time for subsequent evaluation
|
inlineinherited |
to be called after stage 1
|
protectedinherited |