ForceField Engine Options¶
Details of the ForceField engine can be set via its input block. Some option are specific to UFF and others to other force fields.
These options apply to any force field.
There are a few predefined force field types, that, if used, require no other input.
Type [UFF | Amber95 | GAFF | Tripos5.2 | APPLE&P | UserDefined]
Type: Multiple Choice Default value: UFF Options: [UFF, Amber95, GAFF, Tripos5.2, APPLE&P, UserDefined] Description: Type of force field to be used
The long range interaction (dispersion and Coulomb) are the most expensive to evaluate. This gives you the option to screen the interaction more aggressively.
Type: Float Default value: 15.0 Unit: Angstrom Description: Distance beyond which the non-bonded pair interactions (Coulomb and Van der Waals) will be ignored. The interactions are smoothly damped starting from 0.9*NonBondedCutoff. Has no effect on the Coulomb term for periodic systems, as Ewald summation is used.
It is usually a good idea to add some “skin” to the cutoff above when it’s used for computing a neighbor list for changing geometries (e.g. during molecular dynamics or geometry optimization). This way, the neighbor list will not need to be re-computed when atoms move a little. This may save some time because generating a neighbor list can be quite costly. The following option sets the thickness of the “skin”:
Type: Float Default value: 2.5 Unit: Angstrom Description: Thickness of the buffer region added to the NonBondedCutoff when building a neighbor list.
This option also affects the cutoff used when generating a neighbor list in the real-space part of the Ewald summation but then it is added to the cutoff radius is used there.
If you want to know more about the details of the force field you should crank up the verbosity.
Verbosity [Silent | Normal | Verbose | VeryVerbose]
Type: Multiple Choice Default value: Silent Options: [Silent, Normal, Verbose, VeryVerbose] Description: Controls the verbosity of the engine.
Bonds can be specified in the input, still you may not want to use those. Here are some options to control this.
BondsUsage [Input | None | Guess | Auto]
Type: Multiple Choice Default value: Auto Options: [Input, None, Guess, Auto] Description: Controls what bonds are used by the engine. The choice auto means: guess in case there are no bonds. Guessing only happens at the first MD step, or first geometry optimization step.
For periodic systems the Ewald summation is performed for the Coulomb interaction. It has a couple of options:
EwaldSummation Alpha float Enabled Yes/No GridSpacing float RealSpaceCutoff float Tolerance float End
Type: Block Description: Configures the details of the particle mesh Ewald (PME) summation of the Coulomb interaction.
Type: Float Default value: -1.0 Unit: 1/Angstrom Description: This parameter shifts the workload from real space (smaller alpha) to reciprocal space (larger alpha). Using a larger [Alpha] without decreasing [GridSpacing] may increase the error in the reciprocal-space contribution. Set to zero to disable the reciprocal-space Ewald part. Negative value means the [Alpha] will be determined automatically from the [Tolerance] and [RealSpaceCutoff] values.
Type: Bool Default value: Yes Description: Set to false to use real-space pair summation instead of the Ewald, which is the default and the only option for molecules, 1D and 2D periodic systems.
Type: Float Default value: 0.5 Unit: Angstrom Description: Grid spacing in the particle mesh Ewald method. Smaller grid spacing will make the reciprocal energy calculation more accurate but slower. Using a larger [Alpha] value may require a smaller GridSpacing to be accurate.
Type: Float Default value: 0.0 Unit: Angstrom Description: Set the cutoff value for the real-space summation. Zero means the internal defaults will be used depending on the [Alpha] (if Alpha=0 then the cutoff will be set to 50 Bohr, otherwise to 20 Bohr).
Type: Float Default value: 1e-10 Description: Value of the error function that should be used to determine the cutoff radius for real-space Ewald summation if [Alpha] is set on input. Alternatively, if the [RealSpaceCutoff] is set but [Alpha] is not then the [Tolerance] value affects the [Alpha]. Larger values will make the real-space summation faster but less accurate.
Disabling energy terms¶
By default all force field energy terms are calculated, however, you can disable each one of them individually.
EnergyTerms Angle Yes/No Coulomb Yes/No Dispersion Yes/No Inversion Yes/No Stretch Yes/No Torsion Yes/No End
Type: Block Description: expert key, that allows you to disable specific energy terms.
Type: Bool Default value: Yes Description: Whether to use angle (bend) energy.
Type: Bool Default value: Yes Description: Whether to use coulomb energy.
Type: Bool Default value: Yes Description: Whether to use dispersion energy.
Type: Bool Default value: Yes Description: Whether to use inversion energy.
Type: Bool Default value: Yes Description: Whether to use stretch energy.
Type: Bool Default value: Yes Description: Whether to use torsion energy.
Guessing or loading partial charges¶
The UFF forcefield has some very rudimentary partial charges guessing, only setting charges for atoms in water molecules. By default the partial charges in a force field calculation are zero. Essentially you will always need to specify atomic charges to make the results more realistic, either via the input or using one or the following options.
The simplest way is the use the GuessCharges key, that uses an engine that can calculate atomic charges. By default DFTB is used. DFTB is of course much more expensive than a forcefield, but if you run a MD calculation you can maybe afford a single DFTB calculation on the system.
Type: Bool Default value: No Description: Use another engine to calculate/guess the charges to be used by the force field.
If you want to control the engine use the GuessChargesConfig key.
GuessChargesConfig EngineType string End
Type: Block Description: Guess charges to be used by the forcefield
Type: String Default value: dftb Description: Engine that can calculate or guess charges
You have more control over the charge guessing, by loading the charges of another calculation. This way you can set any engine specific detail, such as the basis set, or functional.
You can load charges form a previous calculation to be used as force field charges.
LoadCharges File string Section string Variable string End
Type: Block Description: Load charges from a file to be used as forcefield charges
Type: String Description: Name of the (kf) file
Type: String Default value: AMSResults Description: Section name of the kf file
Type: String Default value: Charges Description: variable name of the kf file
Amber force field options¶
These options are relevant for the Amber and GAFF force fields:
Type: Bool Default value: No Description: When parameters are not found for bonds, angles, dihedrals, or inversions, the first entry in the database will be used.
Type: Bool Default value: Yes Description: The database could contain duplicate entries. For torsions this is a feature, and the potentials will be added. For all other terms this is no allowed, and if detected the program stops. One should fix the database or set the checking to false. As always the last entry will be used.
Type: String Default value: GUI name: Force field library Description: Path to the force field parameter file
The following options are only relevant for the UFF force field:
UFF AtomTypesFile string Database string ElementsFile string Library [UFF | UFF4MOF | UFF4MOF-II] End
Type: Block Description: Option for the UFF force filed.
Type: String Default value: mmatomtypes_db Description: Expert option: Select the file that defines how UFF determines the atom types
Type: String Default value: general_db Description: Expert option: Select the file that defines the UFF parameters per atom type
Type: String Default value: elements_db Description: Expert option: Select the file that defines the elements known to UFF
Type: Multiple Choice Default value: UFF Options: [UFF, UFF4MOF, UFF4MOF-II] GUI name: Force field library Description: Selects the used parameter library.
APPLE&P force field options¶
The ForceFieldFile key is mandatory and it should contain path to the APPLE&P forcefield file. This file is usually tailored for each system specifically.
Additionally, the following options are relevant for the APPLE&P force field.
Type: Float Default value: 1e-06 Unit: a.u. Description: Convergence criterion for induced point dipoles, in atomic units. When the length of every atomic delta_mu vector between two iterations becomes below the tolerance, the procedure is considered converged.
The repulsion/dispersion and Coulomb interaction between atoms connected by a bond or by a valence angle are excluded in APPLE&P. Those between atoms connected by a dihedral (the so called 1-4 neighbors) may be scaled down and the scaling factors can be changed using the following options:
APPLE&P LongRangeCorrection Yes/No MuMu14Scaling float QMu14Scaling float QQ14Scaling float RD14Scaling float End
Type: Block Description: Options for the APPLE&P force field.
Type: Bool Default value: Yes GUI name: Add long-range correction Description: Add a long-range dispersion correction to the energy and pressure for 3D-periodic systems. This correction should be enabled only for a homogeneous liquid.
Type: Float Default value: 1.0 GUI name: Mu-Mu 3rd-neighbor scaling Description: Scaling factor for dipole-dipole interactions between atoms connected to 3rd order (via a dihedral).
Type: Float Default value: 0.8 GUI name: Q-Mu 3rd-neighbor scaling Description: Scaling factor for charge-dipole interactions between atoms connected to 3rd order (via a dihedral).
Type: Float Default value: 0.8 GUI name: Q-Q 3rd-neighbor scaling Description: Scaling factor for charge-charge interactions between atoms connected to 3rd order (via a dihedral).
Type: Float Default value: 1.0 GUI name: RD 3rd-neighbor scaling Description: Scaling factor for repulsion/dispersion interactions between atoms connected to 3rd order (via a dihedral).