dune-pdelab  2.4-dev
localoperator/interface.hh
Go to the documentation of this file.
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 
7 
8 namespace Dune {
9  namespace PDELab {
13 
15 
87  {
88  public:
90  //
93  //
94 
96 
108  template<typename LFSU, typename LFSV, typename LocalPattern>
109  void pattern_volume
110  ( const LFSU& lfsu, const LFSV& lfsv,
111  LocalPattern& pattern);
112 
115 
127  template<typename LFSU, typename LFSV, typename LocalPattern>
129  ( const LFSU& lfsu, const LFSV& lfsv,
130  LocalPattern& pattern);
131 
133 
153  template<typename LFSU, typename LFSV, typename LocalPattern>
154  void pattern_skeleton
155  ( const LFSU& lfsu_s, const LFSV& lfsv_s,
156  const LFSU& lfsu_n, const LFSV& lfsv_n,
157  LocalPattern& pattern_sn,
158  LocalPattern& pattern_ns);
159 
161 
176  template<typename LFSU, typename LFSV, typename LocalPattern>
177  void pattern_boundary
178  ( const LFSU& lfsu_s, const LFSV& lfsv_s,
179  LocalPattern& pattern_ss);
180 
182 
184  //
187  //
188 
190 
211  template<typename EG, typename LFSU, typename X, typename LFSV,
212  typename R>
213  void alpha_volume
214  ( const EG& eg,
215  const LFSU& lfsu, const X& x, const LFSV& lfsv,
216  R& r);
217 
220 
242  template<typename EG, typename LFSU, typename X, typename LFSV,
243  typename R>
245  ( const EG& eg,
246  const LFSU& lfsu, const X& x, const LFSV& lfsv,
247  R& r);
248 
250 
282  template<typename IG, typename LFSU, typename X, typename LFSV,
283  typename R>
284  void alpha_skeleton
285  ( const IG& ig,
286  const LFSU& lfsu_s, const X& x_s, const LFSV& lfsv_s,
287  const LFSU& lfsu_n, const X& x_n, const LFSV& lfsv_n,
288  R& r_s, R& r_n);
289 
291 
316  template<typename IG, typename LFSU, typename X, typename LFSV,
317  typename R>
318  void alpha_boundary
319  ( const IG& ig,
320  const LFSU& lfsu_s, const X& x_s, const LFSV& lfsv_s,
321  R& r_s);
322 
324 
326  //
329  //
330 
332 
346  template<typename EG, typename LFSV, typename R>
347  void lambda_volume(const EG& eg, const LFSV& lfsv, R& r);
348 
351 
367  template<typename EG, typename LFSV, typename R>
368  void lambda_volume_post_skeleton(const EG& eg, const LFSV& lfsv, R& r);
369 
371 
391  template<typename IG, typename LFSV, typename R>
392  void lambda_skeleton(const IG& ig,
393  const LFSV& lfsv_s, const LFSV& lfsv_n,
394  R& r_s, R& r_n);
395 
397 
414  template<typename IG, typename LFSV, typename R>
415  void lambda_boundary(const IG& ig, const LFSV& lfsv_s, R& r_s);
416 
418 
420  //
423  //
424 
426 
451  template<typename EG, typename LFSU, typename X, typename LFSV,
452  typename Y>
454  ( const EG& eg,
455  const LFSU& lfsu, const X& x, const LFSV& lfsv,
456  Y& y);
457 
460 
486  template<typename EG, typename LFSU, typename X, typename LFSV,
487  typename Y>
489  ( const EG& eg,
490  const LFSU& lfsu, const X& x, const LFSV& lfsv,
491  Y& y);
492 
494 
531  template<typename IG, typename LFSU, typename X, typename LFSV,
532  typename Y>
534  ( const IG& ig,
535  const LFSU& lfsu_s, const X& x_s, const LFSV& lfsv_s,
536  const LFSU& lfsu_n, const X& x_n, const LFSV& lfsv_n,
537  Y& y_s, Y& y_n);
538 
540 
569  template<typename IG, typename LFSU, typename X, typename LFSV,
570  typename Y>
572  ( const IG& ig,
573  const LFSU& lfsu_s, const X& x_s, const LFSV& lfsv_s,
574  Y& y_s);
575 
577 
579  //
582  //
583 
585 
601  template<typename EG, typename LFSU, typename X, typename LFSV,
602  typename LocalMatrix>
603  void jacobian_volume
604  ( const EG& eg,
605  const LFSU& lfsu, const X& x, const LFSV& lfsv,
606  LocalMatrix& mat);
607 
609 
626  template<typename EG, typename LFSU, typename X, typename LFSV,
627  typename LocalMatrix>
629  ( const EG& eg,
630  const LFSU& lfsu, const X& x, const LFSV& lfsv,
631  LocalMatrix& mat);
632 
634 
668  template<typename IG, typename LFSU, typename X, typename LFSV,
669  typename LocalMatrix>
670  void jacobian_skeleton
671  ( const IG& ig,
672  const LFSU& lfsu_s, const X& x_s, const LFSV& lfsv_s,
673  const LFSU& lfsu_n, const X& x_n, const LFSV& lfsv_n,
674  LocalMatrix& mat_ss, LocalMatrix& mat_sn,
675  LocalMatrix& mat_ns, LocalMatrix& mat_nn);
677 
698  template<typename IG, typename LFSU, typename X, typename LFSV,
699  typename LocalMatrix>
700  void jacobian_boundary
701  ( const IG& ig,
702  const LFSU& lfsu_s, const X& x_s, const LFSV& lfsv_s,
703  LocalMatrix& mat_ss);
704 
706  };
707 
709  }
710 }
711 
712 #endif // DUNE_PDELAB_LOCALOPERATOR_INTERFACE_HH
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)
get an internal intersections's contribution to alpha
void lambda_boundary(const IG &ig, const LFSV &lfsv_s, R &r_s)
get a boundary intersections's contribution to lambda
void alpha_volume(const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, R &r)
get an element's contribution to alpha
Class to document the stationary local operator interface.
Definition: localoperator/interface.hh:85
void pattern_volume(const LFSU &lfsu, const LFSV &lfsv, LocalPattern &pattern)
get an element's contribution to the sparsity pattern
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)
apply an internal intersections's jacobians
A dense matrix for storing data associated with the degrees of freedom of a pair of LocalFunctionSpac...
Definition: localmatrix.hh:184
void jacobian_volume_post_skeleton(const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, LocalMatrix &mat)
get an element's jacobian after the intersections have been handled
void lambda_skeleton(const IG &ig, const LFSV &lfsv_s, const LFSV &lfsv_n, R &r_s, R &r_n)
get an internal intersections's contribution to lambda
void jacobian_apply_volume_post_skeleton(const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, Y &y)
apply an element's jacobian after the intersections have been handled
void jacobian_apply_volume(const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, Y &y)
apply an element's jacobian
const IG & ig
Definition: constraints.hh:147
void lambda_volume(const EG &eg, const LFSV &lfsv, R &r)
get an element's contribution to lambda
Default flags for all local operators.
Definition: flags.hh:18
void alpha_volume_post_skeleton(const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, R &r)
get an element's contribution to alpha after the intersections have been handled
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)
get an internal intersection's contribution to the sparsity pattern
void jacobian_apply_boundary(const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, Y &y_s)
apply a boundary intersections's jacobian
void pattern_boundary(const LFSU &lfsu_s, const LFSV &lfsv_s, LocalPattern &pattern_ss)
get a boundary intersection's contribution to the sparsity pattern
void lambda_volume_post_skeleton(const EG &eg, const LFSV &lfsv, R &r)
get an element's contribution to lambda after the intersections have been handled ...
Definition: adaptivity.hh:27
void alpha_boundary(const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, R &r_s)
get a boundary intersections's contribution to alpha
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)
apply an internal intersections's jacobians
void jacobian_volume(const EG &eg, const LFSU &lfsu, const X &x, const LFSV &lfsv, LocalMatrix &mat)
get an element's jacobian
void jacobian_boundary(const IG &ig, const LFSU &lfsu_s, const X &x_s, const LFSV &lfsv_s, LocalMatrix &mat_ss)
get a boundary intersections's jacobian
void pattern_volume_post_skeleton(const LFSU &lfsu, const LFSV &lfsv, LocalPattern &pattern)
get an element's contribution to the sparsity pattern after the intersections have been handled ...
const EG & eg
Definition: constraints.hh:280