40 #include "star_rot_dirac_diff.h" 41 #include "utilitaires.h" 45 double strot_dirac_diff_fzero(
double omeg,
const Param& par) ;
53 double precis,
int nitermax) {
90 for (l=0; l<
nzet+1; l++) {
92 for (k=0; k<mg.
get_np(l); k++) {
93 for (j=0; j<mg.
get_nt(l); j++) {
94 for (i=0; i<mg.
get_nr(l); i++) {
96 double& omeg = tom.
set(k, j, i) ;
98 double omeg_min1, omeg_max1 ;
99 if ( prev_zero || omeg ==
double(0)) {
100 omeg_min1 = omeg_min ;
101 omeg_max1 = omeg_max ;
104 omeg_min1 = 0.8 * omeg ;
105 omeg_max1 = 1.2 * omeg ;
108 omeg =
zerosec(strot_dirac_diff_fzero, par, omeg_min1,
109 omeg_max1, precis, nitermax, niter) ;
121 for (l=
nzet+1; l<nz; l++) {
131 for (l=1; l<
nzet; l++) {
148 double strot_dirac_diff_fzero(
double omeg,
const Param& par) {
186 for (
int l=0; l<
nzet+1; l++) {
188 for (
int k=0; k<mg.
get_np(l); k++) {
189 for (
int j=0; j<mg.
get_nt(l); j++) {
190 for (
int i=0; i<mg.
get_nr(l); i++) {
203 for (
int l=
nzet+1; l<nz; l++) {
void fait_prim_field()
Computes the member prim_field from omega_field .
void add_int(const int &n, int position=0)
Adds the address of a new int to the list.
Map & mp
Mapping associated with the star.
int get_np(int l) const
Returns the number of points in the azimuthal direction ( ) in domain no. l.
virtual void annule(int l_min, int l_max)
Sets the Scalar to zero in several domains.
const Tbl & domain(int l) const
Read-only of the value in a given domain.
const Mg3d * get_mg() const
Gives the Mg3d on which the mapping is defined.
double & set(int i)
Read/write of a particular element (index i) (1D case)
Tensor field of valence 0 (or component of a tensorial field).
Scalar omega_field
Field .
const Star & get_star(int position=0) const
Returns the reference of a Star stored in the list.
double(* primfrot)(double, const Tbl &)
Primitive of the function , which vanishes at the stellar center.
virtual void std_spectral_base()
Sets the spectral bases of the Valeur va to the standard ones for a scalar field. ...
virtual void allocate_all()
Sets the logical state to ETATQCQ (ordinary state) and performs the memory allocation of all the elem...
int get_etat() const
Returns the logical state ETATNONDEF (undefined), ETATZERO (null) or ETATQCQ (ordinary).
Tbl min(const Cmp &)
Minimum values of a Cmp in each domain.
Tbl & set_domain(int l)
Read/write of the value in a given domain.
Tbl par_frot
Parameters of the function .
double zerosec(double(*f)(double, const Param &), const Param &par, double a, double b, double precis, int nitermax, int &niter, bool abort=true)
Finding the zero a function.
double val_grid_point(int l, int k, int j, int i) const
Returns the value of the field at a specified grid point.
int nzet
Number of domains of *mp occupied by the star.
void add_star(const Star &eti, int position=0)
Adds the address of a new Star to the list.
Scalar psi4
Conformal factor .
const Scalar & get_scalar(int position=0) const
Returns the reference of a Scalar stored in the list.
void fait_omega_field(double omeg_min, double omeg_max, double precis, int nitermax)
Computes (member omega_field ).
const int & get_int(int position=0) const
Returns the reference of a int stored in the list.
int get_nzone() const
Returns the number of domains.
double omega_max
Maximum value of .
Tbl max(const Cmp &)
Maximum values of a Cmp in each domain.
void mult_rsint()
Multiplication by everywhere; dzpuis is not changed.
int get_nr(int l) const
Returns the number of points in the radial direction ( ) in domain no. l.
virtual const Sym_tensor & cov() const
Read-only access to the covariant representation.
void add_scalar(const Scalar &ti, int position=0)
Adds the address of a new Scalar to the list.
Class for relativistic differentially rotating stars in Dirac gauge and maximal slicing.
void div_rsint()
Division by everywhere; dzpuis is not changed.
double omega_min
Minimum value of .
int get_nt(int l) const
Returns the number of points in the co-latitude direction ( ) in domain no. l.
double funct_omega(double omeg) const
Evaluates , where F is the function defining the rotation profile.