ommp_qm_helper Derived Type

type, public :: ommp_qm_helper


Inherits

type~~ommp_qm_helper~~InheritsGraph type~ommp_qm_helper ommp_qm_helper type~ommp_topology_type ommp_topology_type type~ommp_qm_helper->type~ommp_topology_type qm_top type~ommp_nonbonded_type ommp_nonbonded_type type~ommp_qm_helper->type~ommp_nonbonded_type qm_vdw type~yale_sparse yale_sparse type~ommp_topology_type->type~yale_sparse conn type~ommp_nonbonded_type->type~ommp_topology_type top type~ommp_neigh_list ommp_neigh_list type~ommp_nonbonded_type->type~ommp_neigh_list nl type~ommp_neigh_list->type~yale_sparse c2p

Contents

Source Code


Components

Type Visibility Attributes Name Initial
type(ommp_topology_type), public, allocatable :: qm_top

Topology of the QM system

logical(kind=lp), public :: reconnect = .false.

Flag to decide if the topology should be rebuily at each change of geometry.

real(kind=rp), public, allocatable :: qqm(:)

Charges of QM nuclei

logical(kind=lp), public :: E_n2p_done = .false.

Flag for E_n2p

real(kind=rp), public, allocatable :: E_n2p(:,:)

Electric field of nuclei at polarizable sites

logical(kind=lp), public :: G_n2p_done = .false.

Flag for G_n2p

real(kind=rp), public, allocatable :: G_n2p(:,:)

Electric field gradients of nuclei at polarizable sites

logical(kind=lp), public :: E_n2m_done = .false.

Flag for E_n2m

real(kind=rp), public, allocatable :: E_n2m(:,:)

Electric field of nuclei at static sites

logical(kind=lp), public :: G_n2m_done = .false.

Flag for G_n2m

real(kind=rp), public, allocatable :: G_n2m(:,:)

Electric field gradients of nuclei at static sites

logical(kind=lp), public :: H_n2m_done = .false.

Flag for H_n2m

real(kind=rp), public, allocatable :: H_n2m(:,:)

Electric field Hessian of nuclei at static sites

logical(kind=lp), public :: V_m2n_done = .false.

Flag for V_m2n

real(kind=rp), public, allocatable :: V_m2n(:)

Electrostatic potential of MMPol atoms (static) at QM nuclei

logical(kind=lp), public :: E_m2n_done = .false.

Flag for E_m2n

real(kind=rp), public, allocatable :: E_m2n(:,:)

Electrostatic potential of MMPol atoms (static) at QM nuclei

logical(kind=lp), public :: V_p2n_done = .false.

Flag for V_p2n

real(kind=rp), public, allocatable :: V_p2n(:)

Electrostatic potential of MMPol atoms (polarizable) at QM nuclei

logical(kind=lp), public :: V_pp2n_done = .false.

Flag for V_pp2n

logical(kind=lp), public :: V_pp2n_req = .false.

Flag to enable the computation of V_pp2n, this is only needed in some wired cases like when using qm_helper as driver for DFTB

real(kind=rp), public, allocatable :: V_pp2n(:)

Electrostatic potential of MMPol atoms (polarizable, AMOEBA P dipoles) at QM nuclei

logical(kind=lp), public :: E_p2n_done = .false.

Flag for E_p2n

real(kind=rp), public, allocatable :: E_p2n(:,:)

Electrostatic potential of MMPol atoms (polarizable) at QM nuclei

logical(kind=lp), public :: use_nonbonded = .false.

Flag for using QM nonbonded terms

type(ommp_nonbonded_type), public, allocatable :: qm_vdw

Structure to store VdW parameter for QM atoms


Source Code

    type ommp_qm_helper
        type(ommp_topology_type), allocatable :: qm_top
        !! Topology of the QM system
        logical(lp) :: reconnect = .false.
        !! Flag to decide if the topology should be rebuily
        !! at each change of geometry.
        real(rp), allocatable :: qqm(:)
        !! Charges of QM nuclei
        logical(lp) :: E_n2p_done = .false.
        !! Flag for [[E_n2p]]
        real(rp), allocatable :: E_n2p(:,:)
        !! Electric field of nuclei at polarizable sites
        logical(lp) :: G_n2p_done = .false.
        !! Flag for [[G_n2p]]
        real(rp), allocatable :: G_n2p(:,:)
        !! Electric field gradients of nuclei at polarizable sites
        logical(lp) :: E_n2m_done = .false.
        !! Flag for [[E_n2m]]
        real(rp), allocatable :: E_n2m(:,:)
        !! Electric field of nuclei at static sites
        logical(lp) :: G_n2m_done = .false.
        !! Flag for [[G_n2m]]
        real(rp), allocatable :: G_n2m(:,:)
        !! Electric field gradients of nuclei at static sites
        logical(lp) :: H_n2m_done = .false.
        !! Flag for [[H_n2m]]
        real(rp), allocatable :: H_n2m(:,:)
        !! Electric field Hessian of nuclei at static sites
        logical(lp) :: V_m2n_done = .false.
        !! Flag for [[V_m2n]]
        real(rp), allocatable :: V_m2n(:)
        !! Electrostatic potential of MMPol atoms (static) at QM nuclei
        logical(lp) :: E_m2n_done = .false.
        !! Flag for [[E_m2n]]
        real(rp), allocatable :: E_m2n(:,:)
        !! Electrostatic potential of MMPol atoms (static) at QM nuclei
        logical(lp) :: V_p2n_done = .false.
        !! Flag for [[V_p2n]]
        real(rp), allocatable :: V_p2n(:)
        !! Electrostatic potential of MMPol atoms (polarizable) at QM nuclei
        logical(lp) :: V_pp2n_done = .false.
        !! Flag for [[V_pp2n]]
        logical(lp) :: V_pp2n_req = .false.
        !! Flag to enable the computation of V_pp2n, this is only needed in some
        !! wired cases like when using qm_helper as driver for DFTB
        real(rp), allocatable :: V_pp2n(:)
        !! Electrostatic potential of MMPol atoms (polarizable, AMOEBA P dipoles) at QM nuclei
        logical(lp) :: E_p2n_done = .false.
        !! Flag for [[E_p2n]]
        real(rp), allocatable :: E_p2n(:,:)
        !! Electrostatic potential of MMPol atoms (polarizable) at QM nuclei
        logical(lp) :: use_nonbonded = .false.
        !! Flag for using QM nonbonded terms
        type(ommp_nonbonded_type), allocatable :: qm_vdw
        !! Structure to store VdW parameter for QM atoms
    end type ommp_qm_helper