Routines to evaulate pairwise potentials and their derivative.
The following styles are available:
Sets up parameters for vdw potentials
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | num_vdw_types | Number of types of vdw interactions |
||
integer, | intent(in), | dimension(:) | :: | vdw_styles | Styles for each type |
|
real(kind=rp), | intent(inout), | dimension(:,:) | :: | vdw_params | Parameters for each type, depending on style |
Calculates the energy & its derivative due to a single interacting pair of atoms.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rp), | intent(in) | :: | rij_mag | Distance between two atoms |
||
real(kind=rp), | intent(in) | :: | qi | Charge on atom i |
||
real(kind=rp), | intent(in) | :: | qj | Charge on atom j |
||
integer, | intent(in) | :: | sty | Style of vdw interaction |
||
real(kind=rp), | intent(in), | dimension(:) | :: | params | Parameters for vdw interaction |
|
real(kind=rp), | intent(out) | :: | enrg | Energy |
||
real(kind=rp), | intent(out) | :: | frc | Derivative of the potential. This is the magnitude of force due to this potential. |
||
integer, | intent(out) | :: | ierr | Error flag |
Setter for 12-6 LJ (truncated & force-shifted) interaction.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rp), | intent(inout), | dimension(:) | :: | params | ||
real(kind=rp), | intent(in), | optional | :: | eps | ||
real(kind=rp), | intent(in), | optional | :: | sigma | ||
real(kind=rp), | intent(in), | optional | :: | rcut |
Evaluates the potential and its derivative for LJ interaction. See vdw_lj_set.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rp), | intent(in) | :: | r | |||
real(kind=rp), | intent(in), | dimension(:) | :: | params | ||
real(kind=rp), | intent(out) | :: | enrg | |||
real(kind=rp), | intent(out) | :: | frc |
Setter for gaussian interaction. The potential is truncated and force-shifted.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rp), | intent(inout), | dimension(:) | :: | params | ||
real(kind=rp), | intent(in), | optional | :: | A | ||
real(kind=rp), | intent(in), | optional | :: | B | ||
real(kind=rp), | intent(in), | optional | :: | rcut |
Calculates energy & its derivative for gaussian interaction. See vdw_gaussian_set.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rp), | intent(in) | :: | r | |||
real(kind=rp), | intent(in), | dimension(:) | :: | params | ||
real(kind=rp), | intent(out) | :: | enrg | |||
real(kind=rp), | intent(out) | :: | frc |
Setter for cosine interaction.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rp), | intent(inout), | dimension(:) | :: | params | ||
real(kind=rp), | intent(in), | optional | :: | A | ||
real(kind=rp), | intent(in), | optional | :: | rcut |
Evaluates the potential and its derivative for cosine interaction. See vdw_cosine_set.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rp), | intent(in) | :: | r | |||
real(kind=rp), | intent(in), | dimension(:) | :: | params | ||
real(kind=rp), | intent(out) | :: | enrg | |||
real(kind=rp), | intent(out) | :: | frc |
Setter for 12-6 LJ with screened Coulombic interaction.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rp), | intent(inout), | dimension(:) | :: | params | ||
real(kind=rp), | intent(in), | optional | :: | eps | ||
real(kind=rp), | intent(in), | optional | :: | sigma | ||
real(kind=rp), | intent(in), | optional | :: | rcut | ||
real(kind=rp), | intent(in), | optional | :: | rcut_coul | ||
real(kind=rp), | intent(in), | optional | :: | C | ||
real(kind=rp), | intent(in), | optional | :: | kappa |
Evaluates the potential and its derivative for screened Coulombic interaction combined with 12-6 LJ (cut & shifted). See vdw_lj_coul_debye_set.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rp), | intent(in) | :: | r | |||
real(kind=rp), | intent(in) | :: | qiqj | |||
real(kind=rp), | intent(in), | dimension(:) | :: | params | ||
real(kind=rp), | intent(out) | :: | enrg | |||
real(kind=rp), | intent(out) | :: | frc |
Setter for 12-6 LJ with Coulombic interaction.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rp), | intent(inout), | dimension(:) | :: | params | ||
real(kind=rp), | intent(in), | optional | :: | eps | ||
real(kind=rp), | intent(in), | optional | :: | sigma | ||
real(kind=rp), | intent(in), | optional | :: | rcut | ||
real(kind=rp), | intent(in), | optional | :: | rcut_coul | ||
real(kind=rp), | intent(in), | optional | :: | C |
Evaluates the potential and its derivative for Coulombic interaction combined with 12-6 LJ (cut & shifted). See vdw_lj_coul_set.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rp), | intent(in) | :: | r | |||
real(kind=rp), | intent(in) | :: | qiqj | |||
real(kind=rp), | intent(in), | dimension(:) | :: | params | ||
real(kind=rp), | intent(out) | :: | enrg | |||
real(kind=rp), | intent(out) | :: | frc |
Setter for standard DPD interaction.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rp), | intent(inout), | dimension(:) | :: | params | ||
real(kind=rp), | intent(in), | optional | :: | A | ||
real(kind=rp), | intent(in), | optional | :: | rcut |
Evaluates the potential and its derivative for standard DPD interaction. See vdw_dpd_set.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rp), | intent(in) | :: | r | |||
real(kind=rp), | intent(in), | dimension(:) | :: | params | ||
real(kind=rp), | intent(out) | :: | enrg | |||
real(kind=rp), | intent(out) | :: | frc |