Octopus
poisson.F90 File Reference

Go to the source code of this file.

Modules

module  poisson_oct_m
 

Data Types

type  poisson_oct_m::poisson_t
 

Functions/Subroutines

subroutine, public poisson_oct_m::poisson_init (this, namespace, space, der, mc, stencil, qtot, label, solver, verbose, force_serial, force_cmplx, fft_library, fft_batch_size, single_precision)
 
subroutine, public poisson_oct_m::poisson_end (this)
 
subroutine, public poisson_oct_m::zpoisson_solve (this, namespace, pot, rho, all_nodes, kernel, reset)
 
subroutine, public poisson_oct_m::poisson_solve_batch (this, namespace, potb, rhob, all_nodes, kernel)
 
logical function, public poisson_oct_m::poisson_solves_complex_natively (this)
 Whether zpoisson_solve takes a complex density in one pass. More...
 
logical function, public poisson_oct_m::poisson_uses_nfft (this)
 Whether the solve goes through a non-equispaced FFT. More...
 
logical function, public poisson_oct_m::poisson_is_batch_capable (this)
 Whether this solver can transform a whole batch of functions in one call. More...
 
logical function, public poisson_oct_m::poisson_is_device_batch_capable (this)
 Whether a batch can be solved with the densities and potentials kept on the device. More...
 
subroutine, public poisson_oct_m::dpoisson_solve (this, namespace, pot, rho, all_nodes, kernel, reset)
 Calculates the Poisson equation. Given the density returns the corresponding potential. More...
 
subroutine, public poisson_oct_m::poisson_init_sm (this, namespace, space, main, der, sm, grp, method, force_cmplx)
 
logical pure function poisson_oct_m::poisson_solver_is_iterative (this)
 
subroutine, public poisson_oct_m::poisson_async_init (this, mc)
 
subroutine, public poisson_oct_m::poisson_async_end (this, mc)
 
subroutine, public poisson_oct_m::poisson_slave_work (this, namespace)
 
logical pure function, public poisson_oct_m::poisson_is_async (this)
 
subroutine, public poisson_oct_m::poisson_build_kernel (this, namespace, space, coulb, qq, cam, singul)
 
real(real64) function, public poisson_oct_m::poisson_get_full_range_weight (this, cam)
 Most Poisson solvers do not implement Coulomb attenuated potentials, and can only be used for global hybrids like PBE0. For these ones, this routine returns the weight of the full-range hybrids. More...
 
subroutine poisson_oct_m::poisson_kernel_init (this, namespace, space, mc, stencil)
 
subroutine poisson_oct_m::poisson_solve_direct (this, namespace, pot, rho)
 
subroutine poisson_oct_m::dpoisson_solve_direct_sm (this, namespace, sm, pot, rho)
 
subroutine poisson_oct_m::zpoisson_solve_direct_sm (this, namespace, sm, pot, rho)
 
subroutine, public poisson_oct_m::dpoisson_solve_start (this, rho)
 
subroutine, public poisson_oct_m::dpoisson_solve_finish (this, pot)
 
subroutine, public poisson_oct_m::dpoisson_solve_sm (this, namespace, sm, pot, rho, all_nodes)
 Calculates the Poisson equation. Given the density returns the corresponding potential. More...
 
subroutine, public poisson_oct_m::dpoisson_solve_batch (this, namespace, pot, rho, kernel, all_nodes, pot_buffer, rho_buffer, count)
 Solves the Poisson equation for batched quantities, using fast Fourier transforms (FFTs). More...
 
subroutine, public poisson_oct_m::zpoisson_solve_start (this, rho)
 
subroutine, public poisson_oct_m::zpoisson_solve_finish (this, pot)
 
subroutine, public poisson_oct_m::zpoisson_solve_sm (this, namespace, sm, pot, rho, all_nodes)
 Calculates the Poisson equation. Given the density returns the corresponding potential. More...
 
subroutine, public poisson_oct_m::zpoisson_solve_batch (this, namespace, pot, rho, kernel, all_nodes, pot_buffer, rho_buffer, count)
 Solves the Poisson equation for batched quantities, using fast Fourier transforms (FFTs). More...
 
subroutine poisson_oct_m::zpoisson_solve_real_and_imag_separately (this, namespace, pot, rho, all_nodes, kernel)
 
subroutine poisson_oct_m::zpoisson_solve_real_and_imag_separately_batch (this, namespace, pot, rho, kernel)
 Batched analogue of zpoisson_solve_real_and_imag_separately. More...
 
subroutine poisson_oct_m::zpoisson_solve_real_and_imag_separately_accel (this, namespace, pot_buffer, rho_buffer, kernel, count)
 Device variant of zpoisson_solve_real_and_imag_separately. More...
 
subroutine, public poisson_oct_m::spoisson_solve (this, namespace, pot, rho, all_nodes, kernel, reset)
 Single-precision scalar Poisson solve (FFT method only). This is the s/c counterpart of the concrete dpoisson_solve/zpoisson_solve; it serves the per-function fallback of spoisson_solve_batch and the non-batched branch of the templated exchange. More...
 
subroutine, public poisson_oct_m::spoisson_solve_batch (this, namespace, pot, rho, kernel, all_nodes, pot_buffer, rho_buffer, count)
 Solves the Poisson equation for batched quantities, using fast Fourier transforms (FFTs). More...
 
subroutine, public poisson_oct_m::cpoisson_solve (this, namespace, pot, rho, all_nodes, kernel, reset)
 Single-precision scalar Poisson solve (FFT method only). This is the s/c counterpart of the concrete dpoisson_solve/zpoisson_solve; it serves the per-function fallback of cpoisson_solve_batch and the non-batched branch of the templated exchange. More...
 
subroutine, public poisson_oct_m::cpoisson_solve_batch (this, namespace, pot, rho, kernel, all_nodes, pot_buffer, rho_buffer, count)
 Solves the Poisson equation for batched quantities, using fast Fourier transforms (FFTs). More...
 
subroutine poisson_oct_m::cpoisson_solve_real_and_imag_separately (this, namespace, pot, rho, all_nodes, kernel)
 
subroutine poisson_oct_m::cpoisson_solve_real_and_imag_separately_batch (this, namespace, pot, rho, kernel)
 Batched analogue of cpoisson_solve_real_and_imag_separately. More...
 
subroutine poisson_oct_m::cpoisson_solve_real_and_imag_separately_accel (this, namespace, pot_buffer, rho_buffer, kernel, count)
 Device variant of cpoisson_solve_real_and_imag_separately. More...
 

Variables

integer, parameter, public poisson_oct_m::poisson_direct_sum = -1
 
integer, parameter, public poisson_oct_m::poisson_fft = 0
 
integer, parameter, public poisson_oct_m::poisson_cg = 5
 
integer, parameter, public poisson_oct_m::poisson_cg_corrected = 6
 
integer, parameter, public poisson_oct_m::poisson_multigrid = 7
 
integer, parameter, public poisson_oct_m::poisson_isf = 8
 
integer, parameter, public poisson_oct_m::poisson_psolver = 10
 
integer, parameter, public poisson_oct_m::poisson_nfft = (-1537026393_int64)
 
integer, parameter, public poisson_oct_m::poisson_no = -99
 
integer, parameter, public poisson_oct_m::poisson_null = -999
 
integer, parameter poisson_oct_m::cmd_finish = 1
 
integer, parameter poisson_oct_m::cmd_poisson_solve = 2