LORENE
star_rot_dirac_diff.h
1 /*
2  * Definition of Lorene class Star_rot_dirac_diff
3  *
4  */
5 
6 /*
7  * Copyright (c) 2005 Motoyuki Saijo
8  *
9  * This file is part of LORENE.
10  *
11  * LORENE is free software; you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License as published by
13  * the Free Software Foundation; either version 2 of the License, or
14  * (at your option) any later version.
15  *
16  * LORENE is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with LORENE; if not, write to the Free Software
23  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24  *
25  */
26 
27 
28 #ifndef __STAR_ROT_DIRAC_DIFF_H_
29 #define __STAR_ROT_DIRAC_DIFF_H_
30 
31 /*
32  *
33  * $Header: /cvsroot/Lorene/C++/Include/star_rot_dirac_diff.h,v 1.2 2014/10/13 08:52:36 j_novak Exp $
34  *
35  */
36 
37 // Headers Lorene
38 #include "star_rot_dirac.h"
39 
40 namespace Lorene {
41 
50 
51  // Data :
52  // -----
53  protected:
64  double (*frot)(double, const Tbl&) ;
65 
72  double (*primfrot)(double, const Tbl&) ;
73 
82 
85 
86  double omega_min ;
87  double omega_max ;
88 
91 
92  // Constructors - Destructor
93  // -------------------------
94  public:
110  Star_rot_Dirac_diff(Map& mp_i, int nzet_i, const Eos& eos_i,
111  double (*frot_i)(double, const Tbl&),
112  double (*primfrot_i)(double, const Tbl&),
113  const Tbl& par_frot_i) ;
114 
116 
127  Star_rot_Dirac_diff(Map& mp_i, const Eos& eos_i, FILE* fich,
128  double (*frot_i)(double, const Tbl&),
129  double (*primfrot_i)(double, const Tbl&) ) ;
130 
131  virtual ~Star_rot_Dirac_diff() ;
132 
133 
134  // Memory management
135  // -----------------
136 
137  // Everything is inherited from Star_rot_dirac
138 
139  // Mutators / assignment
140  // ---------------------
141  public:
143  void operator=(const Star_rot_Dirac_diff& ) ;
144 
145  // Accessors
146  // ---------
147  public:
149  const Scalar& get_omega_field() const {return omega_field;} ;
150 
154  virtual double get_omega_c() const ;
155 
156 
157  // Outputs
158  // -------
159  public:
160  virtual void sauve(FILE *) const ;
161 
162 /* /// Display in polytropic units */
163 /* virtual void display_poly(ostream& ) const ; */
164 
166  friend ostream& operator<<(ostream& , const Star& ) ;
167 
168 
169  protected:
171  virtual ostream& operator>>(ostream& ) const ;
172 
173 
174  // Computational routines
175  // ----------------------
176  public:
177 
178  virtual double tsw() const ;
179 
191  virtual void hydro_euler() ;
192 
211  void fait_omega_field(double omeg_min, double omeg_max,
212  double precis, int nitermax) ;
213 
215  void fait_prim_field() ;
216 
232  double funct_omega(double omeg) const ;
233 
242  double prim_funct_omega(double omeg) const ;
243 
323  virtual void equilibrium(double ent_c, double omega0, double fact_omega,
324  int nzadapt, const Tbl& ent_limit,
325  const Itbl& icontrol, const Tbl& control,
326  double mbar_wanted, double aexp_mass,
327  Tbl& diff) ;
328 
329  };
330 
331 }
332 #endif
void fait_prim_field()
Computes the member prim_field from omega_field .
virtual double tsw() const
Ratio T/W.
void operator=(const Star_rot_Dirac_diff &)
Assignment to another Star_rot_Dirac_diff.
virtual void hydro_euler()
Computes the hydrodynamical quantities relative to the Eulerian observer from those in the fluid fram...
virtual void equilibrium(double ent_c, double omega0, double fact_omega, int nzadapt, const Tbl &ent_limit, const Itbl &icontrol, const Tbl &control, double mbar_wanted, double aexp_mass, Tbl &diff)
Computes an equilibrium configuration.
Lorene prototypes.
Definition: app_hor.h:67
Equation of state base class.
Definition: eos.h:209
Tensor field of valence 0 (or component of a tensorial field).
Definition: scalar.h:393
Base class for coordinate mappings.
Definition: map.h:682
double(* primfrot)(double, const Tbl &)
Primitive of the function , which vanishes at the stellar center.
Basic integer array class.
Definition: itbl.h:122
Base class for stars.
Definition: star.h:175
virtual void sauve(FILE *) const
Save in a file.
Tbl par_frot
Parameters of the function .
void fait_omega_field(double omeg_min, double omeg_max, double precis, int nitermax)
Computes (member omega_field ).
friend ostream & operator<<(ostream &, const Star &)
Display.
Definition: star.C:415
double omega_max
Maximum value of .
double(* frot)(double, const Tbl &)
Function defining the rotation profile.
Star_rot_Dirac_diff(Map &mp_i, int nzet_i, const Eos &eos_i, double(*frot_i)(double, const Tbl &), double(*primfrot_i)(double, const Tbl &), const Tbl &par_frot_i)
Standard constructor.
Class for relativistic rotating stars in Dirac gauge and maximal slicing.
double prim_funct_omega(double omeg) const
Evaluates the primitive of , where F is the function defining the rotation profile.
virtual ~Star_rot_Dirac_diff()
Destructor.
Class for relativistic differentially rotating stars in Dirac gauge and maximal slicing.
const Scalar & get_omega_field() const
Returns the angular velocity field .
virtual ostream & operator>>(ostream &) const
Operator >> (virtual function called by the operator <<).
double omega_min
Minimum value of .
Basic array class.
Definition: tbl.h:164
virtual double get_omega_c() const
Returns the central value of the rotation angular velocity ([f_unit] )
double funct_omega(double omeg) const
Evaluates , where F is the function defining the rotation profile.