Documentation for module pw_methods

...

source: pw_methods.F
Loading...

public Subroutines/Functions:

SUBROUTINE
pw_axpy (pw1, pw2, alpha)
pw2 = alpha*pw1 + pw2 alpha defaults to 1
SUBROUTINE
pw_copy (pw1, pw2)
copy a pw type variable
SUBROUTINE
pw_derive (pw, n)
Calculate the derivative of a plane wave vector
SUBROUTINE
pw_dr2 (pw, pwdr2, i, j)
Calculate the tensorial 2nd derivative of a plane wave vector
SUBROUTINE
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.
FUNCTION
REAL(dp)
pw_integral_a2b (pw1, pw2)
...
FUNCTION
REAL(dp)
pw_integral_ab (pw1, pw2)
Calculate integral over unit cell for functions in plane wave basis only returns the real part of it ......
FUNCTION
REAL(dp)
pw_integrate_function (fun, isign, oprt)
...
SUBROUTINE
pw_scale (pw, a)
multiplies pw coeffs with a number
SUBROUTINE
pw_set (pw, values)
Initialize pw values using values from a real array data, which might be defined on a smaller grid than pw but which is contained in it
SUBROUTINE
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
pw_structure_factor (sf, r)
Calculate the structure factor for point r
SUBROUTINE
pw_transfer (pw1, pw2, debug)
Generalize copy of pw types
SUBROUTINE
pw_write (pw, unit_nr)
writes a small description of the actual grid (change to output the data as cube file, maybe with an optional long_description arg?)
SUBROUTINE
pw_zero (pw)
Set values of a pw type to zero

SUBROUTINEpw_axpy(pw1, pw2, alpha)

pw2 = alpha*pw1 + pw2 alpha defaults to 1

Arguments:
TYPE(pw_type),
INTENT(in)
:: pw1 ...
TYPE(pw_type),
INTENT(inout)
:: pw2 ...
REAL(dp),
INTENT(in),
OPTIONAL
:: alpha ...

SUBROUTINEpw_copy(pw1, pw2)

copy a pw type variable

Arguments:
TYPE(pw_type),
INTENT(in)
:: pw1 ...
TYPE(pw_type),
INTENT(inout)
:: pw2 ...

SUBROUTINEpw_derive(pw, n)

Calculate the derivative of a plane wave vector

Arguments:
TYPE(pw_type),
INTENT(inout)
:: pw ...
INTEGER,
INTENT(in)
:: n(3) ...

SUBROUTINEpw_dr2(pw, pwdr2, i, j)

Calculate the tensorial 2nd derivative of a plane wave vector

Arguments:
TYPE(pw_type),
INTENT(in)
:: pw ...
TYPE(pw_type),
INTENT(inout)
:: pwdr2 ...
INTEGER,
INTENT(in)
:: i ...
INTEGER,
INTENT(in)
:: j ...

SUBROUTINEpw_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.

Arguments:
TYPE(pw_type),
INTENT(in)
:: pw ...
TYPE(pw_type),
INTENT(inout)
:: pwdr2_gg ...
INTEGER,
INTENT(in)
:: i ...
INTEGER,
INTENT(in)
:: j ...

FUNCTIONpw_integral_a2b(pw1, pw2)

...

Return Value ::
REAL(dp)
Arguments:
TYPE(pw_type),
INTENT(in)
:: pw1 ...
TYPE(pw_type),
INTENT(in)
:: pw2 ...

FUNCTIONpw_integral_ab(pw1, pw2)

Calculate integral over unit cell for functions in plane wave basis only returns the real part of it ......

Return Value ::
REAL(dp)
Arguments:
TYPE(pw_type),
INTENT(in)
:: pw1 ...
TYPE(pw_type),
INTENT(in)
:: pw2 ...

FUNCTIONpw_integrate_function(fun, isign, oprt)

...

Return Value ::
REAL(dp)
Arguments:
TYPE(pw_type),
INTENT(in)
:: fun ...
INTEGER,
INTENT(in),
OPTIONAL
:: isign ...
CHARACTER(*),
INTENT(in),
OPTIONAL
:: oprt ...

SUBROUTINEpw_scale(pw, a)

multiplies pw coeffs with a number

Arguments:
TYPE(pw_type),
INTENT(inout)
:: pw ...
REAL(dp),
INTENT(in)
:: a ...

SUBROUTINEpw_set(pw, values)

Initialize pw values using values from a real array data, which might be defined on a smaller grid than pw but which is contained in it

Arguments:
TYPE(pw_type),
INTENT(inout)
:: pw the pw to initialize
REAL(dp),
INTENT(in),
POINTER
:: values(:,:,:) the array holding the input data

SUBROUTINEpw_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))

Arguments:
TYPE(pw_type),
INTENT(inout)
:: pw ...
REAL(dp),
INTENT(in)
:: ecut ...
REAL(dp),
INTENT(in)
:: sigma ...

SUBROUTINEpw_structure_factor(sf, r)

Calculate the structure factor for point r

Arguments:
TYPE(pw_type),
INTENT(inout)
:: sf ...
REAL(dp),
INTENT(in)
:: r(:) ...

SUBROUTINEpw_transfer(pw1, pw2, debug)

Generalize copy of pw types

Arguments:
TYPE(pw_type),
INTENT(in),
TARGET
:: pw1 ...
TYPE(pw_type),
INTENT(inout),
TARGET
:: pw2 ...
LOGICAL,
INTENT(in),
OPTIONAL
:: debug ...

SUBROUTINEpw_write(pw, unit_nr)

writes a small description of the actual grid (change to output the data as cube file, maybe with an optional long_description arg?)

Arguments:
TYPE(pw_type),
INTENT(in)
:: pw the pw data to output
INTEGER,
INTENT(in)
:: unit_nr the unit to output to

SUBROUTINEpw_zero(pw)

Set values of a pw type to zero

Arguments:
TYPE(pw_type),
INTENT(inout)
:: pw ...