|
subroutine, public | 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_calc_pot_rs (pcm, mesh, psolver, ions, v_h, v_ext, kick, time_present, kick_time) |
|
subroutine, public | 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_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_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_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_nn_in_mesh (pcm, mesh) |
| Check wether the nearest neighbor requested are in the mesh or not. More...
|
|
subroutine | pcm_poisson_sanity_check (pcm, mesh) |
| Check that all the required nearest neighbors are prensent in the mesh. More...
|
|
subroutine, public | 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_pot_rs (pcm, v_pcm, q_pcm, rho, mesh, psolver) |
| Generates the potential 'v_pcm' in real-space. More...
|
|
subroutine | 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_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_matrix (eps, tess, n_tess, pcm_mat, localf) |
| Generates the PCM response matrix. J. Tomassi et al. Chem. Rev. 105, 2999 (2005). More...
|
|
subroutine | s_i_matrix (n_tess, tess) |
|
subroutine | d_i_matrix (n_tess, tess) |
|
real(real64) function | s_mat_elem_i (tessi, tessj) |
| electrostatic Green function in vacuo: \( G_I(r,r^\prime) = 1 / | r - r^\prime | \) More...
|
|
real(real64) function | d_mat_elem_i (tessi, tessj) |
| Gradient of the Green function in vacuo \( GRAD[G_I(r,r^\prime)] \). More...
|
|
subroutine | 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 | 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 | 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 | 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 | vecp (p1, p2, p3, dnorm) |
| calculates the vectorial product p3 = p1 x p2 More...
|
|
subroutine, public | pcm_end (pcm) |
|
logical function, public | pcm_update (this) |
| Update pcm potential. More...
|
|
real(real64) function, public | pcm_get_vdw_radius (species, pcm_vdw_type, namespace) |
| get the vdw radius More...
|
|
subroutine, public | 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_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_eps (pcm, eps, omega) |
|
subroutine, public | pcm_min_input_parsing_for_spectrum (pcm, namespace) |
|
subroutine | pcm_eps_deb (eps, deb, omega) |
|
subroutine | pcm_eps_drl (eps, drl, omega) |
|
|
integer, parameter | pcm_dim_space = 3 |
| The resulting cavity is discretized by a set of tesserae defined in 3d. More...
|
|
real(real64), dimension(:,:), allocatable | s_mat_act |
| S_I matrix. More...
|
|
real(real64), dimension(:,:), allocatable | d_mat_act |
| D_I matrix. More...
|
|
real(real64), dimension(:,:), allocatable | sigma |
| S_E matrix. More...
|
|
real(real64), dimension(:,:), allocatable | delta |
| D_E matrix in JCP 139, 024105 (2013). More...
|
|
logical | gamess_benchmark |
| Decide to output pcm_matrix in a GAMESS format. More...
|
|
real(real64), dimension(:,:), allocatable | mat_gamess |
| PCM matrix formatted to be inputed to GAMESS. More...
|
|
integer, parameter, public | pcm_td_eq = 0 |
|
integer, parameter, public | pcm_td_neq = 1 |
|
integer, parameter, public | pcm_td_eom = 2 |
|
integer, parameter, public | pcm_calc_direct = 1 |
|
integer, parameter, public | pcm_calc_poisson = 2 |
|
integer, parameter | pcm_vdw_optimized = 1 |
|
integer, parameter | pcm_vdw_species = 2 |
|
integer, parameter | n_tess_sphere = 60 |
| minimum number of tesserae per sphere More...
|
|
subroutine pcm_oct_m::cav_gen |
( |
integer, intent(in) |
tess_sphere, |
|
|
real(real64), intent(in) |
tess_min_distance, |
|
|
integer, intent(in) |
nesf, |
|
|
type(pcm_sphere_t), dimension(:), intent(inout) |
sfe, |
|
|
integer, intent(out) |
nts, |
|
|
type(pcm_tessera_t), dimension(:), intent(out) |
cts, |
|
|
integer, intent(in) |
unit_pcminfo |
|
) |
| |
|
private |
It builds the solute cavity surface and calculates the vertices, representative points and areas of the tesserae by using the Gauss-Bonnet theorem.
- Parameters
-
[in,out] | sfe | (1:pcmn_spheres) |
[out] | cts | (1:pcmn_tesserae) |
Angles corresponding to the vertices and centres of a polyhedron within a sphere of unitary radius and centered at the origin
the vector idum, contained in the matrix jvt1, indicates the vertices of the tesserae (using less than 19 continuations)
geometrical data are converted to Angstrom and back transformed to Bohr at the end of the subroutine.
Coordinates of vertices of tesserae in a sphere with unit radius. the matrix 'cv' and 'xc', 'yc', 'zc' conatin the vertices and the centers of 240 tesserae. The matrix 'jvt1(i,j)' denotes the index of the i-th vertex of the j-th big tessera. On each big tessera the 6 vertices are ordered as follows:
1
4 5
3 6 2
Controls whether the tessera is covered or need to be reshaped it
loop through the tesseare on the sphere 'nsfe'
check the total number of tessera
loop through the spheres
checks if two tesseare are too close
calculating the coordinates of the new tessera weighted by the areas
calculating the normal vector of the new tessera weighted by the areas
calculating the sphere radius of the new tessera weighted by the areas
calculating the area of the new tessera
deleting tessera ja
while loop
Calculates the cavity volume: \( vol = \sum_{its=1}^nts A_{its} s*n/3 \).
transforms results into Bohr.
Definition at line 2226 of file pcm.F90.