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 303 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 372 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 433 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 518 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 986 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 1021 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 1054 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 1109 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 1164 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 1336 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 1390 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 1454 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 1554 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 1670 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 1726 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 1808 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 1877 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 2124 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.