aboutsummaryrefslogtreecommitdiff
path: root/Python/pywarpx/callbacks.py
diff options
context:
space:
mode:
authorGravatar Roelof Groenewald <40245517+roelof-groenewald@users.noreply.github.com> 2022-01-26 15:05:59 -0800
committerGravatar GitHub <noreply@github.com> 2022-01-26 15:05:59 -0800
commit16eb75c221ababa903adfc73946221c7f888955d (patch)
tree8a39d3dbe624477f5a7ce79c7bf9acbe53f90bad /Python/pywarpx/callbacks.py
parent2a1510f1405ae5f189d377285d681dfe37f000ff (diff)
downloadWarpX-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.py30
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