Class documentation of Concepts

Loading...
Searching...
No Matches
Eddy2D_H_eField.hh
Go to the documentation of this file.
1
8#ifndef Eddy2D_H_eField_hh
9#define Eddy2D_H_eField_hh
10
11#include "basics.hh"
12#include "geometry/formula.hh"
13#include "hp2D/function.hh"
15
16namespace hp2D {
17
18 using concepts::Real;
19 using concepts::Real2d;
20 using concepts::Cmplx;
22
23 // ********************************************************* Eddy2D_eField **
24
29 class Eddy2D_eField : public ElementFunction<2,Cmplx> {
30 public:
33 virtual ~Eddy2D_eField();
34
35 virtual Eddy2D_eField* clone() const {
36 return new Eddy2D_eField(*Sigma_Inv_, curlH0_.get());
37 }
38 protected:
39 virtual std::ostream& info(std::ostream& os) const;
40 private:
41 virtual void compute_(const Quad<>& elm,
42 const concepts::Array<Cmplx>& coeff,
44 const uint i[2]) const;
45 virtual void compute_(const Quad<>& elm, const uint j[2],
47 const uint i[2]) const;
48 virtual void compute_(const Quad<>& elm,
49 const concepts::Array<Cmplx>& coeff,
51 const Real2d& p, const Real t = 0.0) const;
53 void convert_(const Quad<>& elm, concepts::Array<Cmplx>& val,
54 const Real2d& p, const Real t = 0.0) const;
56 std::unique_ptr<concepts::PiecewiseFormulaBase<Real> > Sigma_Inv_;
58 std::unique_ptr<const concepts::PiecewiseFormulaBase<Real2d> > curlH0_;
60 PlCurl<Cmplx> plcurl_;
61 };
62
63 // **************************************************** Eddy2D_dissipation **
64
69 class Eddy2D_dissipation : public ElementFunction<1,Cmplx> {
70 public:
73 virtual ~Eddy2D_dissipation() {}
74
75 virtual Eddy2D_dissipation* clone() const {
76 return new Eddy2D_dissipation(*sigma_, *eField_);
77 }
78 protected:
79 virtual std::ostream& info(std::ostream& os) const;
80 private:
81 virtual void compute_(const Quad<>& elm,
82 const concepts::Array<Cmplx>& coeff,
83 Cmplx& val, const uint i[2]) const;
84 virtual void compute_(const Quad<>& elm, const uint j[2],
85 Cmplx& val, const uint i[2]) const;
86 virtual void compute_(const Quad<>& elm,
87 const concepts::Array<Cmplx>& coeff, Cmplx& val,
88 const Real2d& p, const Real t = 0.0) const;
90 void convert_(const concepts::Array<Cmplx>& eField,
91 const Real& sigma, Cmplx& val) const;
93 std::unique_ptr<concepts::PiecewiseConstFormula<Real> > sigma_;
95 std::unique_ptr<concepts::ElementFunction<Cmplx> > eField_;
96 };
97
98} // namespace hp2D
99
100#endif // Eddy2D_H_eField_hh
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
double Real
Definition typedefs.hh:39
std::complex< Real > Cmplx
Type for a complex number. It also depends on the setting of Real.
Definition typedefs.hh:42