def test_simulation_persistence(compression, tmp_path): """test whether a tracker can accurately store information about simulation""" path = tmp_path / "test_simulation_persistence.hdf5" storage = FileStorage(path, compression=compression) # write some simulation data pde = DiffusionPDE() grid = UnitGrid([16, 16]) # generate grid state = ScalarField.random_uniform(grid, 0.2, 0.3) pde.solve(state, t_range=0.11, dt=0.001, tracker=storage.tracker(interval=0.05)) storage.close() # read the data storage = FileStorage(path) np.testing.assert_almost_equal(storage.times, [0, 0.05, 0.1]) data = np.array(storage.data) assert data.shape == (3, ) + state.data.shape grid_res = storage.grid assert grid == grid_res grid_res = storage.grid assert grid == grid_res
def test_writing_to_storage(tmp_path): """test whether data is written to storage""" state = ScalarField.random_uniform(UnitGrid([3])) pde = DiffusionPDE() path = tmp_path / "test_writing_to_storage.hdf5" data = FileStorage(filename=path) pde.solve(state, t_range=1.1, dt=0.1, tracker=[data.tracker(0.5)]) assert len(data) == 3