(git:34ef472)
pw_methods Module Reference

Functions/Subroutines

subroutine, public pw_gauss_damp (pw, omega)
 Multiply all data points with a Gaussian damping factor Needed for longrange Coulomb potential V(\vec r)=erf(omega*r)/r V(\vec g)=\frac{4*\pi}{g**2}*exp(-g**2/omega**2) More...
 
subroutine, public pw_log_deriv_gauss (pw, omega)
 Multiply all data points with the logarithmic derivative of a Gaussian. More...
 
subroutine, public pw_compl_gauss_damp (pw, omega)
 Multiply all data points with a Gaussian damping factor Needed for longrange Coulomb potential V(\vec r)=erf(omega*r)/r V(\vec g)=\frac{4*\pi}{g**2}*exp(-g**2/omega**2) More...
 
subroutine, public pw_log_deriv_compl_gauss (pw, omega)
 Multiply all data points with the logarithmic derivative of the complementary Gaussian damping factor. More...
 
subroutine, public pw_gauss_damp_mix (pw, omega, scale_coul, scale_long)
 Multiply all data points with a Gaussian damping factor and mixes it with the original function Needed for mixed longrange/Coulomb potential V(\vec r)=(a+b*erf(omega*r))/r V(\vec g)=\frac{4*\pi}{g**2}*(a+b*exp(-g**2/omega**2)) More...
 
subroutine, public pw_log_deriv_mix_cl (pw, omega, scale_coul, scale_long)
 Multiply all data points with the logarithmic derivative of the mixed longrange/Coulomb potential Needed for mixed longrange/Coulomb potential. More...
 
subroutine, public pw_truncated (pw, rcutoff)
 Multiply all data points with a complementary cosine Needed for truncated Coulomb potential V(\vec r)=1/r if r<rc, 0 else V(\vec g)=\frac{4*\pi}{g**2}*(1-cos(g*rc)) More...
 
subroutine, public pw_log_deriv_trunc (pw, rcutoff)
 Multiply all data points with the logarithmic derivative of the complementary cosine This function is needed for virials using truncated Coulomb potentials. More...
 
subroutine, public pw_derive (pw, n)
 Calculate the derivative of a plane wave vector. More...
 
subroutine, public pw_laplace (pw)
 Calculate the Laplacian of a plane wave vector. More...
 
subroutine, public pw_dr2 (pw, pwdr2, i, j)
 Calculate the tensorial 2nd derivative of a plane wave vector. More...
 
subroutine, public pw_dr2_gg (pw, pwdr2_gg, i, j)
 Calculate the tensorial 2nd derivative of a plane wave vector and divides by |G|^2. pwdr2_gg(G=0) is put to zero. More...
 
subroutine, public pw_smoothing (pw, ecut, sigma)
 Multiplies a G-space function with a smoothing factor of the form f(|G|) = exp((ecut - G^2)/sigma)/(1+exp((ecut - G^2)/sigma)) More...
 
subroutine, public pw_structure_factor (sf, r)
 Calculate the structure factor for point r. More...
 

Variables

integer, parameter, public do_accurate_sum = 0
 
integer, parameter, public do_standard_sum = 1
 

Detailed Description

Note
If parallel mode is distributed certain combination of "in_use" and "in_space" can not be used. For performance reasons it would be better to have the loops over g-vectors in the gather/scatter routines in new subprograms with the actual arrays (also the addressing) in the parameter list
History
JGH (29-Dec-2000) : Changes for parallel use JGH (13-Mar-2001) : added timing calls JGH (26-Feb-2003) : OpenMP enabled JGH (17-Nov-2007) : Removed mass arrays JGH (01-Dec-2007) : Removed and renamed routines JGH (04-Jul-2019) : added pw_multiply routine 03.2008 [tlaino] : Splitting pw_types into pw_types and pw_methods
Author
apsi

Function/Subroutine Documentation

◆ pw_gauss_damp()

subroutine, public pw_methods::pw_gauss_damp ( type(pw_c1d_gs_type), intent(inout)  pw,
real(kind=dp), intent(in)  omega 
)

Multiply all data points with a Gaussian damping factor Needed for longrange Coulomb potential V(\vec r)=erf(omega*r)/r V(\vec g)=\frac{4*\pi}{g**2}*exp(-g**2/omega**2)

Parameters
pw...
omega...
History
Frederick Stein (12-04-2019) created
Author
Frederick Stein (12-Apr-2019)
Note
Performs a Gaussian damping

Definition at line 9805 of file pw_methods.F.

Here is the caller graph for this function:

◆ pw_log_deriv_gauss()

subroutine, public pw_methods::pw_log_deriv_gauss ( type(pw_c1d_gs_type), intent(in)  pw,
real(kind=dp), intent(in)  omega 
)

Multiply all data points with the logarithmic derivative of a Gaussian.

Parameters
pw...
omega...
Note
Performs a Gaussian damping

Definition at line 9836 of file pw_methods.F.

Here is the caller graph for this function:

◆ pw_compl_gauss_damp()

subroutine, public pw_methods::pw_compl_gauss_damp ( type(pw_c1d_gs_type), intent(inout)  pw,
real(kind=dp), intent(in)  omega 
)

Multiply all data points with a Gaussian damping factor Needed for longrange Coulomb potential V(\vec r)=erf(omega*r)/r V(\vec g)=\frac{4*\pi}{g**2}*exp(-g**2/omega**2)

Parameters
pw...
omega...
History
Frederick Stein (12-04-2019) created
Author
Frederick Stein (12-Apr-2019)
Note
Performs a Gaussian damping

Definition at line 9872 of file pw_methods.F.

Here is the caller graph for this function:

◆ pw_log_deriv_compl_gauss()

subroutine, public pw_methods::pw_log_deriv_compl_gauss ( type(pw_c1d_gs_type), intent(in)  pw,
real(kind=dp), intent(in)  omega 
)

Multiply all data points with the logarithmic derivative of the complementary Gaussian damping factor.

Parameters
pw...
omega...
Note

Definition at line 9910 of file pw_methods.F.

Here is the caller graph for this function:

◆ pw_gauss_damp_mix()

subroutine, public pw_methods::pw_gauss_damp_mix ( type(pw_c1d_gs_type), intent(inout)  pw,
real(kind=dp), intent(in)  omega,
real(kind=dp), intent(in)  scale_coul,
real(kind=dp), intent(in)  scale_long 
)

Multiply all data points with a Gaussian damping factor and mixes it with the original function Needed for mixed longrange/Coulomb potential V(\vec r)=(a+b*erf(omega*r))/r V(\vec g)=\frac{4*\pi}{g**2}*(a+b*exp(-g**2/omega**2))

Parameters
pw...
omega...
scale_coul...
scale_long...
History
Frederick Stein (16-Dec-2021) created
Author
Frederick Stein (16-Dec-2021)
Note
Performs a Gaussian damping

Definition at line 9957 of file pw_methods.F.

Here is the caller graph for this function:

◆ pw_log_deriv_mix_cl()

subroutine, public pw_methods::pw_log_deriv_mix_cl ( type(pw_c1d_gs_type), intent(in)  pw,
real(kind=dp), intent(in)  omega,
real(kind=dp), intent(in)  scale_coul,
real(kind=dp), intent(in)  scale_long 
)

Multiply all data points with the logarithmic derivative of the mixed longrange/Coulomb potential Needed for mixed longrange/Coulomb potential.

Parameters
pw...
omega...
scale_coul...
scale_long...
Note

Definition at line 9989 of file pw_methods.F.

Here is the caller graph for this function:

◆ pw_truncated()

subroutine, public pw_methods::pw_truncated ( type(pw_c1d_gs_type), intent(inout)  pw,
real(kind=dp), intent(in)  rcutoff 
)

Multiply all data points with a complementary cosine Needed for truncated Coulomb potential V(\vec r)=1/r if r<rc, 0 else V(\vec g)=\frac{4*\pi}{g**2}*(1-cos(g*rc))

Parameters
pw...
rcutoff...
History
Frederick Stein (07-06-2021) created
Author
Frederick Stein (07-Jun-2021)
Note
Multiplies by complementary cosine

Definition at line 10029 of file pw_methods.F.

Here is the caller graph for this function:

◆ pw_log_deriv_trunc()

subroutine, public pw_methods::pw_log_deriv_trunc ( type(pw_c1d_gs_type), intent(in)  pw,
real(kind=dp), intent(in)  rcutoff 
)

Multiply all data points with the logarithmic derivative of the complementary cosine This function is needed for virials using truncated Coulomb potentials.

Parameters
pw...
rcutoff...
Note

Definition at line 10064 of file pw_methods.F.

Here is the caller graph for this function:

◆ pw_derive()

subroutine, public pw_methods::pw_derive ( type(pw_c1d_gs_type), intent(inout)  pw,
integer, dimension(3), intent(in)  n 
)

Calculate the derivative of a plane wave vector.

Parameters
pw...
n...
History
JGH (06-10-2002) allow only for inplace derivatives
Author
JGH (25-Feb-2001)
Note
Calculate the derivative dx^n(1) dy^n(2) dz^n(3) PW

Definition at line 10105 of file pw_methods.F.

Here is the caller graph for this function:

◆ pw_laplace()

subroutine, public pw_methods::pw_laplace ( type(pw_c1d_gs_type), intent(inout)  pw)

Calculate the Laplacian of a plane wave vector.

Parameters
pw...
History
Frederick Stein (01-02-2022) created
Author
JGH (25-Feb-2001)
Note
Calculate the derivative DELTA PW

Definition at line 10174 of file pw_methods.F.

Here is the caller graph for this function:

◆ pw_dr2()

subroutine, public pw_methods::pw_dr2 ( type(pw_c1d_gs_type), intent(inout)  pw,
type(pw_c1d_gs_type), intent(inout)  pwdr2,
integer, intent(in)  i,
integer, intent(in)  j 
)

Calculate the tensorial 2nd derivative of a plane wave vector.

Parameters
pw...
pwdr2...
i...
j...
History
none
Author
JGH (05-May-2006)
Note

Definition at line 10203 of file pw_methods.F.

Here is the caller graph for this function:

◆ pw_dr2_gg()

subroutine, public pw_methods::pw_dr2_gg ( type(pw_c1d_gs_type), intent(inout)  pw,
type(pw_c1d_gs_type), intent(inout)  pwdr2_gg,
integer, intent(in)  i,
integer, intent(in)  j 
)

Calculate the tensorial 2nd derivative of a plane wave vector and divides by |G|^2. pwdr2_gg(G=0) is put to zero.

Parameters
pw...
pwdr2_gg...
i...
j...
History
none
Author
RD (20-Nov-2006)
Note
Adapted from pw_dr2

Definition at line 10251 of file pw_methods.F.

Here is the caller graph for this function:

◆ pw_smoothing()

subroutine, public pw_methods::pw_smoothing ( type(pw_c1d_gs_type), intent(inout)  pw,
real(kind=dp), intent(in)  ecut,
real(kind=dp), intent(in)  sigma 
)

Multiplies a G-space function with a smoothing factor of the form f(|G|) = exp((ecut - G^2)/sigma)/(1+exp((ecut - G^2)/sigma))

Parameters
pw...
ecut...
sigma...
History
none
Author
JGH (09-June-2006)
Note

Definition at line 10299 of file pw_methods.F.

Here is the caller graph for this function:

◆ pw_structure_factor()

subroutine, public pw_methods::pw_structure_factor ( type(pw_c1d_gs_type), intent(inout)  sf,
real(kind=dp), dimension(:), intent(in)  r 
)

Calculate the structure factor for point r.

Parameters
sf...
r...
History
none
Author
JGH (05-May-2006)
Note

Definition at line 10357 of file pw_methods.F.

Here is the caller graph for this function:

Variable Documentation

◆ do_accurate_sum

integer, parameter, public pw_methods::do_accurate_sum = 0

Definition at line 79 of file pw_methods.F.

◆ do_standard_sum

integer, parameter, public pw_methods::do_standard_sum = 1

Definition at line 79 of file pw_methods.F.