コード例 #1
0
def bound_lower(m1, m2, pressure1, ofmaxmass):
    pressure2 = 100  #trivial parameter
    pressure_trans = pressure1
    gamma1 = np.log(pressure1 / pressure0) / np.log(
        baryon_density1 / baryon_density0)
    pressure_s = pressure1 * (baryon_density_s / baryon_density1)**gamma1
    pressure_trans = pressure_s
    det_density = 0
    eos_args = [
        baryon_density0, pressure1, baryon_density1, pressure2,
        baryon_density2, pressure3, baryon_density3, pressure_trans
    ]
    cs2 = cs2_ofmaxmass(ofmaxmass, 0.25, 1., Maxmass, Preset_Pressure_final,
                        Preset_rtol, eos_args)
    args = [
        baryon_density0, pressure1, baryon_density1, pressure2,
        baryon_density2, pressure3, baryon_density3, pressure_trans,
        det_density, cs2
    ]
    a = EOS_BPSwithPolyCSS(args)
    tidal1 = Properity_ofmass(
        m1, pressure_trans + 1,
        Maxmass(Preset_Pressure_final, Preset_rtol, a)[1],
        MassRadius_transition, Preset_Pressure_final, Preset_rtol, 1, a)[7]
    tidal2 = Properity_ofmass(
        m2, pressure_trans + 1,
        Maxmass(Preset_Pressure_final, Preset_rtol, a)[1],
        MassRadius_transition, Preset_Pressure_final, Preset_rtol, 1, a)[7]
    return tidal1, tidal2, args
コード例 #2
0
def bound_lower_with_args(m1, m2, pressure1, args):
    gamma1 = np.log(pressure1 / pressure0) / np.log(
        baryon_density1 / baryon_density0)
    pressure_s = pressure1 * (baryon_density_s / baryon_density1)**gamma1
    pressure_trans = pressure_s
    a = EOS_BPSwithPolyCSS(args)
    tidal1 = Properity_ofmass(
        m1, pressure_trans + 1,
        Maxmass(Preset_Pressure_final, Preset_rtol, a)[1],
        MassRadius_transition, Preset_Pressure_final, Preset_rtol, 1, a)[7]
    tidal2 = Properity_ofmass(
        m2, pressure_trans + 1,
        Maxmass(Preset_Pressure_final, Preset_rtol, a)[1],
        MassRadius_transition, Preset_Pressure_final, Preset_rtol, 1, a)[7]
    return tidal1, tidal2, args
コード例 #3
0
def bound_upper(m1, m2, pressure1, ofmaxmass):
    cs2 = 1.
    pressure_trans, tidal2, pressure2 = np.array(
        Properity_ofmass_at_transition(m2, 1, 1000, MassRadius,
                                       Preset_Pressure_final, Preset_rtol,
                                       1))[[0, 7, 8]]
    eos_args = [
        baryon_density0, pressure1, baryon_density1, pressure2,
        baryon_density2, pressure3, baryon_density3, pressure_trans
    ]
    det_density = det_density_ofmaxmass(ofmaxmass, 0, 1000, Maxmass,
                                        Preset_Pressure_final, Preset_rtol,
                                        eos_args)
    args = [
        baryon_density0, pressure1, baryon_density1, pressure2,
        baryon_density2, pressure3, baryon_density3, pressure_trans,
        det_density, cs2
    ]
    a = EOS_BPSwithPolyCSS(args)
    tidal1 = Properity_ofmass(
        m1, pressure_trans + 1,
        Maxmass(Preset_Pressure_final, Preset_rtol, a)[1],
        MassRadius_transition, Preset_Pressure_final, Preset_rtol, 1, a)[7]
    return tidal1, tidal2, args
コード例 #4
0
    0.059259259259259255, 3.0, 0.29600000000000004, 100, 0.5984, 1000000,
    1.1840000000000002, 1.1618097293530305, 0, 0.3129165056475563
])

args.append([
    5.92592593e-02, 3.00000000e+00, 2.96000000e-01, 1.00000000e+02,
    5.98400000e-01, 1.00000000e+06, 1.18400000e+00, 1.16180973e+00,
    0.00000000e+00, 1.00000000e+00
])

N = 500
pressure_eos = np.linspace(0.1, 200, N * 100)
pressure_center = np.linspace(10, 1000, N)
mass_radius = []
for i in range(len(args)):
    a = EOS_BPSwithPolyCSS(args[i])
    mass_radius.append(
        calculate_mass_radius(pressure_center, a, MassRadius_transition))

maxmass_min = 2.0
maxmass_max = 2.4
label_text = []
label_text.append('$%.1f M_\odot<M_{max}<%.1f M_\odot$ upper bound' %
                  (maxmass_min, maxmass_max))
label_text.append('$%.1f M_\odot<M_{max}<%.1f M_\odot$ lower bound' %
                  (maxmass_min, maxmass_max))
label_text.append('$%.1f M_\odot<M_{max}< \infty$         lower bound' %
                  (maxmass_min))

f, axs = plt.subplots(1, 2, sharex=False, figsize=(15, 7.5))
for i in range(len(args)):
コード例 #5
0
 def Ofmaxmass(det_density, ofmaxmass, Maxmass_function,
               Preset_Pressure_final, Preset_rtol, args):
     eos = EOS_BPSwithPolyCSS(args + [det_density, cs2])
     return -ofmaxmass + Maxmass_function(Preset_Pressure_final,
                                          Preset_rtol, eos)[2]