star_rot_dirac_diff.h

00001 /*
00002  *  Definition of Lorene class Star_rot_dirac_diff
00003  *
00004  */
00005 
00006 /*
00007  *   Copyright (c) 2005 Motoyuki Saijo
00008  *
00009  *   This file is part of LORENE.
00010  *
00011  *   LORENE is free software; you can redistribute it and/or modify
00012  *   it under the terms of the GNU General Public License as published by
00013  *   the Free Software Foundation; either version 2 of the License, or
00014  *   (at your option) any later version.
00015  *
00016  *   LORENE is distributed in the hope that it will be useful,
00017  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
00018  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00019  *   GNU General Public License for more details.
00020  *
00021  *   You should have received a copy of the GNU General Public License
00022  *   along with LORENE; if not, write to the Free Software
00023  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00024  *
00025  */
00026 
00027 
00028 #ifndef __STAR_ROT_DIRAC_DIFF_H_ 
00029 #define __STAR_ROT_DIRAC_DIFF_H_ 
00030 
00031 /*
00032  *
00033  * $Header: /cvsroot/Lorene/C++/Include/star_rot_dirac_diff.h,v 1.1 2005/08/13 19:45:42 m_saijo Exp $
00034  *
00035  */
00036 
00044 // Headers Lorene
00045 #include "star_rot_dirac.h"
00046 
00047 
00048 class Star_rot_Dirac_diff : public Star_rot_Dirac {
00049 
00050     // Data : 
00051     // -----
00052     protected:
00063     double (*frot)(double, const Tbl&) ;
00064     
00071     double (*primfrot)(double, const Tbl&) ;
00072     
00080     Tbl par_frot ; 
00081     
00083     Scalar omega_field ; 
00084     
00085     double omega_min ;   
00086     double omega_max ;   
00087     
00089     Scalar prim_field ; 
00090     
00091     // Constructors - Destructor
00092     // -------------------------
00093     public:
00109     Star_rot_Dirac_diff(Map& mp_i, int nzet_i, const Eos& eos_i, 
00110             double (*frot_i)(double, const Tbl&), 
00111             double (*primfrot_i)(double, const Tbl&), 
00112             const Tbl& par_frot_i) ;            
00113 
00114     Star_rot_Dirac_diff(const Star_rot_Dirac_diff& ) ;      
00115 
00126     Star_rot_Dirac_diff(Map& mp_i, const Eos& eos_i, FILE* fich,
00127             double (*frot_i)(double, const Tbl&), 
00128             double (*primfrot_i)(double, const Tbl&) ) ;            
00129     
00130     virtual ~Star_rot_Dirac_diff() ;            
00131 
00132 
00133     // Memory management
00134     // -----------------
00135 
00136     // Everything is inherited from Star_rot_dirac
00137 
00138     // Mutators / assignment
00139     // ---------------------
00140     public:
00142     void operator=(const Star_rot_Dirac_diff& ) ;   
00143     
00144     // Accessors
00145     // ---------
00146     public:
00148     const Scalar& get_omega_field() const {return omega_field;} ; 
00149 
00153        virtual double get_omega_c() const ;
00154 
00155 
00156     // Outputs
00157     // -------
00158     public:
00159     virtual void sauve(FILE *) const ;      
00160     
00161 /*  /// Display in polytropic units */
00162 /*  virtual void display_poly(ostream& ) const ; */
00163 
00165     friend ostream& operator<<(ostream& , const Star& ) ;   
00166 
00167 
00168     protected:
00170     virtual ostream& operator>>(ostream& ) const ;    
00171 
00172 
00173     // Computational routines
00174     // ----------------------
00175     public: 
00176 
00177     virtual double tsw() const ;        
00178 
00190     virtual void hydro_euler() ; 
00191 
00210     void fait_omega_field(double omeg_min, double omeg_max,
00211                   double precis, int nitermax) ;
00212     
00214     void fait_prim_field() ;
00215     
00231     double funct_omega(double omeg) const ;     
00232 
00241     double prim_funct_omega(double omeg) const ;    
00242 
00322     virtual void equilibrium(double ent_c, double omega0, double fact_omega, 
00323              int nzadapt, const Tbl& ent_limit,
00324              const Itbl& icontrol, const Tbl& control,
00325              double mbar_wanted, double aexp_mass, 
00326              Tbl& diff) ;
00327     
00328  };
00329 
00330 #endif

Generated on Tue Feb 7 01:35:20 2012 for LORENE by  doxygen 1.4.6