00001 #ifdef CH_LANG_CC
00002
00003
00004
00005
00006
00007
00008
00009 #endif
00010
00011 #ifndef _RHODONEAIF_H_
00012 #define _RHODONEAIF_H_
00013
00014 #include "MayDay.H"
00015 #include "RealVect.H"
00016
00017 #include "BaseIF.H"
00018
00019 #include "NamespaceHeader.H"
00020
00022
00025 class RhodoneaIF: public BaseIF
00026 {
00027 public:
00029
00034 RhodoneaIF(const Real& a_innerRadius,
00035 const Real& a_outerRadius,
00036 const int& a_frequency,
00037 const RealVect& a_center,
00038 const bool& a_inside);
00039
00041 RhodoneaIF(const RhodoneaIF& a_inputIF);
00042
00044 virtual ~RhodoneaIF();
00045
00047
00050 virtual void GetParams(Real& a_innerRadius,
00051 Real& a_outerRadius,
00052 int& a_frequency,
00053 RealVect& a_center,
00054 bool& a_inside) const;
00055
00057
00060 virtual void SetParams(const Real& a_innerRadius,
00061 const Real& a_outerRadius,
00062 const int& a_frequency,
00063 const RealVect& a_center,
00064 const bool& a_inside);
00065
00067
00070 virtual Real value(const RealVect& a_point) const;
00071
00072 virtual BaseIF* newImplicitFunction() const;
00073
00074 protected:
00075 Real m_innerRadius;
00076 Real m_outerRadius;
00077 int m_frequency;
00078 RealVect m_center;
00079 bool m_inside;
00080
00081 private:
00082 RhodoneaIF()
00083 {
00084 MayDay::Error("RhodoneaIF uses strong construction");
00085 }
00086
00087 void operator=(const RhodoneaIF& a_inputIF)
00088 {
00089 MayDay::Error("RhodoneaIF doesn't allow assignment");
00090 }
00091 };
00092
00093 #include "NamespaceFooter.H"
00094 #endif