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

models/maxwell.hh
Go to the documentation of this file.
00001 
00006 #ifndef Maxwell_hh
00007 #define Maxwell_hh
00008 
00009 #include "basics/exceptions.hh"
00010 
00011 namespace concepts {
00012 
00013   // ******************************************************* MaxwellBoundary **
00014   
00017   class MaxwellBoundary  {
00018   public:
00025     enum boundaryType { PMC = 0, PEC = 1, MAX_TYPE};
00027     MaxwellBoundary(enum boundaryType bType) : bType_(bType) {
00028       conceptsAssert(bType < MAX_TYPE, Assertion());
00029     }
00031     const boundaryType bType() const { return bType_; }
00032     boundaryType& bType() { return bType_; }
00034     const std::string bTypeStr() const { 
00035       std::string typeStr;
00036       switch(bType_) {
00037       case PMC: typeStr = "PMC"; break;
00038       case PEC: typeStr = "PEC"; break;
00039       default: throw conceptsException
00040      (MissingFeature("boundary type not known")); 
00041       } // switch
00042       return typeStr;
00043     }
00044   private:
00046     enum boundaryType bType_;
00047   };
00048 
00049   // ********************************************************** MaxwellModel **
00050 
00053   class MaxwellModel  {
00054   public:
00056     virtual Real dissipation() = 0;
00058     virtual Real magnEnergy() = 0;
00059   };
00060 
00061 } // namespace concepts
00062 
00063 #endif // Maxwell_hh
00064 

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