Documentation for module dielectric_methods

methods for evaluating the dielectric constant

source: dielectric_methods.F
Loading...

Generic procedures:

dielectric_compute

public Subroutines/Functions:

allocates memory for a dielectric data type

Generic procedure dielectric_compute

...

INTENT(inout),
POINTER
:: dielectric × ×
POINTER
:: diel_rs_grid × ×
INTENT(in),
POINTER
:: pw_pool ×
TYPE(pw_type),
INTENT(in),
POINTER
:: rho × ×
TYPE(pw_type),
INTENT(in),
OPTIONAL, POINTER
:: rho_core × ×
INTENT(in),
POINTER
:: pw_pool_orig ×
INTENT(in),
POINTER
:: dct_pw_grid ×
INTEGER,
INTENT(in)
:: neumann_directions ×
INTEGER,
INTENT(in),
POINTER
:: recv_msgs_bnds(:,:,:) ×
INTEGER,
INTENT(in),
POINTER
:: dests_expand(:) ×
INTEGER,
INTENT(in),
POINTER
:: srcs_expand(:) ×
INTEGER,
INTENT(in),
POINTER
:: flipg_stat(:) ×
INTEGER,
INTENT(in)
:: bounds_shftd(2,3) ×

SUBROUTINEdielectric_create(dielectric, pw_pool, dielectric_params)

allocates memory for a dielectric data type

Arguments:
INTENT(inout),
POINTER
:: dielectric the dielectric data type to be allocated
POINTER
:: pw_pool pool of pw grid
INTENT(in)
:: dielectric_params dielectric parameters read from input file

SUBROUTINEdielectric_compute_periodic(dielectric, diel_rs_grid, pw_pool, rho, rho_core)

evaluates the dielectric constant

Arguments:
INTENT(inout),
POINTER
:: dielectric the dielectric data type to be initialized
POINTER
:: diel_rs_grid real space grid for finite difference derivative
INTENT(in),
POINTER
:: pw_pool pool of plane wave grid
TYPE(pw_type),
INTENT(in),
POINTER
:: rho electronic density
TYPE(pw_type),
INTENT(in),
OPTIONAL, POINTER
:: rho_core core density

SUBROUTINEdielectric_compute_neumann(dielectric, diel_rs_grid, pw_pool_orig, dct_pw_grid, neumann_directions, recv_msgs_bnds, dests_expand, srcs_expand, flipg_stat, bounds_shftd, rho, rho_core)

evaluates the dielectric constant for non-periodic (Neumann-type) boundaries

Arguments:
INTENT(inout),
POINTER
:: dielectric the dielectric data type to be initialized
POINTER
:: diel_rs_grid real space grid for finite difference derivative
INTENT(in),
POINTER
:: pw_pool_orig pool of plane wave grid
INTENT(in),
POINTER
:: dct_pw_grid ...
INTEGER,
INTENT(in)
:: neumann_directions ...
INTEGER,
INTENT(in),
POINTER
:: recv_msgs_bnds(:,:,:) bounds of the messages to be received (pw_expand)
INTEGER,
INTENT(in),
POINTER
:: dests_expand(:) list of the destination processes (pw_expand)
INTEGER,
INTENT(in),
POINTER
:: srcs_expand(:) list of the source processes (pw_expand)
INTEGER,
INTENT(in),
POINTER
:: flipg_stat(:) flipping status for the received data chunks (pw_expand)
INTEGER,
INTENT(in)
:: bounds_shftd(2,3) bounds of the original grid shifted to have g0 in the middle of the cell (pw_expand)
TYPE(pw_type),
INTENT(in),
POINTER
:: rho electronic density
TYPE(pw_type),
INTENT(in),
OPTIONAL, POINTER
:: rho_core core density