64 double massbh =
hole.get_mass_bh() ;
65 double massns =
star.mass_g_bhns() ;
66 double mass_bh = ggrav * massbh ;
67 double mass_ns = ggrav * massns ;
69 double mass_tot = mass_bh + mass_ns ;
71 double comb = mass_bh * mass_ns *
omega *
separ / mass_tot ;
77 const Vector& shift_bh_old =
hole.get_shift_auto_rs() ;
79 const Map& mp_bh =
hole.get_mp() ;
111 if (
hole.is_irrotational()) {
115 x_bh_ex = 0.2 * comb * rad_bh * rad_bh
116 * st_bh * st_bh * cp_bh * sp_bh /
pow(rr_bh, 3.) ;
120 (
hole.set_shift_auto_rs()).set(1) = shift_bh_old(1)
121 + reduce_shift_bh * x_bh_ex ;
125 y_bh_ex = 0.5 * comb * (7. + 0.2*rad_bh*rad_bh/rr_bh/rr_bh) / rr_bh
126 + 0.5 * comb *
pow(st_bh*sp_bh,2.)
127 * (1. - 0.6*rad_bh*rad_bh/rr_bh/rr_bh) / rr_bh ;
131 (
hole.set_shift_auto_rs()).set(2) = shift_bh_old(2)
132 + reduce_shift_bh * y_bh_ex ;
136 z_bh_ex = 0.5 * comb * st_bh * sp_bh * ct_bh
137 * (1.-0.6*rad_bh*rad_bh/rr_bh/rr_bh) / rr_bh ;
141 (
hole.set_shift_auto_rs()).set(3) = shift_bh_old(3)
142 + reduce_shift_bh * z_bh_ex ;
151 x_bh_ex = - 0.6 * mass_ns *
omega * rad_bh * rad_bh
152 * st_bh * sp_bh /
pow(rr_bh, 2.)
153 + 0.5 * comb * st_bh * st_bh * cp_bh * sp_bh
154 * (1. - 0.6*rad_bh*rad_bh/rr_bh/rr_bh) / rr_bh
155 - 0.6*mass_bh*
omega*rad_bh*rad_bh*
pow(st_bh,3.)*
pow(cp_bh,2.)*sp_bh
160 (
hole.set_shift_auto_rs()).set(1) = shift_bh_old(1)
161 + reduce_shift_bh * x_bh_ex ;
165 y_bh_ex = 0.5 * comb * (7. + 0.2*rad_bh*rad_bh/rr_bh/rr_bh) / rr_bh
166 - 0.6 * mass_bh *
omega * rad_bh * rad_bh * st_bh * cp_bh
168 + 0.5 * comb *
pow(st_bh*sp_bh,2.)
169 * (1. - 0.6*rad_bh*rad_bh/rr_bh/rr_bh) / rr_bh
170 - 0.6*mass_bh*
omega*rad_bh*rad_bh*
pow(st_bh,3.)*cp_bh*
pow(sp_bh,2.)
175 (
hole.set_shift_auto_rs()).set(2) = shift_bh_old(2)
176 + reduce_shift_bh * y_bh_ex ;
180 z_bh_ex = 0.5 * comb * st_bh * cp_bh * ct_bh
181 * (1. - 0.6*rad_bh*rad_bh/rr_bh/rr_bh) / rr_bh
182 - 0.6*mass_bh*
omega*rad_bh*rad_bh*st_bh*st_bh*cp_bh*sp_bh*ct_bh
187 (
hole.set_shift_auto_rs()).set(3) = shift_bh_old(3)
188 + reduce_shift_bh * z_bh_ex ;
198 int nzet =
star.get_nzet() ;
199 int nz_ns = (
star.get_mp()).get_mg()->get_nzone() ;
201 const Map& mp_ns =
star.get_mp() ;
236 if (
star.is_irrotational()) {
240 x_ns_in = - 0.2 * comb * xx_ns * yy_ns /
pow(rad_ns, 3.) ;
241 x_ns_in.
annule(nzet, nz_ns-1) ;
244 x_ns_ex = - 0.2 * comb * rad_ns * rad_ns
245 * st_ns * st_ns * cp_ns * sp_ns /
pow(rr_ns, 3.) ;
246 x_ns_ex.
annule(0, nzet-1) ;
249 (
star.set_shift_auto()).set(1) = reduce_shift_ns
250 * (x_ns_in + x_ns_ex) ;
254 y_ns_in = - 0.5 * comb * (11. - 3.8*rr_ns*rr_ns/rad_ns/rad_ns) / rad_ns
255 - 0.2 * comb * yy_ns * yy_ns /
pow(rad_ns, 3.) ;
256 y_ns_in.annule(nzet, nz_ns-1) ;
257 y_ns_in.std_spectral_base() ;
259 y_ns_ex = - 0.5 * comb * (7. + 0.2*rad_ns*rad_ns/rr_ns/rr_ns) / rr_ns
260 - 0.5 * comb *
pow(st_ns*sp_ns,2.)
261 * (1. - 0.6*rad_ns*rad_ns/rr_ns/rr_ns) / rr_ns ;
262 y_ns_ex.
annule(0, nzet-1) ;
265 (
star.set_shift_auto()).set(2) = reduce_shift_ns
266 * (y_ns_in + y_ns_ex) ;
270 z_ns_in = - 0.2 * comb * yy_ns * zz_ns /
pow(rad_ns, 3.) ;
271 z_ns_in.annule(nzet, nz_ns-1) ;
272 z_ns_in.std_spectral_base() ;
274 z_ns_ex = - 0.5 * comb * st_ns * sp_ns * ct_ns
275 * (1.-0.6*rad_ns*rad_ns/rr_ns/rr_ns) / rr_ns ;
276 z_ns_ex.
annule(0, nzet-1) ;
279 (
star.set_shift_auto()).set(3) = reduce_shift_ns
280 * (z_ns_in + z_ns_ex) ;
287 x_ns_in = 1.5 * mass_ns *
omega * yy_ns
288 * (1. - 0.6*rr_ns*rr_ns/rad_ns/rad_ns) / rad_ns
289 - 0.2 * comb * xx_ns * yy_ns /
pow(rad_ns, 3.)
290 + 0.6 * mass_ns *
omega * xx_ns * xx_ns * yy_ns /
pow(rad_ns, 3.) ;
291 x_ns_in.
annule(nzet, nz_ns-1) ;
294 x_ns_ex = 0.6 * mass_ns *
omega * rad_ns * rad_ns
295 * st_ns * sp_ns /
pow(rr_ns, 2.)
296 - 0.5 * comb * st_ns * st_ns * cp_ns * sp_ns
297 * (1. - 0.6*rad_ns*rad_ns/rr_ns/rr_ns) / rr_ns
298 + 0.6*mass_ns*
omega*rad_ns*rad_ns*
pow(st_ns,3.)*
pow(cp_ns,2.)*sp_ns
300 x_ns_ex.
annule(0, nzet-1) ;
303 (
star.set_shift_auto()).set(1) = reduce_shift_ns
304 * (x_ns_in + x_ns_ex) ;
308 y_ns_in = - 0.5 * comb * (11. - 3.8*rr_ns*rr_ns/rad_ns/rad_ns) / rad_ns
309 + 1.5 * mass_ns *
omega * xx_ns
310 * (1. - 0.6*rr_ns*rr_ns/rad_ns/rad_ns) / rad_ns
311 - 0.2 * comb * yy_ns * yy_ns /
pow(rad_ns, 3.)
312 + 0.6 * mass_ns *
omega * xx_ns * yy_ns * yy_ns /
pow(rad_ns, 3.) ;
313 y_ns_in.annule(nzet, nz_ns-1) ;
314 y_ns_in.std_spectral_base() ;
316 y_ns_ex = - 0.5 * comb * (7. + 0.2*rad_ns*rad_ns/rr_ns/rr_ns) / rr_ns
317 + 0.6 * mass_ns *
omega * rad_ns * rad_ns * st_ns * cp_ns
319 - 0.5 * comb *
pow(st_ns*sp_ns,2.)
320 * (1. - 0.6*rad_ns*rad_ns/rr_ns/rr_ns) / rr_ns
321 + 0.6*mass_ns*
omega*rad_ns*rad_ns*
pow(st_ns,3.)*cp_ns*
pow(sp_ns,2.)
323 y_ns_ex.
annule(0, nzet-1) ;
326 (
star.set_shift_auto()).set(2) = reduce_shift_ns
327 * (y_ns_in + y_ns_ex) ;
331 z_ns_in = - 0.2 * comb * yy_ns * zz_ns /
pow(rad_ns, 3.)
332 + 0.6 * mass_ns *
omega * xx_ns * yy_ns * zz_ns /
pow(rad_ns, 3.) ;
333 z_ns_in.annule(nzet, nz_ns-1) ;
334 z_ns_in.std_spectral_base() ;
336 z_ns_ex = - 0.5 * comb * st_ns * cp_ns * ct_ns
337 * (1. - 0.6*rad_ns*rad_ns/rr_ns/rr_ns) / rr_ns
338 + 0.6*mass_ns*
omega*rad_ns*rad_ns*st_ns*st_ns*cp_ns*sp_ns*ct_ns
340 z_ns_ex.
annule(0, nzet-1) ;
343 (
star.set_shift_auto()).set(3) = reduce_shift_ns
344 * (z_ns_in + z_ns_ex) ;
348 (
star.set_shift_auto()).std_spectral_base() ;