bf3D_linearElasticity.hh

Go to the documentation of this file.
1 
8 #ifndef HP3D_LINEARELASTICITY_HH
9 #define HP3D_LINEARELASTICITY_HH
10 
11 #include "basics/typedefs.hh"
12 #include "operator/bilinearForm.hh"
13 
14 namespace concepts {
15  // forward declarations
16  template <class F>
17  class Element;
18 
19  template <class F>
20  class ElementMatrix;
21 }
22 
23 namespace vectorial {
24  // forward declaration
25  template<class F, class G>
26  class BilinearForm;
27 }
28 
29 namespace hp3D {
30  // forward declaration
31  class Hexahedron;
32 
33  using concepts::Real;
34 
41  template <class F>
43  {
44  public:
45  LinearElasticity(const uint &i, const uint &j,
46  const Real &lambda, const Real &mu);
47 
48  virtual ~LinearElasticity();
49 
50  virtual void operator()(const concepts::Element<Real> &elmX,
51  const concepts::Element<Real> &elmY,
52  concepts::ElementMatrix<F> &em) const;
53 
54  virtual LinearElasticity* clone() const
55  {
56  return new LinearElasticity(i_, j_, lambda_, mu_);
57  }
58 
59  virtual std::ostream& info(std::ostream &os) const;
60 
62  const Real &lambda, const Real &mu);
63 
64  private:
65 
66  void operator()(const Hexahedron &elmX, const Hexahedron &elmY,
67  concepts::ElementMatrix<F> &em) const;
68 
69 
70  uint i_;
71  uint j_;
74 
79 
80  };
81 
82 } // namespace hp3D
83 
84 #endif // HP3D_LINEARELASTICITY_HH
A 3D FEM element: a hexahedron.
Definition: hexahedron.hh:37
Vector valued problems.
Definition: spaceTraits.hh:24
virtual LinearElasticity * clone() const
Virtual constructor.
concepts::BilinearForm< F > * bfA_
Vector valued bilinear form.
Definition: bf_advection.hh:38
GenericElement< KarniadakisMixin< F > > Element
template aliases for backwards compatibility
Definition: element.hh:270
LinearElasticity(const uint &i, const uint &j, const Real &lambda, const Real &mu)
Abstract function class to evaluate a bilinear form.
Definition: bilinearForm.hh:33
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
static void setup(vectorial::BilinearForm< F, Real > &bf, const Real &lambda, const Real &mu)
virtual void operator()(const concepts::Element< Real > &elmX, const concepts::Element< Real > &elmY, concepts::ElementMatrix< F > &em) const
void operator()(const Hexahedron &elmX, const Hexahedron &elmY, concepts::ElementMatrix< F > &em) const
Element matrix.
Definition: linearForm.hh:18
concepts::BilinearForm< F > * bfB_
3D hp-FEM for H1-conforming elements.
Definition: meshDX.hh:23
double Real
Type normally used for a floating point number.
Definition: typedefs.hh:36
Basic namespace for Concepts-2.
Definition: pml_formula.h:16
A class to calculate the element matrices for problems of linear elasticity in 3D.
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich