LORENE
et_rot_diff.h
1/*
2 * Definition of Lorene class Et_rot_diff
3 *
4 */
5
6/*
7 * Copyright (c) 2001 Eric Gourgoulhon
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 __ET_ROT_DIFF_H_
29#define __ET_ROT_DIFF_H_
30
31/*
32 * $Id: et_rot_diff.h,v 1.5 2014/10/13 08:52:34 j_novak Exp $
33 * $Log: et_rot_diff.h,v $
34 * Revision 1.5 2014/10/13 08:52:34 j_novak
35 * Lorene classes and functions now belong to the namespace Lorene.
36 *
37 * Revision 1.4 2005/10/05 15:14:47 j_novak
38 * Added a Param* as parameter of Etoile_rot::equilibrium
39 *
40 * Revision 1.3 2004/03/22 13:12:41 j_novak
41 * Modification of comments to use doxygen instead of doc++
42 *
43 * Revision 1.2 2002/09/13 09:17:33 j_novak
44 * Modif. commentaires
45 *
46 * Revision 1.1.1.1 2001/11/20 15:19:27 e_gourgoulhon
47 * LORENE
48 *
49 * Revision 1.2 2001/10/25 09:20:35 eric
50 * Ajout de la fonction virtuelle display_poly.
51 *
52 * Revision 1.1 2001/10/19 08:17:59 eric
53 * Initial revision
54 *
55 *
56 * $Header: /cvsroot/Lorene/C++/Include/et_rot_diff.h,v 1.5 2014/10/13 08:52:34 j_novak Exp $
57 *
58 */
59
60// Headers Lorene
61#include "etoile.h"
62
63namespace Lorene {
70class Et_rot_diff : public Etoile_rot {
71
72 // Data :
73 // -----
74 protected:
85 double (*frot)(double, const Tbl&) ;
86
93 double (*primfrot)(double, const Tbl&) ;
94
103
106
107 double omega_min ;
108 double omega_max ;
109
112
113 // Constructors - Destructor
114 // -------------------------
115 public:
131 Et_rot_diff(Map& mp_i, int nzet_i, bool relat, const Eos& eos_i,
132 double (*frot_i)(double, const Tbl&),
133 double (*primfrot_i)(double, const Tbl&),
134 const Tbl& par_frot_i) ;
135
136 Et_rot_diff(const Et_rot_diff& ) ;
137
148 Et_rot_diff(Map& mp_i, const Eos& eos_i, FILE* fich,
149 double (*frot_i)(double, const Tbl&),
150 double (*primfrot_i)(double, const Tbl&) ) ;
151
152 virtual ~Et_rot_diff() ;
153
154
155 // Memory management
156 // -----------------
157
158 // Everything is inherited from Etoile_rot
159
160 // Mutators / assignment
161 // ---------------------
162 public:
164 void operator=(const Et_rot_diff& ) ;
165
166 // Accessors
167 // ---------
168 public:
170 const Tenseur& get_omega_field() const {return omega_field;} ;
171
175 virtual double get_omega_c() const ;
176
177 // Outputs
178 // -------
179 public:
180 virtual void sauve(FILE *) const ;
181
183 virtual void display_poly(ostream& ) const ;
184
185 protected:
187 virtual ostream& operator>>(ostream& ) const ;
188
189
190 // Computational routines
191 // ----------------------
192 public:
193
194 virtual double tsw() const ;
195
207 virtual void hydro_euler() ;
208
227 void fait_omega_field(double omeg_min, double omeg_max,
228 double precis, int nitermax) ;
229
231 void fait_prim_field() ;
232
248 double funct_omega(double omeg) const ;
249
258 double prim_funct_omega(double omeg) const ;
259
339 virtual void equilibrium(double ent_c, double omega0, double fact_omega,
340 int nzadapt, const Tbl& ent_limit,
341 const Itbl& icontrol, const Tbl& control,
342 double mbar_wanted, double aexp_mass,
343 Tbl& diff, Param* = 0x0) ;
344
345 };
346
347}
348#endif
Equation of state base class.
Definition eos.h:190
Class for differentially rotating stars.
Definition et_rot_diff.h:70
double omega_min
Minimum value of .
void fait_omega_field(double omeg_min, double omeg_max, double precis, int nitermax)
Computes (member omega_field ).
Tenseur prim_field
Field .
virtual void hydro_euler()
Computes the hydrodynamical quantities relative to the Eulerian observer from those in the fluid fram...
virtual void display_poly(ostream &) const
Display in polytropic units.
double omega_max
Maximum value of .
virtual double tsw() const
Ratio T/W.
Tenseur omega_field
Field .
void fait_prim_field()
Computes the member prim_field from omga_field .
virtual void sauve(FILE *) const
Save in a file.
virtual ~Et_rot_diff()
Destructor.
Tbl par_frot
Parameters of the function .
double(* primfrot)(double, const Tbl &)
Primitive of the function , which vanishes at the stellar center.
Definition et_rot_diff.h:93
double prim_funct_omega(double omeg) const
Evaluates the primitive of , where F is the function defining the rotation profile.
void operator=(const Et_rot_diff &)
Assignment to another Et_rot_diff.
virtual double get_omega_c() const
Returns the central value of the rotation angular velocity ([f_unit] )
const Tenseur & get_omega_field() const
Returns the angular velocity field .
double funct_omega(double omeg) const
Evaluates , where F is the function defining the rotation profile.
virtual ostream & operator>>(ostream &) const
Operator >> (virtual function called by the operator <<).
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, Param *=0x0)
Computes an equilibrium configuration.
double(* frot)(double, const Tbl &)
Function defining the rotation profile.
Definition et_rot_diff.h:85
Class for isolated rotating stars *** DEPRECATED : use class Star_rot instead ***.
Definition etoile.h:1496
Basic integer array class.
Definition itbl.h:122
Base class for coordinate mappings.
Definition map.h:670
Parameter storage.
Definition param.h:125
Basic array class.
Definition tbl.h:161
Tensor handling *** DEPRECATED : use class Tensor instead ***.
Definition tenseur.h:301
Lorene prototypes.
Definition app_hor.h:64