134 int nb_it,
int bound_nn,
double lim_nn,
135 int bound_psi,
int bound_beta,
double omega_eff,
137 ostream& fich_iteration, ostream& fich_correction,
138 ostream& fich_viriel, ostream& fich_kss,
139 int step,
int search_mass,
double mass_irr,
142 int nz =
hole1.mp.get_mg()->get_nzone() ;
144 double precis = 1e-7 ;
147 cout <<
"OMEGA INCREASED STEP BY STEP." << endl ;
149 double inc_homme = (angu_vel - homme)/nb_ome ;
150 for (
int pas = 0 ; pas <nb_ome ; pas ++) {
153 if (omega_eff == alpha*homme ) verif = true ;
158 omega_eff = alpha*homme ;
161 solve_shift (precis, relax, bound_beta, omega_eff) ;
168 if (search_mass == 1 && step >= 30) {
169 double mass_area =
sqrt(
hole1.area_hor()/16/M_PI) +
171 double error_m = (mass_irr - mass_area) / mass_irr ;
172 double scaling_r =
pow((2-error_m)/(2-2*error_m), 1.) ;
173 hole1.mp.homothetie_interne(scaling_r) ;
175 hole2.mp.homothetie_interne(scaling_r) ;
188 cout <<
"Angular momentum computed at the horizon : " <<
ang_mom_hor()
193 for (
int i=1 ; i<nz ; i++)
194 if (diff(i) > erreur)
201 hole1.get_gam().radial_vect()*
202 hole1.get_gam().radial_vect(), 0, 1)) ;
205 int nnp =
hole1.mp.get_mg()->get_np(1) ;
206 int nnt =
hole2.mp.get_mg()->get_nt(1) ;
207 for (
int k=0 ; k<nnp ; k++)
208 for (
int j=0 ; j<nnt ; j++){
216 fich_iteration << step <<
" " <<
log10(erreur) <<
" " << homme << endl ;
217 fich_correction << step <<
" " <<
log10(
hole1.regul) <<
" " << homme << endl ;
219 fich_viriel << step <<
" " <<
viriel() <<
" " << homme <<
" " <<
hole1.omega_hor() - alpha*homme <<
" " << omega_eff << endl ;
220 fich_kss << step <<
" " << max_kss <<
" " << min_kss << endl ;
223 cout <<
"STEP : " << step <<
" DIFFERENCE : " << erreur << endl ;
230 cout <<
"OMEGA FIXED" << endl ;
233 for (
int pas = 0 ; pas <nb_it ; pas ++) {
237 solve_shift (precis, relax, bound_beta, omega_eff) ;
244 if (search_mass == 1 && step >= 30) {
245 double mass_area =
sqrt(
hole1.area_hor()/16/M_PI) +
247 double error_m = (mass_irr - mass_area) / mass_irr ;
248 double scaling_r =
pow((2-error_m)/(2-2*error_m), 1.) ;
250 hole1.mp.homothetie_interne(scaling_r) ;
252 hole2.mp.homothetie_interne(scaling_r) ;
258 for (
int i=1 ; i<nz ; i++)
259 if (diff(i) > erreur)
266 hole1.get_gam().radial_vect()*
267 hole1.get_gam().radial_vect(), 0, 1)) ;
270 int nnp =
hole1.mp.get_mg()->get_np(1) ;
271 int nnt =
hole2.mp.get_mg()->get_nt(1) ;
272 for (
int k=0 ; k<nnp ; k++)
273 for (
int j=0 ; j<nnt ; j++){
282 fich_iteration << step <<
" " <<
log10(erreur) <<
" " << homme << endl ;
283 fich_correction << step <<
" " <<
log10(
hole1.regul) <<
" " << homme << endl ;
285 fich_viriel << step <<
" " <<
viriel() <<
" " << homme <<
" " <<
hole1.omega_hor() - alpha*homme <<
" " << omega_eff << endl ;
286 fich_kss << step <<
" " << max_kss <<
" " << min_kss << endl ;
289 cout <<
"STEP : " << step <<
" DIFFERENCE : " << erreur << endl ;
294 fich_iteration <<
"#----------------------------" << endl ;
295 fich_correction <<
"#-----------------------------" << endl ;
296 fich_viriel <<
"#------------------------------" << endl ;
double coal(double ang_vel, double relax, int nb_om, int nb_it, int bound_nn, double lim_nn, int bound_psi, int bound_beta, double omega_eff, double alpha, ostream &fich_iteration, ostream &fich_correction, ostream &fich_viriel, ostream &fich_kss, int step, int search_mass, double mass_irr, const int sortie=0)
Solves the equation for a particular angular velocity, the systeme being initialized to Misner-Lindqu...
void solve_shift(double precis, double relax, int bound_beta, double omega_eff)
Solves the equation for the shift, using the Oohara-Nakarmure scheme : The fields are the total value...
void set_statiques(double precis, double relax, int bound_nn, double lim_nn, int bound_psi)
Initialize the systeme to Misner Lindquist solution, that is solving for N and in the case .
void solve_lapse(double precis, double relax, int bound_nn, double lim_nn)
Solves the equation for the lapse : The fields are the total values except those with subscript ,...