Read force parameters
=====================
Force field format
---------------------------
Force field for non-boned interactions::
particle_type1 particle_type2 epsilon sigma alpha
For bond, angle, and dihedral interactions::
bond_type spring_constant equilibrium_length function_type
angle_type spring_constant equilibrium_length function_type
dihedral_type parameter1 parameter2 ... function_type
For bond constraint and virtual site::
constraint_type equilibrium_length function_type
virtual_site_type a b c function_type
An example of force field file::
Qa Qa 2.3 0.6 1.0
Qa Q0 2.0 0.6 1.0
Qa Na 0.5 0.47 1.0
Qa C4 0.5 0.47 1.0
Qa C1 2.0 0.62 1.0
Qa SC3 0.5 0.47 1.0
Qa SC1 2.0 0.62 1.0
Qa SP1c 2.7 0.47 1.0
Q0 Q0 2.0 0.6 1.0
Q0 Na 0.5 0.47 1.0
Q0 C4 0.5 0.47 1.0
Q0 C1 2.0 0.62 1.0
Q0 SC3 0.5 0.47 1.0
Q0 SC1 2.0 0.62 1.0
Q0 SP1c 2.7 0.47 1.0
Na Na 2.3 0.47 1.0
Na C4 2.7 0.47 1.0
Na C1 2.7 0.47 1.0
Na SC3 2.7 0.47 1.0
Na SC1 2.7 0.47 1.0
Na SP1c 2.3 0.47 1.0
C4 C4 4.5 0.47 1.0
C4 C1 4.0 0.47 1.0
C4 SC3 4.5 0.47 1.0
C4 SC1 4.0 0.47 1.0
C4 SP1c 2.7 0.47 1.0
C1 C1 4.5 0.47 1.0
C1 SC3 4.5 0.47 1.0
C1 SC1 4.5 0.47 1.0
C1 SP1c 2.3 0.47 1.0
SC3 SC3 3.4 0.43 1.0
SC3 SC1 3.4 0.43 1.0
SC3 SP1c 2.7 0.47 1.0
SC1 SC1 3.4 0.43 1.0
SC1 SP1c 2.3 0.47 1.0
SP1c SP1c 2.3 0.47 1.0
SP1c-SC3 0.4904 1
SP1c-SC1 0.6019 1
SC3-SC1 0.2719 1
SC1-SC3 0.7237 1
SC1-SC1 0.5376 1
SC1-SC1-SC3-SC1 0.9613 0.6320 0.0 1
SC1-SC3-SP1c-SC1 0.5207 0.2882 -1.03168 4
SC1-SC1-SC3-SC1_1 0.2287 0.4111 1.41920 4
Q0-Qa 1250.0 0.450 1
Qa-Na 1250.0 0.450 1
Na-Na 1250.0 0.370 1
Na-C1 1250.0 0.480 1
C1-C1 1250.0 0.480 1
C1-C4 1250.0 0.480 1
C4-C4 1250.0 0.480 1
C4-C1 1250.0 0.480 1
SC1-C1 1250.0 0.425 1
Qa-Na-Na 25.0 120.000 2
Qa-Na-C1 25.0 180.000 2
Na-C1-C1 35.0 180.000 2
C1-C1-C1 35.0 180.000 2
Na-C1-C4 35.0 180.000 2
C1-C4-C4 20.0 95.000 2
C4-C4-C1 45.0 120.000 2
SC1-SC1-C1 25.0 180.0 2
SP1c-SC3-SC1-SC1_F2 -179.7 50.0 2
Use force fields
-------------------------
Description:
Force fields in the format could be read by ``force_field_gala`` module. The classes of ``force_field_gala`` module are listed as following.
.. py:class:: LJCoulombShiftForce(all_info, nlist, rcut, rshift, epsilon_r, file)
Constructor of an object to simutaneously calculate modified Lennard-Jones and Coulomb interactions which are smoothed by a shift function same to GROMACS.
:param AllInfo all_info: System information.
:param NeighborList nlist: Neighbor list.
:param float rcut: Cut-off radius.
:param float rshift: Shift radius.
:param float epsilon_r: Relative dielectric constant.
:param string file: Force field file.
Example::
import force_field_gala
e_r = 15.0
lj = force_field_gala.LJCoulombShiftForce(all_info, nlist, 1.2, 0.9, e_r, "Equ.force_field")
app.add(lj)
.. py:class:: LJEwaldForce(all_info, nlist, rcut, file)
Constructor of an object to simutaneously calculate Lennard-Jones and the short-part Coulomb interactions.
:param AllInfo all_info: System information.
:param NeighborList nlist: Neighbor list.
:param float rcut: Cut-off radius.
:param string file: Force field file.
.. py:function:: setEnergy_shift()
calls the function to shift LJ potential to be zero at cut-off point.
.. py:function:: setDispVirialCorr(bool open)
switches the dispersion virial correction.
Example::
import force_field_gala
lj = force_field_gala.LJEwaldForce(all_info, neighbor_list, 1.0, "ffnonbonded.force_field")
lj.setEnergy_shift()
lj.setDispVirialCorr(True)#dispersion virial correction
app.add(lj)
.. py:class:: BondForceHarmonic(all_info, file)
Constructor of an object to calculate harmonic bond interactions.
:param AllInfo all_info: System information.
:param string file: Force field file.
Example::
bondforce = force_field_gala.BondForceHarmonic(all_info, "ffbonded.force_field")
app.add(bondforce)
.. py:class:: AngleForceHarmonicCos(all_info, file)
Constructor of an object to calculate harmonic cosine angle interactions.
:param AllInfo all_info: System information.
:param string file: Force field file.
Example::
angleforce = force_field_gala.AngleForceHarmonicCos(all_info, "ffbonded.force_field")
app.add(angleforce)
.. py:class:: AngleForceHarmonic(all_info, file)
Constructor of an object to calculate harmonic angle interactions.
:param AllInfo all_info: System information.
:param string file: Force field file.
Example::
angleforce = force_field_gala.AngleForceHarmonic(all_info, "ffbonded.force_field")
app.add(angleforce)
.. py:class:: DihedralForceAmberCosine(all_info, file)
Constructor of an object to calculate Amber cosine dihedral interactions.
:param AllInfo all_info: System information.
:param string file: Force field file.
Example::
dihedralforce = force_field_gala.DihedralForceAmberCosine(all_info, "ffbonded.force_field")
app.add(dihedralforce)
.. py:class:: DihedralForceHarmonic(all_info, file)
Constructor of an object to calculate harmonic dihedral interactions.
:param AllInfo all_info: System information.
:param string file: Force field file.
Example::
dihedralforce = force_field_gala.DihedralForceHarmonic(all_info, "ffbonded.force_field")
app.add(dihedralforce)
.. py:class:: BondConstraint(all_info, file)
Constructor of an object to implement bond constraints.
:param AllInfo all_info: System information.
:param string file: Force field file.
.. py:function:: setNumIters(int ncycles)
specifies the number of iterations of calcuation.
.. py:function:: setExpansionOrder(int order)
specifies the spread order.
Example::
bond_constraint = force_field_gala.BondConstraint(all_info, "Equ.force_field")
bond_constraint.setExpansionOrder(4)
bond_constraint.setNumIters(1)
app.add(bond_constraint)
.. py:class:: Vsite(all_info, file)
Constructor of an object to implement virtual sites using a same method to GROMACS.
:param AllInfo all_info: System information.
:param string file: Force field file.
Example::
vs = force_field_gala.Vsite(all_info, "Equ.force_field")
app.add(vs)
Use GROMACS force fields
------------------------
Description:
Force fields in GROMACS format are supported by ``force_field_itp`` module. The usage and methods are same to ``force_field_gala`` module, but for reading the force fields in GROMACS format from itp files.
An example::
import force_field_itp
lj = force_field_itp.LJEwaldForce(all_info, neighbor_list, 1.0, "ffnonbonded.itp")
lj.setEnergy_shift()
lj.setDispVirialCorr(True)#dispersion virial correction
app.add(lj)
Convert GROMACS files
---------------------
Description:
Convert GROMACS files to GALA files including configuration and force fields by ``gro_to_xml`` module.
Execution command is ``python gro_to_xml.py`` with two necessary parameters ``--gro=`` and ``--top=`` to set
the GROMACS file names.
An example::
python gro_to_xml.py --top=Topol.top --gro=Equ.gro
Then two files 'Equ.xml' of configuration and 'Equ.force_field' of force field will be generated.