From 7a1268a4ea1af680f755a68847884a5cb3e610c0 Mon Sep 17 00:00:00 2001 From: MoBit Date: Wed, 17 Nov 2021 20:03:07 +0100 Subject: [PATCH] JSON3 --- src/ReCo.jl | 3 ++- src/animation.jl | 4 ++-- src/data.jl | 20 ++++++++++++++++---- src/pair_correlation_function.jl | 2 +- src/run.jl | 18 ++++++++++++++---- 5 files changed, 35 insertions(+), 12 deletions(-) diff --git a/src/ReCo.jl b/src/ReCo.jl index 41dea08..06d9da9 100644 --- a/src/ReCo.jl +++ b/src/ReCo.jl @@ -2,10 +2,11 @@ using Pkg Pkg.activate(".") using Random, Distributions -using JLD2 using ProgressMeter using GLMakie, ColorSchemes, LaTeXStrings using StaticArrays +using JLD2: JLD2 +using JSON3: JSON3 import Dates: now, CompoundPeriod, canonicalize import Base: push!, run, iterate diff --git a/src/animation.jl b/src/animation.jl index 98b9b36..9b3e69c 100644 --- a/src/animation.jl +++ b/src/animation.jl @@ -1,4 +1,4 @@ -function animate(sol::Solution, args, name_part::String; framerate::Int64=10) +function animate(sol::Solution, args, filename::String; framerate::Int64=10) println("Generating animation...") set_theme!(theme_black()) @@ -16,7 +16,7 @@ function animate(sol::Solution, args, name_part::String; framerate::Int64=10) Colorbar(fig[1, 2]; limits=(0, 2), colormap=color_scheme, label=L"\frac{\varphi}{\pi}") - animation_path = "exports/$name_part.mkv" + animation_path = "exports/$filename.mkv" record(fig, animation_path; framerate=framerate) do io circles = Observable(Vector{Circle}(undef, args.N)) diff --git a/src/data.jl b/src/data.jl index bc7e84d..0f0b285 100644 --- a/src/data.jl +++ b/src/data.jl @@ -30,13 +30,25 @@ function save_frame!(sol, frame, t, particles) return frame end -function save_data_jld(sol, args, name_part) +function save_data_jld(sol, args, filename) println("Saving data...") - data_path = "exports/$name_part.jld2" - jldsave(data_path; sol, args, name_part) + path = "exports/$filename.jld2" + JLD2.jldsave(path; sol, args, filename) - println("Data saved to $data_path.") + println("Data saved to $path.") return nothing end + +function save_JSON(filename::String, kwargs...) + path = "exports/$filename.json" + + open(path, "w") do io + JSON3.pretty(io, kwargs) + end + + println("Variables saved to $path.") + + return nothing +end \ No newline at end of file diff --git a/src/pair_correlation_function.jl b/src/pair_correlation_function.jl index 2ae732f..4bcd1ec 100644 --- a/src/pair_correlation_function.jl +++ b/src/pair_correlation_function.jl @@ -1,5 +1,5 @@ function pair_correlation(frame=0, dr=0.1) - sol, args, name_part = run(; + sol, args, filename = run(; N=1000, T=1.0, v=20.0, diff --git a/src/run.jl b/src/run.jl index c6d5cb8..f076b97 100644 --- a/src/run.jl +++ b/src/run.jl @@ -56,15 +56,25 @@ function run(; args, δt, T, n_steps_before_verlet_list_update, n_steps_before_save ) - name_part = "$(end_time)_T=$(T)_N=$(N)_v=$(v)" + filename = "$(end_time)_T=$(T)_N=$(N)_v=$(v)" + + save_variables_to_JSON = false if save_data - save_data_jld(name_part, sol, args, n_steps_before_verlet_list_update) + save_data_jld(filename, sol, args, n_steps_before_verlet_list_update) + + save_variables_to_JSON = true end if framerate > 0 - animate(sol, args, name_part; framerate=framerate) + animate(sol, args, filename; framerate=framerate) + + save_variables_to_JSON = true end - return (; sol, args, name_part) + if save_variables_to_JSON + save_JSON(filename, args, n_steps_before_save) + end + + return (; sol, args, filename) end