Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007 #ifndef Eddy2D_H_eField_hh
00008 #define Eddy2D_H_eField_hh
00009
00010 #include "hp2D/function.hh"
00011 #include "space/formula.hh"
00012 #include "basics.hh"
00013 #include "toolbox.hh"
00014
00015 namespace hp2D {
00016
00017 using concepts::Real;
00018 using concepts::Cmplx;
00019
00020 class Eddy2D_eField : public hp2D::ElementFunction<2,Cmplx> {
00021 public:
00022 Eddy2D_eField(const concepts::PiecewiseFormulaBase<Real>& Sigma_Inv);
00023 virtual ~Eddy2D_eField() {}
00024 virtual Eddy2D_eField* clone() const {
00025 return new Eddy2D_eField(*Sigma_Inv_); }
00026 protected:
00027 virtual std::ostream& info(std::ostream& os) const;
00028 private:
00029 virtual void compute_(const Quad<>& elm,
00030 const concepts::Array<Cmplx>& coeff,
00031 concepts::Array<Cmplx>& val,
00032 const uint i[2]) const;
00033 virtual void compute_(const Quad<>& elm, const uint j[2],
00034 concepts::Array<Cmplx>& val,
00035 const uint i[2]) const;
00036 virtual void compute_(const Quad<>& elm,
00037 const concepts::Array<Cmplx>& coeff,
00038 concepts::Array<Cmplx>& val,
00039 const Real2d& p, const Real t = 0.0) const;
00041 void convert_(const Quad<>& elm, concepts::Array<Cmplx>& val,
00042 const Real2d& p, const Real t = 0.0) const;
00044 std::auto_ptr<concepts::PiecewiseFormulaBase<Real> > Sigma_Inv_;
00046 PlCurl<Cmplx> plcurl_;
00047 };
00048
00049 }
00050
00051 #endif // Eddy2D_H_eField_hh