Octopus
pcm.F90 File Reference

Go to the source code of this file.

Modules

module  pcm_oct_m
 

Data Types

type  pcm_oct_m::pcm_sphere_t
 The cavity hosting the solute molecule is built from a set of interlocking spheres with optimized radii centered at the nuclear positions. More...
 
type  pcm_oct_m::pcm_t
 
type  pcm_oct_m::pcm_min_t
 

Functions/Subroutines

subroutine, public pcm_oct_m::pcm_init (pcm, namespace, space, ions, grid, qtot, val_charge, external_potentials_present, kick_present)
 Initializes the PCM calculation: reads the VdW molecular cavity and generates the PCM response matrix. More...
 
subroutine, public pcm_oct_m::pcm_calc_pot_rs (pcm, mesh, psolver, ions, v_h, v_ext, kick, time_present, kick_time)
 
subroutine, public pcm_oct_m::pcm_v_cav_li (v_cav, v_mesh, pcm, mesh)
 Calculates the Hartree/external/kick potential at the tessera representative points by doing a 3D linear interpolation. More...
 
subroutine, public pcm_oct_m::pcm_v_nuclei_cav (v_n_cav, ions, tess, n_tess)
 Calculates the classical electrostatic potential geneated by the nuclei at the tesserae. \( v_{n_cav(ik)} = \sum_{I=1}^{natoms} Z_val / |s_{ik} - R_I| \). More...
 
subroutine, public pcm_oct_m::pcm_elect_energy (ions, pcm, E_int_ee, E_int_en, E_int_ne, E_int_nn, E_int_e_ext, E_int_n_ext)
 Calculates the solute-solvent electrostatic interaction energy \( E_M-solv = \sum_{ik=1}^n_tess { [VHartree(ik) + Vnuclei(ik)]*[q_e(ik) + q_n(ik)] } \) \( (if external potential) + q_ext(ik) \). More...
 
subroutine, public pcm_oct_m::pcm_charges (q_pcm, q_pcm_tot, v_cav, pcm_mat, n_tess, qtot_nominal, epsilon, renorm_charges, q_tot_tol, deltaQ)
 Calculates the polarization charges at each tessera by using the response matrix 'pcm_mat', provided the value of the molecular electrostatic potential at the tesserae: \( q_pcm(ia) = \sum_{ib}^{n_tess} pcm_mat(ia,ib)*v_cav(ib) \). More...
 
logical function pcm_oct_m::pcm_nn_in_mesh (pcm, mesh)
 Check wether the nearest neighbor requested are in the mesh or not. More...
 
subroutine pcm_oct_m::pcm_poisson_sanity_check (pcm, mesh)
 Check that all the required nearest neighbors are prensent in the mesh. More...
 
subroutine, public pcm_oct_m::pcm_charge_density (pcm, q_pcm, q_pcm_tot, mesh, rho)
 Generates the polarization charge density smearing the charge with a gaussian distribution on the mesh nearest neighboring points of each tessera. More...
 
subroutine, public pcm_oct_m::pcm_pot_rs (pcm, v_pcm, q_pcm, rho, mesh, psolver)
 Generates the potential 'v_pcm' in real-space. More...
 
subroutine pcm_oct_m::pcm_pot_rs_poisson (namespace, v_pcm, psolver, rho)
 Generates the potential 'v_pcm' in real-space solving the poisson equation for rho. More...
 
subroutine pcm_oct_m::pcm_pot_rs_direct (v_pcm, q_pcm, tess, n_tess, mesh, width_factor)
 Generates the potential 'v_pcm' in real-space by direct sum. More...
 
subroutine pcm_oct_m::pcm_matrix (eps, tess, n_tess, pcm_mat, localf)
 Generates the PCM response matrix. J. Tomassi et al. Chem. Rev. 105, 2999 (2005). More...
 
subroutine pcm_oct_m::s_i_matrix (n_tess, tess)
 
subroutine pcm_oct_m::d_i_matrix (n_tess, tess)
 
real(real64) function pcm_oct_m::s_mat_elem_i (tessi, tessj)
 electrostatic Green function in vacuo: \( G_I(r,r^\prime) = 1 / | r - r^\prime | \) More...
 
real(real64) function pcm_oct_m::d_mat_elem_i (tessi, tessj)
 Gradient of the Green function in vacuo \( GRAD[G_I(r,r^\prime)] \). More...
 
subroutine pcm_oct_m::cav_gen (tess_sphere, tess_min_distance, nesf, sfe, nts, cts, unit_pcminfo)
 It builds the solute cavity surface and calculates the vertices, representative points and areas of the tesserae by using the Gauss-Bonnet theorem. More...
 
subroutine pcm_oct_m::subtessera (sfe, ns, nesf, nv, pts, ccc, pp, pp1, area)
 find the uncovered region for each tessera and computes the area, the representative point (pp) and the unitary normal vector (pp1) More...
 
subroutine pcm_oct_m::inter (sfe, p1, p2, p3, p4, ns, ia)
 Finds the point 'p4', on the arc 'p1'-'p2' developed from 'p3', which is on the surface of sphere 'ns'. p4 is a linear combination of p1 and p2 with the 'alpha' parameter optimized iteratively. More...
 
subroutine pcm_oct_m::gaubon (sfe, nv, ns, pts, ccc, pp, pp1, area, intsph)
 Use the Gauss-Bonnet theorem to calculate the area of the tessera with vertices 'pts(3,nv)'. Area = \( R^2 [ 2pi + S(Phi(N)cosT(N)) - S(Beta(N)) ] \) Phi(n): length of the arc in radians of the side 'n'. T(n): azimuthal angle for the side 'n' Beta(n): external angle respect to vertex 'n'. More...
 
subroutine pcm_oct_m::vecp (p1, p2, p3, dnorm)
 calculates the vectorial product p3 = p1 x p2 More...
 
subroutine, public pcm_oct_m::pcm_end (pcm)
 
logical function, public pcm_oct_m::pcm_update (this)
 Update pcm potential. More...
 
real(real64) function, public pcm_oct_m::pcm_get_vdw_radius (species, pcm_vdw_type, namespace)
 get the vdw radius More...
 
subroutine, public pcm_oct_m::pcm_dipole (mu_pcm, q_pcm, tess, n_tess)
 Computes the dipole moment mu_pcm due to a distribution of charges q_pcm. More...
 
subroutine, public pcm_oct_m::pcm_field (e_pcm, q_pcm, ref_point, tess, n_tess)
 Computes the field e_pcm at the reference point ref_point due to a distribution of charges q_pcm. More...
 
subroutine, public pcm_oct_m::pcm_eps (pcm, eps, omega)
 
subroutine, public pcm_oct_m::pcm_min_input_parsing_for_spectrum (pcm, namespace)
 
subroutine pcm_oct_m::pcm_eps_deb (eps, deb, omega)
 
subroutine pcm_oct_m::pcm_eps_drl (eps, drl, omega)
 

Variables

integer, parameter pcm_oct_m::pcm_dim_space = 3
 The resulting cavity is discretized by a set of tesserae defined in 3d. More...
 
real(real64), dimension(:,:), allocatable pcm_oct_m::s_mat_act
 S_I matrix. More...
 
real(real64), dimension(:,:), allocatable pcm_oct_m::d_mat_act
 D_I matrix. More...
 
real(real64), dimension(:,:), allocatable pcm_oct_m::sigma
 S_E matrix. More...
 
real(real64), dimension(:,:), allocatable pcm_oct_m::delta
 D_E matrix in JCP 139, 024105 (2013). More...
 
logical pcm_oct_m::gamess_benchmark
 Decide to output pcm_matrix in a GAMESS format. More...
 
real(real64), dimension(:,:), allocatable pcm_oct_m::mat_gamess
 PCM matrix formatted to be inputed to GAMESS. More...
 
integer, parameter, public pcm_oct_m::pcm_td_eq = 0
 
integer, parameter, public pcm_oct_m::pcm_td_neq = 1
 
integer, parameter, public pcm_oct_m::pcm_td_eom = 2
 
integer, parameter, public pcm_oct_m::pcm_calc_direct = 1
 
integer, parameter, public pcm_oct_m::pcm_calc_poisson = 2
 
integer, parameter pcm_oct_m::pcm_vdw_optimized = 1
 
integer, parameter pcm_oct_m::pcm_vdw_species = 2
 
integer, parameter pcm_oct_m::n_tess_sphere = 60
 minimum number of tesserae per sphere More...