Documentation for module cp_ddapc_methods

contains information regarding the decoupling/recoupling method of Bloechl

source: cp_ddapc_methods.F
Loading...

public Subroutines/Functions:

Computes the A matrix for the solution of the linear system
Computes the B vector for the solution of the linear system
Computes the derivative of the A matrix for the evaluation of the Pulay forces
Computes the derivative of B vector for the evaluation of the Pulay forces
deallocate g_dot_rvec_* arrays
Computes the inverse AmI of the Am matrix
...
Evaluates the Ewald term E2 and E3 energy term for the decoupling/coupling of periodic images
precompute sin(g.r) and cos(g.r) for quicker evaluations of sin(g.(r1-r2)) and cos(g.(r1-r2))
Evaluates the electrostatic potential due to a simple solvation model Spherical cavity in a dieletric medium

SUBROUTINEbuild_a_matrix(am, gfunc, w, particle_set, radii, rho_tot_g, gcut, g_dot_rvec_sin, g_dot_rvec_cos)

Computes the A matrix for the solution of the linear system

Arguments:
REAL(dp),
INTENT(inout)
:: am(:,:) ...
REAL(dp),
POINTER
:: gfunc(:,:) ...
REAL(dp),
POINTER
:: w(:) ...
POINTER
:: particle_set(:) ...
REAL(dp),
POINTER
:: radii(:) ...
TYPE(pw_type),
POINTER
:: rho_tot_g ...
REAL(dp),
INTENT(in)
:: gcut ...
REAL(dp),
INTENT(in)
:: g_dot_rvec_sin(:,:) ...
REAL(dp),
INTENT(in)
:: g_dot_rvec_cos(:,:) ...

SUBROUTINEbuild_b_vector(bv, gfunc, w, particle_set, radii, rho_tot_g, gcut)

Computes the B vector for the solution of the linear system

Arguments:
REAL(dp),
INTENT(inout)
:: bv(:) ...
REAL(dp),
POINTER
:: gfunc(:,:) ...
REAL(dp),
POINTER
:: w(:) ...
POINTER
:: particle_set(:) ...
REAL(dp),
POINTER
:: radii(:) ...
TYPE(pw_type),
POINTER
:: rho_tot_g ...
REAL(dp),
INTENT(in)
:: gcut ...

SUBROUTINEbuild_der_a_matrix_rows(dam, gfunc, w, particle_set, radii, rho_tot_g, gcut, iparticle0, nparticles, g_dot_rvec_sin, g_dot_rvec_cos)

Computes the derivative of the A matrix for the evaluation of the Pulay forces

Arguments:
REAL(dp),
INTENT(inout)
:: dam(:,:,:) ...
REAL(dp),
POINTER
:: gfunc(:,:) ...
REAL(dp),
POINTER
:: w(:) ...
POINTER
:: particle_set(:) ...
REAL(dp),
POINTER
:: radii(:) ...
TYPE(pw_type),
POINTER
:: rho_tot_g ...
REAL(dp),
INTENT(in)
:: gcut ...
INTEGER,
INTENT(in)
:: iparticle0 ...
INTEGER,
INTENT(in)
:: nparticles ...
REAL(dp),
INTENT(in)
:: g_dot_rvec_sin(:,:) ...
REAL(dp),
INTENT(in)
:: g_dot_rvec_cos(:,:) ...

SUBROUTINEbuild_der_b_vector(dbv, gfunc, w, particle_set, radii, rho_tot_g, gcut, iparticle0)

Computes the derivative of B vector for the evaluation of the Pulay forces

Arguments:
REAL(dp),
INTENT(inout)
:: dbv(:,:) ...
REAL(dp),
POINTER
:: gfunc(:,:) ...
REAL(dp),
POINTER
:: w(:) ...
POINTER
:: particle_set(:) ...
REAL(dp),
INTENT(in)
:: radii(:) ...
TYPE(pw_type),
POINTER
:: rho_tot_g ...
REAL(dp),
INTENT(in)
:: gcut ...
INTEGER,
INTENT(in)
:: iparticle0 ...

SUBROUTINEcleanup_g_dot_rvec_sin_cos(g_dot_rvec_sin, g_dot_rvec_cos)

deallocate g_dot_rvec_* arrays

Arguments:
REAL(dp),
ALLOCATABLE
:: g_dot_rvec_sin(:,:) ...
REAL(dp),
ALLOCATABLE
:: g_dot_rvec_cos(:,:) ...

SUBROUTINEddapc_eval_ami(gami, c0, gfunc, w, particle_set, gcut, rho_tot_g, radii, iw, vol)

Computes the inverse AmI of the Am matrix

Arguments:
REAL(dp),
POINTER
:: gami(:,:) ...
REAL(dp),
INTENT(out)
:: c0 ...
REAL(dp),
POINTER
:: gfunc(:,:) ...
REAL(dp),
POINTER
:: w(:) ...
POINTER
:: particle_set(:) ...
REAL(dp),
INTENT(in)
:: gcut ...
TYPE(pw_type),
POINTER
:: rho_tot_g ...
REAL(dp),
POINTER
:: radii(:) ...
INTEGER,
INTENT(in)
:: iw ...
REAL(dp),
INTENT(in)
:: vol ...

SUBROUTINEddapc_eval_gfunc(gfunc, w, gcut, rho_tot_g, radii)

...

Arguments:
REAL(dp),
POINTER
:: gfunc(:,:) ...
REAL(dp),
POINTER
:: w(:) ...
REAL(dp),
INTENT(in)
:: gcut ...
TYPE(pw_type),
POINTER
:: rho_tot_g ...
REAL(dp),
POINTER
:: radii(:) ...

RECURSIVE SUBROUTINEewald_ddapc_pot(cp_para_env, coeff, factor, cell, multipole_section, particle_set, m, radii)

Evaluates the Ewald term E2 and E3 energy term for the decoupling/coupling of periodic images

Arguments:
POINTER
:: cp_para_env ...
TYPE(pw_type),
POINTER
:: coeff ...
REAL(dp),
INTENT(in)
:: factor ...
TYPE(cell_type),
POINTER
:: cell ...
POINTER
:: multipole_section ...
POINTER
:: particle_set(:) ...
REAL(dp),
POINTER
:: m(:,:) ...
REAL(dp),
POINTER
:: radii(:) ...

SUBROUTINEprep_g_dot_rvec_sin_cos(rho_tot_g, particle_set, gcut, g_dot_rvec_sin, g_dot_rvec_cos)

precompute sin(g.r) and cos(g.r) for quicker evaluations of sin(g.(r1-r2)) and cos(g.(r1-r2))

Arguments:
TYPE(pw_type),
POINTER
:: rho_tot_g ...
POINTER
:: particle_set(:) ...
REAL(dp),
INTENT(in)
:: gcut ...
REAL(dp),
ALLOCATABLE
:: g_dot_rvec_sin(:,:) ...
REAL(dp),
ALLOCATABLE
:: g_dot_rvec_cos(:,:) ...

SUBROUTINEsolvation_ddapc_pot(solvation_section, particle_set, m, radii)

Evaluates the electrostatic potential due to a simple solvation model Spherical cavity in a dieletric medium

Arguments:
POINTER
:: solvation_section ...
POINTER
:: particle_set(:) ...
REAL(dp),
POINTER
:: m(:,:) ...
REAL(dp),
POINTER
:: radii(:) ...