00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 char hole_bhns_extr_curv_C[] = "$Header: /cvsroot/Lorene/C++/Source/Hole_bhns/hole_bhns_extr_curv.C,v 1.2 2008/05/15 19:05:49 k_taniguchi Exp $" ;
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048 #include <math.h>
00049
00050
00051 #include "hole_bhns.h"
00052 #include "utilitaires.h"
00053 #include "unites.h"
00054
00055
00056 void Hole_bhns::extr_curv_bhns(double omega_orb, double x_rot, double y_rot) {
00057
00058
00059
00060
00061
00062
00063
00064 using namespace Unites ;
00065
00066
00067
00068
00069 double mass = ggrav * mass_bh ;
00070
00071 Scalar rr(mp) ;
00072 rr = mp.r ;
00073 rr.std_spectral_base() ;
00074 Scalar st(mp) ;
00075 st = mp.sint ;
00076 st.std_spectral_base() ;
00077 Scalar ct(mp) ;
00078 ct = mp.cost ;
00079 ct.std_spectral_base() ;
00080 Scalar sp(mp) ;
00081 sp = mp.sinp ;
00082 sp.std_spectral_base() ;
00083 Scalar cp(mp) ;
00084 cp = mp.cosp ;
00085 cp.std_spectral_base() ;
00086
00087 Vector ll(mp, CON, mp.get_bvect_cart()) ;
00088 ll.set_etat_qcq() ;
00089 ll.set(1) = st % cp ;
00090 ll.set(2) = st % sp ;
00091 ll.set(3) = ct ;
00092 ll.std_spectral_base() ;
00093
00094 Scalar divshift(mp) ;
00095 divshift = shift_auto_rs(1).deriv(1) + shift_auto_rs(2).deriv(2)
00096 + shift_auto_rs(3).deriv(3) + d_shift_comp(1,1)
00097 + d_shift_comp(2,2) + d_shift_comp(3,3) ;
00098 divshift.std_spectral_base() ;
00099
00100 if (kerrschild) {
00101
00102 Scalar orb_rot_x(mp) ;
00103 orb_rot_x = omega_orb * (mp.get_ori_x() - x_rot) ;
00104 orb_rot_x.std_spectral_base() ;
00105
00106 Scalar orb_rot_y(mp) ;
00107 orb_rot_y = omega_orb * (mp.get_ori_y() - y_rot) ;
00108 orb_rot_y.std_spectral_base() ;
00109
00110 Vector uv(mp, CON, mp.get_bvect_cart()) ;
00111 uv.set_etat_qcq() ;
00112 uv.set(1) = - orb_rot_y ;
00113 uv.set(2) = orb_rot_x ;
00114 uv.set(3) = 0. ;
00115 uv.std_spectral_base() ;
00116
00117
00118
00119
00120 Sym_tensor flat_taij(mp, CON, mp.get_bvect_cart()) ;
00121 flat_taij.set_etat_qcq() ;
00122
00123 for (int i=1; i<=3; i++) {
00124 for (int j=1; j<=3; j++) {
00125 flat_taij.set(i,j) = shift_auto_rs(j).deriv(i)
00126 + shift_auto_rs(i).deriv(j) + d_shift_comp(i,j)
00127 + d_shift_comp(j,i)
00128 - 2. * divshift * flat.con()(i,j) / 3. ;
00129 }
00130 }
00131
00132 flat_taij.std_spectral_base() ;
00133
00134 Sym_tensor curv_taij(mp, CON, mp.get_bvect_cart()) ;
00135 curv_taij.set_etat_qcq() ;
00136
00137 for (int i=1; i<=3; i++) {
00138 for (int j=1; j<=3; j++) {
00139 curv_taij.set(i,j) =
00140 -2. * lapconf_auto_bh * lapconf_auto_bh * mass
00141 * (ll(i) * (shift_auto_rs(j).dsdr()
00142 + ll(1)*d_shift_comp(1,j)
00143 + ll(2)*d_shift_comp(2,j)
00144 + ll(3)*d_shift_comp(3,j))
00145 + ll(j) * (shift_auto_rs(i).dsdr()
00146 + ll(1)*d_shift_comp(1,i)
00147 + ll(2)*d_shift_comp(2,i)
00148 + ll(3)*d_shift_comp(3,i))
00149 - 2. * ll(i) * ll(j) * divshift / 3.) / rr ;
00150 }
00151 }
00152
00153 curv_taij.std_spectral_base() ;
00154
00155 Sym_tensor resi_taij(mp, CON, mp.get_bvect_cart()) ;
00156 resi_taij.set_etat_qcq() ;
00157
00158 for (int i=1; i<=3; i++) {
00159 for (int j=1; j<=3; j++) {
00160 resi_taij.set(i,j) =
00161 2. * lapconf_auto_bh * lapconf_auto_bh * mass
00162 * ( ll(i) * (shift_auto_rs(j) + shift_comp(j))
00163 + ll(j) * (shift_auto_rs(i) + shift_comp(i))
00164 + ( flat.con()(i,j)
00165 - lapconf_auto_bh*lapconf_auto_bh
00166 *(9.+14.*mass/rr)*ll(i)*ll(j) )
00167 * ( ll(1) * (shift_auto_rs(1) + shift_comp(1))
00168 + ll(2) * (shift_auto_rs(2) + shift_comp(2))
00169 + ll(3) * (shift_auto_rs(3) + shift_comp(3)) ) / 3. )
00170 / rr / rr ;
00171 }
00172 }
00173
00174 resi_taij.std_spectral_base() ;
00175 resi_taij.inc_dzpuis(2) ;
00176
00177 taij_tot_rs = 0.5 * pow(confo_tot, 7.)
00178 * (flat_taij + curv_taij + resi_taij) / lapconf_tot ;
00179
00180 taij_tot_rs.std_spectral_base() ;
00181 taij_tot_rs.annule_domain(0) ;
00182
00183 taij_tot_rot.set_etat_qcq() ;
00184
00185 for (int i=1; i<=3; i++) {
00186 for (int j=1; j<=3; j++) {
00187 taij_tot_rot.set(i,j) = pow(confo_tot,7.)
00188 * lapconf_auto_bh * lapconf_auto_bh * mass
00189 * ( ll(i) * uv(j) + ll(j) * uv(i)
00190 + ( flat.con()(i,j)
00191 - lapconf_auto_bh*lapconf_auto_bh
00192 *(9.+14.*mass/rr)*ll(i)*ll(j) )
00193 * (ll(2)*orb_rot_x - ll(1)*orb_rot_y) / 3. )
00194 / lapconf_tot / rr / rr ;
00195 }
00196 }
00197
00198 taij_tot_rot.std_spectral_base() ;
00199 taij_tot_rot.annule_domain(0) ;
00200 taij_tot_rot.inc_dzpuis(2) ;
00201
00202 taij_tot_bh.set_etat_qcq() ;
00203
00204 for (int i=1; i<=3; i++) {
00205 for (int j=1; j<=3; j++) {
00206 taij_tot_bh.set(i,j) = 2. * pow(confo_tot,7.)
00207 * pow(lapconf_auto_bh,6.) * mass * (2.+3.*mass/rr)
00208 * ( (1.+2.*mass/rr)*flat.con()(i,j)
00209 - (3.+2.*mass/rr) * ll(i) * ll(j) )
00210 / 3. / lapconf_tot / rr / rr ;
00211 }
00212 }
00213
00214 taij_tot_bh.std_spectral_base() ;
00215 taij_tot_bh.annule_domain(0) ;
00216 taij_tot_bh.inc_dzpuis(2) ;
00217
00218 taij_tot = taij_tot_rs + taij_tot_rot + taij_tot_bh ;
00219
00220 taij_tot.std_spectral_base() ;
00221 taij_tot.annule_domain(0) ;
00222
00223
00224
00225
00226 Sym_tensor flat_dshift(mp, COV, mp.get_bvect_cart()) ;
00227 flat_dshift.set_etat_qcq() ;
00228
00229 for (int i=1; i<=3; i++) {
00230 for (int j=1; j<=3; j++) {
00231 flat_dshift.set(i,j) =
00232 flat.cov()(j,1)*(shift_auto_rs(1).deriv(i)
00233 + d_shift_comp(i,1))
00234 + flat.cov()(j,2)*(shift_auto_rs(2).deriv(i)
00235 + d_shift_comp(i,2))
00236 + flat.cov()(j,3)*(shift_auto_rs(3).deriv(i)
00237 + d_shift_comp(i,3))
00238 + flat.cov()(i,1)*(shift_auto_rs(1).deriv(j)
00239 + d_shift_comp(j,1))
00240 + flat.cov()(i,2)*(shift_auto_rs(2).deriv(j)
00241 + d_shift_comp(j,2))
00242 + flat.cov()(i,3)*(shift_auto_rs(3).deriv(j)
00243 + d_shift_comp(j,3))
00244 - 2. * divshift * flat.cov()(i,j) / 3. ;
00245 }
00246 }
00247
00248 flat_dshift.std_spectral_base() ;
00249
00250 Sym_tensor curv_dshift(mp, COV, mp.get_bvect_cart()) ;
00251 curv_dshift.set_etat_qcq() ;
00252
00253 for (int i=1; i<=3; i++) {
00254 for (int j=1; j<=3; j++) {
00255 curv_dshift.set(i,j) = 2. * mass
00256 *( ll(j) * ( ll(1)*(shift_auto_rs(1).deriv(i)
00257 + d_shift_comp(i,1))
00258 + ll(2)*(shift_auto_rs(2).deriv(i)
00259 + d_shift_comp(i,2))
00260 + ll(3)*(shift_auto_rs(3).deriv(i)
00261 + d_shift_comp(i,3)))
00262 + ll(i) * ( ll(1)*(shift_auto_rs(1).deriv(j)
00263 + d_shift_comp(j,1))
00264 + ll(2)*(shift_auto_rs(2).deriv(j)
00265 + d_shift_comp(j,2))
00266 + ll(3)*(shift_auto_rs(3).deriv(j)
00267 + d_shift_comp(j,3)))
00268 - 2. * divshift * ll(i) * ll(j) / 3. ) / rr ;
00269 }
00270 }
00271
00272 curv_dshift.std_spectral_base() ;
00273
00274 Sym_tensor tmp1(mp, COV, mp.get_bvect_cart()) ;
00275 tmp1.set_etat_qcq() ;
00276
00277 for (int i=1; i<=3; i++) {
00278 for (int j=1; j<=3; j++) {
00279 tmp1.set(i,j) = 2. * mass
00280 *(ll(j)*( (flat.cov()(i,1)+2.*mass*ll(i)*ll(1)/rr)
00281 * (shift_auto_rs(1) + shift_comp(1))
00282 + (flat.cov()(i,2)+2.*mass*ll(i)*ll(2)/rr)
00283 * (shift_auto_rs(2) + shift_comp(2))
00284 + (flat.cov()(i,3)+2.*mass*ll(i)*ll(3)/rr)
00285 * (shift_auto_rs(3) + shift_comp(3))
00286 )
00287 + ll(i)*( (flat.cov()(j,1)+2.*mass*ll(j)*ll(1)/rr)
00288 * (shift_auto_rs(1) + shift_comp(1))
00289 + (flat.cov()(j,2)+2.*mass*ll(j)*ll(2)/rr)
00290 * (shift_auto_rs(2) + shift_comp(2))
00291 + (flat.cov()(j,3)+2.*mass*ll(j)*ll(3)/rr)
00292 * (shift_auto_rs(3) + shift_comp(3)) )
00293 ) / rr / rr ;
00294 }
00295 }
00296 tmp1.std_spectral_base() ;
00297 tmp1.inc_dzpuis(2) ;
00298
00299 Sym_tensor tmp2(mp, COV, mp.get_bvect_cart()) ;
00300 tmp2.set_etat_qcq() ;
00301
00302 for (int i=1; i<=3; i++) {
00303 for (int j=1; j<=3; j++) {
00304 tmp2.set(i,j) = 2. * mass * lapconf_auto_bh * lapconf_auto_bh
00305 * ( ll(1) * (shift_auto_rs(1) + shift_comp(1))
00306 + ll(2) * (shift_auto_rs(2) + shift_comp(2))
00307 + ll(3) * (shift_auto_rs(3) + shift_comp(3)) )
00308 * (flat.cov()(i,j)
00309 - (9.+28.*mass/rr+24.*mass*mass/rr/rr)*ll(i)*ll(j))
00310 / 3. / rr / rr ;
00311 }
00312 }
00313 tmp2.std_spectral_base() ;
00314 tmp2.inc_dzpuis(2) ;
00315
00316 Sym_tensor taij_down_rs(mp, COV, mp.get_bvect_cart()) ;
00317 taij_down_rs.set_etat_qcq() ;
00318
00319 taij_down_rs = 0.5 * pow(confo_tot,7.)
00320 * (flat_dshift + curv_dshift + tmp1 + tmp2) / lapconf_tot ;
00321
00322 taij_down_rs.std_spectral_base() ;
00323 taij_down_rs.annule_domain(0) ;
00324
00325 Sym_tensor taij_down_rot(mp, COV, mp.get_bvect_cart()) ;
00326 taij_down_rot.set_etat_qcq() ;
00327
00328 for (int i=1; i<=3; i++) {
00329 for (int j=1; j<=3; j++) {
00330 taij_down_rot.set(i,j) = mass * pow(confo_tot,7.)
00331 * ( ll(j)*uv(i) + ll(i)*uv(j)
00332 + lapconf_auto_bh * lapconf_auto_bh
00333 * (ll(2)*orb_rot_x - ll(1)*orb_rot_y)
00334 * ( flat.cov()(i,j) - (9.+16.*mass/rr)*ll(i)*ll(j) ) / 3.
00335 ) / lapconf_tot / rr / rr ;
00336 }
00337 }
00338 taij_down_rot.std_spectral_base() ;
00339 taij_down_rot.annule_domain(0) ;
00340 taij_down_rot.inc_dzpuis(2) ;
00341
00342 Sym_tensor taij_down_bh(mp, COV, mp.get_bvect_cart()) ;
00343 taij_down_bh.set_etat_qcq() ;
00344
00345 for (int i=1; i<=3; i++) {
00346 for (int j=1; j<=3; j++) {
00347 taij_down_bh.set(i,j) = 2. * mass * pow(confo_tot,7.)
00348 * pow(lapconf_auto_bh,4.) * (2.+3.*mass/rr)
00349 * (flat.cov()(i,j) - (3.+4.*mass/rr) * ll(i) * ll(j))
00350 / 3. / lapconf_auto / rr / rr ;
00351 }
00352 }
00353 taij_down_bh.std_spectral_base() ;
00354 taij_down_bh.annule_domain(0) ;
00355 taij_down_bh.inc_dzpuis(2) ;
00356
00357 Scalar taij_quad_rstot(mp) ;
00358 taij_quad_rstot = 0. ;
00359
00360 for (int i=1; i<=3; i++) {
00361 for (int j=1; j<=3; j++) {
00362 taij_quad_rstot += taij_down_rs(i,j) * taij_tot(i,j) ;
00363 }
00364 }
00365 taij_quad_rstot.std_spectral_base() ;
00366
00367 Scalar taij_quad_rsrotbh(mp) ;
00368 taij_quad_rsrotbh = 0. ;
00369
00370 for (int i=1; i<=3; i++) {
00371 for (int j=1; j<=3; j++) {
00372 taij_quad_rsrotbh += taij_tot_rs(i,j)
00373 * (taij_down_rot(i,j) + taij_down_bh(i,j)) ;
00374 }
00375 }
00376 taij_quad_rsrotbh.std_spectral_base() ;
00377
00378 taij_quad_tot_rs = taij_quad_rstot + taij_quad_rsrotbh ;
00379 taij_quad_tot_rs.std_spectral_base() ;
00380
00381 taij_quad_tot_rot = 8.*mass*mass*pow(confo_tot,14.)
00382 * pow(lapconf_auto_bh,6.) * (2.+3.*mass/rr)
00383 * (ll(2)*orb_rot_x - ll(1)*orb_rot_y)
00384 / 3. / lapconf_tot / lapconf_tot / pow(rr,4.)
00385 + 2.*mass*mass*pow(confo_tot,14.)*pow(lapconf_auto_bh,4.)
00386 * (3.*(1.+2.*mass/rr)*(orb_rot_x*orb_rot_x+orb_rot_y*orb_rot_y)
00387 -2.*(1.+3.*mass/rr)*(ll(2)*orb_rot_x-ll(1)*orb_rot_y)
00388 *(ll(2)*orb_rot_x-ll(1)*orb_rot_y))
00389 / 3. / lapconf_tot / lapconf_tot / pow(rr,4.) ;
00390
00391 taij_quad_tot_rot.std_spectral_base() ;
00392 taij_quad_tot_rot.inc_dzpuis(4) ;
00393
00394 taij_quad_tot_bh = 8.*mass*mass*pow(confo_tot,14.)
00395 * pow(lapconf_auto_bh,8.) * (2.+3.*mass/rr) * (2.+3.*mass/rr)
00396 / 3. / lapconf_tot / lapconf_tot / pow(rr,4.) ;
00397
00398 taij_quad_tot_bh.std_spectral_base() ;
00399 taij_quad_tot_bh.inc_dzpuis(4) ;
00400
00401 taij_quad_tot = taij_quad_tot_rs + taij_quad_tot_rot
00402 + taij_quad_tot_bh ;
00403 taij_quad_tot.std_spectral_base() ;
00404
00405 }
00406 else {
00407
00408
00409
00410 double cc ;
00411
00412 if (bc_lapconf_nd) {
00413 if (bc_lapconf_fs) {
00414
00415
00416 cc = 2. * (sqrt(13.) - 1.) / 3. ;
00417 }
00418 else {
00419
00420
00421 cc = 4. / 3. ;
00422 }
00423 }
00424 else {
00425 if (bc_lapconf_fs) {
00426
00427
00428 cout << "!!!!! WARNING: Not yet prepared !!!!!" << endl ;
00429 abort() ;
00430 }
00431 else {
00432
00433
00434 cout << "!!!!! WARNING: Not yet prepared !!!!!" << endl ;
00435 abort() ;
00436
00437 }
00438 }
00439
00440 Scalar r_are(mp) ;
00441 r_are = r_coord(bc_lapconf_nd, bc_lapconf_fs) ;
00442 r_are.std_spectral_base() ;
00443
00444
00445
00446
00447 Sym_tensor flat_taij(mp, CON, mp.get_bvect_cart()) ;
00448 flat_taij.set_etat_qcq() ;
00449
00450 for (int i=1; i<=3; i++) {
00451 for (int j=1; j<=3; j++) {
00452 flat_taij.set(i,j) = shift_auto_rs(j).deriv(i)
00453 + shift_auto_rs(i).deriv(j) + d_shift_comp(i,j)
00454 + d_shift_comp(j,i)
00455 - 2. * divshift % flat.con()(i,j) / 3. ;
00456 }
00457 }
00458
00459 flat_taij.std_spectral_base() ;
00460
00461 taij_tot_rs = 0.5 * pow(confo_tot, 7.) * flat_taij / lapconf_tot ;
00462
00463 taij_tot_rs.std_spectral_base() ;
00464 taij_tot_rs.annule_domain(0) ;
00465
00466 if (taij_tot_rs(1,2).get_etat() == ETATQCQ) {
00467 for (int i=1; i<=3; i++) {
00468 for (int j=1; j<=3; j++) {
00469 taij_tot_rs.set(i,j).raccord(1) ;
00470 }
00471 }
00472 }
00473
00474 taij_tot_bh.set_etat_qcq() ;
00475
00476 for (int i=1; i<=3; i++) {
00477 for (int j=1; j<=3; j++) {
00478 taij_tot_bh.set(i,j) = pow(confo_tot,7.)*mass*mass*cc
00479 * sqrt(1. - 2.*mass/r_are/rr + cc*cc*pow(mass/r_are/rr,4.))
00480 * (flat.con()(i,j) - 3.*ll(i)*ll(j)) / lapconf_tot
00481 / pow(r_are*rr,3.) ;
00482 }
00483 }
00484
00485 taij_tot_bh.std_spectral_base() ;
00486 taij_tot_bh.annule_domain(0) ;
00487
00488 for (int i=1; i<=3; i++) {
00489 for (int j=1; j<=3; j++) {
00490 taij_tot_bh.set(i,j).raccord(1) ;
00491 }
00492 }
00493
00494 taij_tot_bh.inc_dzpuis(2) ;
00495
00496 taij_tot = taij_tot_rs + taij_tot_bh ;
00497
00498 taij_tot.std_spectral_base() ;
00499 taij_tot.annule_domain(0) ;
00500
00501 for (int i=1; i<=3; i++) {
00502 for (int j=1; j<=3; j++) {
00503 taij_tot.set(i,j).raccord(1) ;
00504 }
00505 }
00506
00507 for (int i=1; i<=3; i++) {
00508 for (int j=1; j<=3; j++) {
00509 taij_tot_rot.set(i,j) = 0. ;
00510 }
00511 }
00512 taij_tot_rot.std_spectral_base() ;
00513
00514
00515
00516
00517 Scalar divshift_auto(mp) ;
00518 divshift_auto = shift_auto_rs(1).deriv(1)
00519 + shift_auto_rs(2).deriv(2) + shift_auto_rs(3).deriv(3) ;
00520 divshift_auto.std_spectral_base() ;
00521
00522 Sym_tensor flat_taij_auto_rs(mp, CON, mp.get_bvect_cart()) ;
00523 flat_taij_auto_rs.set_etat_qcq() ;
00524
00525 for (int i=1; i<=3; i++) {
00526 for (int j=1; j<=3; j++) {
00527 flat_taij_auto_rs.set(i,j) = shift_auto_rs(j).deriv(i)
00528 + shift_auto_rs(i).deriv(j)
00529 - 2. * divshift_auto % flat.con()(i,j) / 3. ;
00530 }
00531 }
00532
00533 flat_taij_auto_rs.std_spectral_base() ;
00534
00535 taij_auto_rs = 0.5 * pow(confo_tot, 7.) * flat_taij_auto_rs
00536 / lapconf_tot ;
00537
00538 taij_auto_rs.std_spectral_base() ;
00539 taij_auto_rs.annule_domain(0) ;
00540
00541 if (taij_auto_rs(1,2).get_etat() == ETATQCQ) {
00542 for (int i=1; i<=3; i++) {
00543 for (int j=1; j<=3; j++) {
00544 taij_auto_rs.set(i,j).raccord(1) ;
00545 }
00546 }
00547 }
00548
00549 taij_auto = taij_auto_rs + taij_tot_bh ;
00550
00551 taij_auto.std_spectral_base() ;
00552 taij_auto.annule_domain(0) ;
00553
00554 for (int i=1; i<=3; i++) {
00555 for (int j=1; j<=3; j++) {
00556 taij_auto.set(i,j).raccord(1) ;
00557 }
00558 }
00559
00560
00561
00562
00563 Scalar divshift_comp(mp) ;
00564 divshift_comp = d_shift_comp(1,1) + d_shift_comp(2,2)
00565 + d_shift_comp(3,3) ;
00566 divshift_comp.std_spectral_base() ;
00567
00568 Sym_tensor flat_taij_comp(mp, CON, mp.get_bvect_cart()) ;
00569 flat_taij_comp.set_etat_qcq() ;
00570
00571 for (int i=1; i<=3; i++) {
00572 for (int j=1; j<=3; j++) {
00573 flat_taij_comp.set(i,j) = d_shift_comp(i,j)
00574 + d_shift_comp(j,i)
00575 - 2. * divshift_comp % flat.con()(i,j) / 3. ;
00576 }
00577 }
00578
00579 flat_taij_comp.std_spectral_base() ;
00580
00581 taij_comp = 0.5 * pow(confo_comp+0.5, 7.) * flat_taij_comp
00582 / (lapconf_comp+0.5) ;
00583
00584 taij_comp.std_spectral_base() ;
00585 taij_comp.annule_domain(0) ;
00586
00587 if (taij_comp(1,2).get_etat() == ETATQCQ) {
00588 for (int i=1; i<=3; i++) {
00589 for (int j=1; j<=3; j++) {
00590 taij_comp.set(i,j).raccord(1) ;
00591 }
00592 }
00593 }
00594
00595
00596
00597
00598 Sym_tensor flat_dshift(mp, COV, mp.get_bvect_cart()) ;
00599 flat_dshift.set_etat_qcq() ;
00600
00601 for (int i=1; i<=3; i++) {
00602 for (int j=1; j<=3; j++) {
00603 flat_dshift.set(i,j) =
00604 flat.cov()(j,1)*(shift_auto_rs(1).deriv(i)
00605 + d_shift_comp(i,1))
00606 + flat.cov()(j,2)*(shift_auto_rs(2).deriv(i)
00607 + d_shift_comp(i,2))
00608 + flat.cov()(j,3)*(shift_auto_rs(3).deriv(i)
00609 + d_shift_comp(i,3))
00610 + flat.cov()(i,1)*(shift_auto_rs(1).deriv(j)
00611 + d_shift_comp(j,1))
00612 + flat.cov()(i,2)*(shift_auto_rs(2).deriv(j)
00613 + d_shift_comp(j,2))
00614 + flat.cov()(i,3)*(shift_auto_rs(3).deriv(j)
00615 + d_shift_comp(j,3))
00616 - 2. * divshift * flat.cov()(i,j) / 3. ;
00617 }
00618 }
00619
00620 Sym_tensor taij_down_rs(mp, COV, mp.get_bvect_cart()) ;
00621 taij_down_rs.set_etat_qcq() ;
00622
00623 taij_down_rs = 0.5 * pow(confo_tot, 7.) * flat_dshift / lapconf_tot ;
00624
00625 taij_down_rs.std_spectral_base() ;
00626 taij_down_rs.annule_domain(0) ;
00627
00628 Sym_tensor taij_down_bh(mp, COV, mp.get_bvect_cart()) ;
00629 taij_down_bh.set_etat_qcq() ;
00630
00631 for (int i=1; i<=3; i++) {
00632 for (int j=1; j<=3; j++) {
00633 taij_down_bh.set(i,j) = pow(confo_tot,7.)*mass*mass*cc
00634 * sqrt(1. - 2.*mass/r_are/rr + cc*cc*pow(mass/r_are/rr,4.))
00635 * (flat.cov()(i,j) - 3.*ll(i)%ll(j)) / lapconf_tot
00636 / pow(r_are*rr,3.) ;
00637 }
00638 }
00639 taij_down_bh.std_spectral_base() ;
00640 taij_down_bh.annule_domain(0) ;
00641
00642 for (int i=1; i<=3; i++) {
00643 for (int j=1; j<=3; j++) {
00644 taij_down_bh.set(i,j).raccord(1) ;
00645 }
00646 }
00647
00648 taij_down_bh.inc_dzpuis(2) ;
00649
00650 Scalar taij_quad_rstot(mp) ;
00651 taij_quad_rstot = 0. ;
00652
00653 for (int i=1; i<=3; i++) {
00654 for (int j=1; j<=3; j++) {
00655 taij_quad_rstot += taij_down_rs(i,j) % taij_tot(i,j) ;
00656 }
00657 }
00658 taij_quad_rstot.std_spectral_base() ;
00659
00660 Scalar taij_quad_rsbh(mp) ;
00661 taij_quad_rsbh = 0. ;
00662
00663 for (int i=1; i<=3; i++) {
00664 for (int j=1; j<=3; j++) {
00665 taij_quad_rsbh += taij_tot_rs(i,j) % taij_down_bh(i,j) ;
00666 }
00667 }
00668 taij_quad_rsbh.std_spectral_base() ;
00669
00670 taij_quad_tot_rs = taij_quad_rstot + taij_quad_rsbh ;
00671 taij_quad_tot_rs.std_spectral_base() ;
00672
00673 taij_quad_tot_rot = 0. ;
00674 taij_quad_tot_rot.std_spectral_base() ;
00675
00676 taij_quad_tot_bh = 6.*pow(confo_tot,14.)*pow(mass*mass*cc,2.)
00677 * (1. - 2.*mass/r_are/rr + cc*cc*pow(mass/r_are/rr,4.))
00678 / lapconf_tot / lapconf_tot / pow(r_are*rr, 6.) ;
00679 taij_quad_tot_bh.std_spectral_base() ;
00680 taij_quad_tot_bh.annule_domain(0) ;
00681 taij_quad_tot_bh.raccord(1) ;
00682
00683 taij_quad_tot_bh.inc_dzpuis(4) ;
00684
00685 taij_quad_tot = taij_quad_tot_rs + taij_quad_tot_bh ;
00686 taij_quad_tot.std_spectral_base() ;
00687 taij_quad_tot.annule_domain(0) ;
00688 taij_quad_tot.raccord(1) ;
00689
00690
00691 Scalar taij_quad_auto1(mp) ;
00692 taij_quad_auto1 = 0. ;
00693 for (int i=1; i<=3; i++) {
00694 for (int j=1; j<=3; j++) {
00695 taij_quad_auto1 += taij_auto_rs(i,j)
00696 * (taij_down_rs(i,j)
00697 + pow(confo_tot/(confo_comp+0.5),7.)*(lapconf_comp+0.5)
00698 * taij_comp(i,j) / lapconf_tot) ;
00699 }
00700 }
00701 taij_quad_auto1.std_spectral_base() ;
00702
00703 Scalar taij_quad_auto2(mp) ;
00704 taij_quad_auto2 = 0. ;
00705 for (int i=1; i<=3; i++) {
00706 for (int j=1; j<=3; j++) {
00707 taij_quad_auto2 += taij_tot_bh(i,j) % taij_down_rs(i,j) ;
00708 }
00709 }
00710 taij_quad_auto2.std_spectral_base() ;
00711
00712 taij_quad_auto = taij_quad_auto1 + 2.*taij_quad_auto2 ;
00713 taij_quad_auto.std_spectral_base() ;
00714 taij_quad_auto.annule_domain(0) ;
00715 if (taij_quad_auto.get_etat() == ETATQCQ) {
00716 taij_quad_auto.raccord(1) ;
00717 }
00718
00719
00720
00721
00722 taij_quad_comp = 0. ;
00723 for (int i=1; i<=3; i++) {
00724 for (int j=1; j<=3; j++) {
00725 taij_quad_comp += taij_comp(i,j) % taij_comp(i,j) ;
00726 }
00727 }
00728 taij_quad_comp.std_spectral_base() ;
00729
00730 }
00731
00732
00733
00734
00735 del_deriv() ;
00736
00737 }