tadd restart test - sphere - GPU-based 3D discrete element method algorithm with optional fluid coupling
(HTM) git clone git://src.adamsgaard.dk/sphere
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
(DIR) commit 491f154d1ad6079590583fd010250772d4e2990e
(DIR) parent d66cb85228bd2b4f08f00a0fa2dbb4a5038a81fb
(HTM) Author: Anders Damsgaard <anders@adamsgaard.dk>
Date: Mon, 18 Apr 2022 11:47:10 +0200
add restart test
Diffstat:
M tests/CMakeLists.txt | 37 +++++++++++++++++--------------
A tests/restart_tests.py | 35 +++++++++++++++++++++++++++++++
2 files changed, 55 insertions(+), 17 deletions(-)
---
(DIR) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
t@@ -1,52 +1,55 @@
find_package(PythonInterp REQUIRED)
-add_test(io_tests ${PYTHON_EXECUTABLE}
+add_test(io_tests ${PYTHON_EXECUTABLE}
${CMAKE_CURRENT_BINARY_DIR}/io_tests.py)
-add_test(wall_contact_model_tests ${PYTHON_EXECUTABLE}
+add_test(restart_tests ${PYTHON_EXECUTABLE}
+ ${CMAKE_CURRENT_BINARY_DIR}/restart_tests.py)
+
+add_test(wall_contact_model_tests ${PYTHON_EXECUTABLE}
${CMAKE_CURRENT_BINARY_DIR}/contactmodel_wall.py)
-add_test(contact_model_tests ${PYTHON_EXECUTABLE}
+add_test(contact_model_tests ${PYTHON_EXECUTABLE}
${CMAKE_CURRENT_BINARY_DIR}/contactmodel.py)
-add_test(wall_contact_model_young_tests ${PYTHON_EXECUTABLE}
+add_test(wall_contact_model_young_tests ${PYTHON_EXECUTABLE}
${CMAKE_CURRENT_BINARY_DIR}/contactmodel_wall_young.py)
-add_test(contact_model_young_tests ${PYTHON_EXECUTABLE}
+add_test(contact_model_young_tests ${PYTHON_EXECUTABLE}
${CMAKE_CURRENT_BINARY_DIR}/contactmodel_young.py)
-add_test(io_tests_fluid ${PYTHON_EXECUTABLE}
+add_test(io_tests_fluid ${PYTHON_EXECUTABLE}
${CMAKE_CURRENT_BINARY_DIR}/io_tests_fluid.py)
-add_test(porosity_tests ${PYTHON_EXECUTABLE}
+add_test(porosity_tests ${PYTHON_EXECUTABLE}
${CMAKE_CURRENT_BINARY_DIR}/porosity_tests.py)
-add_test(memory_tests ${PYTHON_EXECUTABLE}
+add_test(memory_tests ${PYTHON_EXECUTABLE}
${CMAKE_CURRENT_BINARY_DIR}/memcheck_tests.py)
-add_test(bond_tests ${PYTHON_EXECUTABLE}
+add_test(bond_tests ${PYTHON_EXECUTABLE}
${CMAKE_CURRENT_BINARY_DIR}/bond_tests.py)
-add_test(cfd_tests ${PYTHON_EXECUTABLE}
+add_test(cfd_tests ${PYTHON_EXECUTABLE}
${CMAKE_CURRENT_BINARY_DIR}/cfd_tests.py)
-add_test(cfd_tests_neumann ${PYTHON_EXECUTABLE}
+add_test(cfd_tests_neumann ${PYTHON_EXECUTABLE}
${CMAKE_CURRENT_BINARY_DIR}/cfd_tests_neumann.py)
-add_test(cfd_tests_neumann-c_v=0.1 ${PYTHON_EXECUTABLE}
+add_test(cfd_tests_neumann-c_v=0.1 ${PYTHON_EXECUTABLE}
${CMAKE_CURRENT_BINARY_DIR}/cfd_tests_neumann-c_v=0.1.py)
-add_test(fluid_particle_interaction ${PYTHON_EXECUTABLE}
+add_test(fluid_particle_interaction ${PYTHON_EXECUTABLE}
${CMAKE_CURRENT_BINARY_DIR}/fluid_particle_interaction.py)
-add_test(cfd_tests_darcy ${PYTHON_EXECUTABLE}
+add_test(cfd_tests_darcy ${PYTHON_EXECUTABLE}
${CMAKE_CURRENT_BINARY_DIR}/cfd_tests_darcy.py)
-add_test(cfd_tests_neumann_darcy ${PYTHON_EXECUTABLE}
+add_test(cfd_tests_neumann_darcy ${PYTHON_EXECUTABLE}
${CMAKE_CURRENT_BINARY_DIR}/cfd_tests_neumann_darcy.py)
-add_test(fluid_particle_interaction_darcy ${PYTHON_EXECUTABLE}
+add_test(fluid_particle_interaction_darcy ${PYTHON_EXECUTABLE}
${CMAKE_CURRENT_BINARY_DIR}/fluid_particle_interaction_darcy.py)
-add_test(cfd_tests_darcy_particles ${PYTHON_EXECUTABLE}
+add_test(cfd_tests_darcy_particles ${PYTHON_EXECUTABLE}
${CMAKE_CURRENT_BINARY_DIR}/cfd_tests_darcy_particles.py)
(DIR) diff --git a/tests/restart_tests.py b/tests/restart_tests.py
t@@ -0,0 +1,35 @@
+#!/usr/bin/env python
+from pytestutils import *
+import sphere
+
+print("### Restart tests ###")
+
+# Generate data in python
+orig = sphere.sim(np=10000, nw=1, sid="test-initgrid")
+orig.generateRadii(histogram=False)
+orig.defaultParams()
+orig.g[2] = 0.0
+orig.initRandomGridPos(gridnum = [100, 100, 100])
+orig.initTemporal(current=0.0, total=0.0)
+orig.time_total[0] = 1e-7
+orig.time_file_dt[0] = 1e-8
+orig.writebin(verbose = False)
+orig.run(dry=True)
+orig.run()
+
+restart = sphere.sim()
+restart.readbin("../output/" + orig.sid + ".output{:0=5}.bin".format(orig.status()))
+restart.time_total[0] += 1e-7
+restart.time_file_dt[0] = 1e-8
+restart.run(dry=True)
+restart.run()
+restart.readlast()
+restart.time_current = orig.time_current
+restart.time_step_count = orig.time_step_count
+restart.time_total = orig.time_total
+
+compare(orig, restart, "Restart test: ")
+
+# Remove temporary files
+cleanup(orig)
+cleanup(restart)