Octopus
pcm_eom.F90 File Reference

Go to the source code of this file.

Modules

module  pcm_eom_oct_m
 

Data Types

type  pcm_eom_oct_m::pcm_tessera_t
 tesselation derived type More...
 
type  pcm_eom_oct_m::debye_param_t
 set of parameters for Debye dielectric model More...
 
type  pcm_eom_oct_m::drude_param_t
 set of parameters for Drude-Lorentz dielectric model More...
 

Functions/Subroutines

subroutine, public pcm_eom_oct_m::pcm_charges_propagation (q_t, pot_t, this_dt, this_cts_act, input_asc, this_eom, this_eps, namespace, this_deb, this_drl)
 Driving subroutine for the Equation of Motion (EOM) propagation of the polarization charges within the Integral Equation Formalism (IEF) formulation of the Polarization Continuum Model (PCM). More...
 
subroutine pcm_eom_oct_m::pcm_charges_from_input_file (q_t, pot_t, namespace)
 Polarization charges initialization from input file. More...
 
subroutine pcm_eom_oct_m::init_charges (q_t, pot_t, namespace)
 Polarization charges initialization (in equilibrium with the initial potential for electrons) More...
 
subroutine pcm_eom_oct_m::pcm_ief_prop_deb (q_t, pot_t)
 Euler method for integrating first order EOM for the polarization charges within IEF-PCM in the case of Debye dielectric functions. More...
 
subroutine pcm_eom_oct_m::init_vv_propagator
 Subroutine to initialize numerical constants required by the Velocity-Verlet (VV) algorithm. More...
 
subroutine pcm_eom_oct_m::pcm_ief_prop_vv_ief_drl (q_t, pot_t)
 VV algorithm for integrating second order EOM for the polarization charges within IEF-PCM in the case of Drude-Lorentz dielectric functions. More...
 
subroutine pcm_eom_oct_m::pcm_bem_init (namespace)
 Boundary Element Method (BEM) EOM-IEF-PCM matrices initialization. More...
 
subroutine, public pcm_eom_oct_m::pcm_eom_end ()
 
subroutine pcm_eom_oct_m::do_pcm_propmat (namespace)
 Subroutine to build the required BEM matrices for the EOM-IEF-PCM for Debye and Drude-Lorentz cases. More...
 
subroutine pcm_eom_oct_m::green_d (i, j, value)
 Subroutine to build BEM matrix corresponding to the Calderon operator D, using the Green function of an isotropic medium (!) More...
 
subroutine pcm_eom_oct_m::green_s (i, j, value)
 Subroutine to build BEM matrix corresponding to the Calderon operator S, using the Green function of an isotropic medium (!) More...
 
subroutine pcm_eom_oct_m::allocate_ts_matrix ()
 
subroutine pcm_eom_oct_m::deallocate_ts_matrix ()
 
subroutine pcm_eom_oct_m::do_ts_matrix (namespace)
 Subroutine to build matrices \(S^{1/2}\), \(S^{-1/2}\), \(T\) and \(\Lambda\) (notation of Refs.1-2) More...
 
subroutine, public pcm_eom_oct_m::pcm_eom_enough_initial (not_yet_called)
 

Variables

type(pcm_tessera_t), dimension(:), allocatable pcm_eom_oct_m::cts_act
 tesselation arrays (nts_act) More...
 
integer pcm_eom_oct_m::nts_act
 number of tesserae More...
 
integer, parameter, public pcm_eom_oct_m::pcm_debye_model = 1
 
integer, parameter, public pcm_eom_oct_m::pcm_drude_model = 2
 
integer, parameter, public pcm_eom_oct_m::pcm_electrons = 0
 
integer, parameter, public pcm_eom_oct_m::pcm_nuclei = 1
 
integer, parameter, public pcm_eom_oct_m::pcm_external_potential = 2
 
integer, parameter, public pcm_eom_oct_m::pcm_kick = 3
 
integer, parameter, public pcm_eom_oct_m::pcm_external_plus_kick = 4
 
type(debye_param_t) pcm_eom_oct_m::deb
 
type(drude_param_t) pcm_eom_oct_m::drl
 
integer pcm_eom_oct_m::which_eom
 flag for PCM charges due to: electrons, external potential (including kick) or just the kick More...
 
integer pcm_eom_oct_m::which_eps
 flag for Debye (PCM_DEBYE_MODEL) and Drude-Lorentz (PCM_DRUDE_MODEL) models More...
 
real(real64) pcm_eom_oct_m::dt
 time-step of the propagation More...
 
real(real64), dimension(:), allocatable pcm_eom_oct_m::q_tp
 
real(real64), dimension(:), allocatable pcm_eom_oct_m::dq_tp
 due to solute electrons More...
 
real(real64), dimension(:), allocatable pcm_eom_oct_m::qext_tp
 
real(real64), dimension(:), allocatable pcm_eom_oct_m::dqext_tp
 due to external potential More...
 
real(real64), dimension(:), allocatable pcm_eom_oct_m::qkick_tp
 
real(real64), dimension(:), allocatable pcm_eom_oct_m::dqkick_tp
 due to kick More...
 
real(real64), dimension(:), allocatable pcm_eom_oct_m::pot_tp
 Hartree (electrons) potential in previous iteration. More...
 
real(real64), dimension(:), allocatable pcm_eom_oct_m::potext_tp
 external potential in previous iteration More...
 
real(real64) pcm_eom_oct_m::f1
 
real(real64) pcm_eom_oct_m::f2
 
real(real64) pcm_eom_oct_m::f3
 
real(real64) pcm_eom_oct_m::f4
 
real(real64) pcm_eom_oct_m::f5
 auxiliar constants for VV More...
 
real(real64), dimension(:), allocatable pcm_eom_oct_m::force_tp
 due to solute electrons More...
 
real(real64), dimension(:), allocatable pcm_eom_oct_m::force_qext_tp
 due to external potential More...
 
real(real64), dimension(:), allocatable pcm_eom_oct_m::force_qkick_tp
 due to kick More...
 
real(real64), dimension(:,:), allocatable pcm_eom_oct_m::cals
 
real(real64), dimension(:,:), allocatable pcm_eom_oct_m::cald
 Calderon matrices S and D from Eq.(5), Ref.1. More...
 
real(real64), dimension(:), allocatable pcm_eom_oct_m::eigv
 
real(real64), dimension(:,:), allocatable pcm_eom_oct_m::eigt
 \( \Lambda \) and T matrices from Eq.(10), Ref.1 More...
 
real(real64), dimension(:,:), allocatable pcm_eom_oct_m::sm12
 
real(real64), dimension(:,:), allocatable pcm_eom_oct_m::sp12
 \(S^{-1/2}\) and \(S^{1/2}\) \(Q^{IEF(d)}_0\) (not used in ref.) and \(Q^{IEF(d)}_d\) from Eq.(18) with eps_0/eps_d More...
 
real(real64), dimension(:,:), allocatable pcm_eom_oct_m::matq0
 
real(real64), dimension(:,:), allocatable pcm_eom_oct_m::matqd
 for solute More...
 
real(real64), dimension(:,:), allocatable pcm_eom_oct_m::matq0_lf
 
real(real64), dimension(:,:), allocatable pcm_eom_oct_m::matqd_lf
 for external potential More...
 
real(real64), dimension(:,:), allocatable pcm_eom_oct_m::matqv
 
real(real64), dimension(:,:), allocatable pcm_eom_oct_m::matqq
 for solute More...
 
real(real64), dimension(:,:), allocatable pcm_eom_oct_m::matqv_lf
 for external potential More...
 
logical pcm_eom_oct_m::enough_initial = .false.