58 #include "utilitaires.h" 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 ;
118 x_bh_ex = 0.2 * comb * rad_bh * rad_bh
119 * st_bh * st_bh * cp_bh * sp_bh /
pow(rr_bh, 3.) ;
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 ;
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 ;
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
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.)
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
191 + reduce_shift_bh * z_bh_ex ;
202 int nz_ns = (
star.
get_mp()).get_mg()->get_nzone() ;
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) ;
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) ;
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) ;
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) ;
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) ;
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) ;
347 * (z_ns_in + z_ns_ex) ;
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}].
Hole_bhns hole
Black hole.
virtual void annule(int l_min, int l_max)
Sets the Scalar to zero in several domains.
Standard units of space, time and mass.
Tensor field of valence 0 (or component of a tensorial field).
Base class for coordinate mappings.
Vector & set_shift_auto_rs()
Read/write of the shift vector generated by the black hole.
virtual void std_spectral_base()
Sets the spectral bases of the Valeur va to the standard ones for a scalar field. ...
const Map & get_mp() const
Returns the mapping.
void shift_analytic(double reduce_shift_bh, double reduce_shift_ns)
Sets some analytical template for the initial shift vector.
Tensor field of valence 1.
double separ
Absolute orbital separation between two centers of BH and NS.
double val_grid_point(int l, int k, int j, int i) const
Returns the value of the field at a specified grid point.
double omega
Angular velocity with respect to an asymptotically inertial observer.
const Vector & get_shift_auto_rs() const
Returns the part of the shift vector from numerical computation.
Star_bhns star
Neutron star.
bool is_irrotational() const
Returns true for an irrotational black hole, false for a corotating one.
const Map & get_mp() const
Returns the mapping.
Vector & set_shift_auto()
Read/write of the shift vector generated by the neutron star.
Cmp pow(const Cmp &, int)
Power .
int get_nzet() const
Returns the number of domains occupied by the star.
Coord y
y coordinate centered on the grid
Coord x
x coordinate centered on the grid
bool is_irrotational() const
Returns true for an irrotational motion, false for a corotating one.
Coord z
z coordinate centered on the grid
Coord r
r coordinate centered on the grid