bf_advection.hh

Go to the documentation of this file.
1 
7 #ifndef HP2DEDGE_BF_ADVECTION_HH_
8 #define HP2DEDGE_BF_ADVECTION_HH_
9 
10 #include <memory>
11 #include "operator/bilinearForm.hh"
12 #include "basics/typedefs.hh"
16 
17 //#include "formula/boundary.hh"
19 /*
20 #include "geometry/sharedJacobian.hh"
21 #include "hp2D/formula.hh"
22 #include "hp2D/arrayElementFormula.hh"
23 #include "toolbox/sharedPointer.hh"
24 */
25 
26 namespace concepts
27 {
28 // forward declarations
29  template<class F>
30  class Element;
31 
32  template<class F>
33  class ElementMatrix;
34 }
35 
36 namespace hp2Dedge
37 {
38  // forward declarations
39  template<class F>
40  class Quad;
41 
42  using concepts::Real;
43  using concepts::Cmplx;
44 
45  // ************************************************************* Advection **
46 
62  template<class F = Real>
63  class Advection : public concepts::BilinearForm<F,Real>,
65  {
66  public:
67  Advection(const concepts::ElementFormulaContainer<F> frm1,
69  : hp2D::BilinearFormHelper_2_1<F>(frm1, frm2)
70  {}
71 
72  Advection
74  : hp2D::BilinearFormHelper_2_1<F>(frm)
75  {}
76 
77  virtual ~Advection() {}
78 
79  virtual Advection<F>* clone() const {
80  return new Advection<F>(this->frm_);
81  }
82 
83  virtual void operator()(const concepts::Element<Real>& elmX,
84  const concepts::Element<Real>& elmY,
85  concepts::ElementMatrix<F>& em) const;
86 
87  protected:
88  virtual std::ostream& info(std::ostream& os) const;
89  private:
91  void operator()(const Quad<Real>& elmX,
92  const Quad<Real>& elmY,
93  concepts::ElementMatrix<F>& em) const;
94  };
95 
96 } // namespace concepts
97 
98 #endif /* HP2DEDGE_BF_ADVECTION_HH_ */
A 2D FEM edge element: a quad.
Definition: bf_advection.hh:40
GenericElement< KarniadakisMixin< F > > Element
template aliases for backwards compatibility
Definition: element.hh:270
2D hp-FEM for H1-conforming elements.
Abstract function class to evaluate a bilinear form.
Definition: bilinearForm.hh:33
Helper class for bilinearforms , where is a 2-form and a 1-form.
std::complex< Real > Cmplx
Type for a complex number. It also depends on the setting of Real.
Definition: typedefs.hh:39
Element matrix.
Definition: linearForm.hh:18
double Real
Type normally used for a floating point number.
Definition: typedefs.hh:36
Basic namespace for Concepts-2.
Definition: pml_formula.h:16
hp 2D edge elements for electromagnetics.
Definition: bf_advection.hh:37
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich