To make life easier for you, a JSON configuration file must be used to pass all the information that MBX needs. Usually, one does not need to change anything except a couple of options. In any case, all the options of the json file are explained below.
The JSON file template is the following:
{
"Note" : "This is a MBX v1.0.0 configuration file",
"MBX" : {
"box" : [21.0,0.0,0.0,0.0,21.0,0.0,0.0,0.0,21.0],
"twobody_cutoff" : 9.0,
"threebody_cutoff" : 7.0,
"dipole_tolerance" : 1E-08,
"dipole_max_it" : 100,
"dipole_method" : "cg",
"alpha_ewald_elec" : 0.6,
"grid_density_elec" : 2.5,
"spline_order_elec" : 6,
"alpha_ewald_disp" : 0.6,
"grid_density_disp" : 2.5,
"spline_order_disp" : 6,
"ignore_2b_poly" : [],
"ignore_3b_poly" : []
} ,
"i-pi" : {
"localhost" : "localhost3",
"port" : 34567
}
}
In this file:
box
is either a 9 element list, with the 3 vectors of the box:[ax, ay, az, bx, by, bz, cx, cy, cz]
or an empty list[]
if one wants to run gas-phase calculations.twobody_cutoff
is the distance at which the 2-body interactions will be cut in the real space. If you are using polynomials, that should be the largest polynomial cutoff that you are using (usually9.0
Angstrom) in periodic boundary conditions. In gas phase calculations, that should be set to a large number so the real space electrostatics and dispersion are properly calculated and fully accounted for.threebody_cutoff
is the cutoff for the 3-body polynomials. If only water is used, one can set that to4.5
, but if alkali metal ions or halides are used, it should be set to the maximum cutoff in any of the trimers used (7.0
).dipole_tolerance
is the tolerance accepted for the induced dipoles iterative calculation. From one iteration to the other one, |mu(i,t+1) - mu(i,t)|^2 < dipole tolerance for any i. A value of1E-08
is usually small enough. However, if the dipole solver used is aspc, the magnitude of the tolerance may have to be decreased up to1E-10
or1E-12
. It is recommended to run a few thousand steps using aspc and cg for the dipole solver, and decide which is the dipole tolerance needed.dipole_max_it
is the maximum number of iterations allowed in the dipole iterative method calculation. If the number of iterations exceeds this value, MBX will throw an error message saying that the dipoles have diverged.dipole_method
is the method adopted to calculate the induced dipoles. Current options areiter
(iterative),cg
(conjugate gradient, faster than iter), andaspc
(always stable predictor-corrector).aspc
is only suitable for simulations. Onlycg
andaspc
are currently available in LAMMPS.alpha_ewald_{elec/disp}
is the alpha used in the reciprocal space. It should be set to0.0
when running gas-phase calculations/simulations.grid_density_{elec/disp}
is the Ewald grid points density.spline_order_{elec/disp}
is the order of the splines used for interpolation.ignore_2b_poly
a list of 2 element lists with the monomer pairs for which the 2-body polynomials will not be calculated. Example:"ignore_2b_poly" : [["na+","h2o"]]
ignore_3b_poly
has a similar format as ignore_2b_poly, but with the difference that the list is a list of 3-element list. If a set of three monomer types is specified in this list, MBX won't calculate the 3-body polynomials for that given trimer. Example:"ignore_3b_poly" : [["na+","h2o","h2o"]]
localhost
is the name of the socket. It MUST match the name in the XML file, otherwise it will send an error saying that the socket was not found.port
is used when interfacing with i-pi. It is the port that will hold the socket. Should be greater than34500
.