| 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  | 
        
    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