Octopus
poisson_isf_oct_m Module Reference

Data Types

type  isf_cnf_t
 
type  poisson_isf_t
 

Functions/Subroutines

subroutine, public poisson_isf_init (this, namespace, mesh, cube, all_nodes_comm, init_world)
 
subroutine, public poisson_isf_solve (this, mesh, cube, pot, rho, all_nodes, sm)
 
subroutine, public poisson_isf_end (this)
 
subroutine psolver_kernel (n01, n02, n03, nfft1, nfft2, nfft3, hgrid, karray, rhopot)
 
subroutine kernel_application (n1, n2, n3, nd1h, nd2, nd3, nfft1, nfft2, nfft3, zarray, karray, inzee)
 
subroutine norm_ind (nd1, nd2, nd3, i1, i2, i3, ind)
 
subroutine symm_ind (nd1, nd2, nd3, i1, i2, i3, ind)
 
subroutine zarray_in (n01, n02, n03, nd1, nd2, nd3, density, zarray)
 
subroutine zarray_out (n01, n02, n03, nd1, nd2, nd3, rhopot, zarray, factor)
 
subroutine build_kernel (n01, n02, n03, nfft1, nfft2, nfft3, hgrid, itype_scf, karrayout)
 
subroutine calculate_dimensions (n01, n02, n03, nfft1, nfft2, nfft3)
 
subroutine karrayhalf_in (n01, n02, n03, n1k, n2k, n3k, nfft1, nfft2, nfft3, nd1, nd2, nd3, kernel, karrayhalf)
 
subroutine kernel_recon (n1k, n2k, n3k, nfft1, nfft2, nfft3, nd1, nd2, nd3, zarray, karray)
 
subroutine par_calculate_dimensions (n01, n02, n03, m1, m2, m3, n1, n2, n3, md1, md2, md3, nd1, nd2, nd3, nproc)
 
subroutine par_psolver_kernel (n01, n02, n03, nd1, nd2, nd3, hgrid, kernelLOC, rhopot, iproc, nproc, comm)
 
subroutine pconvxc_off (m1, m2, m3, n1, n2, n3, nd1, nd2, nd3, md1, md2, md3, iproc, nproc, rhopot, kernelloc, hgrid, comm)
 
subroutine enterdensity (rhopot, m1, m2, m3, md1, md2, md3, iproc, nproc, zf)
 
subroutine par_build_kernel (n01, n02, n03, nfft1, nfft2, nfft3, n1k, n2k, n3k, hgrid, itype_scf, iproc, nproc, comm, karrayoutLOC)
 
subroutine gequad (n_gauss, p_gauss, w_gauss, ur_gauss, dr_gauss, acc_gauss)
 

Variables

integer, parameter serial = 1
 
integer, parameter world = 2
 
integer, parameter domain = 3
 
integer, parameter n_cnf = 3
 
integer, parameter order_scaling_function = 8
 

Function/Subroutine Documentation

◆ poisson_isf_init()

subroutine, public poisson_isf_oct_m::poisson_isf_init ( type(poisson_isf_t), intent(out)  this,
type(namespace_t), intent(in), target  namespace,
type(mesh_t), intent(in)  mesh,
type(cube_t), intent(inout)  cube,
type(mpi_comm), intent(in)  all_nodes_comm,
logical, intent(in), optional  init_world 
)

Definition at line 171 of file poisson_isf.F90.

◆ poisson_isf_solve()

subroutine, public poisson_isf_oct_m::poisson_isf_solve ( type(poisson_isf_t), intent(in)  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,
logical, intent(in)  all_nodes,
type(submesh_t), intent(in), optional  sm 
)
Parameters
[in]smIf present pot and rho are assumed to come from it

Definition at line 312 of file poisson_isf.F90.

◆ poisson_isf_end()

subroutine, public poisson_isf_oct_m::poisson_isf_end ( type(poisson_isf_t), intent(inout)  this)

Definition at line 400 of file poisson_isf.F90.

◆ psolver_kernel()

subroutine poisson_isf_oct_m::psolver_kernel ( integer, intent(in)  n01,
integer, intent(in)  n02,
integer, intent(in)  n03,
integer, intent(in)  nfft1,
integer, intent(in)  nfft2,
integer, intent(in)  nfft3,
real(real64), intent(in)  hgrid,
real(real64), dimension(nfft1/2 + 1,nfft2/2 + 1, nfft3/2 + 1), intent(in)  karray,
real(real64), dimension(n01, n02, n03), intent(inout)  rhopot 
)
private

Definition at line 469 of file poisson_isf.F90.

◆ kernel_application()

subroutine poisson_isf_oct_m::kernel_application ( integer, intent(in)  n1,
integer, intent(in)  n2,
integer, intent(in)  n3,
integer, intent(in)  nd1h,
integer, intent(in)  nd2,
integer, intent(in)  nd3,
integer, intent(in)  nfft1,
integer, intent(in)  nfft2,
integer, intent(in)  nfft3,
real(real64), dimension(1:2, 1:nd1h, 1:nd2, 1:nd3, 1:2), intent(inout)  zarray,
real(real64), dimension(1:nfft1/2 + 1, 1:nfft2/2 + 1, 1:nfft3/2 + 1), intent(in)  karray,
integer, intent(in)  inzee 
)
private

Definition at line 554 of file poisson_isf.F90.

◆ norm_ind()

subroutine poisson_isf_oct_m::norm_ind ( integer  nd1,
integer  nd2,
integer  nd3,
integer  i1,
integer  i2,
integer  i3,
integer  ind 
)
private

Definition at line 1022 of file poisson_isf.F90.

◆ symm_ind()

subroutine poisson_isf_oct_m::symm_ind ( integer  nd1,
integer  nd2,
integer  nd3,
integer  i1,
integer  i2,
integer  i3,
integer  ind 
)
private

Definition at line 1057 of file poisson_isf.F90.

◆ zarray_in()

subroutine poisson_isf_oct_m::zarray_in ( integer  n01,
integer  n02,
integer  n03,
integer  nd1,
integer  nd2,
integer  nd3,
real(real64), dimension(n01,n02,n03)  density,
real(real64), dimension(2,nd1,nd2,nd3)  zarray 
)
private

Definition at line 1090 of file poisson_isf.F90.

◆ zarray_out()

subroutine poisson_isf_oct_m::zarray_out ( integer, intent(in)  n01,
integer, intent(in)  n02,
integer, intent(in)  n03,
integer, intent(in)  nd1,
integer, intent(in)  nd2,
integer, intent(in)  nd3,
real(real64), dimension(n01,n02,n03), intent(out)  rhopot,
real(real64), dimension(2*nd1,nd2,nd3), intent(in)  zarray,
real(real64), intent(in)  factor 
)
private

Definition at line 1145 of file poisson_isf.F90.

◆ build_kernel()

subroutine poisson_isf_oct_m::build_kernel ( integer, intent(in)  n01,
integer, intent(in)  n02,
integer, intent(in)  n03,
integer, intent(in)  nfft1,
integer, intent(in)  nfft2,
integer, intent(in)  nfft3,
real(real64), intent(in)  hgrid,
integer, intent(in)  itype_scf,
real(real64), dimension(nfft1/2+1,nfft2/2+1,nfft3/2+1), intent(out)  karrayout 
)
private

Definition at line 1200 of file poisson_isf.F90.

◆ calculate_dimensions()

subroutine poisson_isf_oct_m::calculate_dimensions ( integer, intent(in)  n01,
integer, intent(in)  n02,
integer, intent(in)  n03,
integer, intent(out)  nfft1,
integer, intent(out)  nfft2,
integer, intent(out)  nfft3 
)
private

Definition at line 1372 of file poisson_isf.F90.

◆ karrayhalf_in()

subroutine poisson_isf_oct_m::karrayhalf_in ( integer, intent(in)  n01,
integer, intent(in)  n02,
integer, intent(in)  n03,
integer, intent(in)  n1k,
integer, intent(in)  n2k,
integer, intent(in)  n3k,
integer, intent(in)  nfft1,
integer, intent(in)  nfft2,
integer, intent(in)  nfft3,
integer, intent(in)  nd1,
integer, intent(in)  nd2,
integer, intent(in)  nd3,
real(real64), dimension(n1k,n2k,n3k), intent(in)  kernel,
real(real64), dimension(2,(nd1+1)/2,nd2,nd3), intent(out)  karrayhalf 
)
private

Definition at line 1426 of file poisson_isf.F90.

◆ kernel_recon()

subroutine poisson_isf_oct_m::kernel_recon ( integer, intent(in)  n1k,
integer, intent(in)  n2k,
integer, intent(in)  n3k,
integer, intent(in)  nfft1,
integer, intent(in)  nfft2,
integer, intent(in)  nfft3,
integer, intent(in)  nd1,
integer, intent(in)  nd2,
integer, intent(in)  nd3,
real(real64), dimension(2,(nd1+1)/2*nd2*nd3), intent(in)  zarray,
real(real64), dimension(n1k,n2k,n3k), intent(out)  karray 
)
private

Definition at line 1490 of file poisson_isf.F90.

◆ par_calculate_dimensions()

subroutine poisson_isf_oct_m::par_calculate_dimensions ( integer, intent(in)  n01,
integer, intent(in)  n02,
integer, intent(in)  n03,
integer, intent(out)  m1,
integer, intent(out)  m2,
integer, intent(out)  m3,
integer, intent(out)  n1,
integer, intent(out)  n2,
integer, intent(out)  n3,
integer, intent(out)  md1,
integer, intent(out)  md2,
integer, intent(out)  md3,
integer, intent(out)  nd1,
integer, intent(out)  nd2,
integer, intent(out)  nd3,
integer, intent(in)  nproc 
)
private

Definition at line 1590 of file poisson_isf.F90.

◆ par_psolver_kernel()

subroutine poisson_isf_oct_m::par_psolver_kernel ( integer, intent(in)  n01,
integer, intent(in)  n02,
integer, intent(in)  n03,
integer, intent(inout)  nd1,
integer, intent(inout)  nd2,
integer, intent(inout)  nd3,
real(real64), intent(in)  hgrid,
real(real64), dimension(nd1,nd2,nd3/nproc), intent(in)  kernelLOC,
real(real64), dimension(n01,n02,n03), intent(inout)  rhopot,
integer, intent(in)  iproc,
integer, intent(in)  nproc,
type(mpi_comm), intent(in)  comm 
)
private

Definition at line 1706 of file poisson_isf.F90.

◆ pconvxc_off()

subroutine poisson_isf_oct_m::pconvxc_off ( integer, intent(in)  m1,
integer, intent(in)  m2,
integer, intent(in)  m3,
integer, intent(in)  n1,
integer, intent(in)  n2,
integer, intent(in)  n3,
integer, intent(in)  nd1,
integer, intent(in)  nd2,
integer, intent(in)  nd3,
integer, intent(in)  md1,
integer, intent(in)  md2,
integer, intent(in)  md3,
integer, intent(in)  iproc,
integer, intent(in)  nproc,
real(real64), dimension(m1,m3,m2), intent(inout)  rhopot,
real(real64), dimension(nd1,nd2,nd3/nproc), intent(in)  kernelloc,
real(real64), intent(in)  hgrid,
type(mpi_comm), intent(in)  comm 
)
private

Definition at line 1762 of file poisson_isf.F90.

◆ enterdensity()

subroutine poisson_isf_oct_m::enterdensity ( real(real64), dimension(0:m1-1,0:m3-1,0:m2-1), intent(in)  rhopot,
integer, intent(in)  m1,
integer, intent(in)  m2,
integer, intent(in)  m3,
integer, intent(in)  md1,
integer, intent(in)  md2,
integer, intent(in)  md3,
integer, intent(in)  iproc,
integer, intent(in)  nproc,
real(real64), dimension(0:md1-1,0:md3-1,0:md2/nproc-1), intent(out)  zf 
)
private

Definition at line 1844 of file poisson_isf.F90.

◆ par_build_kernel()

subroutine poisson_isf_oct_m::par_build_kernel ( integer, intent(in)  n01,
integer, intent(in)  n02,
integer, intent(in)  n03,
integer, intent(in)  nfft1,
integer, intent(in)  nfft2,
integer, intent(in)  nfft3,
integer, intent(in)  n1k,
integer, intent(in)  n2k,
integer, intent(in)  n3k,
real(real64), intent(in)  hgrid,
integer, intent(in)  itype_scf,
integer, intent(in)  iproc,
integer, intent(in)  nproc,
type(mpi_comm), intent(in)  comm,
real(real64), dimension(1:n1k, 1:n2k, 1:n3k/nproc), intent(out)  karrayoutLOC 
)
private

Definition at line 1913 of file poisson_isf.F90.

◆ gequad()

subroutine poisson_isf_oct_m::gequad ( integer, intent(in)  n_gauss,
real(real64), dimension(:), intent(out)  p_gauss,
real(real64), dimension(:), intent(out)  w_gauss,
real(real64), intent(out)  ur_gauss,
real(real64), intent(out)  dr_gauss,
real(real64), intent(out)  acc_gauss 
)
private

Definition at line 2160 of file poisson_isf.F90.

Variable Documentation

◆ serial

integer, parameter poisson_isf_oct_m::serial = 1
private

Definition at line 144 of file poisson_isf.F90.

◆ world

integer, parameter poisson_isf_oct_m::world = 2
private

Definition at line 145 of file poisson_isf.F90.

◆ domain

integer, parameter poisson_isf_oct_m::domain = 3
private

Definition at line 146 of file poisson_isf.F90.

◆ n_cnf

integer, parameter poisson_isf_oct_m::n_cnf = 3
private

Definition at line 147 of file poisson_isf.F90.

◆ order_scaling_function

integer, parameter poisson_isf_oct_m::order_scaling_function = 8
private

Definition at line 165 of file poisson_isf.F90.