Ref Bari
Advisor: Prof. Brendan Keith
Black Hole Orbits
Gravitational Wave
Loss Function
Plane
Circular Orbit
Gravitational Wave
Loss Function
Plane
Highly Eccentric Orbit
Gravitational Wave
Loss Function
Plane
Butterfly Orbit
Gravitational Wave
Loss Function
Plane
H_kep = p_r^2/2 - M/r + L^2/(2*r^2)
NN_correction = NN([r, p_r, L], NN_params, NN_state)[1][1]
H_total(r_val, pr_val) = pr_val^2/2 - M/r_val + L^2/(2*r_val^2) + NN_correction
function SchwarzschildNN_Hamiltonian(du, u, p, t)
coord_time, r, θ, ϕ, p_t, p_r, p_θ, p_ϕ = u
M = p.M
E = p.E
L = p.L
NN_params = p.NN
# Kepler Hamiltonian
H_kep = p_r^2/2 - M/r + L^2/(2*r^2)
# NN Correction
NN_correction = NN([r, p_r, L], NN_params, NN_state)[1][1]
# Total Hamiltonian
H_total(r_val, pr_val) = pr_val^2/2 - M/r_val + L^2/(2*r_val^2) + NN_correction
# Hamilton's equations
du[1] = 1.0 # Simple time evolution
du[2] = ForwardDiff.derivative(pr -> H_total(r, pr), p_r) # ṙ = ∂H/∂p_r
du[3] = 0
du[4] = L/r^2
du[5] = 0
du[6] = -ForwardDiff.derivative(r_val -> H_total(r_val, p_r), r) # ṗ_r = -∂H/∂r
du[7] = 0
du[8] = 0
end
function SchwarzschildNN_Hamiltonian(du, u, p, t)
coord_time, r, θ, ϕ, p_t, p_r, p_θ, p_ϕ = u
M = p.M
E = p.E
L = p.L
NN_params = p.NN
# Kepler Hamiltonian
H_kep = p_r^2/2 - M/r + L^2/(2*r^2)
# NN Correction
NN_correction = NN([r, p_r, L], NN_params, NN_state)[1][1]
# Total Hamiltonian
H_total(r_val, pr_val) = pr_val^2/2 - M/r_val + L^2/(2*r_val^2) + NN_correction
# Hamilton's equations
du[1] = 1.0 # Simple time evolution
du[2] = ForwardDiff.derivative(pr -> H_total(r, pr), p_r) # ṙ = ∂H/∂p_r
du[3] = 0
du[4] = L/r^2
du[5] = 0
du[6] = -ForwardDiff.derivative(r_val -> H_total(r_val, p_r), r) # ṗ_r = -∂H/∂r
du[7] = 0
du[8] = 0
end
function SchwarzschildNN_Hamiltonian(du, u, p, t)
coord_time, r, θ, ϕ, p_t, p_r, p_θ, p_ϕ = u
M = p.M
E = p.E
L = p.L
NN_params = p.NN
# Kepler Hamiltonian
H_kep = p_r^2/2 - M/r + L^2/(2*r^2)
# NN Correction
NN_correction = NN([r, p_r, L], NN_params, NN_state)[1][1]
# Total Hamiltonian
H_total(r_val, pr_val) = pr_val^2/2 - M/r_val + L^2/(2*r_val^2) + NN_correction
# Hamilton's equations
du[1] = 1.0 # Simple time evolution
du[2] = ForwardDiff.derivative(pr -> H_total(r, pr), p_r) # ṙ = ∂H/∂p_r
du[3] = 0
du[4] = L/r^2
du[5] = 0
du[6] = -ForwardDiff.derivative(r_val -> H_total(r_val, p_r), r) # ṗ_r = -∂H/∂r
du[7] = 0
du[8] = 0
end
function SchwarzschildNN_Hamiltonian(du, u, p, t)
coord_time, r, θ, ϕ, p_t, p_r, p_θ, p_ϕ = u
M = p.M
E = p.E
L = p.L
NN_params = p.NN
# Kepler Hamiltonian
H_kep = p_r^2/2 - M/r + L^2/(2*r^2)
# NN Correction
NN_correction = NN([r, p_r, L], NN_params, NN_state)[1][1]
# Total Hamiltonian
H_total(r_val, pr_val) = pr_val^2/2 - M/r_val + L^2/(2*r_val^2) + NN_correction
# Hamilton's equations
du[1] = 1.0 # Simple time evolution
du[2] = ForwardDiff.derivative(pr -> H_total(r, pr), p_r) # ṙ = ∂H/∂p_r
du[3] = 0
du[4] = L/r^2
du[5] = 0
du[6] = -ForwardDiff.derivative(r_val -> H_total(r_val, p_r), r) # ṗ_r = -∂H/∂r
du[7] = 0
du[8] = 0
end