DUNE PDELab (git)
A local operator to take the weighted sum of other local operators. More...
#include <dune/pdelab/localoperator/weightedsum.hh>
Construction and modification | |
WeightedSumLocalOperator (ArgPtrs &&lops, const Weights &weights_) | |
WeightedSumLocalOperator (const Weights &weights_=Weights(1)) | |
construct a WeightedSumLocalOperator More... | |
WeightedSumLocalOperator (Args &... lops_, const Weights &weights_=Weights(1)) | |
WeightedSumLocalOperator (Args &&... lops_, const Weights &weights_=Weights(1)) | |
void | setWeight (K w, std::size_t i) |
set the weight for the i'th component of the sum | |
K | getWeight (std::size_t i) |
get the weight for the i'th component of the sum | |
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 | |
RealType | getTime () const |
get current time | |
void | preStep (RealType time, RealType dt, int stages) |
to be called once before each time step | |
void | postStep () |
to be called once at the end of each time step | |
void | preStage (RealType time, int r) |
to be called once before each stage | |
int | getStage () const |
get current stage | |
void | postStage () |
to be called once at the end of each stage | |
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. | |
Control flags | |
enum | |
Whether to do selective cell assembly, i.e. whether or not skip_entity() should be called. | |
enum | |
Whether to do selective intersection assembly, i.e. whether or not skip_intersection() should be called. | |
enum | |
Whether to assemble the pattern on the elements, i.e. whether or not pattern_volume() should be called. | |
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. | |
enum | |
Whether to assemble the pattern on the interior intersections, i.e. whether or not pattern_skeleton() should be called. | |
enum | |
Whether to assemble the pattern on the boundary intersections, i.e. whether or not pattern_boundary() should be called. | |
enum | |
Whether to call the local operator's alpha_volume(), jacobian_apply_volume() and jacobian_volume(). | |
enum | |
Whether to call the local operator's alpha_volume_post_skeleton(), jacobian_apply_volume_post_skeleton() and jacobian_volume_post_skeleton(). | |
enum | |
Whether to call the local operator's alpha_skeleton(), jacobian_apply_skeleton() and jacobian_skeleton(). | |
enum | |
Whether to call the local operator's alpha_boundary(), jacobian_apply_boundary() and jacobian_boundary(). | |
enum | |
Whether to call the local operator's lambda_volume(). | |
enum | |
Whether to call the local operator's lambda_volume_post_skeleton(). | |
enum | |
Whether to call the local operator's lambda_skeleton(). | |
enum | |
Whether to call the local operator's lambda_boundary(). | |
enum | |
Whether to visit the skeleton methods from both sides. | |
enum | |
Whether this is a linear operator. | |
Detailed Description
class Dune::PDELab::WeightedSumLocalOperator< K, Args >
A local operator to take the weighted sum of other local operators.
If the weight for one summand is zero, calls to that local operators evaluation and pattern methods are eliminated at run-time.
- Template Parameters
-
K Type of the scaling factors. Args variadic list of local operators
Member Function Documentation
◆ alpha_boundary()
|
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()
|
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()
|
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()
|
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.
◆ jacobian_apply_boundary()
|
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()
|
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()
|
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()
|
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()
|
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()
|
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()
|
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()
|
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()
|
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()
|
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()
|
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()
|
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()
|
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()
|
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()
|
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()
|
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.
◆ suggestTimestep()
|
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.
The documentation for this class was generated from the following file:
- dune/pdelab/localoperator/weightedsum.hh