00001 #ifdef CH_LANG_CC
00002
00003
00004
00005
00006
00007
00008
00009 #endif
00010
00011 #ifndef _GAUSSIANIF_H_
00012 #define _GAUSSIANIF_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
00027
00028 class GaussianIF: public BaseIF
00029 {
00030 public:
00031
00032
00033
00034
00035
00036
00037
00038 GaussianIF(const RealVect& a_origin,
00039 const Real& a_height,
00040 const RealVect& a_sig2,
00041 const int& a_upDir,
00042 const bool& a_inside);
00043
00044
00045 GaussianIF(const GaussianIF& a_inputIF);
00046
00047
00048 virtual ~GaussianIF();
00049
00050
00051
00052
00053
00054 virtual void GetParams(RealVect& a_origin,
00055 Real& a_height,
00056 RealVect& a_sig2,
00057 int& a_upDir,
00058 bool& a_inside) const;
00059
00060
00061
00062
00063
00064 virtual void SetParams(const RealVect& a_origin,
00065 const Real& a_height,
00066 const RealVect& a_sig2,
00067 const int& a_upDir,
00068 const bool& a_inside);
00069
00070
00071
00072
00073
00074 virtual Real value(const RealVect& a_point) const;
00075
00076 virtual BaseIF* newImplicitFunction() const;
00077
00078 protected:
00079 RealVect m_origin;
00080 Real m_height;
00081 RealVect m_sig2;
00082 int m_upDir;
00083 bool m_inside;
00084
00085 private:
00086 GaussianIF()
00087 {
00088 MayDay::Abort("GaussianIF uses strong construction");
00089 }
00090
00091 void operator=(const GaussianIF& a_inputIF)
00092 {
00093 MayDay::Abort("GaussianIF doesn't allow assignment");
00094 }
00095 };
00096
00097 #include "NamespaceFooter.H"
00098 #endif