(git:c5411e0)
Loading...
Searching...
No Matches
pw_methods Module Reference

Data Types

interface  pw_axpy
 
interface  pw_copy
 
interface  pw_copy_from_array
 
interface  pw_copy_to_array
 
interface  pw_gather
 
interface  pw_integral_a2b
 
interface  pw_integral_ab
 
interface  pw_integrate_function
 
interface  pw_multiply
 
interface  pw_multiply_with
 
interface  pw_scale
 
interface  pw_scatter
 
interface  pw_set
 
interface  pw_transfer
 
interface  pw_write
 
interface  pw_zero
 

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)
 
subroutine, public pw_log_deriv_gauss (pw, omega)
 Multiply all data points with the logarithmic derivative of a Gaussian.
 
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)
 
subroutine, public pw_log_deriv_compl_gauss (pw, omega)
 Multiply all data points with the logarithmic derivative of the complementary Gaussian damping factor.
 
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))
 
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.
 
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))
 
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.
 
subroutine, public pw_derive (pw, n)
 Calculate the derivative of a plane wave vector.
 
subroutine, public pw_laplace (pw)
 Calculate the Laplacian of a plane wave vector.
 
subroutine, public pw_dr2 (pw, pwdr2, i, j)
 Calculate the tensorial 2nd derivative of a plane wave vector.
 
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.
 
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))
 
subroutine, public pw_structure_factor (sf, r)
 Calculate the structure factor for point r.
 

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 9753 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 9784 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 9820 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 9858 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 9905 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 9937 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 9977 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 10012 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 10053 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 10122 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 10151 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 10199 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 10247 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 10305 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.