bf_identity.hh

Go to the documentation of this file.
1 
6 #ifndef hp2dbf_identity_hh
7 #define hp2dbf_identity_hh
8 
9 #include "basics/typedefs.hh"
10 #include "operator/bilinearForm.hh"
13 
14 
15 namespace concepts {
16  // forward declarations
17  template<class F>
18  class Array;
19 
20  template<class F, uint dim>
21  class Point;
22 
23  template<class F>
24  class Element;
25 
26  template<class F>
27  class ElementMatrix;
28 
29  template<typename F, typename G>
30  class ElementFormula;
31 }
32 
33 namespace vectorial {
34  // forward declarations
35  template<class F, class G>
36  class BilinearForm;
37 }
38 
39 namespace hp2D {
40  // forward declarations
41  template<class F>
42  class Quad;
43 
44  class InfiniteLaguerreQuad;
45 
46  using concepts::Real;
47 
48 
49  // ************************************************************** Identity **
50 
56  template<class F = Real>
57  class Identity : public concepts::BilinearForm<F,Real>,
58  public BilinearFormHelper_0_0<F> {
59  public:
63  bool all = false);
64  virtual ~Identity();
65  virtual Identity<F>* clone() const;
66 
68  const concepts::Element<Real>& elmY,
69  concepts::ElementMatrix<F>& em) const;
70  protected:
71  virtual std::ostream& info(std::ostream& os) const;
72  private:
76  bool all_;
77 
79  bool operator()(const Quad<Real>* elmX,
80  const Quad<Real>* elmY,
81  concepts::ElementMatrix<F>& em) const;
83  bool operator()(const InfiniteLaguerreQuad* elmX,
84  const InfiniteLaguerreQuad* elmY,
85  concepts::ElementMatrix<F>& em) const;
86  };
87 
88 
89  // ********************************************************** setupIdentity **
90 
95  template<class F>
100 
108  template<class F>
112  bool transpose = false);
113 
114 
115 } // namespace hp2D
116 
117 #endif // hp2dbf_identity_hh
Basic class for a 2D or 3D map.
Vector valued problems.
Definition: spaceTraits.hh:24
A 2D FEM element: an infinite quad with basis based on Laguerre functions.
Definition: quad.hh:452
Vector valued bilinear form.
Definition: bf_advection.hh:38
virtual ~Identity()
GenericElement< KarniadakisMixin< F > > Element
template aliases for backwards compatibility
Definition: element.hh:270
concepts::ElementMatrix< Real > mass1D_
Local 1D mass matrix for Karniadakis basis.
Definition: bf_identity.hh:74
2D hp-FEM for H1-conforming elements.
A function class to calculate element matrices for the mass matrix.
Definition: bf_identity.hh:58
Abstract function class to evaluate a bilinear form.
Definition: bilinearForm.hh:33
virtual Identity< F > * clone() const
Virtual constructor.
bool all_
For SumFactorization:
Definition: bf_identity.hh:76
bool operator()(const Quad< Real > *elmX, const Quad< Real > *elmY, concepts::ElementMatrix< F > &em) const
Assembling for hp2D::Quad.
void setupIdentity(vectorial::BilinearForm< F, typename concepts::Realtype< F >::type > &bf, const concepts::ElementFormulaContainer< F > frm=concepts::ElementFormulaContainer< F >())
Function to setup a bilinear form related to the vector Identity, namely.
void operator()(const concepts::Element< Real > &elmX, const concepts::Element< Real > &elmY, concepts::ElementMatrix< F > &em) const
Mapping< F, dim > & transpose(Mapping< F, dim > &m)
Definition: operations.hh:54
Helper class for bilinearforms a(u,v), where u and v are 0-forms.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
Element matrix.
Definition: linearForm.hh:18
bool operator()(const InfiniteLaguerreQuad *elmX, const InfiniteLaguerreQuad *elmY, concepts::ElementMatrix< F > &em) const
Assembling for hp2D::InfiniteLaguerreQuad.
Identity(const concepts::ElementFormulaContainer< F > frm=concepts::ElementFormulaContainer< F >(), bool all=false)
Constructor.
double Real
Type normally used for a floating point number.
Definition: typedefs.hh:36
Basic namespace for Concepts-2.
Definition: pml_formula.h:16
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich