aboutsummaryrefslogtreecommitdiff
path: root/Source/Python/WarpXWrappers.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Python/WarpXWrappers.cpp')
-rw-r--r--Source/Python/WarpXWrappers.cpp66
1 files changed, 10 insertions, 56 deletions
diff --git a/Source/Python/WarpXWrappers.cpp b/Source/Python/WarpXWrappers.cpp
index d4589ec8a..7350bbbb6 100644
--- a/Source/Python/WarpXWrappers.cpp
+++ b/Source/Python/WarpXWrappers.cpp
@@ -164,14 +164,8 @@ namespace
{
WarpX& warpx = WarpX::GetInstance();
warpx.InitData();
- if (warpx_py_afterinit) {
- WARPX_PROFILE("warpx_py_afterinit");
- warpx_py_afterinit();
- }
- if (warpx_py_particleloader) {
- WARPX_PROFILE("warpx_py_particleloader");
- warpx_py_particleloader();
- }
+ ExecutePythonCallback("afterinit");
+ ExecutePythonCallback("particleloader");
}
void warpx_finalize ()
@@ -179,57 +173,17 @@ namespace
WarpX::ResetInstance();
}
- void warpx_set_callback_py_afterinit (WARPX_CALLBACK_PY_FUNC_0 callback)
- {
- warpx_py_afterinit = callback;
- }
- void warpx_set_callback_py_beforeEsolve (WARPX_CALLBACK_PY_FUNC_0 callback)
+ void warpx_set_callback_py (
+ const char* char_callback_name, WARPX_CALLBACK_PY_FUNC_0 callback)
{
- warpx_py_beforeEsolve = callback;
+ const std::string callback_name(char_callback_name);
+ warpx_callback_py_map[callback_name] = callback;
}
- void warpx_set_callback_py_poissonsolver (WARPX_CALLBACK_PY_FUNC_0 callback)
- {
- warpx_py_poissonsolver = callback;
- }
- void warpx_set_callback_py_afterEsolve (WARPX_CALLBACK_PY_FUNC_0 callback)
- {
- warpx_py_afterEsolve = callback;
- }
- void warpx_set_callback_py_beforedeposition (WARPX_CALLBACK_PY_FUNC_0 callback)
- {
- warpx_py_beforedeposition = callback;
- }
- void warpx_set_callback_py_afterdeposition (WARPX_CALLBACK_PY_FUNC_0 callback)
- {
- warpx_py_afterdeposition = callback;
- }
- void warpx_set_callback_py_particlescraper (WARPX_CALLBACK_PY_FUNC_0 callback)
- {
- warpx_py_particlescraper = callback;
- }
- void warpx_set_callback_py_particleloader (WARPX_CALLBACK_PY_FUNC_0 callback)
- {
- warpx_py_particleloader = callback;
- }
- void warpx_set_callback_py_beforestep (WARPX_CALLBACK_PY_FUNC_0 callback)
- {
- warpx_py_beforestep = callback;
- }
- void warpx_set_callback_py_afterstep (WARPX_CALLBACK_PY_FUNC_0 callback)
- {
- warpx_py_afterstep = callback;
- }
- void warpx_set_callback_py_afterrestart (WARPX_CALLBACK_PY_FUNC_0 callback)
- {
- warpx_py_afterrestart = callback;
- }
- void warpx_set_callback_py_particleinjection (WARPX_CALLBACK_PY_FUNC_0 callback)
- {
- warpx_py_particleinjection = callback;
- }
- void warpx_set_callback_py_appliedfields (WARPX_CALLBACK_PY_FUNC_0 callback)
+
+ void warpx_clear_callback_py (const char* char_callback_name)
{
- warpx_py_appliedfields = callback;
+ const std::string callback_name(char_callback_name);
+ warpx_callback_py_map.erase(callback_name);
}
void warpx_evolve (int numsteps)