tmake JLD optional - Granular.jl - Julia package for granular dynamics simulati… | |
git clone git://src.adamsgaard.dk/Granular.jl | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 8306704d78dfadc40750669de1fbdfc32d0d99a1 | |
parent 679fbb6447fc38b7bd214b3bac2c3c7300817069 | |
Author: Anders Damsgaard <[email protected]> | |
Date: Mon, 12 Jun 2017 15:24:03 -0400 | |
make JLD optional | |
Diffstat: | |
M src/io.jl | 42 +++++++++++++++++++++--------… | |
M test/jld.jl | 25 +++++++++++++++---------- | |
2 files changed, 44 insertions(+), 23 deletions(-) | |
--- | |
diff --git a/src/io.jl b/src/io.jl | |
t@@ -1,6 +1,10 @@ | |
import WriteVTK | |
import NetCDF | |
-import JLD | |
+hasJLD = false | |
+if typeof(Pkg.installed("JLD")) == VersionNumber | |
+ import JLD | |
+ hasJLD = true | |
+end | |
## IO functions | |
t@@ -19,17 +23,23 @@ function writeSimulation(simulation::Simulation; | |
filename::String="", | |
folder::String=".", | |
verbose::Bool=true) | |
- if filename == "" | |
- folder = folder * "/" * simulation.id | |
- mkpath(folder) | |
- filename = string(folder, "/", simulation.id, ".", | |
- simulation.file_number, ".jld") | |
- end | |
+ if !hasJLD | |
+ warn("Package JLD not found. Simulation save/read not supported. " * | |
+ "Please install JLD and its " * | |
+ "requirements with `Pkg.add(\"JLD\")`.") | |
+ else | |
+ if filename == "" | |
+ folder = folder * "/" * simulation.id | |
+ mkpath(folder) | |
+ filename = string(folder, "/", simulation.id, ".", | |
+ simulation.file_number, ".jld") | |
+ end | |
- JLD.save(filename, "simulation", simulation) | |
+ JLD.save(filename, "simulation", simulation) | |
- if verbose | |
- info("simulation written to $filename") | |
+ if verbose | |
+ info("simulation written to $filename") | |
+ end | |
end | |
end | |
t@@ -42,10 +52,16 @@ Read all content from `Simulation` from disk in JDL format. | |
""" | |
function readSimulation(filename::String=""; | |
verbose::Bool=true) | |
- if verbose | |
- info("reading simulation from $filename") | |
+ if !hasJLD | |
+ warn("Package JLD not found. Simulation save/read not supported. " * | |
+ "Please install JLD and its " * | |
+ "requirements with `Pkg.add(\"JLD\")`.") | |
+ else | |
+ if verbose | |
+ info("reading simulation from $filename") | |
+ end | |
+ return JLD.load(filename, "simulation") | |
end | |
- return JLD.load(filename, "simulation") | |
end | |
export writeSimulationStatus | |
diff --git a/test/jld.jl b/test/jld.jl | |
t@@ -2,15 +2,20 @@ | |
info("#### $(basename(@__FILE__)) ####") | |
-info("Writing simple simulation to JLD file") | |
-sim = SeaIce.createSimulation(id="test") | |
-SeaIce.addIceFloeCylindrical(sim, [ 0., 0.], 10., 1., verbose=false) | |
-SeaIce.addIceFloeCylindrical(sim, [18., 0.], 10., 1., verbose=false) | |
-sim.ocean = SeaIce.createRegularOceanGrid([10, 20, 5], [10., 25., 2.]) | |
-SeaIce.findContacts!(sim, method="all to all") | |
-SeaIce.writeVTK(sim, verbose=false) | |
+info("Determining if JLD is installed") | |
+if typeof(Pkg.installed("JLD")) == VersionNumber | |
+ info("JLD found, proceeding with JLD-specific tests") | |
-SeaIce.writeSimulation(sim) | |
+ info("Writing simple simulation to JLD file") | |
+ sim = SeaIce.createSimulation(id="test") | |
+ SeaIce.addIceFloeCylindrical(sim, [ 0., 0.], 10., 1., verbose=false) | |
+ SeaIce.addIceFloeCylindrical(sim, [18., 0.], 10., 1., verbose=false) | |
+ sim.ocean = SeaIce.createRegularOceanGrid([10, 20, 5], [10., 25., 2.]) | |
+ SeaIce.findContacts!(sim, method="all to all") | |
+ SeaIce.writeVTK(sim, verbose=false) | |
-sim2 = SeaIce.readSimulation("./test/test.1.jld") | |
-SeaIce.compareSimulations(sim, sim2) | |
+ SeaIce.writeSimulation(sim) | |
+ | |
+ sim2 = SeaIce.readSimulation("./test/test.1.jld") | |
+ SeaIce.compareSimulations(sim, sim2) | |
+end |