ia_vdw_m Module

Routines to evaulate pairwise potentials and their derivative.

The following styles are available:


Uses

  • module~~ia_vdw_m~~UsesGraph module~ia_vdw_m ia_vdw_m module~constants_m constants_m module~ia_vdw_m->module~constants_m module~atmcfg_m atmcfg_m module~ia_vdw_m->module~atmcfg_m iso_fortran_env iso_fortran_env module~constants_m->iso_fortran_env module~atmcfg_m->module~constants_m

Used by

  • module~~ia_vdw_m~~UsedByGraph module~ia_vdw_m ia_vdw_m module~interaction_m interaction_m module~interaction_m->module~ia_vdw_m module~bd_solver_m bd_solver_m module~bd_solver_m->module~interaction_m module~setup_m setup_m module~setup_m->module~interaction_m module~setup_m->module~bd_solver_m program~main main program~main->module~setup_m

Contents


Subroutines

public subroutine ia_vdw_setup(num_vdw_types, vdw_styles, vdw_params)

Sets up parameters for vdw potentials

Arguments

Type IntentOptional AttributesName
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

public subroutine ia_get_vdw_force(rij_mag, qi, qj, sty, params, enrg, frc, ierr)

Calculates the energy & its derivative due to a single interacting pair of atoms.

Arguments

Type IntentOptional AttributesName
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

private subroutine vdw_lj_set(params, eps, sigma, rcut)

Setter for 12-6 LJ (truncated & force-shifted) interaction.

Read more…

Arguments

Type IntentOptional AttributesName
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

private pure subroutine vdw_lj(r, params, enrg, frc)

Evaluates the potential and its derivative for LJ interaction. See vdw_lj_set.

Arguments

Type IntentOptional AttributesName
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

private subroutine vdw_gaussian_set(params, A, B, rcut)

Setter for gaussian interaction. The potential is truncated and force-shifted.

Read more…

Arguments

Type IntentOptional AttributesName
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

private pure subroutine vdw_gaussian(r, params, enrg, frc)

Calculates energy & its derivative for gaussian interaction. See vdw_gaussian_set.

Arguments

Type IntentOptional AttributesName
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

private subroutine vdw_cosine_set(params, A, rcut)

Setter for cosine interaction.

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=rp), intent(inout), dimension(:):: params
real(kind=rp), intent(in), optional :: A
real(kind=rp), intent(in), optional :: rcut

private pure subroutine vdw_cosine(r, params, enrg, frc)

Evaluates the potential and its derivative for cosine interaction. See vdw_cosine_set.

Arguments

Type IntentOptional AttributesName
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

private subroutine vdw_lj_coul_debye_set(params, eps, sigma, rcut, rcut_coul, C, kappa)

Setter for 12-6 LJ with screened Coulombic interaction.

Read more…

Arguments

Type IntentOptional AttributesName
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

private pure subroutine vdw_lj_coul_debye(r, qiqj, params, enrg, frc)

Evaluates the potential and its derivative for screened Coulombic interaction combined with 12-6 LJ (cut & shifted). See vdw_lj_coul_debye_set.

Arguments

Type IntentOptional AttributesName
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

private subroutine vdw_lj_coul_set(params, eps, sigma, rcut, rcut_coul, C)

Setter for 12-6 LJ with Coulombic interaction.

Read more…

Arguments

Type IntentOptional AttributesName
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

private pure subroutine vdw_lj_coul(r, qiqj, params, enrg, frc)

Evaluates the potential and its derivative for Coulombic interaction combined with 12-6 LJ (cut & shifted). See vdw_lj_coul_set.

Arguments

Type IntentOptional AttributesName
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

private subroutine vdw_dpd_set(params, A, rcut)

Setter for standard DPD interaction.

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=rp), intent(inout), dimension(:):: params
real(kind=rp), intent(in), optional :: A
real(kind=rp), intent(in), optional :: rcut

private pure subroutine vdw_dpd(r, params, enrg, frc)

Evaluates the potential and its derivative for standard DPD interaction. See vdw_dpd_set.

Arguments

Type IntentOptional AttributesName
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