Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=ip), | private, | parameter | :: | pair_allocation_chunk | = | 16 |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rp), | intent(in) | :: | Rij | |||
real(kind=rp), | intent(in) | :: | Rij0 | |||
real(kind=rp), | intent(in) | :: | Eij | |||
real(kind=rp), | intent(inout) | :: | V |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rp), | intent(in) | :: | Rij | |||
real(kind=rp), | intent(in) | :: | Rij0 | |||
real(kind=rp), | intent(in) | :: | Eij | |||
real(kind=rp), | intent(out) | :: | Rijgrad |
Derived type for storing the information relative to the calculation of non-bonding interactions
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(ommp_topology_type), | public, | pointer | :: | top |
Data structure for topology |
||
logical(kind=lp), | public | :: | use_nl |
Flag for using neighbors list |
|||
type(ommp_neigh_list), | public | :: | nl |
Neighbor list struture |
|||
real(kind=rp), | public, | allocatable, dimension(:) | :: | vdw_r |
VdW radii for the atoms of the system |
||
real(kind=rp), | public, | allocatable, dimension(:) | :: | vdw_e |
Vdw energies for the atoms of fthe system |
||
real(kind=rp), | public, | allocatable, dimension(:) | :: | vdw_f |
Scale factor for displacing the interaction center |
||
integer(kind=ip), | public | :: | npair | = | 0 |
Number of nonbonded pair parameters |
|
logical(kind=lp), | public, | allocatable | :: | vdw_pair_mask_a(:,:) |
Mask to apply a pair parameter to a pair of atoms dimension is Natoms x Nparams |
||
logical(kind=lp), | public, | allocatable | :: | vdw_pair_mask_b(:,:) |
Mask to apply a pair parameter to a pair of atoms dimension is Natoms x Nparams |
||
real(kind=rp), | public, | allocatable | :: | vdw_pair_r(:) |
Radii for the VdW atom pairs |
||
real(kind=rp), | public, | allocatable | :: | vdw_pair_e(:) |
VdW energies for atom pairs |
||
real(kind=rp), | public, | dimension(4) | :: | vdw_screening | = | [0.0, 0.0, 1.0, 1.0] |
Screening factors for 1,2 1,3 and 1,4 neighbours. Default vaules from tinker manual. |
real(kind=rp), | public | :: | radf | = | 1.0 |
Scal factor for atomic radii/diameters (1.0 is used for diameters, 2.0 for radii) |
|
integer(kind=ip), | public | :: | radrule |
Flag for the radius rule to be used |
|||
integer(kind=ip), | public | :: | radtype |
Flag for the radius type |
|||
integer(kind=ip), | public | :: | vdwtype |
Flag for the vdW type |
|||
integer(kind=ip), | public | :: | epsrule |
Flag for eps rule !!TODO |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ommp_nonbonded_type), | intent(in), | target | :: | vdw |
Nonbonded data structure |
|
integer(kind=ip), | intent(in) | :: | i |
Indices of interacting atoms |
||
integer(kind=ip), | intent(in) | :: | j |
Indices of interacting atoms |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ommp_nonbonded_type), | intent(in) | :: | vdw |
Nonbonded data structure |
||
integer(kind=ip), | intent(in) | :: | i |
Indices of interacting atoms |
||
integer(kind=ip), | intent(in) | :: | j |
Indices of interacting atoms |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ommp_nonbonded_type), | intent(in), | target | :: | vdw1 |
Nonbonded data structure |
|
type(ommp_nonbonded_type), | intent(in), | target | :: | vdw2 |
Nonbonded data structure |
|
integer(kind=ip), | intent(in) | :: | i |
Indices of interacting atoms |
||
integer(kind=ip), | intent(in) | :: | j |
Indices of interacting atoms |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ommp_nonbonded_type), | intent(in) | :: | vdw1 |
Nonbonded data structure |
||
type(ommp_nonbonded_type), | intent(in) | :: | vdw2 |
Nonbonded data structure |
||
integer(kind=ip), | intent(in) | :: | i |
Indices of interacting atoms |
||
integer(kind=ip), | intent(in) | :: | j |
Indices of interacting atoms |
Initialize the non-bonded object allocating the parameters vectors
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ommp_nonbonded_type), | intent(inout) | :: | vdw | |||
type(ommp_topology_type), | intent(in), | target | :: | top | ||
character(len=*) | :: | vdw_type | ||||
character(len=*) | :: | radius_rule | ||||
character(len=*) | :: | radius_size | ||||
character(len=*) | :: | radius_type | ||||
character(len=*) | :: | epsrule | ||||
real(kind=rp) | :: | cutoff |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ommp_nonbonded_type), | intent(inout) | :: | vdw | |||
real(kind=rp), | intent(in) | :: | cutoff | |||
integer(kind=ip), | intent(in) | :: | subdivision |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ommp_nonbonded_type), | intent(inout) | :: | vdw |
Remove the VdW interaction from the specified atom the atom will not interact anymore with any other atom
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ommp_nonbonded_type), | intent(inout) | :: | vdw | |||
integer(kind=ip), | intent(in) | :: | i |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ommp_nonbonded_type), | intent(inout) | :: | vdw |
Nonbonded data structure |
||
logical(kind=lp), | intent(in) | :: | mask_a(vdw%top%mm_atoms) | |||
logical(kind=lp), | intent(in) | :: | mask_b(vdw%top%mm_atoms) | |||
real(kind=rp), | intent(in) | :: | r |
Equilibrium distance for the pair |
||
real(kind=rp), | intent(in) | :: | e |
Depth of the potential |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rp), | intent(in) | :: | Rij | |||
real(kind=rp), | intent(in) | :: | Rij0 | |||
real(kind=rp), | intent(in) | :: | Eij | |||
real(kind=rp), | intent(inout) | :: | V |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rp), | intent(in) | :: | Rij | |||
real(kind=rp), | intent(in) | :: | Rij0 | |||
real(kind=rp), | intent(in) | :: | Eij | |||
real(kind=rp), | intent(out) | :: | Rijgrad |
Compute the dispersion-repulsion energy using the buffered 7-14 potential. Details can be found in ref: 10.1021/jp027815
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rp), | intent(in) | :: | Rij | |||
real(kind=rp), | intent(in) | :: | Rij0 | |||
real(kind=rp), | intent(in) | :: | Eij | |||
real(kind=rp), | intent(inout) | :: | V |
Compute the gradient of vdw energy (using the buffered 7-14 potential ref: 10.1021/jp027815) with respect to the distance between the two atoms (Rij).
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rp), | intent(in) | :: | Rij | |||
real(kind=rp), | intent(in) | :: | Rij0 | |||
real(kind=rp), | intent(in) | :: | Eij | |||
real(kind=rp), | intent(out) | :: | Rijgrad |
Compute the dispersion repulsion energy for the whole system using a double loop algorithm
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ommp_nonbonded_type), | intent(in), | target | :: | vdw |
Nonbonded data structure |
|
real(kind=rp), | intent(inout) | :: | V |
Potential, result will be added |
Compute the dispersion repulsion geometric gradients for the whole system using a double loop algorithm
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ommp_nonbonded_type), | intent(in), | target | :: | vdw |
Nonbonded data structure |
|
real(kind=rp), | intent(inout) | :: | grad(3,vdw%top%mm_atoms) |
Gradients, result will be added |
Compute the dispersion repulsion energy for the whole system using a double loop algorithm
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ommp_nonbonded_type), | intent(in), | target | :: | vdw1 |
Nonbonded data structure |
|
type(ommp_nonbonded_type), | intent(in), | target | :: | vdw2 |
Nonbonded data structure |
|
real(kind=rp), | intent(inout) | :: | V |
Potential, result will be added |
Compute the dispersion repulsion energy for the whole system using a double loop algorithm
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ommp_nonbonded_type), | intent(in), | target | :: | vdw1 |
Nonbonded data structure |
|
type(ommp_nonbonded_type), | intent(in), | target | :: | vdw2 |
Nonbonded data structure |
|
real(kind=rp), | intent(inout) | :: | grad1(3,vdw1%top%mm_atoms) |
Potential, result will be added |
||
real(kind=rp), | intent(inout) | :: | grad2(3,vdw2%top%mm_atoms) |
Potential, result will be added |
Compute the dispersion repulsion energy between two systems vdw1 and vdw2 accounting only for the pairs pairs(1,i)--pairs(2,i) and scaling each interaction by s(i).
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ommp_nonbonded_type), | intent(in), | target | :: | vdw1 |
Nonbonded data structure |
|
type(ommp_nonbonded_type), | intent(in), | target | :: | vdw2 |
Nonbonded data structure |
|
integer(kind=ip), | intent(in) | :: | pairs(2,n) |
pairs of atoms for which the interaction should be computed |
||
real(kind=rp), | intent(in) | :: | s(:) |
scaling factors for each interaction |
||
integer(kind=ip), | intent(in) | :: | n |
number of pairs for which the interaction should be computed |
||
real(kind=rp), | intent(inout) | :: | V |
Potential, result will be added |
Compute the dispersion repulsion energy for the whole system using a double loop algorithm
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ommp_nonbonded_type), | intent(in), | target | :: | vdw1 |
Nonbonded data structure |
|
type(ommp_nonbonded_type), | intent(in), | target | :: | vdw2 |
Nonbonded data structure |
|
integer(kind=ip), | intent(in) | :: | pairs(2,n) |
pairs of atoms for which the interaction should be computed |
||
real(kind=rp), | intent(in) | :: | s(:) |
scaling factors for each interaction |
||
integer(kind=ip), | intent(in) | :: | n |
number of pairs for which the interaction should be computed |
||
real(kind=rp), | intent(inout) | :: | grad1(3,vdw1%top%mm_atoms) |
Potential, result will be added |
||
real(kind=rp), | intent(inout) | :: | grad2(3,vdw2%top%mm_atoms) |
Potential, result will be added |