et_rot_diff.h
/*
* Definition of Lorene class Et_rot_diff
*
*/
/*
* Copyright (c) 2001 Eric Gourgoulhon
*
* This file is part of LORENE.
*
* LORENE is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* LORENE is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with LORENE; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#ifndef __ET_ROT_DIFF_H_
#define __ET_ROT_DIFF_H_
/*
* $Id: et_rot_diff.h,v 1.5 2014/10/13 08:52:34 j_novak Exp $
* $Log: et_rot_diff.h,v $
* Revision 1.5 2014/10/13 08:52:34 j_novak
* Lorene classes and functions now belong to the namespace Lorene.
*
* Revision 1.4 2005/10/05 15:14:47 j_novak
* Added a Param* as parameter of Etoile_rot::equilibrium
*
* Revision 1.3 2004/03/22 13:12:41 j_novak
* Modification of comments to use doxygen instead of doc++
*
* Revision 1.2 2002/09/13 09:17:33 j_novak
* Modif. commentaires
*
* Revision 1.1.1.1 2001/11/20 15:19:27 e_gourgoulhon
* LORENE
*
* Revision 1.2 2001/10/25 09:20:35 eric
* Ajout de la fonction virtuelle display_poly.
*
* Revision 1.1 2001/10/19 08:17:59 eric
* Initial revision
*
*
* $Header: /cvsroot/Lorene/C++/Include/et_rot_diff.h,v 1.5 2014/10/13 08:52:34 j_novak Exp $
*
*/
// Headers Lorene
#include "etoile.h"
namespace Lorene {
class Et_rot_diff : public Etoile_rot {
// Data :
// -----
protected:
double (*frot)(double, const Tbl&) ;
double (*primfrot)(double, const Tbl&) ;
Tbl par_frot ;
Tenseur omega_field ;
double omega_min ;
double omega_max ;
Tenseur prim_field ;
// Constructors - Destructor
// -------------------------
public:
Et_rot_diff(Map& mp_i, int nzet_i, bool relat, const Eos& eos_i,
double (*frot_i)(double, const Tbl&),
double (*primfrot_i)(double, const Tbl&),
const Tbl& par_frot_i) ;
Et_rot_diff(const Et_rot_diff& ) ;
Et_rot_diff(Map& mp_i, const Eos& eos_i, FILE* fich,
double (*frot_i)(double, const Tbl&),
double (*primfrot_i)(double, const Tbl&) ) ;
virtual ~Et_rot_diff() ;
// Memory management
// -----------------
// Everything is inherited from Etoile_rot
// Mutators / assignment
// ---------------------
public:
void operator=(const Et_rot_diff& ) ;
// Accessors
// ---------
public:
const Tenseur& get_omega_field() const {return omega_field;} ;
virtual double get_omega_c() const ;
// Outputs
// -------
public:
virtual void sauve(FILE *) const ;
virtual void display_poly(ostream& ) const ;
protected:
virtual ostream& operator>>(ostream& ) const ;
// Computational routines
// ----------------------
public:
virtual double tsw() const ;
virtual void hydro_euler() ;
void fait_omega_field(double omeg_min, double omeg_max,
double precis, int nitermax) ;
void fait_prim_field() ;
double funct_omega(double omeg) const ;
double prim_funct_omega(double omeg) const ;
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) ;
};
}
#endif
Lorene::Eos
Equation of state base class.
Definition eos.h:190
Lorene::Et_rot_diff::omega_min
double omega_min
Minimum value of .
Definition et_rot_diff.h:107
Lorene::Et_rot_diff::fait_omega_field
void fait_omega_field(double omeg_min, double omeg_max, double precis, int nitermax)
Computes (member omega_field ).
Definition et_rot_diff_faitomeg.C:73
Lorene::Et_rot_diff::prim_field
Tenseur prim_field
Field .
Definition et_rot_diff.h:111
Lorene::Et_rot_diff::hydro_euler
virtual void hydro_euler()
Computes the hydrodynamical quantities relative to the Eulerian observer from those in the fluid fram...
Definition et_rot_diff_hydro.C:61
Lorene::Et_rot_diff::display_poly
virtual void display_poly(ostream &) const
Display in polytropic units.
Definition et_rot_diff.C:268
Lorene::Et_rot_diff::omega_max
double omega_max
Maximum value of .
Definition et_rot_diff.h:108
Lorene::Et_rot_diff::tsw
virtual double tsw() const
Ratio T/W.
Definition et_rot_diff_global.C:67
Lorene::Et_rot_diff::omega_field
Tenseur omega_field
Field .
Definition et_rot_diff.h:105
Lorene::Et_rot_diff::fait_prim_field
void fait_prim_field()
Computes the member prim_field from omga_field .
Definition et_rot_diff_faitomeg.C:199
Lorene::Et_rot_diff::Et_rot_diff
Et_rot_diff(Map &mp_i, int nzet_i, bool relat, const Eos &eos_i, double(*frot_i)(double, const Tbl &), double(*primfrot_i)(double, const Tbl &), const Tbl &par_frot_i)
Standard constructor.
Definition et_rot_diff.C:82
Lorene::Et_rot_diff::sauve
virtual void sauve(FILE *) const
Save in a file.
Definition et_rot_diff.C:179
Lorene::Et_rot_diff::~Et_rot_diff
virtual ~Et_rot_diff()
Destructor.
Definition et_rot_diff.C:147
Lorene::Et_rot_diff::par_frot
Tbl par_frot
Parameters of the function .
Definition et_rot_diff.h:102
Lorene::Et_rot_diff::primfrot
double(* primfrot)(double, const Tbl &)
Primitive of the function , which vanishes at the stellar center.
Definition et_rot_diff.h:93
Lorene::Et_rot_diff::prim_funct_omega
double prim_funct_omega(double omeg) const
Evaluates the primitive of , where F is the function defining the rotation profile.
Definition et_rot_diff.C:321
Lorene::Et_rot_diff::operator=
void operator=(const Et_rot_diff &)
Assignment to another Et_rot_diff.
Definition et_rot_diff.C:156
Lorene::Et_rot_diff::get_omega_c
virtual double get_omega_c() const
Returns the central value of the rotation angular velocity ([f_unit] ).
Definition et_rot_diff.C:327
Lorene::Et_rot_diff::get_omega_field
const Tenseur & get_omega_field() const
Returns the angular velocity field .
Definition et_rot_diff.h:170
Lorene::Et_rot_diff::funct_omega
double funct_omega(double omeg) const
Evaluates , where F is the function defining the rotation profile.
Definition et_rot_diff.C:315
Lorene::Et_rot_diff::operator>>
virtual ostream & operator>>(ostream &) const
Operator >> (virtual function called by the operator <<).
Definition et_rot_diff.C:196
Lorene::Et_rot_diff::equilibrium
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.
Definition et_rot_diff_equil.C:88
Lorene::Et_rot_diff::frot
double(* frot)(double, const Tbl &)
Function defining the rotation profile.
Definition et_rot_diff.h:85
Lorene::Etoile_rot::Etoile_rot
Etoile_rot(Map &mp_i, int nzet_i, bool relat, const Eos &eos_i)
Standard constructor.
Definition etoile_rot.C:137
Lorene::Itbl
Basic integer array class.
Definition itbl.h:122
Lorene::Param
Parameter storage.
Definition param.h:125
Lorene::Tbl
Basic array class.
Definition tbl.h:161
Lorene::Tenseur
Tensor handling *** DEPRECATED : use class Tensor instead ***.
Definition tenseur.h:301
Lorene
Lorene prototypes.
Definition app_hor.h:64
Lorene::Map
Map(const Mg3d &)
Constructor from a multi-domain 3D grid.
Definition map.C:139