Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(ommp_topology_type), | public, | pointer | :: | top |
Data structure for topology |
||
integer(kind=ip), | public | :: | nbond |
Number of bond terms in the potential energy function |
|||
integer(kind=ip), | public, | allocatable | :: | bondat(:,:) |
Atoms involved in the ith bond term |
||
real(kind=rp), | public | :: | bond_cubic |
3rd and 4th order terms coefficients, corresponding to and |
|||
real(kind=rp), | public | :: | bond_quartic |
3rd and 4th order terms coefficients, corresponding to and |
|||
real(kind=rp), | public, | allocatable | :: | kbond(:) |
Force constants for bond terms |
||
real(kind=rp), | public, | allocatable | :: | l0bond(:) |
Equilibrium lengths for bonds |
||
logical(kind=lp), | public | :: | use_bond | = | .false. |
Flag to enable the calculation of bond terms in potential energy function |
|
integer(kind=ip), | public | :: | nangle |
Number of angle terms in the potential energy function |
|||
integer(kind=ip), | public, | allocatable | :: | angleat(:,:) |
Atoms involved in the ith angle term |
||
integer(kind=ip), | public, | allocatable | :: | anglety(:) |
Type of function to be used for ith angle term |
||
integer(kind=ip), | public, | allocatable | :: | angauxat(:) |
Auxiliary atom to be used in calculaton of ith angle term |
||
real(kind=rp), | public | :: | angle_cubic |
Coefficients for 3rd to 6th order terms corresponding to ... . |
|||
real(kind=rp), | public | :: | angle_quartic |
Coefficients for 3rd to 6th order terms corresponding to ... . |
|||
real(kind=rp), | public | :: | angle_pentic |
Coefficients for 3rd to 6th order terms corresponding to ... . |
|||
real(kind=rp), | public | :: | angle_sextic |
Coefficients for 3rd to 6th order terms corresponding to ... . |
|||
real(kind=rp), | public, | allocatable | :: | kangle(:) |
Force constants for the ith angle term |
||
real(kind=rp), | public, | allocatable | :: | eqangle(:) |
Equilibrium angle for the ith angle term |
||
logical(kind=lp), | public | :: | use_angle | = | .false. |
Flag to enable the calculation of angle terms in potential energy function |
|
integer(kind=ip), | public | :: | nstrbnd |
Number of stretching-bending coupling terms in potential energy function |
|||
integer(kind=ip), | public, | allocatable | :: | strbndat(:,:) |
Atoms involved in the ith stretching-bending term |
||
real(kind=rp), | public, | allocatable | :: | strbndk1(:) |
Force constants for the ith stretching-bending term ( and ) |
||
real(kind=rp), | public, | allocatable | :: | strbndk2(:) |
Force constants for the ith stretching-bending term ( and ) |
||
real(kind=rp), | public, | allocatable | :: | strbndthet0(:) |
Equilibrium angle for the ith stretching-bending term |
||
real(kind=rp), | public, | allocatable | :: | strbndl10(:) |
Equilibrium distances for the ith stretching-bending term |
||
real(kind=rp), | public, | allocatable | :: | strbndl20(:) |
Equilibrium distances for the ith stretching-bending term |
||
logical(kind=lp), | public | :: | use_strbnd | = | .false. |
Flag to enable calculation of stretching-bending coupling terms in potential energy function |
|
integer(kind=ip), | public | :: | nangtor | ||||
integer(kind=ip), | public, | allocatable | :: | angtorat(:,:) | |||
integer(kind=ip), | public, | allocatable | :: | angtor_t(:) | |||
integer(kind=ip), | public, | allocatable | :: | angtor_a(:,:) | |||
real(kind=rp), | public, | allocatable | :: | angtork(:,:) | |||
logical(kind=lp), | public | :: | use_angtor | = | .false. | ||
integer(kind=ip), | public | :: | nstrtor | ||||
integer(kind=ip), | public, | allocatable | :: | strtorat(:,:) | |||
integer(kind=ip), | public, | allocatable | :: | strtor_t(:) | |||
integer(kind=ip), | public, | allocatable | :: | strtor_b(:,:) | |||
real(kind=rp), | public, | allocatable | :: | strtork(:,:) | |||
logical(kind=lp), | public | :: | use_strtor | = | .false. | ||
integer(kind=ip), | public | :: | nurey |
Number of Urey-Bradley terms in potential energy function |
|||
integer(kind=ip), | public, | allocatable | :: | ureyat(:,:) |
Atoms involved in ith Urey-Bradley term |
||
real(kind=rp), | public | :: | urey_cubic |
3rd and 4th order constants for U-B potential ( and ) |
|||
real(kind=rp), | public | :: | urey_quartic |
3rd and 4th order constants for U-B potential ( and ) |
|||
real(kind=rp), | public, | allocatable | :: | kurey(:) |
Force constants for U-B terms |
||
real(kind=rp), | public, | allocatable | :: | l0urey(:) |
Equilibrium distance for U-B potentials |
||
logical(kind=lp), | public | :: | use_urey | = | .false. |
Flag to enable calculation of U-B terms in the potential energy function |
|
integer(kind=ip), | public | :: | nopb |
Number of out-of-plane bending function in potential energy func. |
|||
integer(kind=ip), | public, | allocatable | :: | opbat(:,:) |
Atoms involved in ith oop bending function |
||
real(kind=rp), | public | :: | opb_cubic | = | 0.0 |
Coefficients for 3rd to 6th order terms corresponding to ... for out-of-plane bending. |
|
real(kind=rp), | public | :: | opb_quartic | = | 0.0 |
Coefficients for 3rd to 6th order terms corresponding to ... for out-of-plane bending. |
|
real(kind=rp), | public | :: | opb_pentic | = | 0.0 |
Coefficients for 3rd to 6th order terms corresponding to ... for out-of-plane bending. |
|
real(kind=rp), | public | :: | opb_sextic | = | 0.0 |
Coefficients for 3rd to 6th order terms corresponding to ... for out-of-plane bending. |
|
real(kind=rp), | public, | allocatable | :: | kopb(:) |
Force constants for ith out-of plane bending |
||
logical(kind=lp), | public | :: | use_opb | = | .false. |
Flag to enable out-of-plane bending calculation |
|
integer(kind=ip), | public | :: | npitors | ||||
integer(kind=ip), | public, | allocatable | :: | pitorsat(:,:) | |||
real(kind=rp), | public, | allocatable | :: | kpitors(:) | |||
logical(kind=lp), | public | :: | use_pitors | = | .false. | ||
integer(kind=ip), | public | :: | ntorsion | ||||
integer(kind=ip), | public, | allocatable | :: | torsionat(:,:) | |||
integer(kind=ip), | public, | allocatable | :: | torsn(:,:) | |||
real(kind=rp), | public, | allocatable | :: | torsamp(:,:) | |||
real(kind=rp), | public, | allocatable | :: | torsphase(:,:) | |||
logical(kind=lp), | public | :: | use_torsion | = | .false. | ||
integer(kind=ip), | public | :: | nimptorsion | ||||
integer(kind=ip), | public, | allocatable | :: | imptorsionat(:,:) | |||
integer(kind=ip), | public, | allocatable | :: | imptorsn(:,:) | |||
real(kind=rp), | public, | allocatable | :: | imptorsamp(:,:) | |||
real(kind=rp), | public, | allocatable | :: | imptorsphase(:,:) | |||
logical(kind=lp), | public | :: | use_imptorsion | = | .false. | ||
integer(kind=ip), | public | :: | ntortor | ||||
integer(kind=ip), | public, | allocatable | :: | tortorat(:,:) | |||
integer(kind=ip), | public, | allocatable | :: | tortorprm(:) | |||
integer(kind=ip), | public, | allocatable | :: | ttmap_shape(:,:) | |||
real(kind=rp), | public, | allocatable | :: | ttmap_ang1(:) | |||
real(kind=rp), | public, | allocatable | :: | ttmap_ang2(:) | |||
real(kind=rp), | public, | allocatable | :: | ttmap_v(:) | |||
real(kind=rp), | public, | allocatable | :: | ttmap_vx(:) | |||
real(kind=rp), | public, | allocatable | :: | ttmap_vy(:) | |||
real(kind=rp), | public, | allocatable | :: | ttmap_vxy(:) | |||
logical(kind=lp), | public | :: | use_tortor | = | .false. |
type ommp_bonded_type
type(ommp_topology_type), pointer :: top
!! Data structure for topology
! Bond
integer(ip) :: nbond
!! Number of bond terms in the potential energy function
integer(ip), allocatable :: bondat(:,:)
!! Atoms involved in the ith bond term
real(rp) :: bond_cubic, bond_quartic
!! 3rd and 4th order terms coefficients, corresponding to
!! \(k^{(2)}\) and \(k^{(3)}\)
real(rp), allocatable :: kbond(:)
!! Force constants for bond terms
real(rp), allocatable :: l0bond(:)
!! Equilibrium lengths for bonds
logical(lp) :: use_bond = .false.
!! Flag to enable the calculation of bond terms in potential
!! energy function
! Angle
integer(ip) :: nangle
!! Number of angle terms in the potential energy function
integer(ip), allocatable :: angleat(:,:)
!! Atoms involved in the ith angle term
integer(ip), allocatable :: anglety(:)
!! Type of function to be used for ith angle term
integer(ip), allocatable :: angauxat(:)
!! Auxiliary atom to be used in calculaton of ith angle term
real(rp) :: angle_cubic, angle_quartic, angle_pentic, angle_sextic
!! Coefficients for 3rd to 6th order terms corresponding to
!! \(k^{(3)}\) ... \(k^{(6)}\).
real(rp), allocatable :: kangle(:)
!! Force constants for the ith angle term
real(rp), allocatable :: eqangle(:)
!! Equilibrium angle for the ith angle term
logical(lp) :: use_angle = .false.
!! Flag to enable the calculation of angle terms in potential energy
!! function
! Stretch-Bend
integer(ip) :: nstrbnd
!! Number of stretching-bending coupling terms in potential energy function
integer(ip), allocatable :: strbndat(:,:)
!! Atoms involved in the ith stretching-bending term
real(rp), allocatable :: strbndk1(:), strbndk2(:)
!! Force constants for the ith stretching-bending term (\(k_1\) and \(k_2\))
real(rp), allocatable :: strbndthet0(:)
!! Equilibrium angle for the ith stretching-bending term
real(rp), allocatable :: strbndl10(:), strbndl20(:)
!! Equilibrium distances for the ith stretching-bending term
logical(lp) :: use_strbnd = .false.
!! Flag to enable calculation of stretching-bending coupling terms in
!! potential energy function
! Angle-Torsion coupling
integer(ip) :: nangtor
integer(ip), allocatable :: angtorat(:,:), angtor_t(:), angtor_a(:,:)
real(rp), allocatable :: angtork(:,:)
logical(lp) :: use_angtor = .false.
! Bond-Torsion coupling
integer(ip) :: nstrtor
integer(ip), allocatable :: strtorat(:,:), strtor_t(:), strtor_b(:,:)
real(rp), allocatable :: strtork(:,:)
logical(lp) :: use_strtor = .false.
! Urey-Bradley
integer(ip) :: nurey
!! Number of Urey-Bradley terms in potential energy function
integer(ip), allocatable :: ureyat(:,:)
!! Atoms involved in ith Urey-Bradley term
real(rp) :: urey_cubic, urey_quartic
!! 3rd and 4th order constants for U-B potential (
!! \(k^{(3)}\) and \(k^{(4)}\))
real(rp), allocatable :: kurey(:)
!! Force constants for U-B terms
real(rp), allocatable :: l0urey(:)
!! Equilibrium distance for U-B potentials
logical(lp) :: use_urey = .false.
!! Flag to enable calculation of U-B terms in the potential energy function
! Out-of-Plane Bending
integer(ip) :: nopb
!! Number of out-of-plane bending function in potential energy func.
integer(ip), allocatable :: opbat(:,:)
!! Atoms involved in ith oop bending function
real(rp) :: opb_cubic=0.0, opb_quartic=0.0, opb_pentic=0.0, opb_sextic=0.0
!! Coefficients for 3rd to 6th order terms corresponding to
!! \(k^{(3)}\) ... \(k^{(6)}\) for out-of-plane bending.
real(rp), allocatable :: kopb(:)
!! Force constants for ith out-of plane bending
logical(lp) :: use_opb = .false.
!! Flag to enable out-of-plane bending calculation
! Pi-torsion
integer(ip) :: npitors
integer(ip), allocatable :: pitorsat(:,:)
real(rp), allocatable :: kpitors(:)
logical(lp) :: use_pitors = .false.
! Torsion
integer(ip) :: ntorsion
integer(ip), allocatable :: torsionat(:,:), torsn(:,:)
real(rp), allocatable :: torsamp(:,:), torsphase(:,:)
logical(lp) :: use_torsion = .false.
! Imporoper Torsion
integer(ip) :: nimptorsion
integer(ip), allocatable :: imptorsionat(:,:), imptorsn(:,:)
real(rp), allocatable :: imptorsamp(:,:), imptorsphase(:,:)
logical(lp) :: use_imptorsion = .false.
! Torsion-torsion coupling (cmap)
integer(ip) :: ntortor
integer(ip), allocatable :: tortorat(:,:), tortorprm(:), ttmap_shape(:,:)
real(rp), allocatable :: ttmap_ang1(:), ttmap_ang2(:), ttmap_v(:), &
ttmap_vx(:), ttmap_vy(:), ttmap_vxy(:)
logical(lp) :: use_tortor = .false.
end type ommp_bonded_type