From d411310e45a370cfde872b25baa7a9f20bcf4966 Mon Sep 17 00:00:00 2001 From: Peter Scherpelz <31747262+peterscherpelz@users.noreply.github.com> Date: Wed, 22 Dec 2021 15:32:36 -0800 Subject: Change _libwarpx.py functions to LibWarpX class methods (#2696) * Initial attempt at moving function into LibWarpX * Bugfix - undefined structs in get_particle_theta This is untested, identified by IDE/visual inspection only * Unify newlines * Delete libwarpx.clight (duplicated picmi.py) See picmi.constants.c * Change function descriptive comment to docstring Also remove extra newline in __init__ beginning. * Replace pywarpx/_libwarpx calls appropriately * Fix atexit register of finalize function * Reorder WarpX.py imports for pre-commit * Use picmi.Simulation.extension = libwarpx alias This will hopefully preempt user script changes if we restructure things to allow multiple WarpX runs to be done within a single Python script. * Fix libwarpx ref in WarpX.getProbLo/getProbHi * Update get_particle_boundary_buffer doc reference --- Python/pywarpx/picmi.py | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'Python/pywarpx/picmi.py') diff --git a/Python/pywarpx/picmi.py b/Python/pywarpx/picmi.py index cbe01baa6..49aac44dc 100644 --- a/Python/pywarpx/picmi.py +++ b/Python/pywarpx/picmi.py @@ -924,6 +924,12 @@ class EmbeddedBoundary(picmistandard.base._ClassWithInit): class Simulation(picmistandard.PICMI_Simulation): + + # Set the C++ WarpX interface (see _libwarpx.LibWarpX) as an extension to + # Simulation objects. In the future, LibWarpX objects may actually be owned + # by Simulation objects to permit multiple WarpX runs simultaneously. + extension = pywarpx.libwarpx + def init(self, kw): self.current_deposition_algo = kw.pop('warpx_current_deposition_algo', None) -- cgit v1.2.3