DUNE PDELab (2.7)

interface.hh
1// -*- tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2// vi: set et ts=8 sw=2 sts=2:
3#ifndef DUNE_PDELAB_LOCALOPERATOR_INTERFACE_HH
4#define DUNE_PDELAB_LOCALOPERATOR_INTERFACE_HH
5
6#include <dune/pdelab/localoperator/flags.hh>
7
8namespace Dune {
9 namespace PDELab {
13
15
87 {
88 public:
89
90 static const bool doPatternVolume = true;
91 static const bool doPatternVolumePostSkeleton = true;
92 static const bool doPatternSkeleton = true;
93 static const bool doPatternBoundary = true;
94 static const bool doAlphaVolume = true;
95 static const bool doAlphaVolumePostSkeleton = true;
96 static const bool doAlphaSkeleton = true;
97 static const bool doAlphaBoundary = true;
98 static const bool doLambdaVolume = true;
99 static const bool doLambdaVolumePostSkeleton = true;
100 static const bool doLambdaSkeleton = true;
101 static const bool doLambdaBoundary = true;
102
104 //
107 //
108
110
122 template<typename LFSU, typename LFSV, typename LocalPattern>
124 ( const LFSU& lfsu, const LFSV& lfsv,
125 LocalPattern& pattern) const
126 {}
127
130
142 template<typename LFSU, typename LFSV, typename LocalPattern>
144 ( const LFSU& lfsu, const LFSV& lfsv,
145 LocalPattern& pattern) const
146 {}
147
149
169 template<typename LFSU, typename LFSV, typename LocalPattern>
171 ( const LFSU& lfsu_s, const LFSV& lfsv_s,
172 const LFSU& lfsu_n, const LFSV& lfsv_n,
173 LocalPattern& pattern_sn,
174 LocalPattern& pattern_ns) const
175 {}
176
178
193 template<typename LFSU, typename LFSV, typename LocalPattern>
195 ( const LFSU& lfsu_s, const LFSV& lfsv_s,
196 LocalPattern& pattern_ss) const
197 {}
198
200
202 //
205 //
206
208
229 template<typename EG, typename LFSU, typename X, typename LFSV,
230 typename R>
232 ( const EG& eg,
233 const LFSU& lfsu, const X& x, const LFSV& lfsv,
234 R& r) const
235 {}
236
239
259 template<typename EG, typename LFSU, typename X, typename LFSV,
260 typename R>
262 ( const EG& eg,
263 const LFSU& lfsu, const X& x, const LFSV& lfsv,
264 R& r) const
265 {}
266
268
298 template<typename IG, typename LFSU, typename X, typename LFSV,
299 typename R>
301 ( const IG& ig,
302 const LFSU& lfsu_s, const X& x_s, const LFSV& lfsv_s,
303 const LFSU& lfsu_n, const X& x_n, const LFSV& lfsv_n,
304 R& r_s, R& r_n) const
305 {}
306
308
331 template<typename IG, typename LFSU, typename X, typename LFSV,
332 typename R>
334 ( const IG& ig,
335 const LFSU& lfsu_s, const X& x_s, const LFSV& lfsv_s,
336 R& r_s) const
337 {}
338
340
342 //
345 //
346
348
360 template<typename EG, typename LFSV, typename R>
361 void lambda_volume(const EG& eg, const LFSV& lfsv, R& r) const
362 {}
363
366
380 template<typename EG, typename LFSV, typename R>
381 void lambda_volume_post_skeleton(const EG& eg, const LFSV& lfsv, R& r) const
382 {}
383
385
403 template<typename IG, typename LFSV, typename R>
404 void lambda_skeleton(const IG& ig,
405 const LFSV& lfsv_s, const LFSV& lfsv_n,
406 R& r_s, R& r_n) const
407 {}
408
410
425 template<typename IG, typename LFSV, typename R>
426 void lambda_boundary(const IG& ig, const LFSV& lfsv_s, R& r_s) const
427 {}
428
430
432 //
435 //
436
438
471 template<typename EG, typename LFSU, typename X, typename LFSV,
472 typename Y>
474 ( const EG& eg,
475 const LFSU& lfsu, const X& z, const LFSV& lfsv,
476 Y& y) const
477 {}
478
481
511 template<typename EG, typename LFSU, typename X, typename LFSV,
512 typename Y>
514 ( const EG& eg,
515 const LFSU& lfsu, const X& z, const LFSV& lfsv,
516 Y& y) const
517 {}
518
521
564 template<typename IG, typename LFSU, typename X, typename LFSV,
565 typename Y>
567 ( const IG& ig,
568 const LFSU& lfsu_s, const X& z_s, const LFSV& lfsv_s,
569 const LFSU& lfsu_n, const X& z_n, const LFSV& lfsv_n,
570 Y& y_s, Y& y_n) const
571 {}
572
574
608 template<typename IG, typename LFSU, typename X, typename LFSV,
609 typename Y>
611 ( const IG& ig,
612 const LFSU& lfsu_s, const X& z_s, const LFSV& lfsv_s,
613 Y& y_s) const
614 {}
615
617
618
620 //
623 //
624
626
659 template<typename EG, typename LFSU, typename X, typename LFSV,
660 typename Y>
662 ( const EG& eg,
663 const LFSU& lfsu, const X& x, const X& z, const LFSV& lfsv,
664 Y& y) const
665 {}
666
669
699 template<typename EG, typename LFSU, typename X, typename LFSV,
700 typename Y>
702 ( const EG& eg,
703 const LFSU& lfsu, const X& x, const X& z, const LFSV& lfsv,
704 Y& y) const
705 {}
706
709
758 template<typename IG, typename LFSU, typename X, typename LFSV,
759 typename Y>
761 ( const IG& ig,
762 const LFSU& lfsu_s, const X& x_s, const X& z_s, const LFSV& lfsv_s,
763 const LFSU& lfsu_n, const X& x_n, const X& z_n, const LFSV& lfsv_n,
764 Y& y_s, Y& y_n) const
765 {}
766
768
803 template<typename IG, typename LFSU, typename X, typename LFSV,
804 typename Y>
806 ( const IG& ig,
807 const LFSU& lfsu_s, const X& x_s, const X& z_s, const LFSV& lfsv_s,
808 Y& y_s) const
809 {}
810
812
813
814
816 //
819 //
820
822
836 template<typename EG, typename LFSU, typename X, typename LFSV,
837 typename LocalMatrix>
839 ( const EG& eg,
840 const LFSU& lfsu, const X& x, const LFSV& lfsv,
841 LocalMatrix& mat) const
842 {}
843
845
860 template<typename EG, typename LFSU, typename X, typename LFSV,
861 typename LocalMatrix>
863 ( const EG& eg,
864 const LFSU& lfsu, const X& x, const LFSV& lfsv,
865 LocalMatrix& mat) const
866 {}
867
869
901 template<typename IG, typename LFSU, typename X, typename LFSV,
902 typename LocalMatrix>
904 ( const IG& ig,
905 const LFSU& lfsu_s, const X& x_s, const LFSV& lfsv_s,
906 const LFSU& lfsu_n, const X& x_n, const LFSV& lfsv_n,
907 LocalMatrix& mat_ss, LocalMatrix& mat_sn,
908 LocalMatrix& mat_ns, LocalMatrix& mat_nn) const
909 {}
910
912
931 template<typename IG, typename LFSU, typename X, typename LFSV,
932 typename LocalMatrix>
934 ( const IG& ig,
935 const LFSU& lfsu_s, const X& x_s, const LFSV& lfsv_s,
936 LocalMatrix& mat_ss) const
937 {}
938
940 };
941
943 }
944}
945
946#endif // DUNE_PDELAB_LOCALOPERATOR_INTERFACE_HH
A dense matrix for storing data associated with the degrees of freedom of a pair of LocalFunctionSpac...
Definition: localmatrix.hh:184
Default flags for all local operators.
Definition: flags.hh:19
Class to document the stationary local operator interface.
Definition: interface.hh:87
void pattern_volume(const LFSU &lfsu, const LFSV &lfsv, LocalPattern &pattern) const
get an element's contribution to the sparsity pattern
Definition: interface.hh:124
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
Definition: interface.hh:262
void lambda_boundary(const IG &ig, const LFSV &lfsv_s, R &r_s) const
get a boundary intersections's contribution to lambda
Definition: interface.hh:426
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
Definition: interface.hh:171
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
Definition: interface.hh:301
void jacobian_volume(const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, LocalMatrix &mat) const
get an element's jacobian
Definition: interface.hh:839
void jacobian_apply_volume_post_skeleton(const EG &eg, const LFSU &lfsu, const X &z, const LFSV &lfsv, Y &y) const
Definition: interface.hh:514
void jacobian_apply_boundary(const IG &ig, const LFSU &lfsu_s, const X &z_s, const LFSV &lfsv_s, Y &y_s) const
apply a boundary intersections's jacobian for a linear problem.
Definition: interface.hh:611
void jacobian_apply_skeleton(const IG &ig, const LFSU &lfsu_s, const X &z_s, const LFSV &lfsv_s, const LFSU &lfsu_n, const X &z_n, const LFSV &lfsv_n, Y &y_s, Y &y_n) const
Definition: interface.hh:567
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
Definition: interface.hh:144
void jacobian_apply_boundary(const IG &ig, const LFSU &lfsu_s, const X &x_s, const X &z_s, const LFSV &lfsv_s, Y &y_s) const
apply a boundary intersections's jacobian for a nonlinear problem.
Definition: interface.hh:806
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
Definition: interface.hh:232
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
Definition: interface.hh:381
void jacobian_apply_skeleton(const IG &ig, const LFSU &lfsu_s, const X &x_s, const X &z_s, const LFSV &lfsv_s, const LFSU &lfsu_n, const X &x_n, const X &z_n, const LFSV &lfsv_n, Y &y_s, Y &y_n) const
Definition: interface.hh:761
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
Definition: interface.hh:863
void jacobian_apply_volume(const EG &eg, const LFSU &lfsu, const X &z, const LFSV &lfsv, Y &y) const
Applies an element's jacobian to a vector for a linear problem.
Definition: interface.hh:474
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
Definition: interface.hh:195
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
Definition: interface.hh:934
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
Definition: interface.hh:404
void lambda_volume(const EG &eg, const LFSV &lfsv, R &r) const
get an element's contribution to lambda
Definition: interface.hh:361
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
Definition: interface.hh:904
void jacobian_apply_volume_post_skeleton(const EG &eg, const LFSU &lfsu, const X &x, const X &z, const LFSV &lfsv, Y &y) const
Definition: interface.hh:702
void jacobian_apply_volume(const EG &eg, const LFSU &lfsu, const X &x, const X &z, const LFSV &lfsv, Y &y) const
Applies an element's jacobian to a vector for a nonlinear problem.
Definition: interface.hh:662
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
Definition: interface.hh:334
Dune namespace.
Definition: alignedallocator.hh:14
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Jul 15, 22:36, 2024)