diff --git a/src/cell.cpp b/src/cell.cpp index cdbb446172..8cdc7b6f64 100644 --- a/src/cell.cpp +++ b/src/cell.cpp @@ -520,12 +520,5 @@ extern "C" { } } -//extern "C" void free_memory_cells_c() -//{ -// delete cells_c; -// cells_c = nullptr; -// n_cells = 0; -// cell_dict.clear(); -//} } // namespace openmc diff --git a/src/geometry_aux.cpp b/src/geometry_aux.cpp index e79a00264b..dc31edf7e4 100644 --- a/src/geometry_aux.cpp +++ b/src/geometry_aux.cpp @@ -321,4 +321,23 @@ maximum_levels(int32_t univ) return levels_below; } +//============================================================================== + +void +free_memory_geometry_c() +{ + for (Cell *c : cells_c) {delete c;} + cells_c.clear(); + cell_dict.clear(); + n_cells = 0; + + for (Universe *u : universes_c) {delete u;} + universes_c.clear(); + universe_dict.clear(); + + for (Lattice *lat : lattices_c) {delete lat;} + lattices_c.clear(); + lattice_dict.clear(); +} + } // namespace openmc diff --git a/src/geometry_aux.h b/src/geometry_aux.h index 7d2c3cd9af..b998ad32c9 100644 --- a/src/geometry_aux.h +++ b/src/geometry_aux.h @@ -102,5 +102,11 @@ distribcell_path(int32_t target_cell, int32_t map, int32_t target_offset, extern "C" int maximum_levels(int32_t univ); +//============================================================================== +//! Deallocates global vectors and maps for cells, universes, and lattices. +//============================================================================== + +extern "C" void free_memory_geometry_c(); + } // namespace openmc #endif // GEOMETRY_AUX_H diff --git a/src/geometry_header.F90 b/src/geometry_header.F90 index d633b67005..758fc54da7 100644 --- a/src/geometry_header.F90 +++ b/src/geometry_header.F90 @@ -516,6 +516,12 @@ contains !=============================================================================== subroutine free_memory_geometry() + interface + subroutine free_memory_geometry_c() bind(C) + end subroutine free_memory_geometry_c + end interface + + call free_memory_geometry_c() n_cells = 0 n_universes = 0 diff --git a/tools/ci/travis-script.sh b/tools/ci/travis-script.sh index 6dfbc95106..ee445b517f 100755 --- a/tools/ci/travis-script.sh +++ b/tools/ci/travis-script.sh @@ -8,9 +8,7 @@ fi # Run regression and unit tests if [[ $MPI == 'y' ]]; then - pytest --cov=openmc -v --mpi tests/regression_tests - pytest --cov=openmc -v --mpi tests/unit_tests + pytest --cov=openmc -v --mpi tests else - pytest --cov=openmc -v tests/regression_tests - pytest --cov=openmc -v tests/unit_tests + pytest --cov=openmc -v tests fi