You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The python interface currently relies on MpiCallbacks to broadcast interaction structs to all MPI ranks. This communication can be taken care of by the ScriptInterface framework.
Use the jngrad/nonbonded_refactor branch as the starting point. The first commit lays out the new interface, and can be ignored. The next two commits show how to use the new interface with LJ and WCA. Simply apply that formula to all remaining interactions. Some interactions might require extra care, for example DPD requires two structs and interacts with thermostats. Be sure to use the maxset myconfig file and to run the testsuite frequently to catch regressions.
Once this is done and the python testsuite shows no regression, it will be possible to delete the old interface in the core. To that end, delete the code marked with // TODO in ca9f833, then build again and delete all lines that trigger any compiler warning.
The text was updated successfully, but these errors were encountered:
Fixes#4555 and fixes#4569
Description of changes:
- rewrite non-bonded interactions as script interface objects
- convert Cython file `interaction.pyx` to Python file `interaction.py`
- 1600 lines of Cython code were removed
- bugfix: the `set_params()` method now raises an error if required arguments are not provided
- scripts may silently break when a potential is set and later updated in a way that is affected by the bug described in #4569
- new feature: possibility to deactivate/reset non-bonded interactions
- reduce code duplication in the script interface of bonded interactions
This is a self-contained task for #4542.
The python interface currently relies on MpiCallbacks to broadcast interaction structs to all MPI ranks. This communication can be taken care of by the
ScriptInterface
framework.Use the
jngrad/nonbonded_refactor
branch as the starting point. The first commit lays out the new interface, and can be ignored. The next two commits show how to use the new interface with LJ and WCA. Simply apply that formula to all remaining interactions. Some interactions might require extra care, for example DPD requires two structs and interacts with thermostats. Be sure to use the maxset myconfig file and to run the testsuite frequently to catch regressions.Once this is done and the python testsuite shows no regression, it will be possible to delete the old interface in the core. To that end, delete the code marked with
// TODO
in ca9f833, then build again and delete all lines that trigger any compiler warning.The text was updated successfully, but these errors were encountered: