tracesEval.hh

Go to the documentation of this file.
1 
8 #ifndef TRACESEVAL_HH
9 #define TRACESEVAL_HH
10 
13 
14 namespace concepts {
15  // forward declarations
16  template<class F>
17  class ElementWithCell;
18 
19  template<class F, class G>
20  class ElementFunction;
21 }
22 
23 namespace hp3D {
24 
25 using concepts::Real;
26 
27 // forward declarations
28 class Space;
29 class TraceSpace;
30 template<class F>
31 class Element;
32 
43 template<uint dim, class F = Real, class G = F>
45  public concepts::ElementFormula<concepts::Point<G,dim> > {
46 
47 public:
58  const Space &spc,
59  const concepts::Vector<F> &vec,
61 
63  const concepts::Real p,
64  const concepts::Real t = 0.0) const;
66  const concepts::Real2d &p,
67  const concepts::Real t = 0.0) const;
69  const concepts::Real3d &p,
70  const concepts::Real t = 0.0) const;
71 
73  {
75  }
76 protected:
77  virtual std::ostream& info(std::ostream &os) const;
78 
79 private:
80 
82  uint &face) const;
83 
84  const TraceSpace &tspc_;
85  const Space &spc_;
87  std::unique_ptr<const concepts::ElementFunction<G, Real> > func_;
89 
90 };
91 
92 } // namespace hp3D
93 
94 #endif // TRACESEVAL_HH
Builds the trace space of a FE space consisting of hexahedral elements.
Definition: traces.hh:35
Class for evaluation of solutions on the TraceSpace with an ElementFunction that is only given on the...
Definition: tracesEval.hh:45
An abstract class for a function in a FE space.
Basic class for a Point or a vector.
virtual ElementFormulaVectorOnTrace< dim, F, G > * clone() const
Virtual constructor.
Definition: tracesEval.hh:72
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
GenericElement< KarniadakisMixin< F > > Element
template aliases for backwards compatibility
Definition: element.hh:270
const concepts::Vector< F > & vec_
Definition: tracesEval.hh:86
virtual concepts::Point< G, dim > operator()(const concepts::ElementWithCell< Real > &elm, const concepts::Real3d &p, const concepts::Real t=0.0) const
A 3D hp FEM space with continuous, picewise polynomial basis functions.
Definition: space.hh:84
concepts::ElementFormulaVector< dim, F, G, Real > frmE_
Definition: tracesEval.hh:88
Vectorial formula created from a FE function.
const Element< Real > & getUnderlyingElementAndIndex_(const concepts::ElementWithCell< Real > &elm, uint &face) const
Interface for a formula defined element by element.
ElementFormulaVectorOnTrace(const TraceSpace &tspc, const Space &spc, const concepts::Vector< F > &vec, const concepts::ElementFunction< G, Real > &func)
Constructor.
virtual concepts::Point< G, dim > operator()(const concepts::ElementWithCell< Real > &elm, const concepts::Real p, const concepts::Real t=0.0) const
virtual concepts::Point< G, dim > operator()(const concepts::ElementWithCell< Real > &elm, const concepts::Real2d &p, const concepts::Real t=0.0) const
3D hp-FEM for H1-conforming elements.
Definition: meshDX.hh:23
std::unique_ptr< const concepts::ElementFunction< G, Real > > func_
Definition: tracesEval.hh:87
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