diff --git a/julia/Project.toml b/julia/Project.toml index 611de22..a857c64 100644 --- a/julia/Project.toml +++ b/julia/Project.toml @@ -5,6 +5,7 @@ version = "0.1.0" [deps] Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" +Distributed = "8ba89e20-285c-5b6f-9357-94700520ee1b" ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" NLsolve = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" diff --git a/julia/src/Thesis.jl b/julia/src/Thesis.jl index bf0cc08..fb98454 100644 --- a/julia/src/Thesis.jl +++ b/julia/src/Thesis.jl @@ -1,6 +1,6 @@ module Thesis - using LinearAlgebra, ForwardDiff, PlotlyJS, SPICE + using LinearAlgebra, ForwardDiff, PlotlyJS, SPICE, Distributed try furnsh("../../SPICE/naif0012.tls") diff --git a/julia/src/inner_loop/find_closest.jl b/julia/src/inner_loop/find_closest.jl index 518c95b..9c8faa2 100644 --- a/julia/src/inner_loop/find_closest.jl +++ b/julia/src/inner_loop/find_closest.jl @@ -11,6 +11,12 @@ function mass_est(T) return ans/n end +converged(x) = NLsolve.converged(x) + +function converged(_::String) + return false +end + function nlp_solve(start::Vector{Float64}, final::Vector{Float64}, craft::Sc, @@ -25,6 +31,21 @@ function nlp_solve(start::Vector{Float64}, F[1:6, 1] .= prop_nlsolve(tanh.(x), start, craft, μ, tf-t0) .- final end - return nlsolve(f!, atanh.(x0), ftol=tol, autodiff=:forward, iterations=1_000) + # return nlsolve(f!, atanh.(x0), ftol=tol, autodiff=:forward, iterations=1_000) + p = addprocs(1) + response = Channel(1) + @async put!(response, remotecall_fetch(nlsolve, 2, f!, atanh.(x0), ftol=tol, autodiff=:forward, iterations=1_000)) + + start=time() + while !isready(response) && (time() - start) < 30. + sleep(0.1) + end + + if isready(response) + return fetch(response) + else + rmprocs(p); + return "error" + end end \ No newline at end of file diff --git a/julia/src/inner_loop/monotonic_basin_hopping.jl b/julia/src/inner_loop/monotonic_basin_hopping.jl index 71c85da..74ba046 100644 --- a/julia/src/inner_loop/monotonic_basin_hopping.jl +++ b/julia/src/inner_loop/monotonic_basin_hopping.jl @@ -40,9 +40,7 @@ function mbh(start::AbstractVector, if verbose print("\r",i) end # TODO: Should this be two separate "impatience" values? impatience = 0 - println("HERE") x_star = nlp_solve(start, final, craft, μ, t0, tf, new_x(n), tol=tol) - println("THERE") while converged(x_star) == false && impatience < patience_level impatience += 1 x_star = nlp_solve(start, final, craft, μ, t0, tf, new_x(n), tol=tol) diff --git a/julia/test/runtests.jl b/julia/test/runtests.jl index e0ce16a..33914b4 100644 --- a/julia/test/runtests.jl +++ b/julia/test/runtests.jl @@ -19,7 +19,7 @@ end # include("inner_loop/laguerre-conway.jl") # include("inner_loop/propagator.jl") # include("inner_loop/find_closest.jl") - # include("inner_loop/monotonic_basin_hopping.jl") + include("inner_loop/monotonic_basin_hopping.jl") include("inner_loop/inner_loop.jl") end