94 int nnt =
hole1.mp.get_mg()->get_nt(1) ;
95 int nnp =
hole1.mp.get_mg()->get_np(1) ;
99 for (
int k=0; k<nnp; k++)
100 for (
int j=0; j<nnt; j++){
101 if ((
hole1.n_auto+
hole1.n_comp).val_grid_point(1, k, j , 0) < 1e-4){
114 aa_auto_un = (
hole1.beta_auto.ope_killing_conf(
hole1.tgam) +
117 aa_auto_deux = (
hole2.beta_auto.ope_killing_conf(
hole2.tgam) +
124 for (
int i=1 ; i<=3 ; i++)
125 for (
int j=i ; j<=3 ; j++) {
126 if (aa_auto_un(i,j).get_etat() != ETATZERO)
128 if (aa_auto_deux(i,j).get_etat() != ETATZERO)
135 hole1.aa_auto = aa_auto_un ;
136 hole2.aa_auto = aa_auto_deux ;
154 for (
int i=1 ; i<=3 ; i++)
155 for (
int j=i ; j<=3 ; j++) {
156 aa_comp_un.
set(i, j).
import(aa_auto_deux(i, j)) ;
158 get_spectral_va().get_base()) ;
168 for (
int i=1 ; i<=3 ; i++)
169 for (
int j=i ; j<=3 ; j++) {
170 aa_comp_deux.
set(i, j).
import(aa_auto_un(i, j)) ;
172 get_spectral_va().get_base()) ;
207 hole1.aa_comp = aa_comp_un ;
208 hole2.aa_comp = aa_comp_deux ;
219 aa_auto_un = (
hole1.beta_auto.ope_killing_conf(
hole1.tgam) +
221 aa_auto_deux = (
hole2.beta_auto.ope_killing_conf(
hole2.tgam) +
227 for (
int i=1 ; i<=3 ; i++)
228 for (
int j=1 ; j<=3 ; j++) {
229 if (aa_auto_un(i,j).get_etat() != ETATZERO)
231 if (aa_auto_deux(i,j).get_etat() != ETATZERO)
251 aa_comp_un.
set(1, 1).
import(aa_auto_2(1, 1)) ;
252 aa_comp_un.
set(1, 2).
import(aa_auto_2(1, 2)) ;
253 aa_comp_un.
set(1, 3).
import(aa_auto_2(1, 3)) ;
254 aa_comp_un.
set(2, 2).
import(aa_auto_2(2, 2)) ;
255 aa_comp_un.
set(2, 3).
import(aa_auto_2(2, 3)) ;
256 aa_comp_un.
set(3, 3).
import(aa_auto_2(3, 3)) ;
264 aa_comp_deux.
set(1, 1).
import(aa_auto_1(1, 1)) ;
265 aa_comp_deux.
set(1, 2).
import(aa_auto_1(1, 2)) ;
266 aa_comp_deux.
set(1, 3).
import(aa_auto_1(1, 3)) ;
267 aa_comp_deux.
set(2, 2).
import(aa_auto_1(2, 2)) ;
268 aa_comp_deux.
set(2, 3).
import(aa_auto_1(2, 3)) ;
269 aa_comp_deux.
set(3, 3).
import(aa_auto_1(3, 3)) ;
277 aa_tot_un = aa_auto_un + aa_comp_un ;
278 aa_tot_deux = aa_auto_deux + aa_comp_deux ;
292 int nz_un =
hole1.mp.get_mg()->get_nzone() ;
293 int nz_deux =
hole2.mp.get_mg()->get_nzone() ;
296 ntot_un = division_xpun (ntot_un, 0) ;
300 ntot_deux = division_xpun (ntot_deux, 0) ;
304 double orientation_un = aa_auto_un.
get_mp().get_rot_phi() ;
305 assert ((orientation_un==0) || (orientation_un==M_PI)) ;
306 double orientation_deux = aa_auto_deux.
get_mp().get_rot_phi() ;
307 assert ((orientation_deux==0) || (orientation_deux==M_PI)) ;
308 int same_orient = (orientation_un == orientation_deux) ? 1 : -1 ;
312 for (
int lig = 1 ; lig<=3 ; lig++)
313 for (
int col = lig ; col<=3 ; col++) {
321 if (same_orient == 1)
325 Scalar auxi_un (aa_tot_un(lig, col)/2.) ;
327 auxi_un = division_xpun (auxi_un, 0) ;
328 auxi_un = auxi_un / ntot_un ;
333 Scalar auxi_deux (aa_tot_deux(lig, col)/2.) ;
335 auxi_deux = division_xpun (auxi_deux, 0) ;
336 auxi_deux = auxi_deux / ntot_deux ;
337 if (auxi_deux.
get_etat() != ETATZERO)
341 Scalar copie_un (aa_tot_un(lig, col)) ;
344 Scalar copie_deux (aa_tot_deux(lig, col)) ;
347 double lim_un =
hole1.mp.get_alpha()[1] +
hole1.mp.get_beta()[1] ;
348 double lim_deux =
hole2.mp.get_alpha()[1] +
hole2.mp.get_beta()[1] ;
358 double xabs, yabs, zabs, air, theta,
phi ;
360 if (auxi_un.
get_etat() != ETATZERO){
362 for (
int l=2 ; l<nz_un ; l++) {
364 int nr =
hole1.mp.get_mg()->get_nr (l) ;
369 int np =
hole1.mp.get_mg()->get_np (l) ;
370 int nt =
hole1.mp.get_mg()->get_nt (l) ;
372 for (
int k=0 ; k<np ; k++)
373 for (
int j=0 ; j<nt ; j++)
374 for (
int i=0 ; i<nr ; i++) {
376 xabs = xabs_un (l, k, j, i) ;
377 yabs = yabs_un (l, k, j, i) ;
378 zabs = zabs_un (l, k, j, i) ;
381 hole2.mp.convert_absolute
382 (xabs, yabs, zabs, air, theta,
phi) ;
398 for (
int k=0 ; k<np ; k++)
399 for (
int j=0 ; j<nt ; j++)
404 if (auxi_deux.
get_etat() != ETATZERO){
406 for (
int l=2 ; l<nz_deux ; l++) {
408 int nr =
hole2.mp.get_mg()->get_nr (l) ;
413 int np =
hole2.mp.get_mg()->get_np (l) ;
414 int nt =
hole2.mp.get_mg()->get_nt (l) ;
416 for (
int k=0 ; k<np ; k++)
417 for (
int j=0 ; j<nt ; j++)
418 for (
int i=0 ; i<nr ; i++) {
420 xabs = xabs_deux (l, k, j, i) ;
421 yabs = yabs_deux (l, k, j, i) ;
422 zabs = zabs_deux (l, k, j, i) ;
425 hole1.mp.convert_absolute
426 (xabs, yabs, zabs, air, theta,
phi) ;
440 for (
int k=0 ; k<np ; k++)
441 for (
int j=0 ; j<nt ; j++)
449 aa_un.
set(lig, col) = auxi_un ;
450 aa_deux.
set(lig, col) = auxi_deux ;
462 for (
int lig=1 ; lig<=3 ; lig++)
463 for (
int col=lig ; col<=3 ; col++) {
464 aa_auto_un.
set(lig, col) = aa_un(lig, col)*
hole1.decouple ;
465 aa_auto_deux.
set(lig, col) = aa_deux(lig, col)*
hole2.decouple ;
468 hole1.aa_auto = aa_auto_un ;
469 hole2.aa_auto = aa_auto_deux ;
478 int nz_un =
hole1.mp.get_mg()->get_nzone() ;
479 int nz_deux =
hole2.mp.get_mg()->get_nzone() ;
482 double distance =
hole1.mp.get_ori_x() -
hole2.mp.get_ori_x() ;
483 double lim_un = distance/2. ;
484 double lim_deux = distance/2. ;
485 double int_un = distance/6. ;
486 double int_deux = distance/6. ;
490 fonction_f_un = 0.5*
pow(
491 cos((
hole1.mp.r-int_un)*M_PI/2./(lim_un-int_un)), 2.)+0.5 ;
495 fonction_g_un = 0.5*
pow
496 (
sin((
hole1.mp.r-int_un)*M_PI/2./(lim_un-int_un)), 2.) ;
500 fonction_f_deux = 0.5*
pow(
501 cos((
hole2.mp.r-int_deux)*M_PI/2./(lim_deux-int_deux)), 2.)+0.5 ;
505 fonction_g_deux = 0.5*
pow(
506 sin((
hole2.mp.r-int_deux)*M_PI/2./(lim_un-int_deux)), 2.) ;
523 double xabs, yabs, zabs, air_un, air_deux, theta,
phi ;
525 for (
int l=0 ; l<nz_un ; l++) {
526 int nr =
hole1.mp.get_mg()->get_nr (l) ;
531 int np =
hole1.mp.get_mg()->get_np (l) ;
532 int nt =
hole1.mp.get_mg()->get_nt (l) ;
534 for (
int k=0 ; k<np ; k++)
535 for (
int j=0 ; j<nt ; j++)
536 for (
int i=0 ; i<nr ; i++) {
538 xabs = xabs_un (l, k, j, i) ;
539 yabs = yabs_un (l, k, j, i) ;
540 zabs = zabs_un (l, k, j, i) ;
543 hole1.mp.convert_absolute
544 (xabs, yabs, zabs, air_un, theta,
phi) ;
545 hole2.mp.convert_absolute
546 (xabs, yabs, zabs, air_deux, theta,
phi) ;
548 if (air_un <= lim_un)
556 if (air_deux <= lim_deux)
557 if (air_deux < int_deux)
571 for (
int k=0 ; k<np ; k++)
572 for (
int j=0 ; j<nt ; j++)
576 for (
int l=0 ; l<nz_deux ; l++) {
577 int nr =
hole2.mp.get_mg()->get_nr (l) ;
582 int np =
hole2.mp.get_mg()->get_np (l) ;
583 int nt =
hole2.mp.get_mg()->get_nt (l) ;
585 for (
int k=0 ; k<np ; k++)
586 for (
int j=0 ; j<nt ; j++)
587 for (
int i=0 ; i<nr ; i++) {
589 xabs = xabs_deux (l, k, j, i) ;
590 yabs = yabs_deux (l, k, j, i) ;
591 zabs = zabs_deux (l, k, j, i) ;
594 hole1.mp.convert_absolute
595 (xabs, yabs, zabs, air_un, theta,
phi) ;
596 hole2.mp.convert_absolute
597 (xabs, yabs, zabs, air_deux, theta,
phi) ;
599 if (air_deux <= lim_deux)
600 if (air_deux < int_deux)
607 if (air_un <= lim_un)
622 for (
int k=0 ; k<np ; k++)
623 for (
int j=0 ; j<nt ; j++)
630 hole1.decouple = decouple_un ;
631 hole2.decouple = decouple_deux ;