Maxwell2D_E_hField.hh

Go to the documentation of this file.
1 
9 #ifndef Maxwell2D_E_hField_hh
10 #define Maxwell2D_E_hField_hh
11 
12 #include "geometry/formula.hh"
13 #include "hp2Dedge/function.hh"
14 #include "hp2Dedge/bilinearForm.hh"
15 #include "basics.hh"
16 #include "toolbox.hh"
17 
18 namespace hp2D {
19 
20  using concepts::Real;
21  using concepts::Cmplx;
22 
24  public hp2D::ElementFunction<1, Cmplx, hp2Dedge::Quad<> > {
25  public:
26  Maxwell2D_hField(const Real& omega, const Real& mu);
27  virtual ~Maxwell2D_hField() {}
28 
29  virtual Maxwell2D_hField* clone() const {
30  return new Maxwell2D_hField(1.0 / std::imag(factor_), 1.0); }
31  protected:
32  virtual std::ostream& info(std::ostream& os) const;
33  private:
34  virtual void compute_(const hp2Dedge::Quad<>& elm,
35  const concepts::Array<Cmplx>& coeff,
36  Cmplx& val, const uint i[2]) const;
37  virtual void compute_(const hp2Dedge::Quad<>& elm, const uint j[3],
38  Cmplx& val, const uint i[2]) const;
39  virtual void compute_(const hp2Dedge::Quad<>& elm,
40  const concepts::Array<Cmplx>& coeff,
41  Cmplx& val,
42  const Real2d& p, const Real t = 0.0) const;
47  };
48 
49 } // namespace hp2D
50 
51 #endif // Maxwell2D_E_hField_hh
virtual Maxwell2D_hField * clone() const
virtual void compute_(const hp2Dedge::Quad<> &elm, const concepts::Array< Cmplx > &coeff, Cmplx &val, const uint i[2]) const
A 2D FEM edge element: a quad.
Definition: bf_advection.hh:40
Point< Real, 2 > Real2d
Base class for element functions for hp elements in 2D.
Definition: functionBase.hh:38
2D hp-FEM for H1-conforming elements.
Maxwell2D_hField(const Real &omega, const Real &mu)
virtual void compute_(const hp2Dedge::Quad<> &elm, const concepts::Array< Cmplx > &coeff, Cmplx &val, const Real2d &p, const Real t=0.0) const
std::complex< Real > Cmplx
Type for a complex number. It also depends on the setting of Real.
Definition: typedefs.hh:39
virtual void compute_(const hp2Dedge::Quad<> &elm, const uint j[3], Cmplx &val, const uint i[2]) const
hp2Dedge::Rot< Cmplx > scurl_
Scalar curl in 2D.
virtual std::ostream & info(std::ostream &os) const
double Real
Type normally used for a floating point number.
Definition: typedefs.hh:36
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich