def HS2011_Omega_SO_3p5PN_pt7(m1, m2, n12U, p1U, p2U, r12):
    Omega1 = ixp.zerorank1()
    for i in range(3):
        Omega1[i] = (+(181 * m1 * m2 / 16 + 95 * m2**2 / 4 + 75 * m2**3 /
                       (8 * m1)) * cross(n12U, p1U)[i] -
                     (21 * m1**2 / 2 + 473 * m1 * m2 / 16 + 63 * m2**2 / 4) *
                     cross(n12U, p2U)[i]) / r12**4
    return Omega1
def f_H_SS_S1S2_3PN(m1, m2, n12U, S1U, S2U, p1U, p2U, r12):
    global H_SS_S1S2_3PN
    H_SS_S1S2_3PN = (
        +div(3, 2) *
        (dot(cross(p1U, S1U), n12U) * dot(cross(p2U, S2U), n12U)) + 6 *
        (dot(cross(p2U, S1U), n12U) * dot(cross(p1U, S2U), n12U)) -
        15 * dot(S1U, n12U) * dot(S2U, n12U) * dot(p1U, n12U) * dot(p2U, n12U)
        - 3 * dot(S1U, n12U) * dot(S2U, n12U) * dot(p1U, p2U) +
        3 * dot(S1U, p2U) * dot(S2U, n12U) * dot(p1U, n12U) +
        3 * dot(S2U, p1U) * dot(S1U, n12U) * dot(p2U, n12U) +
        3 * dot(S1U, p1U) * dot(S2U, n12U) * dot(p2U, n12U) +
        3 * dot(S2U, p2U) * dot(S1U, n12U) * dot(p1U, n12U) - div(1, 2) *
        dot(S1U, p2U) * dot(S2U, p1U) + dot(S1U, p1U) * dot(S2U, p2U) -
        3 * dot(S1U, S2U) * dot(p1U, n12U) * dot(p2U, n12U) +
        div(1, 2) * dot(S1U, S2U) * dot(p1U, p2U)) / (2 * m1 * m2 * r12**3)
    H_SS_S1S2_3PN += (-dot(cross(p1U, S1U), n12U) * dot(cross(p1U, S2U), n12U)
                      + dot(S1U, S2U) * dot(p1U, n12U)**2 -
                      dot(S1U, n12U) * dot(S2U, p1U) * dot(p1U, n12U)) * 3 / (
                          2 * m1**2 * r12**3)
    H_SS_S1S2_3PN += (-dot(cross(p2U, S2U), n12U) * dot(cross(p2U, S1U), n12U)
                      + dot(S1U, S2U) * dot(p2U, n12U)**2 -
                      dot(S2U, n12U) * dot(S1U, p1U) * dot(p2U, n12U)) * 3 / (
                          2 * m2**2 * r12**3)
    H_SS_S1S2_3PN += (+dot(S1U, S2U) - 2 * dot(S1U, n12U) *
                      dot(S2U, n12U)) * 6 * (m1 + m2) / r12**4
 def f_Omega_SO_2p5PN(m1, m2, n12U, p1U, p2U, r12):
     Omega1 = ixp.zerorank1()
     for i in range(3):
         Omega1[i] = (+(+(-div(11, 2) * m2 - 5 * m2 ** 2 / m1) * cross(n12U, p1U)[i]
                        + (6 * m1 + div(15, 2) * m2) * cross(n12U, p2U)[i]) / r12 ** 3
                      + (+(-div(5, 8) * m2 * dot(p1U, p1U) / m1 ** 3
                           - div(3, 4) * dot(p1U, p2U) / m1 ** 2
                           + div(3, 4) * dot(p2U, p2U) / (m1 * m2)
                           - div(3, 4) * dot(n12U, p1U) * dot(n12U, p2U) / m1 ** 2
                           - div(3, 2) * dot(n12U, p2U) ** 2 / (m1 * m2)) * cross(n12U, p1U)[i]
                         + (dot(p1U, p2U) / (m1 * m2) + 3 * dot(n12U, p1U) * dot(n12U, p2U) / (m1 * m2)) *
                         cross(n12U, p2U)[i]
                         + (div(3, 4) * dot(n12U, p1U) / m1 ** 2 - 2 * dot(n12U, p2U) / (m1 * m2)) * cross(p1U, p2U)[
                             i]) / r12 ** 2)
     return Omega1
def HS2011_Omega_SO_3p5PN_pt6(m1, m2, n12U, p1U, p2U, r12):
    Omega1 = ixp.zerorank1()
    for i in range(3):
        Omega1[i] = (+(-(8 / m1 + 9 * m2 / (2 * m1**2)) * dot(n12U, p1U) +
                       (59 / (4 * m1) + 27 / (2 * m2)) * dot(n12U, p2U)) *
                     cross(p1U, p2U)[i]) / r12**3
    return Omega1
def HS2011_Omega_SO_3p5PN_pt3(m1,m2, n12U, p1U,p2U, r12):
    Omega1 = ixp.zerorank1()
    for i in range(3):
        Omega1[i] = (+(-9*dot(n12U,p1U)*dot(p1U,p1U)/(16*m1**4)
                       +dot(p1U,p1U)*dot(n12U,p2U)/(m1**3*m2)
                       +27*dot(n12U,p1U)*dot(n12U,p2U)**2/(16*m1**2*m2**2)
                       -dot(n12U,p2U)*dot(p1U,p2U)/(8*m1**2*m2**2)
                       -5*dot(n12U,p1U)*dot(p2U,p2U)/(16*m1**2*m2**2))*cross(p1U,p2U)[i])/r12**2
    return Omega1
def HS2011_Omega_SO_3p5PN_pt5(m1,m2, n12U, p1U,p2U, r12):
    Omega1 = ixp.zerorank1()
    for i in range(3):
        Omega1[i] = (+(+4*dot(n12U,p1U)**2/m1
                       +13*dot(p1U,p1U)/(2*m1)
                       +5*dot(n12U,p2U)**2/m2
                       +53*dot(p2U,p2U)/(8*m2)
                       -(211/(8*m1) + 22/m2)*dot(n12U,p1U)*dot(n12U,p2U)
                       -(47/(8*m1) + 5/m2)*dot(p1U,p2U))*cross(n12U,p2U)[i])/r12**3
    return Omega1
def HS2011_Omega_SO_3p5PN_pt4(m1,m2, n12U, p1U,p2U, r12):
    Omega1 = ixp.zerorank1()
    for i in range(3):
        Omega1[i] = (+(-3*m2*dot(n12U,p1U)**2/(2*m1**2)
                       +((-3*m2)/(2*m1**2) + 27*m2**2/(8*m1**3))*dot(p1U,p1U)
                       +(177/(16*m1) + 11/m2)*dot(n12U,p2U)**2
                       +(11/(2*m1) + 9*m2/(2*m1**2))*dot(n12U,p1U)*dot(n12U,p2U)
                       +(23/(4*m1) + 9*m2/(2*m1**2))*dot(p1U,p2U)
                       -(159/(16*m1) + 37/(8*m2))*dot(p2U,p2U))*cross(n12U,p1U)[i])/r12**3
    return Omega1
 def f_H_SSS_3PN_pt(m1,m2, nU, S1U,S2U, p1U,p2U, r):
     p2_minus_m2_over_4m1_p1  = ixp.zerorank1()
     for i in range(3):
         p2_minus_m2_over_4m1_p1[i]  = p2U[i] - m2/(4*m1)*p1U[i]
     H_SSS_3PN_pt = (+div(3,2)*(+dot(S1U,S1U)*dot(S2U,cross(nU,p1U))
                                +dot(S1U,nU)*dot(S2U,cross(S1U,p1U))
                                -5*dot(S1U,nU)**2*dot(S2U,cross(nU,p1U))
                                +dot(nU,cross(S1U,S2U))*(+dot(S1U,p1U)
                                                         -5*dot(S1U,nU)*dot(p1U,nU)))
                     -3*m1/(2*m2)*(  +dot(S1U,S1U)  *dot(S2U,cross(nU,p2U))
                                   +2*dot(S1U,nU)   *dot(S2U,cross(S1U,p2U))
                                   -5*dot(S1U,nU)**2*dot(S2U,cross(nU,p2U)))
                     -dot(cross(S1U,nU),p2_minus_m2_over_4m1_p1)*(dot(S1U,S1U) - 5*dot(S1U,nU)**2))/(m1**2*r**4)
     return H_SSS_3PN_pt
def HS2011_Omega_SO_3p5PN_pt2(m1,m2, n12U, p1U,p2U, r12):
    Omega1 = ixp.zerorank1()
    for i in range(3):
        Omega1[i] = (+(-3*dot(n12U,p1U)*dot(n12U,p2U)*dot(p1U,p1U)/(2*m1**3*m2)
                       -15*dot(n12U,p1U)**2*dot(n12U,p2U)**2/(4*m1**2*m2**2)
                       +3*dot(p1U,p1U)*dot(n12U,p2U)**2/(4*m1**2*m2**2)
                       -dot(p1U,p1U)*dot(p1U,p2U)/(2*m1**3*m2)
                       +dot(p1U,p2U)**2/(2*m1**2*m2**2)
                       +3*dot(n12U,p1U)**2*dot(p2U,p2U)/(4*m1**2*m2**2)
                       -dot(p1U,p1U)*dot(p2U,p2U)/(4*m1**2*m2**2)
                       -3*dot(n12U,p1U)*dot(n12U,p2U)*dot(p2U,p2U)/(2*m1*m2**3)
                       -dot(p1U,p2U)*dot(p2U,p2U)/(2*m1*m2**3))*cross(n12U,p2U)[i])/r12**2
    return Omega1
def HS2011_Omega_SO_3p5PN_pt1(m1,m2, n12U, p1U,p2U, r12):
    Omega1 = ixp.zerorank1()
    for i in range(3):
        Omega1[i] = ((+7*m2*dot(p1U,p1U)**2/(16*m1**5)
                      +9*dot(n12U,p1U)*dot(n12U,p2U)*dot(p1U,p1U)/(16*m1**4)
                      +3*dot(p1U,p1U)*dot(n12U,p2U)**2/(4*m1**3*m2)
                      +45*dot(n12U,p1U)*dot(n12U,p2U)**3/(16*m1**2*m2**2)
                      +9*dot(p1U,p1U)*dot(p1U,p2U)/(16*m1**4)
                      -3*dot(n12U,p2U)**2*dot(p1U,p2U)/(16*m1**2*m2**2)
                      -3*dot(p1U,p1U)*dot(p2U,p2U)/(16*m1**3*m2)
                      -15*dot(n12U,p1U)*dot(n12U,p2U)*dot(p2U,p2U)/(16*m1**2*m2**2)
                      +3*dot(n12U,p2U)**2*dot(p2U,p2U)/(4*m1*m2**3)
                      -3*dot(p1U,p2U)*dot(p2U,p2U)/(16*m1**2*m2**2)
                      -3*dot(p2U,p2U)**2/(16*m1*m2**3))*cross(n12U,p1U)[i])/r12**2
    return Omega1
示例#11
0
 def f_Omega1(m1, m2, n12U, p1U, p2U, r12):
     Omega1 = ixp.zerorank1()
     for i in range(3):
         Omega1[i] = (div(3, 2) * m2 / m1 * cross(n12U, p1U)[i] -
                      2 * cross(n12U, p2U)[i]) / r12**2
     return Omega1