29char blackhole_r_coord_C[] =
"$Header: /cvsroot/Lorene/C++/Source/Black_hole/blackhole_r_coord.C,v 1.4 2014/10/13 08:52:46 j_novak Exp $" ;
60#include "utilitaires.h"
64double gg(
double,
const double) ;
96 cc = 2. * (
sqrt(13.) - 1.) / 3. ;
108 cout <<
"!!!!! WARNING: Not yet prepared !!!!!" << endl ;
114 cout <<
"!!!!! WARNING: Not yet prepared !!!!!" << endl ;
122 double precis = 1.e-15 ;
130 double x1, x2, x3, x4, x5 ;
136 for (
int l=1; l<nz; l++) {
138 for (
int i=0; i<nr; i++) {
144 while ( dp > precis ) {
150 while ( diff > precis ) {
153 tmp = ratio + ll * dp ;
155 double r_max = 2.*mass/tmp/tr ;
157 hh = r_max / double(nn) ;
160 for (
int n=0; n<mm; n++) {
162 x1 = hh * double(4*n) ;
163 x2 = hh * double(4*n+1) ;
164 x3 = hh * double(4*n+2) ;
165 x4 = hh * double(4*n+3) ;
166 x5 = hh * double(4*n+4) ;
168 integ += (hh/45.) * (14.*gg(x1,cc) + 64.*gg(x2,cc)
169 + 24.*gg(x3,cc) + 64.*gg(x4,cc)
174 diff = -
log( tmp ) - integ ;
180 ratio += (ll - 1) * dp ;
184 for (
int j=0; j<nt; j++) {
185 for (
int k=0; k<np; k++) {
215double gg(
double xx,
const double cc) {
217 double tcc2 = cc*cc/16. ;
218 double tmp =
sqrt(1. - xx + tcc2*
pow(xx, 4.)) ;
220 double resu = (-1. + tcc2 *
pow(xx, 3.)) / tmp / (1. + tmp) ;
const Scalar r_coord(bool neumann, bool first) const
Expresses the areal radial coordinate by that in spatially isotropic coordinates.
Map & mp
Mapping associated with the black hole.
double mass_bh
Gravitational mass of BH.
Coord r
r coordinate centered on the grid
const Mg3d * get_mg() const
Gives the Mg3d on which the mapping is defined.
int get_np(int l) const
Returns the number of points in the azimuthal direction ( ) in domain no. l.
int get_nt(int l) const
Returns the number of points in the co-latitude direction ( ) in domain no. l.
int get_nzone() const
Returns the number of domains.
int get_nr(int l) const
Returns the number of points in the radial direction ( ) in domain no. l.
Tensor field of valence 0 (or component of a tensorial field).
void raccord(int n)
Performs the matching of the nucleus with respect to the first shell.
virtual void std_spectral_base()
Sets the spectral bases of the Valeur va to the standard ones for a scalar field.
double val_grid_point(int l, int k, int j, int i) const
Returns the value of the field at a specified grid point.
double & set_grid_point(int l, int k, int j, int i)
Setting the value of the field at a given grid point.
Cmp sqrt(const Cmp &)
Square root.
Cmp pow(const Cmp &, int)
Power .
Cmp log(const Cmp &)
Neperian logarithm.
void annule_domain(int l)
Sets the Tensor to zero in a given domain.
Standard units of space, time and mass.