Octopus
poisson_psolver_oct_m Module Reference

Data Types

type  poisson_psolver_t
 

Functions/Subroutines

subroutine, public poisson_psolver_init (this, namespace, space, cube, mu, qq, force_isolated)
 
subroutine, public poisson_psolver_end (this)
 
subroutine, public poisson_psolver_reinit (this, space, cube, coulb, qq_in)
 
subroutine, public poisson_psolver_parallel_solve (this, mesh, cube, pot, rho, mesh_cube_map)
 
subroutine, public poisson_psolver_global_solve (this, mesh, cube, pot, rho, sm)
 
subroutine, public poisson_psolver_get_dims (this, cube)
 

Variables

logical, save flib_initialized = .false.
 
real(real64), parameter tol_vanishing_q = 1e-6_real64
 

Function/Subroutine Documentation

◆ poisson_psolver_init()

subroutine, public poisson_psolver_oct_m::poisson_psolver_init ( type(poisson_psolver_t), intent(out)  this,
type(namespace_t), intent(in)  namespace,
class(space_t), intent(in)  space,
type(cube_t), intent(inout)  cube,
real(real64), intent(in)  mu,
real(real64), dimension(:), intent(in)  qq,
logical, intent(in), optional  force_isolated 
)

Definition at line 199 of file poisson_psolver.F90.

◆ poisson_psolver_end()

subroutine, public poisson_psolver_oct_m::poisson_psolver_end ( type(poisson_psolver_t), intent(inout)  this)

Definition at line 343 of file poisson_psolver.F90.

◆ poisson_psolver_reinit()

subroutine, public poisson_psolver_oct_m::poisson_psolver_reinit ( type(poisson_psolver_t), intent(inout)  this,
class(space_t), intent(in)  space,
type(cube_t), intent(inout)  cube,
type(fourier_space_op_t), intent(inout)  coulb,
real(real64), dimension(:), intent(in)  qq_in 
)

Definition at line 358 of file poisson_psolver.F90.

◆ poisson_psolver_parallel_solve()

subroutine, public poisson_psolver_oct_m::poisson_psolver_parallel_solve ( type(poisson_psolver_t), intent(in), target  this,
type(mesh_t), intent(in)  mesh,
type(cube_t), intent(in)  cube,
real(real64), dimension(:), intent(out)  pot,
real(real64), dimension(:), intent(in)  rho,
type(mesh_cube_parallel_map_t), intent(in)  mesh_cube_map 
)

pot_ion: additional external potential that is added to the output when the XC parameter ixc/=0 and sumpion=.true. When sumpion=.true., it is always provided in the distributed form, clearly without the overlapping terms which are needed only for the XC part

Definition at line 434 of file poisson_psolver.F90.

◆ poisson_psolver_global_solve()

subroutine, public poisson_psolver_oct_m::poisson_psolver_global_solve ( type(poisson_psolver_t), intent(in), target  this,
type(mesh_t), intent(in)  mesh,
type(cube_t), intent(in)  cube,
real(real64), dimension(:), intent(out), contiguous  pot,
real(real64), dimension(:), intent(in), contiguous  rho,
type(submesh_t), intent(in), optional  sm 
)
Parameters
[in]smIf present pot and rho are assumed to come from it

pot_ion: additional external potential that is added to the output when the XC parameter ixc/=0 and sumpion=.true. When sumpion=.true., it is always provided in the distributed form, clearly without the overlapping terms which are needed only for the XC part

Definition at line 492 of file poisson_psolver.F90.

◆ poisson_psolver_get_dims()

subroutine, public poisson_psolver_oct_m::poisson_psolver_get_dims ( type(poisson_psolver_t), intent(inout)  this,
type(cube_t), intent(inout)  cube 
)

ixc eXchange-Correlation code. Indicates the XC functional to be used for calculating XC energies and potential. ixc=0 indicates that no XC terms are computed. The XC functional codes follow the ABINIT convention. n3d third dimension of the density. For distributed data, it takes into account the enlarging needed for calculating the XC functionals. For global data it is simply equal to n03. When there are too many processes and there is no room for the density n3d=0

n3p third dimension for the potential. The same as n3d, but without taking into account the enlargment for the XC part. For non-GGA XC, n3p=n3d.

n3pi Dimension of the pot_ion array, always with distributed data. For distributed data n3pi=n3p

i3xcsh Shift of the density that must be performed to enter in the non-overlapping region. Useful for recovering the values of the potential when using GGA XC functionals. If the density starts from rhopot(1,1,1), the potential starts from rhopot(1,1,i3xcsh+1). For non-GGA XCs and for global distribution data i3xcsh=0

i3s Starting point of the density effectively treated by each processor in the third direction. It takes into account also the XC enlarging. The array rhopot will correspond To the planes of third coordinate from i3s to i3s+n3d-1. The potential to the planes from i3s+i3xcsh to i3s+i3xcsh+n3p-1 The array pot_ion to the planes from i3s+i3xcsh to i3s+i3xcsh+n3pi-1 For global disposition i3s is equal to distributed case with i3xcsh=0.

use_gradient: .true. if functional is using the gradient.

use_wb_corr: .true. if functional is using WB corrections.

Definition at line 562 of file poisson_psolver.F90.

Variable Documentation

◆ flib_initialized

logical, save poisson_psolver_oct_m::flib_initialized = .false.
private

Definition at line 191 of file poisson_psolver.F90.

◆ tol_vanishing_q

real(real64), parameter poisson_psolver_oct_m::tol_vanishing_q = 1e-6_real64
private

Definition at line 194 of file poisson_psolver.F90.