aboutsummaryrefslogtreecommitdiff
path: root/Python/pywarpx
diff options
context:
space:
mode:
Diffstat (limited to 'Python/pywarpx')
-rwxr-xr-xPython/pywarpx/_libwarpx.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/Python/pywarpx/_libwarpx.py b/Python/pywarpx/_libwarpx.py
index 5cfe9bbaa..e32dc239d 100755
--- a/Python/pywarpx/_libwarpx.py
+++ b/Python/pywarpx/_libwarpx.py
@@ -87,6 +87,9 @@ except OSError as e:
print("Failed to load the libwarpx shared object library")
raise
+# track whether libwarpx has been initialized
+libwarpx.initialized = False
+
# WarpX can be compiled using either double or float
libwarpx.warpx_Real_size.restype = ctypes.c_int
libwarpx.warpx_ParticleReal_size.restype = ctypes.c_int
@@ -323,6 +326,8 @@ def initialize(argv=None, mpi_comm=None):
libwarpx.warpx_CheckGriddingForRZSpectral()
libwarpx.warpx_init()
+ libwarpx.initialized = True
+
@atexit.register
def finalize(finalize_mpi=1):
@@ -332,8 +337,9 @@ def finalize(finalize_mpi=1):
the end of your script.
'''
- libwarpx.warpx_finalize()
- libwarpx.amrex_finalize(finalize_mpi)
+ if libwarpx.initialized:
+ libwarpx.warpx_finalize()
+ libwarpx.amrex_finalize(finalize_mpi)
def evolve(num_steps=-1):