![]() |
Octopus
|
Data Types | |
| type | poisson_t |
Functions/Subroutines | |
| subroutine, public | 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_end (this) |
| subroutine, public | zpoisson_solve (this, namespace, pot, rho, all_nodes, kernel, reset) |
| subroutine, public | poisson_solve_batch (this, namespace, potb, rhob, all_nodes, kernel) |
| logical function, public | poisson_solves_complex_natively (this) |
| Whether zpoisson_solve takes a complex density in one pass. More... | |
| logical function, public | poisson_uses_nfft (this) |
| Whether the solve goes through a non-equispaced FFT. More... | |
| logical function, public | poisson_is_batch_capable (this) |
| Whether this solver can transform a whole batch of functions in one call. More... | |
| logical function, public | poisson_is_device_batch_capable (this) |
| Whether a batch can be solved with the densities and potentials kept on the device. More... | |
| subroutine, public | 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_init_sm (this, namespace, space, main, der, sm, grp, method, force_cmplx) |
| logical pure function | poisson_solver_is_iterative (this) |
| subroutine, public | poisson_async_init (this, mc) |
| subroutine, public | poisson_async_end (this, mc) |
| subroutine, public | poisson_slave_work (this, namespace) |
| logical pure function, public | poisson_is_async (this) |
| subroutine, public | poisson_build_kernel (this, namespace, space, coulb, qq, cam, singul) |
| real(real64) function, public | 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_kernel_init (this, namespace, space, mc, stencil) |
| subroutine | poisson_solve_direct (this, namespace, pot, rho) |
| subroutine | dpoisson_solve_direct_sm (this, namespace, sm, pot, rho) |
| subroutine | zpoisson_solve_direct_sm (this, namespace, sm, pot, rho) |
| subroutine, public | dpoisson_solve_start (this, rho) |
| subroutine, public | dpoisson_solve_finish (this, pot) |
| subroutine, public | dpoisson_solve_sm (this, namespace, sm, pot, rho, all_nodes) |
| Calculates the Poisson equation. Given the density returns the corresponding potential. More... | |
| subroutine, public | 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 | zpoisson_solve_start (this, rho) |
| subroutine, public | zpoisson_solve_finish (this, pot) |
| subroutine, public | zpoisson_solve_sm (this, namespace, sm, pot, rho, all_nodes) |
| Calculates the Poisson equation. Given the density returns the corresponding potential. More... | |
| subroutine, public | 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 | zpoisson_solve_real_and_imag_separately (this, namespace, pot, rho, all_nodes, kernel) |
| subroutine | zpoisson_solve_real_and_imag_separately_batch (this, namespace, pot, rho, kernel) |
| Batched analogue of zpoisson_solve_real_and_imag_separately. More... | |
| subroutine | 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 | 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 | 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 | 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 | 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 | cpoisson_solve_real_and_imag_separately (this, namespace, pot, rho, all_nodes, kernel) |
| subroutine | cpoisson_solve_real_and_imag_separately_batch (this, namespace, pot, rho, kernel) |
| Batched analogue of cpoisson_solve_real_and_imag_separately. More... | |
| subroutine | 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_direct_sum = -1 |
| integer, parameter, public | poisson_fft = 0 |
| integer, parameter, public | poisson_cg = 5 |
| integer, parameter, public | poisson_cg_corrected = 6 |
| integer, parameter, public | poisson_multigrid = 7 |
| integer, parameter, public | poisson_isf = 8 |
| integer, parameter, public | poisson_psolver = 10 |
| integer, parameter, public | poisson_nfft = (-1537026393_int64) |
| integer, parameter, public | poisson_no = -99 |
| integer, parameter, public | poisson_null = -999 |
| integer, parameter | cmd_finish = 1 |
| integer, parameter | cmd_poisson_solve = 2 |
| subroutine, public poisson_oct_m::poisson_init | ( | type(poisson_t), intent(inout) | this, |
| type(namespace_t), intent(in) | namespace, | ||
| class(space_t), intent(in) | space, | ||
| type(derivatives_t), intent(in), target | der, | ||
| type(multicomm_t), intent(in) | mc, | ||
| type(stencil_t), intent(in) | stencil, | ||
| real(real64), intent(in), optional | qtot, | ||
| character(len=*), intent(in), optional | label, | ||
| integer, intent(in), optional | solver, | ||
| logical, intent(in), optional | verbose, | ||
| logical, intent(in), optional | force_serial, | ||
| logical, intent(in), optional | force_cmplx, | ||
| integer, intent(in), optional | fft_library, | ||
| integer, intent(in), optional | fft_batch_size, | ||
| logical, intent(in), optional | single_precision | ||
| ) |
| [in] | qtot | total charge |
| [in] | fft_library | Overrides FFTLibrary for the cube |
| [in] | fft_batch_size | Number of FFTs solved at once |
| [in] | single_precision | single-precision FFT Poisson |
Definition at line 242 of file poisson.F90.
| subroutine, public poisson_oct_m::poisson_end | ( | type(poisson_t), intent(inout) | this | ) |
Definition at line 716 of file poisson.F90.
| subroutine, public poisson_oct_m::zpoisson_solve | ( | type(poisson_t), intent(in) | this, |
| type(namespace_t), intent(in) | namespace, | ||
| complex(real64), dimension(:), intent(inout), contiguous | pot, | ||
| complex(real64), dimension(:), intent(in), contiguous | rho, | ||
| logical, intent(in), optional | all_nodes, | ||
| type(fourier_space_op_t), intent(in), optional | kernel, | ||
| logical, intent(in), optional | reset | ||
| ) |
| [in,out] | pot | pot(meshnp) |
| [in] | rho | rho(meshnp) |
| [in] | reset | For iterative solvers, we can decide to reset or not the potential |
Definition at line 772 of file poisson.F90.
| subroutine, public poisson_oct_m::poisson_solve_batch | ( | type(poisson_t), intent(inout) | this, |
| type(namespace_t), intent(in) | namespace, | ||
| type(batch_t), intent(inout) | potb, | ||
| type(batch_t), intent(inout) | rhob, | ||
| logical, intent(in), optional | all_nodes, | ||
| type(fourier_space_op_t), intent(in), optional | kernel | ||
| ) |
Definition at line 817 of file poisson.F90.
| logical function, public poisson_oct_m::poisson_solves_complex_natively | ( | type(poisson_t), intent(in) | this | ) |
Whether zpoisson_solve takes a complex density in one pass.
Otherwise the real and the imaginary part are solved separately.
Definition at line 849 of file poisson.F90.
| logical function, public poisson_oct_m::poisson_uses_nfft | ( | type(poisson_t), intent(in) | this | ) |
Whether the solve goes through a non-equispaced FFT.
Either as the solver itself, or as the FFT library behind the cube.
Definition at line 867 of file poisson.F90.
| logical function, public poisson_oct_m::poisson_is_batch_capable | ( | type(poisson_t), intent(in) | this | ) |
Whether this solver can transform a whole batch of functions in one call.
Only the plain FFT solver can; the corrected kernel needs a per-function density correction. This does not check the batch capacity of the cube: a capable solver whose cube holds a single function is still solved one function at a time.
Definition at line 886 of file poisson.F90.
| logical function, public poisson_oct_m::poisson_is_device_batch_capable | ( | type(poisson_t), intent(in) | this | ) |
Whether a batch can be solved with the densities and potentials kept on the device.
Definition at line 895 of file poisson.F90.
| subroutine, public poisson_oct_m::dpoisson_solve | ( | type(poisson_t), intent(in) | this, |
| type(namespace_t), intent(in) | namespace, | ||
| real(real64), dimension(:), intent(inout), contiguous | pot, | ||
| real(real64), dimension(:), intent(in), contiguous | rho, | ||
| logical, intent(in), optional | all_nodes, | ||
| type(fourier_space_op_t), intent(in), optional | kernel, | ||
| logical, intent(in), optional | reset | ||
| ) |
Calculates the Poisson equation. Given the density returns the corresponding potential.
Different solvers are available that can be chosen in the input file with the "PoissonSolver" parameter
| [in,out] | pot | Local size of the potential vector. |
| [in] | rho | Local size of the density (rho) vector. |
| [in] | all_nodes | Is the Poisson solver allowed to utilise all nodes or only the domain nodes for its calculations? (Defaults to .true.) |
| [in] | reset | For iterative solvers, we can decide to reset or not the potential |
Definition at line 913 of file poisson.F90.
| subroutine, public poisson_oct_m::poisson_init_sm | ( | type(poisson_t), intent(inout) | this, |
| type(namespace_t), intent(in) | namespace, | ||
| class(space_t), intent(in) | space, | ||
| type(poisson_t), intent(in) | main, | ||
| type(derivatives_t), intent(in), target | der, | ||
| type(submesh_t), intent(inout) | sm, | ||
| type(mpi_grp_t), intent(in) | grp, | ||
| integer, intent(in), optional | method, | ||
| logical, intent(in), optional | force_cmplx | ||
| ) |
Definition at line 1022 of file poisson.F90.
|
private |
Definition at line 1126 of file poisson.F90.
| subroutine, public poisson_oct_m::poisson_async_init | ( | type(poisson_t), intent(inout) | this, |
| type(multicomm_t), intent(in) | mc | ||
| ) |
Definition at line 1133 of file poisson.F90.
| subroutine, public poisson_oct_m::poisson_async_end | ( | type(poisson_t), intent(inout) | this, |
| type(multicomm_t), intent(in) | mc | ||
| ) |
Definition at line 1145 of file poisson.F90.
| subroutine, public poisson_oct_m::poisson_slave_work | ( | type(poisson_t), intent(inout) | this, |
| type(namespace_t), intent(in) | namespace | ||
| ) |
Definition at line 1161 of file poisson.F90.
| logical pure function, public poisson_oct_m::poisson_is_async | ( | type(poisson_t), intent(in) | this | ) |
Definition at line 1169 of file poisson.F90.
| subroutine, public poisson_oct_m::poisson_build_kernel | ( | type(poisson_t), intent(in) | this, |
| type(namespace_t), intent(in) | namespace, | ||
| class(space_t), intent(in) | space, | ||
| type(fourier_space_op_t), intent(inout) | coulb, | ||
| real(real64), dimension(:), intent(in) | qq, | ||
| type(xc_cam_t), intent(in) | cam, | ||
| real(real64), intent(in), optional | singul | ||
| ) |
Definition at line 1178 of file poisson.F90.
| real(real64) function, public poisson_oct_m::poisson_get_full_range_weight | ( | type(poisson_t), intent(in) | this, |
| type(xc_cam_t), intent(in) | 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.
If the Poisson solver supports CAM hybrids, the returned weight is 1.
For purely short-range, or purely long-range, the corresponding weight is also returned, such that Poisson solvers that support these cases (like ISF) can also be used correctly.
Definition at line 1242 of file poisson.F90.
|
private |
Definition at line 1282 of file poisson.F90.
|
private |
Definition at line 1497 of file poisson.F90.
|
private |
Definition at line 1746 of file poisson.F90.
|
private |
| [out] | pot | pot(meshnp) |
| [in] | rho | rho(meshnp) |
Definition at line 1945 of file poisson.F90.
| subroutine, public poisson_oct_m::dpoisson_solve_start | ( | type(poisson_t), intent(in) | this, |
| real(real64), dimension(:), intent(in), contiguous | rho | ||
| ) |
Definition at line 2054 of file poisson.F90.
| subroutine, public poisson_oct_m::dpoisson_solve_finish | ( | type(poisson_t), intent(in) | this, |
| real(real64), dimension(:), intent(inout), contiguous | pot | ||
| ) |
Definition at line 2062 of file poisson.F90.
| subroutine, public poisson_oct_m::dpoisson_solve_sm | ( | type(poisson_t), intent(in) | this, |
| type(namespace_t), intent(in) | namespace, | ||
| type(submesh_t), intent(in) | sm, | ||
| real(real64), dimension(:), intent(inout), contiguous | pot, | ||
| real(real64), dimension(:), intent(inout), contiguous | rho, | ||
| logical, intent(in), optional | all_nodes | ||
| ) |
Calculates the Poisson equation. Given the density returns the corresponding potential.
Different solvers are available that can be chosen in the input file with the "PoissonSolver" parameter
| [in,out] | pot | Local size of the potential vector. |
| [in,out] | rho | Local size of the density (rho) vector. |
| [in] | all_nodes | Is the Poisson solver allowed to utilise all nodes or only the domain nodes for its calculations? (Defaults to .false.) |
Definition at line 2074 of file poisson.F90.
| subroutine, public poisson_oct_m::dpoisson_solve_batch | ( | type(poisson_t), intent(in) | this, |
| type(namespace_t), intent(in) | namespace, | ||
| real(real64), dimension(:, :), intent(out), optional, contiguous | pot, | ||
| real(real64), dimension(:, :), intent(in), optional, contiguous | rho, | ||
| type(fourier_space_op_t), intent(in), optional | kernel, | ||
| logical, intent(in), optional | all_nodes, | ||
| type(accel_mem_t), intent(inout), optional | pot_buffer, | ||
| type(accel_mem_t), intent(in), optional | rho_buffer, | ||
| integer, intent(in), optional | count | ||
| ) |
Solves the Poisson equation for batched quantities, using fast Fourier transforms (FFTs).
Given a batch of input densities \(\rho(\mathbf r)\), computes the corresponding electrostatic potentials \(v(\mathbf r)\) satisfying:
\[ \nabla^2 v(\mathbf r) = -4\pi \rho(\mathbf r). \]
If a Fourier-space kernel is supplied, it is used for the reciprocal-space application of the Coulomb operator.
The use of the CPU or GPU path is determined by the presence of device-resident buffers (pot_buffer/rho_buffer) or host arrays (pot/rho).
| [out] | pot | Computed potentials (host) |
| [in] | rho | Input densities (host) |
| [in] | kernel | Optional Fourier-space operator defining the Coulomb kernel to apply when the Poisson solver is an FFT. |
| [in] | all_nodes | Only used by the per-function fallback |
| [in] | count | number of functions on the device (default 1) |
Definition at line 2154 of file poisson.F90.
| subroutine, public poisson_oct_m::zpoisson_solve_start | ( | type(poisson_t), intent(in) | this, |
| complex(real64), dimension(:), intent(in), contiguous | rho | ||
| ) |
Definition at line 2314 of file poisson.F90.
| subroutine, public poisson_oct_m::zpoisson_solve_finish | ( | type(poisson_t), intent(in) | this, |
| complex(real64), dimension(:), intent(inout), contiguous | pot | ||
| ) |
Definition at line 2322 of file poisson.F90.
| subroutine, public poisson_oct_m::zpoisson_solve_sm | ( | type(poisson_t), intent(in) | this, |
| type(namespace_t), intent(in) | namespace, | ||
| type(submesh_t), intent(in) | sm, | ||
| complex(real64), dimension(:), intent(inout), contiguous | pot, | ||
| complex(real64), dimension(:), intent(inout), contiguous | rho, | ||
| logical, intent(in), optional | all_nodes | ||
| ) |
Calculates the Poisson equation. Given the density returns the corresponding potential.
Different solvers are available that can be chosen in the input file with the "PoissonSolver" parameter
| [in,out] | pot | Local size of the potential vector. |
| [in,out] | rho | Local size of the density (rho) vector. |
| [in] | all_nodes | Is the Poisson solver allowed to utilise all nodes or only the domain nodes for its calculations? (Defaults to .false.) |
Definition at line 2334 of file poisson.F90.
| subroutine, public poisson_oct_m::zpoisson_solve_batch | ( | type(poisson_t), intent(in) | this, |
| type(namespace_t), intent(in) | namespace, | ||
| complex(real64), dimension(:, :), intent(out), optional, contiguous | pot, | ||
| complex(real64), dimension(:, :), intent(in), optional, contiguous | rho, | ||
| type(fourier_space_op_t), intent(in), optional | kernel, | ||
| logical, intent(in), optional | all_nodes, | ||
| type(accel_mem_t), intent(inout), optional | pot_buffer, | ||
| type(accel_mem_t), intent(in), optional | rho_buffer, | ||
| integer, intent(in), optional | count | ||
| ) |
Solves the Poisson equation for batched quantities, using fast Fourier transforms (FFTs).
Given a batch of input densities \(\rho(\mathbf r)\), computes the corresponding electrostatic potentials \(v(\mathbf r)\) satisfying:
\[ \nabla^2 v(\mathbf r) = -4\pi \rho(\mathbf r). \]
If a Fourier-space kernel is supplied, it is used for the reciprocal-space application of the Coulomb operator.
The use of the CPU or GPU path is determined by the presence of device-resident buffers (pot_buffer/rho_buffer) or host arrays (pot/rho).
| [out] | pot | Computed potentials (host) |
| [in] | rho | Input densities (host) |
| [in] | kernel | Optional Fourier-space operator defining the Coulomb kernel to apply when the Poisson solver is an FFT. |
| [in] | all_nodes | Only used by the per-function fallback |
| [in] | count | number of functions on the device (default 1) |
Definition at line 2470 of file poisson.F90.
|
private |
| [in,out] | pot | pot(meshnp) |
| [in] | rho | rho(meshnp) |
Definition at line 2581 of file poisson.F90.
|
private |
Batched analogue of zpoisson_solve_real_and_imag_separately.
Solves a batch of complex codensities on a real FFT cube by transforming the real and imaginary parts independently with the real batched FFT and recombining. Used by the batched exchange path when the cube was sized for the real ground state (e.g. TD OEP/KLI exchange).
Definition at line 2640 of file poisson.F90.
|
private |
Device variant of zpoisson_solve_real_and_imag_separately.
| [in] | count | number of functions (default 1) |
Definition at line 2679 of file poisson.F90.
| subroutine, public poisson_oct_m::spoisson_solve | ( | type(poisson_t), intent(in) | this, |
| type(namespace_t), intent(in) | namespace, | ||
| real(real32), dimension(:), intent(inout), contiguous | pot, | ||
| real(real32), dimension(:), intent(in), contiguous | rho, | ||
| logical, intent(in), optional | all_nodes, | ||
| type(fourier_space_op_t), intent(in), optional | kernel, | ||
| logical, intent(in), optional | 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.
Definition at line 2838 of file poisson.F90.
| subroutine, public poisson_oct_m::spoisson_solve_batch | ( | type(poisson_t), intent(in) | this, |
| type(namespace_t), intent(in) | namespace, | ||
| real(real32), dimension(:, :), intent(out), optional, contiguous | pot, | ||
| real(real32), dimension(:, :), intent(in), optional, contiguous | rho, | ||
| type(fourier_space_op_t), intent(in), optional | kernel, | ||
| logical, intent(in), optional | all_nodes, | ||
| type(accel_mem_t), intent(inout), optional | pot_buffer, | ||
| type(accel_mem_t), intent(in), optional | rho_buffer, | ||
| integer, intent(in), optional | count | ||
| ) |
Solves the Poisson equation for batched quantities, using fast Fourier transforms (FFTs).
Given a batch of input densities \(\rho(\mathbf r)\), computes the corresponding electrostatic potentials \(v(\mathbf r)\) satisfying:
\[ \nabla^2 v(\mathbf r) = -4\pi \rho(\mathbf r). \]
If a Fourier-space kernel is supplied, it is used for the reciprocal-space application of the Coulomb operator.
The use of the CPU or GPU path is determined by the presence of device-resident buffers (pot_buffer/rho_buffer) or host arrays (pot/rho).
| [out] | pot | Computed potentials (host) |
| [in] | rho | Input densities (host) |
| [in] | kernel | Optional Fourier-space operator defining the Coulomb kernel to apply when the Poisson solver is an FFT. |
| [in] | all_nodes | Only used by the per-function fallback |
| [in] | count | number of functions on the device (default 1) |
Definition at line 2885 of file poisson.F90.
| subroutine, public poisson_oct_m::cpoisson_solve | ( | type(poisson_t), intent(in) | this, |
| type(namespace_t), intent(in) | namespace, | ||
| complex(real32), dimension(:), intent(inout), contiguous | pot, | ||
| complex(real32), dimension(:), intent(in), contiguous | rho, | ||
| logical, intent(in), optional | all_nodes, | ||
| type(fourier_space_op_t), intent(in), optional | kernel, | ||
| logical, intent(in), optional | 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.
Definition at line 3051 of file poisson.F90.
| subroutine, public poisson_oct_m::cpoisson_solve_batch | ( | type(poisson_t), intent(in) | this, |
| type(namespace_t), intent(in) | namespace, | ||
| complex(real32), dimension(:, :), intent(out), optional, contiguous | pot, | ||
| complex(real32), dimension(:, :), intent(in), optional, contiguous | rho, | ||
| type(fourier_space_op_t), intent(in), optional | kernel, | ||
| logical, intent(in), optional | all_nodes, | ||
| type(accel_mem_t), intent(inout), optional | pot_buffer, | ||
| type(accel_mem_t), intent(in), optional | rho_buffer, | ||
| integer, intent(in), optional | count | ||
| ) |
Solves the Poisson equation for batched quantities, using fast Fourier transforms (FFTs).
Given a batch of input densities \(\rho(\mathbf r)\), computes the corresponding electrostatic potentials \(v(\mathbf r)\) satisfying:
\[ \nabla^2 v(\mathbf r) = -4\pi \rho(\mathbf r). \]
If a Fourier-space kernel is supplied, it is used for the reciprocal-space application of the Coulomb operator.
The use of the CPU or GPU path is determined by the presence of device-resident buffers (pot_buffer/rho_buffer) or host arrays (pot/rho).
| [out] | pot | Computed potentials (host) |
| [in] | rho | Input densities (host) |
| [in] | kernel | Optional Fourier-space operator defining the Coulomb kernel to apply when the Poisson solver is an FFT. |
| [in] | all_nodes | Only used by the per-function fallback |
| [in] | count | number of functions on the device (default 1) |
Definition at line 3105 of file poisson.F90.
|
private |
| [in,out] | pot | pot(meshnp) |
| [in] | rho | rho(meshnp) |
Definition at line 3216 of file poisson.F90.
|
private |
Batched analogue of cpoisson_solve_real_and_imag_separately.
Solves a batch of complex codensities on a real FFT cube by transforming the real and imaginary parts independently with the real batched FFT and recombining. Used by the batched exchange path when the cube was sized for the real ground state (e.g. TD OEP/KLI exchange).
Definition at line 3275 of file poisson.F90.
|
private |
Device variant of cpoisson_solve_real_and_imag_separately.
| [in] | count | number of functions (default 1) |
Definition at line 3314 of file poisson.F90.
| integer, parameter, public poisson_oct_m::poisson_direct_sum = -1 |
Definition at line 197 of file poisson.F90.
| integer, parameter, public poisson_oct_m::poisson_fft = 0 |
Definition at line 197 of file poisson.F90.
| integer, parameter, public poisson_oct_m::poisson_cg = 5 |
Definition at line 197 of file poisson.F90.
| integer, parameter, public poisson_oct_m::poisson_cg_corrected = 6 |
Definition at line 197 of file poisson.F90.
| integer, parameter, public poisson_oct_m::poisson_multigrid = 7 |
Definition at line 197 of file poisson.F90.
| integer, parameter, public poisson_oct_m::poisson_isf = 8 |
Definition at line 197 of file poisson.F90.
| integer, parameter, public poisson_oct_m::poisson_psolver = 10 |
Definition at line 197 of file poisson.F90.
| integer, parameter, public poisson_oct_m::poisson_nfft = (-1537026393_int64) |
Definition at line 197 of file poisson.F90.
| integer, parameter, public poisson_oct_m::poisson_no = -99 |
Definition at line 197 of file poisson.F90.
| integer, parameter, public poisson_oct_m::poisson_null = -999 |
Definition at line 197 of file poisson.F90.
|
private |
Definition at line 235 of file poisson.F90.
|
private |
Definition at line 235 of file poisson.F90.