Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)

models/Maxwell2D_E_hField.hh
Go to the documentation of this file.
00001 
00007 #ifndef Maxwell2D_E_hField_hh
00008 #define Maxwell2D_E_hField_hh
00009 
00010 #include "geometry/formula.hh"
00011 #include "hp2Dedge/function.hh"
00012 #include "hp2Dedge/bilinearForm.hh"
00013 #include "basics.hh"
00014 #include "toolbox.hh"
00015 
00016 namespace hp2D {
00017 
00018   using concepts::Real;
00019   using concepts::Cmplx;
00020 
00021   class Maxwell2D_hField : 
00022     public hp2D::ElementFunction<1, Cmplx, hp2Dedge::Quad<> > {
00023   public:
00024     Maxwell2D_hField(const Real& omega, const Real& mu);
00025     virtual ~Maxwell2D_hField() {}
00026 
00027     virtual Maxwell2D_hField* clone() const {
00028       return new Maxwell2D_hField(1.0 / std::imag(factor_), 1.0); }
00029   protected:
00030     virtual std::ostream& info(std::ostream& os) const;
00031   private:
00032     virtual void compute_(const hp2Dedge::Quad<>& elm,
00033         const concepts::Array<Cmplx>& coeff,
00034         Cmplx& val, const uint i[2]) const;
00035     virtual void compute_(const hp2Dedge::Quad<>& elm, const uint j[3],
00036         Cmplx& val, const uint i[2]) const;
00037     virtual void compute_(const hp2Dedge::Quad<>& elm,
00038         const concepts::Array<Cmplx>& coeff,
00039         Cmplx& val,
00040         const Real2d& p, const Real t = 0.0) const;
00042     hp2Dedge::Rot<Cmplx> scurl_;
00044     Cmplx factor_;
00045   };
00046 
00047 } // namespace hp2D
00048 
00049 #endif // Maxwell2D_E_hField_hh

Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)