64 int nz =
star1.mp.get_mg()->get_nzone() ;
65 int nr =
star1.mp.get_mg()->get_nr(0);
66 int nt =
star1.mp.get_mg()->get_nt(0);
67 int np =
star1.mp.get_mg()->get_np(0);
74 star1.hij_comp.set_triad(
star1.mp.get_bvect_cart()) ;
79 assert ( *(
star1.hij_comp.get_triad()) == *(comp_hij1.
get_triad())) ;
81 for(
int i=1; i<=3; i++)
82 for(
int j=i; j<=3; j++) {
83 star1.hij_comp.set(i,j).set_etat_qcq() ;
84 star1.hij_comp.set(i,j).import( (comp_hij1)(i,j) ) ;
86 star1.hij_comp.std_spectral_base() ;
88 for(
int i=1; i<=3; i++)
89 for(
int j=i; j<=3; j++)
94 star2.hij_comp.set_triad(
star2.mp.get_bvect_cart()) ;
99 assert ( *(
star2.hij_comp.get_triad()) == *(comp_hij2.
get_triad())) ;
101 for(
int i=1; i<=3; i++)
102 for(
int j=i; j<=3; j++) {
103 star2.hij_comp.set(i,j).set_etat_qcq() ;
104 star2.hij_comp.set(i,j).import( (comp_hij2)(i,j) ) ;
106 star2.hij_comp.std_spectral_base() ;
108 for(
int i=1; i<=3; i++)
109 for(
int j=i; j<=3; j++)
116 cout <<
"Function Binary::dirac_gauge()" << endl ;
122 double precis = 1e-5 ;
123 double precis_poisson = 1e-14 ;
124 double relax_poisson = 1.5 ;
125 int mer_poisson = 4 ;
139 Scalar ssjm1_xi11 (xi1(1)) ;
140 Scalar ssjm1_xi12 (xi1(2)) ;
141 Scalar ssjm1_xi13 (xi1(3)) ;
144 for(
int mer=0; mer<mermax; mer++){
151 double r0_1 =
star1.mp.val_r(nz-2, 1, 0, 0) ;
152 double sigma = 3.*r0_1 ;
155 ff1 =
exp( -(rr1 - r0_1)*(rr1 - r0_1)/sigma/sigma ) ;
156 for (
int ii=0; ii<nz-1; ii++)
169 source_xi1 += source_reg1 ;
173 Cmp ssjm1xi11 (ssjm1_xi11) ;
174 Cmp ssjm1xi12 (ssjm1_xi12) ;
175 Cmp ssjm1xi13 (ssjm1_xi13) ;
182 par_xi11.
add_int(mer_poisson, 0) ;
189 par_xi12.
add_int(mer_poisson, 0) ;
196 par_xi13.
add_int(mer_poisson, 0) ;
206 ssjm1_xi11 = ssjm1xi11 ;
207 ssjm1_xi12 = ssjm1xi12 ;
208 ssjm1_xi13 = ssjm1xi13 ;
216 Tbl tdiff_xi1_x =
diffrel(lap_xi1(1), source_xi1(1)) ;
217 Tbl tdiff_xi1_y =
diffrel(lap_xi1(2), source_xi1(2)) ;
218 Tbl tdiff_xi1_z =
diffrel(lap_xi1(3), source_xi1(3)) ;
221 "Relative error in the resolution of the equation for xi1 : "
223 cout <<
"x component : " ;
224 for (
int l=0; l<nz; l++) {
225 cout << tdiff_xi1_x(l) <<
" " ;
228 cout <<
"y component : " ;
229 for (
int l=0; l<nz; l++) {
230 cout << tdiff_xi1_y(l) <<
" " ;
233 cout <<
"z component : " ;
234 for (
int l=0; l<nz; l++) {
235 cout << tdiff_xi1_z(l) <<
" " ;
242 for (
int i=1 ; i<nz ; i++)
243 if (diff(i) > erreur)
246 cout <<
"Step : " << mer <<
" Difference : " << erreur << endl ;
247 cout <<
"-------------------------------------" << endl ;
263 Scalar ssjm1_xi21 (xi2(1)) ;
264 Scalar ssjm1_xi22 (xi2(2)) ;
265 Scalar ssjm1_xi23 (xi2(3)) ;
268 for(
int mer=0; mer<mermax; mer++){
275 double r0_2 =
star2.mp.val_r(nz-2, 1, 0, 0) ;
276 double sigma = 3.*r0_2 ;
279 ff2 =
exp( -(rr2 - r0_2)*(rr2 - r0_2)/sigma/sigma ) ;
280 for (
int ii=0; ii<nz-1; ii++)
293 source_xi2 += source_reg2 ;
297 Cmp ssjm1xi21 (ssjm1_xi21) ;
298 Cmp ssjm1xi22 (ssjm1_xi22) ;
299 Cmp ssjm1xi23 (ssjm1_xi23) ;
306 par_xi21.
add_int(mer_poisson, 0) ;
313 par_xi22.
add_int(mer_poisson, 0) ;
320 par_xi23.
add_int(mer_poisson, 0) ;
330 ssjm1_xi21 = ssjm1xi21 ;
331 ssjm1_xi22 = ssjm1xi22 ;
332 ssjm1_xi23 = ssjm1xi23 ;
340 Tbl tdiff_xi2_x =
diffrel(lap_xi2(1), source_xi2(1)) ;
341 Tbl tdiff_xi2_y =
diffrel(lap_xi2(2), source_xi2(2)) ;
342 Tbl tdiff_xi2_z =
diffrel(lap_xi2(3), source_xi2(3)) ;
345 "Relative error in the resolution of the equation for xi2 : "
347 cout <<
"x component : " ;
348 for (
int l=0; l<nz; l++) {
349 cout << tdiff_xi2_x(l) <<
" " ;
352 cout <<
"y component : " ;
353 for (
int l=0; l<nz; l++) {
354 cout << tdiff_xi2_y(l) <<
" " ;
357 cout <<
"z component : " ;
358 for (
int l=0; l<nz; l++) {
359 cout << tdiff_xi2_z(l) <<
" " ;
366 for (
int i=1 ; i<nz ; i++)
367 if (diff(i) > erreur)
370 cout <<
"Step : " << mer <<
" Difference : " << erreur << endl ;
371 cout <<
"-------------------------------------" << endl ;
385 guu_dirac1 =
star1.gamma.con().derive_lie(xi1) ;
387 guu_dirac1 = guu_dirac1 +
star1.gamma.con() ;
388 star1.gamma = guu_dirac1 ;
393 gtilde_con1 =
pow(
star1.gamma.determinant(), 1./3.) * guu_dirac1 ;
395 for(
int i=1; i<=3; i++)
396 for(
int j=i; j<=3; j++)
397 hij_dirac1.
set(i,j) = gtilde_con1(i,j) -
star1.flat.con()(i,j) ;
400 star1.gtilde = gtilde_con1 ;
402 star1.psi4.std_spectral_base() ;
404 cout <<
"norme de h_uu avant :" << endl ;
405 for (
int i=1; i<=3; i++)
406 for (
int j=1; j<=i; j++) {
407 cout <<
" Comp. " << i <<
" " << j <<
" : " ;
408 for (
int l=0; l<nz; l++){
409 cout <<
norme(
star1.hij(i,j)/(nr*nt*np))(l) <<
" " ;
415 cout <<
"norme de h_uu en jauge de dirac :" << endl ;
416 for (
int i=1; i<=3; i++)
417 for (
int j=1; j<=i; j++) {
418 cout <<
" Comp. " << i <<
" " << j <<
" : " ;
419 for (
int l=0; l<nz; l++){
420 cout <<
norme(hij_dirac1(i,j)/(nr*nt*np))(l) <<
" " ;
431 cout <<
"For comparaison H^i before computation = " << endl
432 <<
norme(hh_dirac(1))/(nr*nt*np)
434 <<
norme(hh_dirac(2))/(nr*nt*np)
436 <<
norme(hh_dirac(3))/(nr*nt*np)
440 cout <<
"Vector H^i after the computation" << endl ;
441 for (
int i=1; i<=3; i++){
442 cout <<
" Comp. " << i <<
" : " <<
norme(hh_dirac_new(i)
443 /(nr*nt*np)) << endl ;
449 (1 -
star1.decouple) ;
450 star1.hij = hij_dirac1 ;
457 guu_dirac2 =
star2.gamma.con().derive_lie(xi2) ;
459 guu_dirac2 = guu_dirac2 +
star2.gamma.con() ;
460 star2.gamma = guu_dirac2 ;
465 gtilde_con2 =
pow(
star2.gamma.determinant(), 1./3.) * guu_dirac2 ;
467 for(
int i=1; i<=3; i++)
468 for(
int j=i; j<=3; j++)
469 hij_dirac2.
set(i,j) = gtilde_con2(i,j) -
star2.flat.con()(i,j) ;
472 star2.gtilde = gtilde_con2 ;
474 star2.psi4.std_spectral_base() ;
480 (1 -
star2.decouple) ;
481 star2.hij = hij_dirac2 ;