Enable parallel tests.
[hoomd-blue.git] / share / hoomd / plugin_template_evaluators_ext / README
blobf8b08474745ebf7edd785510e5db130d063fa67d
1 See plugin_template_cpp for basic information on compiling and using plugins.
2 What follows here is documentation specific to creating pair/bond
3 potential plugins.
6 To create a plugin that actually does something useful
7  - copy plugin_template_evaluators_ext to a new location
8  - change the PROJECT() line in CMakeLists.txt to the name of your new plugin. This is the name that it will install to
9  - change the BOOST_PYTHON_MODULE line in cppmodule/module.cc to include the name of your new plugin prefixed with an
10    underscore.
11  - Modify the source in cppmodule and pymodule. The existing files in those directories serve as examples and include
12    many of the details in comments. The LJ pair potential is included as an example.
13  - Specifically, adding a pair potential requires the following steps:
14    * in cppmodule
15      * Write an Evaluator that evaluates the potential. See EvaluatorPairLJ2.h for an example and full documentation.
16      * Add a gpu_compute_???_forces funtion to AllDriverPotentialPairExtGPU.cu (see comments in file for details)
17      * Add a declaration of gpu_compute_???_forces in AllDriverPotentialPairExtGPU.cuh
18      * Add #include "EvaluatorPair???.h" in AllPairExtPotentials where indicated.
19      * Add the appropriate typedefs in AllPairExtPotentials where indicated (see existing potentials for an example)
20      * Add the appropriate export_PotentialPair calls in module.cc (see existing lines for an example)
21     * in pymodule
22      * add a new class in pair.py that initializes the pair potential defined in module.cc and processes the
23        user specified coefficients into the proper form. See pair.lj2 in pair.py for an example.
24 - Adding a bond potential is achieved along the same lines, by replacing the word pair with the word bond. See the EvaluatorBondHarmonicDPD and bond.harmonic_dpd for an example.