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
40namespace 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
Equation of state base class.
Definition eos.h:190
Basic integer array class.
Definition itbl.h:122
Base class for coordinate mappings.
Definition map.h:670
Tensor field of valence 0 (or component of a tensorial field).
Definition scalar.h:387
Class for relativistic differentially rotating stars in Dirac gauge and maximal slicing.
void fait_omega_field(double omeg_min, double omeg_max, double precis, int nitermax)
Computes (member omega_field ).
virtual ~Star_rot_Dirac_diff()
Destructor.
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.
virtual ostream & operator>>(ostream &) const
Operator >> (virtual function called by the operator <<).
const Scalar & 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 void sauve(FILE *) const
Save in a file.
double prim_funct_omega(double omeg) const
Evaluates the primitive of , where F is the function defining the rotation profile.
virtual void hydro_euler()
Computes the hydrodynamical quantities relative to the Eulerian observer from those in the fluid fram...
void fait_prim_field()
Computes the member prim_field from omega_field .
double(* frot)(double, const Tbl &)
Function defining the rotation profile.
double omega_min
Minimum value of .
virtual double get_omega_c() const
Returns the central value of the rotation angular velocity ([f_unit] )
double(* primfrot)(double, const Tbl &)
Primitive of the function , which vanishes at the stellar center.
virtual double tsw() const
Ratio T/W.
Tbl par_frot
Parameters of the function .
void operator=(const Star_rot_Dirac_diff &)
Assignment to another Star_rot_Dirac_diff.
friend ostream & operator<<(ostream &, const Star &)
Display.
Definition star.C:412
double omega_max
Maximum value of .
Class for relativistic rotating stars in Dirac gauge and maximal slicing.
Base class for stars.
Definition star.h:175
Basic array class.
Definition tbl.h:161
Lorene prototypes.
Definition app_hor.h:64