1
0
Fork 0
mirror of https://gitlab.rlp.net/mobitar/ReCo.jl.git synced 2024-12-21 00:51:21 +00:00

Added utils.jl

This commit is contained in:
MoBit 2021-12-11 19:21:56 +01:00
parent 8dd608222f
commit 07b8455e24
5 changed files with 21 additions and 2 deletions

View file

@ -11,6 +11,7 @@ ColorSchemes = "35d6a980-a343-548e-a6ea-1d62b119f2f4"
Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"
Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f"
GLMakie = "e9467ef8-e4e7-5192-8a1a-b1aee30e663a" GLMakie = "e9467ef8-e4e7-5192-8a1a-b1aee30e663a"
Intervals = "d8418881-c3e1-53bb-8760-2df7ec849ed5"
JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819" JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819"
JSON3 = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" JSON3 = "0f8b85d8-7281-11e9-16c2-39a750bddbf1"
JuliaFormatter = "98e50ef6-434e-11e9-1051-2b60c6c9e899" JuliaFormatter = "98e50ef6-434e-11e9-1051-2b60c6c9e899"
@ -18,6 +19,7 @@ LaTeXStrings = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
LoopVectorization = "bdcacae8-1622-11e9-2a5c-532679323890" LoopVectorization = "bdcacae8-1622-11e9-2a5c-532679323890"
Luxor = "ae8d54c2-7ccd-5906-9d76-62fc9837b5bc" Luxor = "ae8d54c2-7ccd-5906-9d76-62fc9837b5bc"
OrderedCollections = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
ProfileView = "c46f51b8-102a-5cf2-8d2c-8597cb0e0da7" ProfileView = "c46f51b8-102a-5cf2-8d2c-8597cb0e0da7"
ProgressMeter = "92933f4c-e287-5a05-a399-4b506db050ca" ProgressMeter = "92933f4c-e287-5a05-a399-4b506db050ca"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"

View file

@ -2,6 +2,7 @@ module ReCo
export init_sim, run_sim export init_sim, run_sim
include("utils.jl")
include("PreVector.jl") include("PreVector.jl")
include("Particle.jl") include("Particle.jl")
include("reinforcement_learning.jl") include("reinforcement_learning.jl")

View file

@ -35,7 +35,7 @@ end
function set_sim_state(dir::String, n_bundles::Int64, T::Float64) function set_sim_state(dir::String, n_bundles::Int64, T::Float64)
open("$dir/sim_state.json", "w") do f open("$dir/sim_state.json", "w") do f
JSON3.write(f, Dict("n_bundles" => n_bundles, "T" => round(T; digits=3))) JSON3.write(f, (n_bundles=n_bundles, T=round(T; digits=3)))
end end
return nothing return nothing

View file

@ -13,7 +13,7 @@ function run_sim(
) )
@assert length(dir) > 0 @assert length(dir) > 0
@assert duration > 0 @assert duration > 0
@assert snapshot_at in 0.01:0.01:duration @assert snapshot_at in 0.001:0.001:duration
@assert n_steps_before_verlet_list_update >= 0 @assert n_steps_before_verlet_list_update >= 0
@assert seed > 0 @assert seed > 0
@assert n_bundle_snapshots >= 0 @assert n_bundle_snapshots >= 0

16
src/utils.jl Normal file
View file

@ -0,0 +1,16 @@
using JSON3: JSON3
using OrderedCollections: OrderedDict
function struct_to_ordered_dict(s)
return OrderedDict(key => getfield(s, key) for key in propertynames(s))
end
function write_struct_to_json(s, path_without_extension::String)
ordered_dict = struct_to_ordered_dict(s)
open("$path_without_extension.json", "w") do f
JSON3.write(f, ordered_dict)
end
return nothing
end