00001 #ifdef CH_LANG_CC
00002
00003
00004
00005
00006
00007
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
00021
00022
00023
00024
00025
00026 class PolarIF: public BaseIF
00027 {
00028 public:
00029
00030 PolarIF(const Real& a_primaryRadius,
00031 const Real& a_perturbation,
00032 const int & a_frequency,
00033 const bool& a_inside);
00034
00035
00036 PolarIF(const PolarIF& a_inputIF);
00037
00038
00039 virtual ~PolarIF();
00040
00041
00042
00043
00044
00045 virtual void GetParams(Real& a_primaryRadius,
00046 Real& a_perturbation,
00047 int & a_frequency,
00048 bool& a_inside)const;
00049
00050
00051
00052
00053
00054 virtual void SetParams(const Real& a_primaryRadius,
00055 const Real& a_perturbation,
00056 const int & a_frequency,
00057 const bool& a_inside);
00058
00059
00060
00061
00062
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::Abort("PolarIF uses strong construction");
00077 }
00078
00079 void operator=(const PolarIF& a_inputIF)
00080 {
00081 MayDay::Abort("PolarIF doesn't allow assignment");
00082 }
00083 };
00084
00085 #include "NamespaceFooter.H"
00086 #endif