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 173 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 305 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 374 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 435 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 520 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 988 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 1023 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 1056 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 1111 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 1166 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 1338 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 1392 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 1456 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 1556 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 1672 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 1728 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 1810 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 1879 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 2126 of file poisson_isf.F90.

Variable Documentation

◆ serial

integer, parameter poisson_isf_oct_m::serial = 1
private

Definition at line 146 of file poisson_isf.F90.

◆ world

integer, parameter poisson_isf_oct_m::world = 2
private

Definition at line 147 of file poisson_isf.F90.

◆ domain

integer, parameter poisson_isf_oct_m::domain = 3
private

Definition at line 148 of file poisson_isf.F90.

◆ n_cnf

integer, parameter poisson_isf_oct_m::n_cnf = 3
private

Definition at line 149 of file poisson_isf.F90.

◆ order_scaling_function

integer, parameter poisson_isf_oct_m::order_scaling_function = 8
private

Definition at line 167 of file poisson_isf.F90.