PN systems
PostNewtonian.PNSystem
— TypePNSystem{ST, PNOrder}
Base type for all PN systems, such as BBH
, BHNS
, and NSNS
.
These objects encode all essential properties of the binary, including its current state. As such, they can be used as inputs to the various fundamental and derived variables, as well as PN expressions and dynamics functions.
All subtypes should contain a state
vector holding all of the fundamental variables for the given type of system. The parameter ST
is the type of the state
vector — for example, Vector{Float64}
. PNOrder
is a Rational
giving the order to which PN expansions should be carried.
PostNewtonian.BBH
— TypeBBH{T, PNOrder}
The PNSystem
subtype describing a binary black hole system.
The state
vector here holds the fundamental variables M₁
, M₂
, χ⃗₁
, χ⃗₂
, R
, v
, with the spins unpacked into three components each, and R
unpacked into four — for a total of 13 elements.
Optionally, Φ
may also be tracked as the 14th element of the state
vector. This is just the integral of the orbital angular frequency Ω
, and holds little interest for general systems beyond a convenient description of how "far" the system has evolved.
PostNewtonian.BHNS
— TypeBHNS{T, PNOrder}
The PNSystem
subtype describing a black-hole—neutron-star binary system.
The state
vector is the same as for a BBH
. There is an additional field Λ₂
holding the (constant) tidal-coupling parameter of the neutron star.
Note that the neutron star is always object 2 — meaning that M₂
, χ⃗₂
, and Λ₂
always refer to it; M₁
and χ⃗₁
always refer to the black hole. See also NSNS
.
PostNewtonian.NSNS
— TypeNSNS{T, PNOrder}
The PNSystem
subtype describing a neutron-star—neutron-star binary system.
The state
vector is the same as for a BBH
. There are two additional fields Λ₁
and Λ₂
holding the (constant) tidal-coupling parameters of the neutron stars. See also BHNS
.
PostNewtonian.FDPNSystem
— TypeFDPNSystem{FT, PNOrder}(state, Λ₁, Λ₂)
A PNSystem
that contains information as variables from FastDifferentiation.jl
.
See also fd_pnsystem
for a particular instance of this type. Note that this type also involves the type FT
, which will be the float type of actual numbers that eventually get fed into (and will be passed out from) functions that use this system. The correct type of FDPNSystem
is used in calculating 𝓔′
.
PostNewtonian.fd_pnsystem
— Constantfd_pnsystem
A symbolic PNSystem
that contains symbolic information for all types of PNSystem
s.
In particular, note that this object has (essentially) infinite PNOrder
, has nonzero values for quantities like Λ₁
and Λ₂
, and assumes that the eventual output will be in Float64
. If you want different choices, you may need to call FDPNSystem
yourself, or even construct a different specialized subtype of PNSystem
(it's not hard).
Examples
julia> using PostNewtonian: M₁, M₂, χ⃗₁, χ⃗₂, FDPNSystem
julia> fd_pnsystem = FDPNSystem(Float64)
FDPNSystem{Float64, 9223372036854775805//2}(FastDifferentiation.Node[M₁, M₂, χ⃗₁ˣ, χ⃗₁ʸ, χ⃗₁ᶻ, χ⃗₂ˣ, χ⃗₂ʸ, χ⃗₂ᶻ, Rʷ, Rˣ, Rʸ, Rᶻ, v, Φ], Λ₁, Λ₂)
julia> M₁(fd_pnsystem), M₂(fd_pnsystem)
(M₁, M₂)
julia> χ⃗₁(fd_pnsystem)
+ χ⃗₁ˣ𝐢 + χ⃗₁ʸ𝐣 + χ⃗₁ᶻ𝐤
julia> χ⃗₂(fd_pnsystem)
+ χ⃗₂ˣ𝐢 + χ⃗₂ʸ𝐣 + χ⃗₂ᶻ𝐤