diff options
author | 2022-01-26 15:05:59 -0800 | |
---|---|---|
committer | 2022-01-26 15:05:59 -0800 | |
commit | 16eb75c221ababa903adfc73946221c7f888955d (patch) | |
tree | 8a39d3dbe624477f5a7ce79c7bf9acbe53f90bad /Python/pywarpx/callbacks.py | |
parent | 2a1510f1405ae5f189d377285d681dfe37f000ff (diff) | |
download | WarpX-16eb75c221ababa903adfc73946221c7f888955d.tar.gz WarpX-16eb75c221ababa903adfc73946221c7f888955d.tar.zst WarpX-16eb75c221ababa903adfc73946221c7f888955d.zip |
Add Python callbacks before and after collisions (#2791)
* add python callbacks before and after collisions
* re-order callback declarations
Diffstat (limited to 'Python/pywarpx/callbacks.py')
-rw-r--r-- | Python/pywarpx/callbacks.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Python/pywarpx/callbacks.py b/Python/pywarpx/callbacks.py index 9ae36266e..8fa08e6ef 100644 --- a/Python/pywarpx/callbacks.py +++ b/Python/pywarpx/callbacks.py @@ -250,6 +250,8 @@ class CallbackFunctions(object): # --- Now create the actual instances. _afterinit = CallbackFunctions('afterinit') +_beforecollisions = CallbackFunctions('beforecollisions') +_aftercollisions = CallbackFunctions('aftercollisions') _beforeEsolve = CallbackFunctions('beforeEsolve') _poissonsolver = CallbackFunctions('poissonsolver') _afterEsolve = CallbackFunctions('afterEsolve') @@ -314,6 +316,34 @@ def isinstalledafterinit(f): return _afterinit.isinstalledfuncinlist(f) # ---------------------------------------------------------------------------- +def callfrombeforecollisions(f): + installbeforecollisions(f) + return f +def installbeforecollisions(f): + "Adds a function to the list of functions called before collisions" + _beforecollisions.installfuncinlist(f) +def uninstallbeforecollisions(f): + "Removes the function from the list of functions called before collisions" + _beforecollisions.uninstallfuncinlist(f) +def isinstalledbeforecollisions(f): + "Checks if the function is called before collisions" + return _beforecollisions.isinstalledfuncinlist(f) + +# ---------------------------------------------------------------------------- +def callfromaftercollisions(f): + installaftercollisions(f) + return f +def installaftercollisions(f): + "Adds a function to the list of functions called after collisions" + _aftercollisions.installfuncinlist(f) +def uninstallaftercollisions(f): + "Removes the function from the list of functions called after collisions" + _aftercollisions.uninstallfuncinlist(f) +def isinstalledaftercollisions(f): + "Checks if the function is called after collisions" + return _aftercollisions.isinstalledfuncinlist(f) + +# ---------------------------------------------------------------------------- def callfrombeforeEsolve(f): installbeforeEsolve(f) return f |