/*************************************************************************** * $Id: models01to10.h,v 1.3 2009/02/09 20:51:13 thernis Exp $ * ****************************************************************************/ #ifndef _MODELS01TO10_H_ #define _MODELS01TO10_H_ #include #include "Cvec.h" #include "CModelBase.h" //!M.Guhathakurta model. //! //! From: "The Large-scale density structure of the solar corona and the heliospheric surrent sheet", ApJ, 458:817-831, 1996 Feb 20 class CModel01 : public CModelBase { public: float Density(const Cvec &v,float &temperature); //int getNbparam() {return 0;}; void dumpDefaultParamForIDL(std::vector& vp,int& flagcase); }; //! Model for testing purpose class CModel02 : public CModelBase { public: float Density(const Cvec &v,float &temperature); void dumpDefaultParamForIDL(std::vector& vp,int& flagcase); }; //! Model for testing purpose class CModel03 : public CModelBase { public: float Density(const Cvec &v,float &temperature); void dumpDefaultParamForIDL(std::vector& vp,int& flagcase); }; //! Density cube from Y.M. with trilinear interpolation class CModel04 : public CModelBase { public: float Density(const Cvec &v,float &temperature); void initParam(float* pparam); void dumpDefaultParamForIDL(std::vector& vp,int& flagcase); protected: float* pmparam; }; //! Same as Model 4 but without trilinear interpolation class CModel05 : public CModelBase { public: float Density(const Cvec &v,float &temperature); void initParam(float* pparam); void dumpDefaultParamForIDL(std::vector& vp,int& flagcase); protected: float* pmparam; }; //! Very simple model of streamer belt class CModel06 : public CModelBase { public: float Density(const Cvec &v,float &temperature); void dumpDefaultParamForIDL(std::vector& vp,int& flagcase); }; //! Slab model of streamer based on Guhathakurta model. class CModel07 : public CModelBase { public: float Density(const Cvec &v,float &temperature); void dumpDefaultParamForIDL(std::vector& vp,int& flagcase); }; //! Sphericaly symmetric Ne //! //! Use the Hayes model: //! //! Ne(r)=Sum_k alpha_k * r^(-k) , k=1,2,3,4 //! class CModel08 : public CModelBase { public: float Density(const Cvec &v,float &temperature); void dumpDefaultParamForIDL(std::vector& vp,int& flagcase); }; //! Guhatahakurta radial and Vibert shape. //! //! - Ne=Nradial(r) x Nshape(d) //! //! - Nshape(d)=exp(-(d/d0)^4) //! class CModel09 : public CModelBase { public: float Density(const Cvec &v,float &temperature); void dumpDefaultParamForIDL(std::vector& vp,int& flagcase); }; //! Sphericaly symmetric Ne //! //! use the Hayes model //! //! - Ne(r)=Sum_k alpha_k * r^(-k) , k=1,2,3,4 //! - Orthoradial model : exp(-abs(d/d0)) //! class CModel10 : public CModelBase { public: float Density(const Cvec &v,float &temperature); void dumpDefaultParamForIDL(std::vector& vp,int& flagcase); }; #endif /* * $Log: models01to10.h,v $ * Revision 1.3 2009/02/09 20:51:13 thernis * - Clean up the code * - Change CModel::Density prototype * - Update documentation * - Implement multi-threading using boost thread * - Add new models * * Revision 1.2 2007/05/14 17:19:41 thernis * Add CVS id and log in all files * */