67 double massbh =
hole.get_mass_bh() ;
68 double massns =
star.mass_g_bhns() ;
69 double mass_bh = ggrav * massbh ;
70 double mass_ns = ggrav * massns ;
72 double mass_tot = mass_bh + mass_ns ;
74 double comb = mass_bh * mass_ns *
omega *
separ / mass_tot ;
80 const Vector& shift_bh_old =
hole.get_shift_auto_rs() ;
82 const Map& mp_bh =
hole.get_mp() ;
114 if (
hole.is_irrotational()) {
118 x_bh_ex = 0.2 * comb * rad_bh * rad_bh
119 * st_bh * st_bh * cp_bh * sp_bh /
pow(rr_bh, 3.) ;
123 (
hole.set_shift_auto_rs()).set(1) = shift_bh_old(1)
124 + reduce_shift_bh * x_bh_ex ;
128 y_bh_ex = 0.5 * comb * (7. + 0.2*rad_bh*rad_bh/rr_bh/rr_bh) / rr_bh
129 + 0.5 * comb *
pow(st_bh*sp_bh,2.)
130 * (1. - 0.6*rad_bh*rad_bh/rr_bh/rr_bh) / rr_bh ;
134 (
hole.set_shift_auto_rs()).set(2) = shift_bh_old(2)
135 + reduce_shift_bh * y_bh_ex ;
139 z_bh_ex = 0.5 * comb * st_bh * sp_bh * ct_bh
140 * (1.-0.6*rad_bh*rad_bh/rr_bh/rr_bh) / rr_bh ;
144 (
hole.set_shift_auto_rs()).set(3) = shift_bh_old(3)
145 + reduce_shift_bh * z_bh_ex ;
154 x_bh_ex = - 0.6 * mass_ns *
omega * rad_bh * rad_bh
155 * st_bh * sp_bh /
pow(rr_bh, 2.)
156 + 0.5 * comb * st_bh * st_bh * cp_bh * sp_bh
157 * (1. - 0.6*rad_bh*rad_bh/rr_bh/rr_bh) / rr_bh
158 - 0.6*mass_bh*
omega*rad_bh*rad_bh*
pow(st_bh,3.)*
pow(cp_bh,2.)*sp_bh
163 (
hole.set_shift_auto_rs()).set(1) = shift_bh_old(1)
164 + reduce_shift_bh * x_bh_ex ;
168 y_bh_ex = 0.5 * comb * (7. + 0.2*rad_bh*rad_bh/rr_bh/rr_bh) / rr_bh
169 - 0.6 * mass_bh *
omega * rad_bh * rad_bh * st_bh * cp_bh
171 + 0.5 * comb *
pow(st_bh*sp_bh,2.)
172 * (1. - 0.6*rad_bh*rad_bh/rr_bh/rr_bh) / rr_bh
173 - 0.6*mass_bh*
omega*rad_bh*rad_bh*
pow(st_bh,3.)*cp_bh*
pow(sp_bh,2.)
178 (
hole.set_shift_auto_rs()).set(2) = shift_bh_old(2)
179 + reduce_shift_bh * y_bh_ex ;
183 z_bh_ex = 0.5 * comb * st_bh * cp_bh * ct_bh
184 * (1. - 0.6*rad_bh*rad_bh/rr_bh/rr_bh) / rr_bh
185 - 0.6*mass_bh*
omega*rad_bh*rad_bh*st_bh*st_bh*cp_bh*sp_bh*ct_bh
190 (
hole.set_shift_auto_rs()).set(3) = shift_bh_old(3)
191 + reduce_shift_bh * z_bh_ex ;
201 int nzet =
star.get_nzet() ;
202 int nz_ns = (
star.get_mp()).get_mg()->get_nzone() ;
204 const Map& mp_ns =
star.get_mp() ;
239 if (
star.is_irrotational()) {
243 x_ns_in = - 0.2 * comb * xx_ns * yy_ns /
pow(rad_ns, 3.) ;
244 x_ns_in.
annule(nzet, nz_ns-1) ;
247 x_ns_ex = - 0.2 * comb * rad_ns * rad_ns
248 * st_ns * st_ns * cp_ns * sp_ns /
pow(rr_ns, 3.) ;
249 x_ns_ex.
annule(0, nzet-1) ;
252 (
star.set_shift_auto()).set(1) = reduce_shift_ns
253 * (x_ns_in + x_ns_ex) ;
257 y_ns_in = - 0.5 * comb * (11. - 3.8*rr_ns*rr_ns/rad_ns/rad_ns) / rad_ns
258 - 0.2 * comb * yy_ns * yy_ns /
pow(rad_ns, 3.) ;
259 y_ns_in.annule(nzet, nz_ns-1) ;
260 y_ns_in.std_spectral_base() ;
262 y_ns_ex = - 0.5 * comb * (7. + 0.2*rad_ns*rad_ns/rr_ns/rr_ns) / rr_ns
263 - 0.5 * comb *
pow(st_ns*sp_ns,2.)
264 * (1. - 0.6*rad_ns*rad_ns/rr_ns/rr_ns) / rr_ns ;
265 y_ns_ex.
annule(0, nzet-1) ;
268 (
star.set_shift_auto()).set(2) = reduce_shift_ns
269 * (y_ns_in + y_ns_ex) ;
273 z_ns_in = - 0.2 * comb * yy_ns * zz_ns /
pow(rad_ns, 3.) ;
274 z_ns_in.annule(nzet, nz_ns-1) ;
275 z_ns_in.std_spectral_base() ;
277 z_ns_ex = - 0.5 * comb * st_ns * sp_ns * ct_ns
278 * (1.-0.6*rad_ns*rad_ns/rr_ns/rr_ns) / rr_ns ;
279 z_ns_ex.
annule(0, nzet-1) ;
282 (
star.set_shift_auto()).set(3) = reduce_shift_ns
283 * (z_ns_in + z_ns_ex) ;
290 x_ns_in = 1.5 * mass_ns *
omega * yy_ns
291 * (1. - 0.6*rr_ns*rr_ns/rad_ns/rad_ns) / rad_ns
292 - 0.2 * comb * xx_ns * yy_ns /
pow(rad_ns, 3.)
293 + 0.6 * mass_ns *
omega * xx_ns * xx_ns * yy_ns /
pow(rad_ns, 3.) ;
294 x_ns_in.
annule(nzet, nz_ns-1) ;
297 x_ns_ex = 0.6 * mass_ns *
omega * rad_ns * rad_ns
298 * st_ns * sp_ns /
pow(rr_ns, 2.)
299 - 0.5 * comb * st_ns * st_ns * cp_ns * sp_ns
300 * (1. - 0.6*rad_ns*rad_ns/rr_ns/rr_ns) / rr_ns
301 + 0.6*mass_ns*
omega*rad_ns*rad_ns*
pow(st_ns,3.)*
pow(cp_ns,2.)*sp_ns
303 x_ns_ex.
annule(0, nzet-1) ;
306 (
star.set_shift_auto()).set(1) = reduce_shift_ns
307 * (x_ns_in + x_ns_ex) ;
311 y_ns_in = - 0.5 * comb * (11. - 3.8*rr_ns*rr_ns/rad_ns/rad_ns) / rad_ns
312 + 1.5 * mass_ns *
omega * xx_ns
313 * (1. - 0.6*rr_ns*rr_ns/rad_ns/rad_ns) / rad_ns
314 - 0.2 * comb * yy_ns * yy_ns /
pow(rad_ns, 3.)
315 + 0.6 * mass_ns *
omega * xx_ns * yy_ns * yy_ns /
pow(rad_ns, 3.) ;
316 y_ns_in.annule(nzet, nz_ns-1) ;
317 y_ns_in.std_spectral_base() ;
319 y_ns_ex = - 0.5 * comb * (7. + 0.2*rad_ns*rad_ns/rr_ns/rr_ns) / rr_ns
320 + 0.6 * mass_ns *
omega * rad_ns * rad_ns * st_ns * cp_ns
322 - 0.5 * comb *
pow(st_ns*sp_ns,2.)
323 * (1. - 0.6*rad_ns*rad_ns/rr_ns/rr_ns) / rr_ns
324 + 0.6*mass_ns*
omega*rad_ns*rad_ns*
pow(st_ns,3.)*cp_ns*
pow(sp_ns,2.)
326 y_ns_ex.
annule(0, nzet-1) ;
329 (
star.set_shift_auto()).set(2) = reduce_shift_ns
330 * (y_ns_in + y_ns_ex) ;
334 z_ns_in = - 0.2 * comb * yy_ns * zz_ns /
pow(rad_ns, 3.)
335 + 0.6 * mass_ns *
omega * xx_ns * yy_ns * zz_ns /
pow(rad_ns, 3.) ;
336 z_ns_in.annule(nzet, nz_ns-1) ;
337 z_ns_in.std_spectral_base() ;
339 z_ns_ex = - 0.5 * comb * st_ns * cp_ns * ct_ns
340 * (1. - 0.6*rad_ns*rad_ns/rr_ns/rr_ns) / rr_ns
341 + 0.6*mass_ns*
omega*rad_ns*rad_ns*st_ns*st_ns*cp_ns*sp_ns*ct_ns
343 z_ns_ex.
annule(0, nzet-1) ;
346 (
star.set_shift_auto()).set(3) = reduce_shift_ns
347 * (z_ns_in + z_ns_ex) ;
351 (
star.set_shift_auto()).std_spectral_base() ;