Programs which need an external potential (e.g. orbit integrators) can obtain these via the so-called potential descriptors. They are implemented in NEMO as loadable object files5.10. To the user interface this commonly appears as a set of three program keywords potname=, potpars= and potfile=; they signify the identifying name of the potential, its parameters and an associated filename. The last two are optional, since the potential may not need parameters or an associated file(s).
For example, the program potlist lists the value of the potential and forces at selected gridpoints:
% potlist potname=harmonic potpars=0,3,2 x=0:3:1 y=0:3:1 z=0:6:2 dr=0.001 x y z ax ay az phi phixx phiyy phizz rho dr time 0 0 0 -0 -0 -0 0 9 4 1 1.11408 0.001 0 1 1 2 -9 -4 -2 8.5 9 4 1 1.11408 0.001 0 2 2 4 -18 -8 -4 34 9 4 1 1.11408 0.001 0 3 3 6 -27 -12 -6 76.5 9 4 1 1.11408 0.001 0
The usage of the colon separated implied do-loop in the x=, y= and z= keywords assumes that herinp(3NEMO) has been implemented. potlist will also take first order derivatives of the force, to test Poissons equation. This specific potential, harmonic, happens to have 4 parameters, although only 3 were given in the example. The fourth one will take some default present in the descriptor. The first parameter of all potentials should be the pattern speed5.11. The second through fourth parameters are the , and harmonic coefficients resp., where the potential is given as:
Although NEMO comes supplied with a small number of standard potential descriptors, it is relatively easy to make your own ones. In Section we will describe how to add your own potential descriptors. Next we shall present a few examples from the standard list of available potentials, the full listing can be found in Appendix .