61 #include "blackhole.h" 63 #include "utilitaires.h" 95 cout <<
"!!!!! WARNING: Not yet available !!!!!" << endl ;
113 cc = 2. * (
sqrt(13.) - 1.) / 3. ;
125 cout <<
"!!!!! WARNING: Not yet prepared !!!!!" << endl ;
131 cout <<
"!!!!! WARNING: Not yet prepared !!!!!" << endl ;
146 Scalar lldconf_iso = confo_bh_auto_rs.
dsdr() ;
150 anoth = 0.5 *
sqrt(r_are)
151 * (
sqrt(1. -2.*mass/r_are/rr + cc*cc*
pow(mass/r_are/rr,4.))
167 cout <<
"ADM mass (surface) : " << madm / msol <<
" [Mo]" 185 double Bin_bhns::mass_adm_bhns_vol()
const {
201 double radius_ah = mp_bh.
val_r(1,-1.,M_PI/2.,0.) ;
206 Scalar source_bh_surf(mp_bh) ;
207 source_bh_surf.set_etat_qcq() ;
209 Scalar source_bh_volm(mp_bh) ;
210 source_bh_volm.set_etat_qcq() ;
212 Scalar source_ns_volm(mp_ns) ;
213 source_ns_volm.set_etat_qcq() ;
217 rr.std_spectral_base() ;
220 st.std_spectral_base() ;
223 ct.std_spectral_base() ;
226 sp.std_spectral_base() ;
229 cp.std_spectral_base() ;
233 ll.set(1) = st % cp ;
234 ll.set(2) = st % sp ;
236 ll.std_spectral_base() ;
243 divshift = shift_auto_rs(1).deriv(1) + shift_auto_rs(2).deriv(2)
244 + shift_auto_rs(3).deriv(3) + dshift_comp(1,1)
245 + dshift_comp(2,2) + dshift_comp(3,3) ;
246 divshift.std_spectral_base() ;
249 llshift = ll(1) % (shift_auto_rs(1) + shift_comp(1))
250 + ll(2) % (shift_auto_rs(2) + shift_comp(2))
251 + ll(3) % (shift_auto_rs(3) + shift_comp(3)) ;
252 llshift.std_spectral_base() ;
254 Scalar llshift_auto(mp_bh) ;
255 llshift_auto = ll(1)%shift_auto_rs(1) + ll(2)%shift_auto_rs(2)
256 + ll(3)%shift_auto_rs(3) ;
257 llshift_auto.std_spectral_base() ;
260 + ll(1) * (ll(1) % dshift_comp(1,1) + ll(2) % dshift_comp(1,2)
261 + ll(3) % dshift_comp(1,3))
262 + ll(2) * (ll(1) % dshift_comp(2,1) + ll(2) % dshift_comp(2,2)
263 + ll(3) % dshift_comp(2,3))
264 + ll(3) * (ll(1) % dshift_comp(3,1) + ll(2) % dshift_comp(3,2)
265 + ll(3) % dshift_comp(3,3)) ;
287 Scalar lldconf = confo_bh_auto.
dsdr() + ll(1)%dconfo_bh_comp(1)
288 + ll(2)%dconfo_bh_comp(2) + ll(3)%dconfo_bh_comp(3) ;
295 cout <<
"!!!!! WARNING: Not yet available !!!!!" << endl ;
422 cc = 2. * (
sqrt(13.) - 1.) / 3. ;
434 cout <<
"!!!!! WARNING: Not yet prepared !!!!!" << endl ;
440 cout <<
"!!!!! WARNING: Not yet prepared !!!!!" << endl ;
446 Scalar r_are(mp_bh) ;
453 Scalar divshift_zero(divshift) ;
454 divshift_zero.dec_dzpuis(2) ;
456 Scalar lldllsh_zero(lldllsh) ;
457 lldllsh_zero.dec_dzpuis(2) ;
459 source_bh_surf = confo_bh / rr
460 -
pow(confo_bh, 4.) * (divshift_zero - 3.*lldllsh_zero)
462 -
pow(confo_bh, 4.) * mass * mass * cc
463 *
sqrt(1. -2.*mass/r_are/rr + cc*cc*
pow(mass/r_are/rr,4.))
464 / lapconf_bh /
pow(r_are*rr,3.) ;
466 source_bh_surf.std_spectral_base() ;
467 source_bh_surf.annule_domain(0) ;
468 source_bh_surf.raccord(1) ;
470 integ_bh_s = mp_aff.integrale_surface(source_bh_surf, radius_ah) ;
474 Scalar sou_bh1(mp_bh) ;
475 sou_bh1 = 1.5 *
pow(confo_bh,7.) *
pow(mass*mass*cc,2.)
476 * (1. - 2.*mass/r_are/rr + cc*cc*
pow(mass/r_are/rr,4.))
477 / lapconf_bh / lapconf_bh /
pow(r_are*rr,6.) ;
478 sou_bh1.std_spectral_base() ;
481 source_bh_volm = 0.25 * taij_quad_auto_bh /
pow(confo_bh,7.)
482 + 0.25 * taij_quad_comp_bh
483 * (
pow(confo_bh/(confo_bh_comp+0.5),7.)
484 *
pow((lapconf_bh_comp+0.5)/lapconf_bh,2.)
485 - 1.) /
pow(confo_bh_comp+0.5,7.)
488 source_bh_volm.std_spectral_base() ;
489 source_bh_volm.annule_domain(0) ;
491 integ_bh_v = source_bh_volm.
integrale() ;
499 Scalar sou_ns1(mp_ns) ;
500 sou_ns1 =
pow(confo_ns, 5.) * ener_euler ;
502 sou_ns1.inc_dzpuis(4) ;
504 source_ns_volm = 0.25 * taij_quad_auto_ns
505 /
pow(confo_ns_auto+0.5, 7.) / qpig + sou_ns1 ;
507 source_ns_volm.std_spectral_base() ;
509 integ_ns_v = source_ns_volm.integrale() ;
511 cout <<
"integ_bh_s : " << integ_bh_s/ qpig / msol
513 << integ_bh_v/ qpig / msol
514 <<
" integ_ns_v : " << integ_ns_v/ msol << endl ;
519 madm = (integ_bh_s + integ_bh_v) / qpig + integ_ns_v ;
521 cout <<
"ADM mass (volume) : " << madm / msol <<
" [Mo]" 564 cout <<
"!!!!! WARNING: Not yet available !!!!!" << endl ;
582 cc = 2. * (
sqrt(13.) - 1.) / 3. ;
594 cout <<
"!!!!! WARNING: Not yet prepared !!!!!" << endl ;
600 cout <<
"!!!!! WARNING: Not yet prepared !!!!!" << endl ;
617 lldlap_bh = lapconf_bh_auto_rs.
dsdr()
618 - confo_bh_auto_rs.
dsdr() ;
622 anoth =
sqrt(r_are) * (1. - 1.5 *cc*cc*
pow(mass/r_are/rr,4.)
623 -
sqrt(1. - 2.*mass/r_are/rr
624 + cc*cc*
pow(mass/r_are/rr,4.))) / rr ;
634 lldlap_ns = lapconf_ns_auto.
dsdr() - confo_ns_auto.
dsdr() ;
641 cout <<
"Komar mass (surface) : " << mkom / msol <<
" [Mo]" 660 double Bin_bhns::mass_kom_bhns_vol()
const {
676 double radius_ah = mp_bh.
val_r(1,-1.,M_PI/2.,0.) ;
681 Scalar source_bh_surf(mp_bh) ;
682 source_bh_surf.set_etat_qcq() ;
684 Scalar source_bh_volm(mp_bh) ;
685 source_bh_volm.set_etat_qcq() ;
687 Scalar source_ns_volm(mp_ns) ;
688 source_ns_volm.set_etat_qcq() ;
692 rr.std_spectral_base() ;
695 st.std_spectral_base() ;
698 ct.std_spectral_base() ;
701 sp.std_spectral_base() ;
704 cp.std_spectral_base() ;
708 ll.set(1) = st % cp ;
709 ll.set(2) = st % sp ;
711 ll.std_spectral_base() ;
732 divshift = shift_auto_rs(1).deriv(1) + shift_auto_rs(2).deriv(2)
733 + shift_auto_rs(3).deriv(3) + dshift_comp(1,1)
734 + dshift_comp(2,2) + dshift_comp(3,3) ;
735 divshift.std_spectral_base() ;
737 Scalar llshift_auto(mp_bh) ;
738 llshift_auto = ll(1)%shift_auto_rs(1) + ll(2)%shift_auto_rs(2)
739 + ll(3)%shift_auto_rs(3) ;
740 llshift_auto.std_spectral_base() ;
743 + ll(1) * (ll(1) % dshift_comp(1,1) + ll(2) % dshift_comp(1,2)
744 + ll(3) % dshift_comp(1,3))
745 + ll(2) * (ll(1) % dshift_comp(2,1) + ll(2) % dshift_comp(2,2)
746 + ll(3) % dshift_comp(2,3))
747 + ll(3) * (ll(1) % dshift_comp(3,1) + ll(2) % dshift_comp(3,2)
748 + ll(3) % dshift_comp(3,3)) ;
804 cout <<
"!!!!! WARNING: Not yet available !!!!!" << endl ;
941 cc = 2. * (
sqrt(13.) - 1.) / 3. ;
953 cout <<
"!!!!! WARNING: Not yet prepared !!!!!" << endl ;
959 cout <<
"!!!!! WARNING: Not yet prepared !!!!!" << endl ;
965 Scalar r_are(mp_bh) ;
970 Scalar lldlapconf_is(mp_bh) ;
971 lldlapconf_is = ll(1)%dlapconf_bh_auto_rs(1)
972 + ll(2)%dlapconf_bh_auto_rs(2) + ll(3)%dlapconf_bh_auto_rs(3)
973 + ll(1)%dlapconf_bh_comp(1) + ll(2)%dlapconf_bh_comp(2)
974 + ll(3)%dlapconf_bh_comp(3) ;
976 lldlapconf_is.std_spectral_base() ;
980 Scalar divshift_zero(divshift) ;
981 divshift_zero.dec_dzpuis(2) ;
983 Scalar lldllsh_zero(lldllsh) ;
984 lldllsh_zero.dec_dzpuis(2) ;
986 Scalar sou_bh_s_psi(mp_bh) ;
987 sou_bh_s_psi = 0.5 * confo_bh / rr
988 -
pow(confo_bh, 4.) * (divshift_zero - 3.*lldllsh_zero)
990 - 0.5 *
pow(confo_bh, 4.) * mass * mass * cc
991 *
sqrt(1. -2.*mass/r_are/rr + cc*cc*
pow(mass/r_are/rr,4.))
992 / lapconf_bh /
pow(r_are*rr,3.) ;
994 sou_bh_s_psi.std_spectral_base() ;
995 sou_bh_s_psi.annule_domain(0) ;
996 sou_bh_s_psi.raccord(1) ;
1001 source_bh_surf = sou_bh_s_psi ;
1003 source_bh_surf.std_spectral_base() ;
1004 source_bh_surf.annule_domain(0) ;
1005 source_bh_surf.raccord(1) ;
1010 Scalar sou_bh_s1(mp_bh) ;
1011 sou_bh_s1 = 0.5 * lapconf_bh / rr ;
1013 sou_bh_s1.annule_domain(0) ;
1014 sou_bh_s1.raccord(1) ;
1016 source_bh_surf = sou_bh_s1 + sou_bh_s_psi ;
1018 source_bh_surf.std_spectral_base() ;
1019 source_bh_surf.annule_domain(0) ;
1020 source_bh_surf.raccord(1) ;
1026 Scalar sou_bh_s1(mp_bh) ;
1027 sou_bh_s1 = lldlapconf_is ;
1028 sou_bh_s1.std_spectral_base() ;
1029 sou_bh_s1.dec_dzpuis(2) ;
1031 Scalar sou_bh_s2(mp_bh) ;
1032 sou_bh_s2 = 0.5 *
sqrt(r_are)
1033 * (1. - 3.*cc*cc*
pow(mass/r_are/rr,4.)
1034 -
sqrt(1. - 2.*mass/r_are/rr
1035 + cc*cc*
pow(mass/r_are/rr,4.))) / rr ;
1037 sou_bh_s2.std_spectral_base() ;
1039 source_bh_surf = sou_bh_s1 + sou_bh_s2 + sou_bh_s_psi ;
1041 source_bh_surf.std_spectral_base() ;
1042 source_bh_surf.annule_domain(0) ;
1047 integ_bh_s = mp_aff.integrale_surface(source_bh_surf, radius_ah) ;
1051 Scalar sou_bh1(mp_bh) ;
1052 sou_bh1 = 0.75 *
pow(mass*mass*cc,2.)
1053 * (1. - 2.*mass/r_are/rr + cc*cc*
pow(mass/r_are/rr,4.))
1054 * (7.*
pow(confo_bh,6.)/lapconf_bh
1055 +
pow(confo_bh,7.)/lapconf_bh/lapconf_bh)
1056 /
pow(r_are*rr,6.) ;
1058 sou_bh1.std_spectral_base() ;
1061 Scalar sou_bh2(mp_bh) ;
1062 sou_bh2 = 0.125 * (7.*lapconf_bh/
pow(confo_bh,8.)
1063 + 1./
pow(confo_bh,7.)) * taij_quad_auto_bh ;
1065 sou_bh2.std_spectral_base() ;
1067 Scalar sou_bh3(mp_bh) ;
1068 sou_bh3 = 0.125 * (7.*((lapconf_bh_comp+0.5)/lapconf_bh
1069 *
pow(confo_bh/(confo_bh_comp+0.5),6.) - 1.)
1070 * (lapconf_bh_comp+0.5)
1071 /
pow(confo_bh_comp+0.5,8.)
1072 + (
pow(confo_bh/(confo_bh_comp+0.5),7.)
1073 *
pow((lapconf_bh_comp+0.5)/lapconf_bh,2.)
1074 - 1.) /
pow(confo_bh_comp+0.5,7))
1075 * taij_quad_comp_bh ;
1077 sou_bh3.std_spectral_base() ;
1079 source_bh_volm = sou_bh1 + sou_bh2 + sou_bh3 ;
1080 source_bh_volm.std_spectral_base() ;
1081 source_bh_volm.annule_domain(0) ;
1083 integ_bh_v = source_bh_volm.integrale() ;
1091 Scalar sou_ns1(mp_ns) ;
1092 sou_ns1 = 0.5 *
pow(confo_ns,4.) * (lapconf_ns + confo_ns)
1093 * ener_euler + lapconf_ns *
pow(confo_ns,4.) * s_euler ;
1095 sou_ns1.inc_dzpuis(4) ;
1097 Scalar sou_ns2(mp_ns) ;
1098 sou_ns2 = 0.125 * (7.*(lapconf_ns_auto+0.5)/(confo_ns_auto+0.5)
1099 + 1.) * taij_quad_auto_ns
1100 /
pow(confo_ns_auto+0.5, 7.) / qpig ;
1101 sou_ns2.std_spectral_base() ;
1103 source_ns_volm = sou_ns1 + sou_ns2 ;
1104 source_ns_volm.std_spectral_base() ;
1106 integ_ns_v = source_ns_volm.integrale() ;
1108 cout <<
"integ_bh_s : " << integ_bh_s/ qpig / msol
1110 << integ_bh_v/ qpig / msol
1111 <<
" integ_ns_v : " << integ_ns_v/ msol << endl ;
1116 mkom = (integ_bh_s + integ_bh_v) / qpig + integ_ns_v ;
1118 cout <<
"Komar mass (volume) : " << mkom / msol <<
" [Mo]" 1151 int nz = (
hole.
get_mp()).get_mg()->get_nzone() ;
1152 double* bornes =
new double[nz+1] ;
1153 double radius =
separ + 2. ;
1155 for (
int i=nz-1; i>0; i--) {
1156 bornes[i] = radius ;
1160 bornes[nz] = __infinity ;
1183 Vector shift_tot = shift_bh + shift_ns ;
1185 shift_tot.
annule(0, nz-2) ;
1202 lc.set(1) = stc * cpc ;
1203 lc.
set(2) = stc * spc ;
1223 rl =
sqrt(1. - 2.*xbhsr*lc(1) - 2.*ybhsr*lc(2)
1224 + xbhsr*xbhsr + ybhsr*ybhsr) ;
1229 ll.set(1) = (lc(1) - xbhsr) / rl ;
1230 ll.
set(2) = (lc(2) - ybhsr)/ rl ;
1231 ll.
set(3) = lc(3) / rl ;
1235 lcll = lc(1)*ll(1) + lc(2)*ll(2) + lc(3)*ll(3) ;
1238 Scalar divshift(mp_aff) ;
1239 divshift = shift_tot(1).deriv(1) + shift_tot(2).deriv(2)
1240 + shift_tot(3).deriv(3) ;
1244 llshift = ll(1)*shift_tot(1) + ll(2)*shift_tot(2)
1245 + ll(3)*shift_tot(3) ;
1249 lcshift = lc(1)*shift_tot(1) + lc(2)*shift_tot(2)
1250 + lc(3)*shift_tot(3) ;
1254 for (
int i=1; i<=3; i++) {
1255 lcdshft.
set(i) = lc(1)*(shift_tot(1).deriv(i))
1256 + lc(2)*(shift_tot(2).deriv(i))
1257 + lc(3)*(shift_tot(3).deriv(i)) ;
1262 for (
int i=1; i<=3; i++) {
1263 dshift.
set(i) = shift_tot(i).dsdr() ;
1268 for (
int i=1; i<=3; i++) {
1269 lldshft.
set(i) = ll(1)*(shift_tot(i).deriv(1))
1270 + ll(2)*(shift_tot(i).deriv(2))
1271 + ll(3)*(shift_tot(i).deriv(3)) ;
1278 lap_bh2 = 1./(1.+2.*mass/rl/rr) ;
1282 lap2hbh = lap_bh2 * mass / rl / rr ;
1296 kk = 4.*
sqrt(lap_bh2)*lap2hbh*(1.+3.*mass/rl/rr)/3./rl/rr ;
1306 kij_x1 = omexsr*ll(1)*lc(2) - omeysr*(ll(1)*lc(1)+lcll)
1307 + lcll*shift_tot(1)/rl/rr
1308 + ll(1)*lcshift/rl/rr
1309 + (lc(1)-lap_bh2*(9.+14.*mass/rl/rr)*ll(1)*lcll)
1310 *(llshift/rl/rr + omexsr*ll(2) - omeysr*ll(1))/3. ;
1315 kij_x2 = kk * (lc(1) - 2.*lap2hbh*ll(1)*lcll) ;
1319 kijlj.set(1) = lcdshft(1) + dshift(1) - 2.*lc(1)*divshift/3.
1320 + 2.*lap2hbh * (-ll(1)*(ll(1)*lcdshft(1) + ll(2)*lcdshft(2)
1323 + 2.*ll(1)*lcll*divshift/3.
1330 kij_y1 = omexsr*(ll(2)*lc(2)+lcll) - omeysr*ll(2)*lc(1)
1331 + lcll*shift_tot(2)/rl/rr
1332 + ll(2)*lcshift/rl/rr
1333 + (lc(2)-lap_bh2*(9.+14.*mass/rl/rr)*ll(2)*lcll)
1334 *(llshift/rl/rr + omexsr*ll(2) - omeysr*ll(1))/3. ;
1336 kij_y1.inc_dzpuis(2) ;
1339 kij_y2 = kk * (lc(2) - 2.*lap2hbh*ll(2)*lcll) ;
1343 kijlj.set(2) = lcdshft(2) + dshift(2) - 2.*lc(2)*divshift/3.
1344 + 2.*lap2hbh * (-ll(2)*(ll(1)*lcdshft(1) + ll(2)*lcdshft(2)
1347 + 2.*ll(2)*lcll*divshift/3.
1354 kij_z1 = omexsr*ll(3)*lc(2) - omeysr*ll(3)*lc(1)
1355 + lcll*shift_tot(3)/rl/rr
1356 + ll(3)*lcshift/rl/rr
1357 + (lc(3)-lap_bh2*(9.+14.*mass/rl/rr)*ll(3)*lcll)
1358 *(llshift/rl/rr + omexsr*ll(2) - omeysr*ll(1))/3. ;
1360 kij_z1.inc_dzpuis(2) ;
1363 kij_z2 = kk * (lc(3) - 2.*lap2hbh*ll(3)*lcll) ;
1367 kijlj.set(3) = lcdshft(3) + dshift(3) - 2.*lc(3)*divshift/3.
1368 + 2.*lap2hbh * (-ll(3)*(ll(1)*lcdshft(1) + ll(2)*lcdshft(2)
1371 + 2.*ll(3)*lcll*divshift/3.
1466 double radius_ah = mp_bh.
val_r(1,-1.,M_PI/2.,0.) ;
1483 ll.set(1) = st % cp ;
1484 ll.
set(2) = st % sp ;
1497 Scalar sou_bh_sx(mp_bh) ;
1498 sou_bh_sx = taij(1,1) * ll(1) + taij(1,2) * ll(2)
1499 + taij(1,3) * ll(3) ;
1515 Scalar sou_ns_vx(mp_ns) ;
1517 sou_ns_vx =
pow(confo_ns, 10.) * (ee + pp) * uu(1) ;
1522 double integ_ns_v_x = sou_ns_vx.
integrale() ;
1535 Scalar sou_bh_sy(mp_bh) ;
1536 sou_bh_sy = taij(2,1) * ll(1) + taij(2,2) * ll(2)
1537 + taij(2,3) * ll(3) ;
1553 Scalar sou_ns_vy(mp_ns) ;
1555 sou_ns_vy =
pow(confo_ns, 10.) * (ee + pp) * uu(2) ;
1560 double integ_ns_v_y = sou_ns_vy.
integrale() ;
1574 Scalar sou_bh_sz(mp_bh) ;
1575 sou_bh_sz = taij(3,1) * ll(1) + taij(3,2) * ll(2)
1576 + taij(3,3) * ll(3) ;
1592 Scalar sou_ns_vz(mp_ns) ;
1594 sou_ns_vz =
pow(confo_ns, 10.) * (ee + pp) * uu(3) ;
1599 double integ_ns_v_z = sou_ns_vz.
integrale() ;
1627 double integ_bh_s_x ;
1628 double integ_bh_s_y ;
1629 double integ_bh_s_z ;
1630 double integ_bh_v_x ;
1631 double integ_bh_v_y ;
1632 double integ_bh_v_z ;
1633 double integ_ns_v_x ;
1634 double integ_ns_v_y ;
1635 double integ_ns_v_z ;
1640 double radius_ah = mp_bh.
val_r(1,-1.,M_PI/2.,0.) ;
1643 Scalar source_bh_surf(mp_bh) ;
1646 Scalar source_bh_volm(mp_bh) ;
1649 Scalar source_ns_volm(mp_ns) ;
1671 ll.set(1) = st % cp ;
1672 ll.
set(2) = st % sp ;
1705 for (
int i=1; i<=3; i++)
1706 jbh_x.set(i) = yy_bh * taij(3,i) - zz_bh * taij(2,i) ;
1708 jbh_x.std_spectral_base() ;
1712 for (
int i=1; i<=3; i++)
1713 jbh_y.set(i) = zz_bh * taij(1,i) - xx_bh * taij(3,i) ;
1715 jbh_y.std_spectral_base() ;
1719 for (
int i=1; i<=3; i++)
1720 jbh_z.set(i) = xx_bh * taij(2,i) - yy_bh * taij(1,i) ;
1722 jbh_z.std_spectral_base() ;
1731 lap_bh2 = 1./(1.+2.*mass/rr) ;
1735 lcnf =
log(confo_bh) ;
1740 for (
int i=1; i<=3; i++)
1741 jbhsr_x.set(i) = ll(2)*taij(3,i) - ll(3)*taij(2,i) ;
1743 jbhsr_x.std_spectral_base() ;
1747 for (
int i=1; i<=3; i++)
1748 jbhsr_y.set(i) = ll(3)*taij(1,i) - (ll(1)+ori_bh/rr)*taij(3,i) ;
1750 jbhsr_y.std_spectral_base() ;
1754 for (
int i=1; i<=3; i++)
1755 jbhsr_z.set(i) = (ll(1)+ori_bh/rr)*taij(2,i) - ll(2)*taij(1,i) ;
1757 jbhsr_z.std_spectral_base() ;
1760 tmp1 = 2. *
pow(lap_bh2,2.5) * mass * (1.+3.*mass/rr)
1761 *
pow(confo_bh,6.) * ori_bh / 3. / rr / rr ;
1766 tmp2 = 4. *
sqrt(lap_bh2) * (1.+3.*mass/rr) *
pow(confo_bh,6.) ;
1771 lltaij = ll(1)*(ll(1)*taij(1,1)+ll(2)*taij(1,2)+ll(3)*taij(1,3))
1772 + ll(2)*(ll(1)*taij(2,1)+ll(2)*taij(2,2)+ll(3)*taij(2,3))
1773 + ll(3)*(ll(1)*taij(3,1)+ll(2)*taij(3,2)+ll(3)*taij(3,3)) ;
1778 dlcnf = - 2. * lap_bh2 * tmp2 * mass * lcnf.
dsdr() / rr ;
1784 tmp3 = -2.*
pow(lap_bh2,2.5)
1785 *(6.+32.*mass/rr+41.*mass*mass/rr/rr+24.*
pow(mass,3.)/
pow(rr,3.))
1786 *
pow(confo_bh,6.)/3./rr
1787 + 3.* lltaij + dlcnf ;
1792 tmp4 = lap_bh2 * mass / rr ;
1805 source_bh_surf = jbh_x(1)*ll(1) + jbh_x(2)*ll(2) + jbh_x(3)*ll(3) ;
1816 source_bh_volm = tmp4
1817 * ( jbhsr_x(1)*ll(1) + jbhsr_x(2)*ll(2) + jbhsr_x(3)*ll(3)
1818 + tmp2 * ( ll(2)*lcnf.
dsdz() - ll(3)*lcnf.
dsdy() ) ) ;
1824 integ_bh_v_x = source_bh_volm.
integrale() ;
1832 source_ns_volm =
pow(confo_ns, 10.) * (ee + pp)
1833 * (yy_ns*uu(3) - zz_ns*uu(2)) ;
1838 integ_ns_v_x = source_ns_volm.
integrale() ;
1841 + 0.5 * (integ_bh_s_x + integ_bh_v_x) / qpig ;
1854 jbh_y_ll = jbh_y(1)*ll(1) + jbh_y(2)*ll(2) + jbh_y(3)*ll(3) ;
1858 source_bh_surf = jbh_y_ll - tmp1 * ll(3) ;
1868 tmp3_llz = tmp3 * ll(3) * ori_bh / rr ;
1872 source_bh_volm = tmp4
1873 * ( jbhsr_y(1)*ll(1) + jbhsr_y(2)*ll(2) + jbhsr_y(3)*ll(3)
1874 + tmp2 * ( ll(3)*lcnf.
dsdx() - (ll(1)+ori_bh/rr)*lcnf.
dsdz() )
1881 integ_bh_v_y = source_bh_volm.
integrale() ;
1889 source_ns_volm =
pow(confo_ns, 10.) * (ee + pp)
1890 * (zz_ns*uu(1) - xx_ns*uu(3)) ;
1895 integ_ns_v_y = source_ns_volm.
integrale() ;
1898 + 0.5 * (integ_bh_s_y + integ_bh_v_y) / qpig ;
1911 jbh_z_ll = jbh_z(1)*ll(1) + jbh_z(2)*ll(2) + jbh_z(3)*ll(3) ;
1914 source_bh_surf = jbh_z_ll + tmp1 * ll(2) ;
1925 tmp3_lly = tmp3 * ll(2) * ori_bh / rr ;
1929 source_bh_volm = tmp4
1930 * ( jbhsr_z(1)*ll(1) + jbhsr_z(2)*ll(2) + jbhsr_z(3)*ll(3)
1931 + tmp2 * ( (ll(1)+ori_bh/rr)*lcnf.
dsdy() - ll(2)*lcnf.
dsdx() )
1938 integ_bh_v_z = source_bh_volm.
integrale() ;
1946 source_ns_volm =
pow(confo_ns, 10.) * (ee + pp)
1947 * (xx_ns*uu(2) - yy_ns*uu(1)) ;
1952 integ_ns_v_z = source_ns_volm.
integrale() ;
1955 + 0.5 * (integ_bh_s_z + integ_bh_v_z) / qpig ;
1968 cc = 2. * (
sqrt(13.) - 1.) / 3. ;
1980 cout <<
"!!!!! WARNING: Not yet prepared !!!!!" << endl ;
1986 cout <<
"!!!!! WARNING: Not yet prepared !!!!!" << endl ;
2003 for (
int i=1; i<=3; i++)
2004 jbh_rs_x.set(i) = yy_bh * taij_rs(3,i) - zz_bh * taij_rs(2,i) ;
2006 jbh_rs_x.std_spectral_base() ;
2010 for (
int i=1; i<=3; i++)
2011 jbh_rs_y.set(i) = zz_bh * taij_rs(1,i) - xx_bh * taij_rs(3,i) ;
2013 jbh_rs_y.std_spectral_base() ;
2017 for (
int i=1; i<=3; i++)
2018 jbh_rs_z.set(i) = xx_bh * taij_rs(2,i) - yy_bh * taij_rs(1,i) ;
2020 jbh_rs_z.std_spectral_base() ;
2023 tmp = - 2. * mass * mass * cc *
pow(confo_bh,7.)
2024 *
sqrt(1. - 2.*mass/r_are/rr + cc*cc*
pow(mass/r_are/rr,4.))
2025 / lapconf_bh /
pow(r_are*rr,3.) ;
2038 Scalar sou_bh_sx1(mp_bh) ;
2039 sou_bh_sx1 = jbh_rs_x(1)%ll(1) + jbh_rs_x(2)%ll(2)
2040 + jbh_rs_x(3)%ll(3) ;
2044 Scalar sou_bh_sx2(mp_bh) ;
2045 sou_bh_sx2 = tmp * (yy_bh % ll(3) - zz_bh % ll(2)) ;
2048 source_bh_surf = sou_bh_sx1 + sou_bh_sx2 ;
2062 source_ns_volm =
pow(confo_ns, 10.) * (ee + pp)
2063 * (yy_ns*uu(3) - zz_ns*uu(2)) ;
2068 integ_ns_v_x = source_ns_volm.
integrale() ;
2083 Scalar sou_bh_sy1(mp_bh) ;
2084 sou_bh_sy1 = jbh_rs_y(1)%ll(1) + jbh_rs_y(2)%ll(2)
2085 + jbh_rs_y(3)%ll(3) ;
2089 Scalar sou_bh_sy2(mp_bh) ;
2090 sou_bh_sy2 = tmp * (zz_bh % ll(1) - xx_bh % ll(3)) ;
2093 source_bh_surf = sou_bh_sy1 + sou_bh_sy2 ;
2107 source_ns_volm =
pow(confo_ns, 10.) * (ee + pp)
2108 * (zz_ns*uu(1) - xx_ns*uu(3)) ;
2113 integ_ns_v_y = source_ns_volm.
integrale() ;
2128 Scalar sou_bh_sz1(mp_bh) ;
2129 sou_bh_sz1 = jbh_rs_z(1)%ll(1) + jbh_rs_z(2)%ll(2)
2130 + jbh_rs_z(3)%ll(3) ;
2134 Scalar sou_bh_sz2(mp_bh) ;
2135 sou_bh_sz2 = tmp * (xx_bh % ll(2) - yy_bh % ll(1)) ;
2138 source_bh_surf = sou_bh_sz1 + sou_bh_sz2 ;
2152 source_ns_volm =
pow(confo_ns, 10.) * (ee + pp)
2153 * (xx_ns*uu(2) - yy_ns*uu(1)) ;
2158 integ_ns_v_z = source_ns_volm.
integrale() ;
2194 double virial = 1. - mass_kom_bhns_vol() / mass_adm_bhns_vol() ;
2239 rbh =
sqrt( (xx+
separ)*(xx+
separ) + (yy+yns)*(yy+yns) + zz*zz ) ;
2244 tmp =
sqrt( 1.+2.*mass/rbh ) ;
2264 Scalar dens =
pow(confo, 6.) * g_euler * nbary * tmp * xxa ;
2269 double xa_bary = dens.
integrale() / mass_b ;
2315 rbh =
sqrt( (xx+
separ)*(xx+
separ) + (yy+yns)*(yy+yns) + zz*zz ) ;
2320 tmp =
sqrt( 1.+2.*mass/rbh ) ;
2340 Scalar dens =
pow(confo, 6.) * g_euler * nbary * tmp * yya ;
2345 double ya_bary = dens.
integrale() / mass_b ;
Coord xa
Absolute x coordinate.
void annule_domain(int l)
Sets the Tensor to zero in a given domain.
double get_mass_bh() const
Returns the gravitational mass of BH [{ m_unit}].
Cmp log(const Cmp &)
Neperian logarithm.
virtual void set_etat_qcq()
Sets the logical state of all components to ETATQCQ (ordinary state).
Hole_bhns hole
Black hole.
const Tbl & line_mom_bhns() const
Total linear momentum.
const Scalar & get_press() const
Returns the fluid pressure.
double integrale_surface(const Cmp &ci, double rayon) const
Performs the surface integration of ci on the sphere of radius rayon .
const Scalar & get_ener_euler() const
Returns the total energy density with respect to the Eulerian observer.
double ya_barycenter() const
Absolute coordinate Y of the barycenter of the baryon density.
const Scalar & get_confo_auto() const
Returns the part of the conformal factor generated by the black hole.
const Vector & get_d_confo_auto_rs() const
Returns the derivative of the conformal factor generated by the black hole.
const Vector & get_u_euler() const
Returns the fluid 3-velocity with respect to the Eulerian observer.
Cmp sqrt(const Cmp &)
Square root.
const Scalar & get_lapconf_tot() const
Returns the total lapconf function.
double integrale_surface_infini(const Cmp &ci) const
Performs the surface integration of ci at infinity.
Standard units of space, time and mass.
double xa_barycenter() const
Absolute coordinate X of the barycenter of the baryon density.
bool is_kerrschild() const
Returns true for a Kerr-Schild background, false for a Conformally flat one.
double & set(int i)
Read/write of a particular element (index i) (1D case)
const Scalar & dsdz() const
Returns of *this , where .
Tensor field of valence 0 (or component of a tensorial field).
Base class for coordinate mappings.
double get_ori_x() const
Returns the x coordinate of the origin.
double integrale() const
Computes the integral over all space of *this .
Tbl * p_angu_mom_bhns
Total angular momentum of the system.
Tbl * p_line_mom_bhns
Total linear momentum of the system.
bool has_bc_lapconf_fs() const
Returns true for the first type BC for the lapconf function, false for the second type BH...
double * p_mass_kom_bhns_surf
Total Komar mass of the system calculated by the surface integral at infinity.
const Scalar & get_lapconf_auto() const
Returns the part of the lapconf function generated by the star.
const Scalar & get_confo_comp() const
Returns the part of the conformal factor generated by the companion star.
const Scalar & dsdx() const
Returns of *this , where .
virtual void std_spectral_base()
Sets the spectral bases of the Valeur va to the standard ones for a scalar field. ...
bool has_bc_lapconf_nd() const
Returns true for the Neumann type BC for the lapconf function, false for the Dirichlet type BH...
double virial_bhns_vol() const
Estimates the relative error on the virial theorem $|1 - M_{ Komar} / M_{ ADM}|$. ...
const Map & get_mp() const
Returns the mapping.
const Scalar & get_lapconf_tot() const
Returns the total lapconf function.
virtual void set_etat_qcq()
Sets the logical state to ETATQCQ (ordinary state).
const Vector & get_d_confo_auto() const
Returns the derivative of the conformal factor generated by the star.
const Sym_tensor & get_taij_tot_rs() const
Returns the part of rs of the extrinsic curvature tensor.
Tensor field of valence 1.
double mass_kom_bhns_surf() const
Total Komar mass.
double * p_mass_kom_bhns_vol
Total Komar mass of the system calculated by the volume integral and the surface integral at the appa...
double separ
Absolute orbital separation between two centers of BH and NS.
virtual void std_spectral_base()
Sets the standard spectal bases of decomposition for each component.
void set_ori(double xa0, double ya0, double za0)
Sets a new origin.
void raccord(int n)
Performs the matching of the nucleus with respect to the first shell.
double * p_xa_barycenter
Absolute coordinate X of the barycenter of the baryon density.
void inc_dzpuis()
Increases by the value of dzpuis and changes accordingly the values of the Cmp in the external compac...
double omega
Angular velocity with respect to an asymptotically inertial observer.
virtual double val_r(int l, double xi, double theta, double pphi) const =0
Returns the value of the radial coordinate r for a given in a given domain.
const Vector & get_shift_auto() const
Returns the part of the shift vector generated by the star.
const Scalar & get_lapconf_comp() const
Returns the part of the lapconf function generated by the companion star.
const Scalar & get_taij_quad_tot_rot() const
Returns the part of rot.
virtual void inc_dzpuis(int inc=1)
Increases by inc units the value of dzpuis and changes accordingly the values of the Scalar in the co...
const Scalar & dsdy() const
Returns of *this , where .
int get_dzpuis() const
Returns dzpuis.
const Vector & get_shift_auto_rs() const
Returns the part of the shift vector from numerical computation.
const Scalar & get_confo_tot() const
Returns the total conformal factor.
Star_bhns star
Neutron star.
const Scalar & get_s_euler() const
Returns the trace of the stress tensor in the Eulerian frame.
const Sym_tensor & get_taij_tot() const
Returns the total extrinsic curvature tensor.
const Map & get_mp() const
Returns the mapping.
double mass_adm_bhns_surf() const
Total ADM mass.
double integrale() const
Computes the integral over all space of *this .
const Scalar & get_taij_quad_tot_rs() const
Returns the part of rs.
double * p_mass_adm_bhns_vol
Total ADM mass of the system calculated by the volume integral and the surface integral at the appare...
Cmp pow(const Cmp &, int)
Power .
const Scalar & get_confo_auto() const
Returns the part of the conformal factor generated by the star.
const Vector & get_shift_auto() const
Returns the part of the shift vector generated by the black hole.
const Scalar & get_taij_quad_auto() const
Returns the part of rs generated by the black hole.
const Vector & get_d_lapconf_auto() const
Returns the derivative of the lapse function generated by the star.
const Scalar & get_confo_tot() const
Returns the total conformal factor.
const Vector & get_d_lapconf_comp() const
Returns the derivative of the lapconf function generated by the companion star.
Coord ya
Absolute y coordinate.
const Tbl & angu_mom_bhns() const
Total angular momentum.
const Scalar & get_confo_auto_rs() const
Returns the part of the conformal factor from numerical computation.
const Scalar & get_nbar() const
Returns the proper baryon density.
double * p_virial_bhns_vol
Virial theorem error calculated by the ADM mass and the Komar mass of the volume integral.
const Base_vect_cart & get_bvect_cart() const
Returns the Cartesian basis associated with the coordinates (x,y,z) of the mapping, i.e.
double * p_ya_barycenter
Absolute coordinate Y of the barycenter of the baryon density.
Scalar & set(const Itbl &ind)
Returns the value of a component (read/write version).
Coord y
y coordinate centered on the grid
void raccord(int n)
Performs the matching of the nucleus with respect to the first shell.
Coord za
Absolute z coordinate.
const Scalar & get_taij_quad_comp() const
Returns the part of rs generated by the companion star.
const Scalar & dsdr() const
Returns of *this .
double * p_mass_adm_bhns_surf
Total ADM mass of the system calculated by the surface integral at infinity.
Coord x
x coordinate centered on the grid
const Vector & get_d_confo_comp() const
Returns the derivative of the conformal factor generated by the companion black hole.
double virial_bhns_surf() const
Estimates the relative error on the virial theorem $|1 - M_{ Komar} / M_{ ADM}|$. ...
Scalar & set(int)
Read/write access to a component.
const Scalar & get_gam_euler() const
Returns the Lorentz factor between the fluid and Eulerian observers.
const Scalar r_coord(bool neumann, bool first) const
Expresses the areal radial coordinate by that in spatially isotropic coordinates. ...
double x_rot
Absolute X coordinate of the rotation axis.
virtual void annule(int l_min, int l_max)
Sets the Tensor to zero in several domains.
void annule_hard()
Sets the Tbl to zero in a hard way.
const Vector & get_d_lapconf_auto_rs() const
Returns the derivative of the lapconf function generated by the black hole.
const Scalar & get_lapconf_auto_rs() const
Returns the part of the lapconf function from numerical computation.
Coord z
z coordinate centered on the grid
const Vector & get_shift_comp() const
Returns the part of the shift vector generated by the companion star.
const Scalar & get_taij_quad_auto() const
Returns the part of the scalar generated by .
virtual void dec_dzpuis(int dec=1)
Decreases by dec units the value of dzpuis and changes accordingly the values of the Scalar in the co...
double * p_virial_bhns_surf
Virial theorem error calculated by the ADM mass and the Komar mass of the surface integral at infinit...
Class intended to describe valence-2 symmetric tensors.
const Vector & get_d_confo_comp() const
Returns the derivative of the conformal factor generated by the companion star.
double y_rot
Absolute Y coordinate of the rotation axis.
Coord r
r coordinate centered on the grid
const Tensor & get_d_shift_comp() const
Returns the derivative of the shift vector generated by the companion star.