bf3D_partialDeriv.hh

Go to the documentation of this file.
1 
8 #ifndef HP3D_PARTIALDERIV_HH
9 #define HP3D_PARTIALDERIV_HH
10 
11 #include <memory>
12 #include "operator/bilinearForm.hh"
13 #include "basics/typedefs.hh"
14 
15 namespace concepts {
16  // forward declarations
17  template <class F>
18  class Element;
19 
20  template <class F>
21  class ElementMatrix;
22 }
23 
24 namespace hp3D {
25 
26  // forward declarations
27  class Hexahedron;
28 
29  using concepts::Real;
30 
32  X_DERIV = 1,
33  Y_DERIV = 2,
34  Z_DERIV = 3 };
35 
41  template <class F = Real>
43  public:
45  const enum partDerivType &vDeriv);
46 
48 
50  return new BilinearFormTwoPartDeriv<F>(uDeriv_, vDeriv_);
51  }
52 
53  virtual void operator()(const concepts::Element<Real>& elmX,
54  const concepts::Element<Real>& elmY,
55  concepts::ElementMatrix<F> &em) const;
56 
57  virtual std::ostream& info(std::ostream& os) const;
58 
59  private:
60  const enum partDerivType uDeriv_, vDeriv_;
61 
64 
65  void operator()(const Hexahedron &elmX,
66  const Hexahedron &elmY,
67  concepts::ElementMatrix<F> &em) const;
68 
69  }; // class BilinearFormTwoPartDeriv
70 
71 } // namespace hp3D
72 
73 #endif // HP3D_PARTIALDERIV_HH
A 3D FEM element: a hexahedron.
Definition: hexahedron.hh:37
GenericElement< KarniadakisMixin< F > > Element
template aliases for backwards compatibility
Definition: element.hh:270
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
Abstract function class to evaluate a bilinear form.
Definition: bilinearForm.hh:33
enum partDerivType uDeriv_ vDeriv_
concepts::Array< concepts::MapReal3d > intermediateMatrix_
An array of objects.
Definition: bilinearForm.hh:23
BilinearFormTwoPartDeriv(const enum partDerivType &uDeriv, const enum partDerivType &vDeriv)
virtual void operator()(const concepts::Element< Real > &elmX, const concepts::Element< Real > &elmY, concepts::ElementMatrix< F > &em) const
A class to calculate the element matrices for partial derivatives.
void operator()(const Hexahedron &elmX, const Hexahedron &elmY, concepts::ElementMatrix< F > &em) const
Element matrix.
Definition: linearForm.hh:18
virtual BilinearFormTwoPartDeriv< F > * clone() const
Virtual constructor.
3D hp-FEM for H1-conforming elements.
Definition: meshDX.hh:23
concepts::Array< F > intermediateValue_
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