LORENE
hot_star_rot_diff_cfc.h
1 /*
2  * Definition of Lorene class Hot_star_rot_diff_cfc
3  *
4  */
5 
6 /*
7  * Copyright (c) 2025 Santiago Jaraba
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 version 2
13  * as published by the Free Software Foundation.
14  *
15  * LORENE is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with LORENE; if not, write to the Free Software
22  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23  *
24  */
25 
26 #ifndef __HOT_STAR_ROT_DIFF_CFC_H_
27 #define __HOT_STAR_ROT_DIFF_CFC_H_
28 
29 // Headers Lorene
30 #include "hot_star_rot_cfc.h"
31 
32 namespace Lorene {
40  // Data :
41  // -----
42  protected:
53  double (*omega_frot)(double, const Tbl&) ;
54 
61  double (*primfrot)(double, const Tbl&) ;
62 
71 
74 
75  double omega_min ;
76  double omega_max ;
77 
80 
81  // Constructors - Destructor
82  // -------------------------
83  public:
101  Hot_star_rot_diff_CFC(Map& mp_i, int nzet_i, const Hot_eos& heos_i, int relat_i,
102  int e_type, double const_value_i, int filter,
103  double (*omega_frot_i)(double, const Tbl&),
104  double (*primfrot_i)(double, const Tbl&),
105  const Tbl& par_frot_i) ;
106 
108 
119  Hot_star_rot_diff_CFC(Map& mp_i, const Hot_eos& heos_i, FILE* fich,
120  double (*omega_frot_i)(double, const Tbl&),
121  double (*primfrot_i)(double, const Tbl&) ) ;
122 
123  virtual ~Hot_star_rot_diff_CFC() ;
124 
125 
126  // Memory management
127  // -----------------
128 
129  // Everything is inherited from Hot_star_rot
130 
131  // Mutators / assignment
132  // ---------------------
133  public:
135  void operator=(const Hot_star_rot_diff_CFC& ) ;
136 
137  // Accessors
138  // ---------
139  public:
141  const Scalar& get_omega_field() const {return omega_field;} ;
142 
146  virtual double get_omega_c() const ;
147 
148  // Outputs
149  // -------
150  public:
151  virtual void sauve(FILE *) const ;
152 
154  friend ostream& operator<<(ostream& , const Hot_star& ) ;
155 
156 
157  protected:
159  virtual ostream& operator>>(ostream& ) const ;
160 
162  virtual void partial_display(ostream& ) const ;
163 
164 
165  // Computational routines
166  // ----------------------
167  public:
168 
169  virtual double tsw() const ;
170 
182  virtual void hydro_euler() ;
183 
202  void fait_omega_field(double omeg_min, double omeg_max,
203  double precis, int nitermax) ;
204 
206  void fait_prim_field() ;
207 
222  double omega_funct(double F) const ;
223 
231  double prim_funct_omega(double F) const ;
232 
314  virtual void equilibrium(double ent_c, double omega0, double fact_omega,
315  int nzadapt, const Tbl& ent_limit,
316  const Itbl& icontrol, const Tbl& control,
317  double mbar_wanted, double aexp_mass,
318  Tbl& diff, Param* = 0x0) ;
319 
320  };
321 
322 }
323 #endif
virtual double get_omega_c() const
Returns the central value of the rotation angular velocity ([f_unit] )
Hot_star_rot_diff_CFC(Map &mp_i, int nzet_i, const Hot_eos &heos_i, int relat_i, int e_type, double const_value_i, int filter, double(*omega_frot_i)(double, const Tbl &), double(*primfrot_i)(double, const Tbl &), const Tbl &par_frot_i)
Standard constructor.
Lorene prototypes.
Definition: app_hor.h:67
Base class for hot stars.
Definition: hot_star.h:76
Tensor field of valence 0 (or component of a tensorial field).
Definition: scalar.h:402
Tbl par_frot
Parameters of the function .
Base class for coordinate mappings.
Definition: map.h:696
Basic integer array class.
Definition: itbl.h:122
virtual ostream & operator>>(ostream &) const
Operator >> (virtual function called by the operator <<).
Class for hot differentially rotating stars in Conformal Flatness Condition and maximal slicing...
void operator=(const Hot_star_rot_diff_CFC &)
Assignment to another Hot_star_rot_diff_CFC.
int e_type
Integer defining the type of entropy profile.
virtual void sauve(FILE *) const
Save in a file.
Parameter storage.
Definition: param.h:125
double omega_funct(double F) const
Evaluates , where F is linked to the components of the fluid 4-velocity by .
virtual void hydro_euler()
Computes the hydrodynamical quantities relative to the Eulerian observer from those in the fluid fram...
double(* omega_frot)(double, const Tbl &)
Function defining the rotation profile.
virtual void partial_display(ostream &) const
Printing of some informations, excluding all global quantities.
double(* primfrot)(double, const Tbl &)
Primitive of the function , which vanishes at the stellar center.
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.
Class for relativistic rotating stars in Conformal Flatness Condition and maximal slicing...
friend ostream & operator<<(ostream &, const Hot_star &)
Display.
Definition: hot_star.C:431
Base class for 2-parameters equations of state (abstract class).
Definition: hoteos.h:85
void fait_omega_field(double omeg_min, double omeg_max, double precis, int nitermax)
Computes (member omega_field ).
double omega_max
Maximum value of .
const Scalar & get_omega_field() const
Returns the angular velocity field .
virtual double tsw() const
Ratio T/W.
void fait_prim_field()
Computes the member prim_field from omega_field .
Basic array class.
Definition: tbl.h:164
double omega_min
Minimum value of .
virtual ~Hot_star_rot_diff_CFC()
Destructor.
double prim_funct_omega(double F) const
Evaluates the primitive of .