00001 #ifdef CH_LANG_CC 00002 /* 00003 * _______ __ 00004 * / ___/ / ___ __ _ / / ___ 00005 * / /__/ _ \/ _ \/ V \/ _ \/ _ \ 00006 * \___/_//_/\___/_/_/_/_.__/\___/ 00007 * Please refer to Copyright.txt, in Chombo's root directory. 00008 */ 00009 #endif 00010 00011 #ifndef _POLARIF_H_ 00012 #define _POLARIF_H_ 00013 00014 #include "MayDay.H" 00015 #include "RealVect.H" 00016 00017 #include "BaseIF.H" 00018 00019 #include "NamespaceHeader.H" 00020 00022 00026 class PolarIF: public BaseIF 00027 { 00028 public: 00030 PolarIF(const Real& a_primaryRadius, 00031 const Real& a_perturbation, 00032 const int & a_frequency, 00033 const bool& a_inside); 00034 00036 PolarIF(const PolarIF& a_inputIF); 00037 00039 virtual ~PolarIF(); 00040 00042 00045 virtual void GetParams(Real& a_primaryRadius, 00046 Real& a_perturbation, 00047 int & a_frequency, 00048 bool& a_inside)const; 00049 00051 00054 virtual void SetParams(const Real& a_primaryRadius, 00055 const Real& a_perturbation, 00056 const int & a_frequency, 00057 const bool& a_inside); 00058 00060 00063 virtual Real value(const RealVect& a_point) const; 00064 00065 virtual BaseIF* newImplicitFunction() const; 00066 00067 protected: 00068 Real m_primaryRadius; 00069 Real m_perturbation; 00070 int m_frequency; 00071 bool m_inside; 00072 00073 private: 00074 PolarIF() 00075 { 00076 MayDay::Error("PolarIF uses strong construction"); 00077 } 00078 00079 void operator=(const PolarIF& a_inputIF) 00080 { 00081 MayDay::Error("PolarIF doesn't allow assignment"); 00082 } 00083 }; 00084 00085 #include "NamespaceFooter.H" 00086 #endif