This set of changes contains the code needed for loading and interfacing plugins for field diagnostics.
The user compiles their code into a shared library (".so file") that is then loaded by GENESIS and the user-provided code is executed after every integration step. The value(s) computed in the user-provided code are stored in the .out.h5 file.
Also included is the source code of a demonstration plugin. It computes the power of the light field (as in /Field/power) and the result is stored in a user-configurable object in the .out.h5 file containing the results of the simulation run. See the README.md file in the directory containing the demo plugin for more information.
This code was developed and tested on Linux systems and therefore it will quite likely not build nor work on MacOS or other operating systems without further modifications (because of the used system calls). Therefore it is disabled by default and to compile it in the additional argument -DUSE_DPI=ON has to be provided to cmake.
Any modifications to the user interface (in the GENESIS main input file) will follow in a separate pull request.
This set of changes contains the code needed for loading and interfacing plugins for field diagnostics. The user compiles their code into a shared library ("
.so
file") that is then loaded by GENESIS and the user-provided code is executed after every integration step. The value(s) computed in the user-provided code are stored in the.out.h5
file.Also included is the source code of a demonstration plugin. It computes the power of the light field (as in
/Field/power
) and the result is stored in a user-configurable object in the.out.h5
file containing the results of the simulation run. See theREADME.md
file in the directory containing the demo plugin for more information.This code was developed and tested on Linux systems and therefore it will quite likely not build nor work on MacOS or other operating systems without further modifications (because of the used system calls). Therefore it is disabled by default and to compile it in the additional argument
-DUSE_DPI=ON
has to be provided tocmake
.Any modifications to the user interface (in the GENESIS main input file) will follow in a separate pull request.