Poisson
Name AlphaFMM
Section Hamiltonian::Poisson
Type float
Default 0.291262136
Dimensionless parameter for the correction of the self-interaction of the
electrostatic Hartree potential, when using PoissonSolver = FMM.
Octopus represents charge density on a real-space grid, each point containing a value $\rho$ corresponding to the charge density in the cell centered in such point. Therefore, the integral for the Hartree potential at point $i$, $V_H(i)$, can be reduced to a summation:
$V_H(i) = \frac{\Omega}{4\pi\varepsilon_0} \sum_{i \neq j} \frac{\rho(\vec{r}(j))}{|\vec{r}(j) - \vec{r}(i)|} + V_{self.int.}(i)$ where $\Omega$ is the volume element of the mesh, and $\vec{r}(j)$ is the position of the point $j$. The $V_{self.int.}(i)$ corresponds to the integral over the cell centered on the point $i$ that is necessary to calculate the Hartree potential at point $i$:
$V_{self.int.}(i)=\frac{1}{4\pi\varepsilon_0} \int_{\Omega(i)}d\vec{r} \frac{\rho(\vec{r}(i))}{|\vec{r}-\vec{r}(i)|}$
In the FMM version implemented into Octopus, a correction method
for $V_H(i)$ is used
(see García-Risueño et al., J. Comp. Chem. 35, 427 (2014)).
This method defines cells neighbouring cell $i$, which
have volume $\Omega(i)/8$ (in 3D) and charge density obtained by
interpolation. In the calculation of $V_H(i)$, in order to avoid
double counting of charge, and to cancel part of the errors arising
from considering the distances constant in the summation above, a
term $-\alpha_{FMM}V_{self.int.}(i)$ is added to the summation (see
the paper for the explicit formulae).
Name DeltaEFMM
Section Hamiltonian::Poisson
Type float
Default 0.0001
Dimensionless parameter for relative convergence of PoissonSolver = FMM.
Sets energy error bound.
Strong inhomogeneous systems may violate the error bound.
For inhomogeneous systems we have an error-controlled sequential version available
(from Ivo Kabadshow).
Our implementation of FMM (based on H. Dachsel, J. Chem. Phys. 131, 244102 (2009)) can keep the error of the Hartree energy below an arbitrary bound. The quotient of the value chosen for the maximum error in the Hartree energy and the value of the Hartree energy is DeltaEFMM.
Name DressedOrbitals
Section Hamiltonian::Poisson
Type logical
Default false
Allows for the calculation of coupled elecron-photon problems
by applying the dressed orbital approach. Details can be found in
https://arxiv.org/abs/1812.05562
At the moment, N electrons in d (<=3) spatial dimensions, coupled
to one photon mode can be described. The photon mode is included by
raising the orbital dimension to d+1 and changing the particle interaction
kernel and the local potential, where the former is included automatically,
but the latter needs to by added by hand as a user_defined_potential!
Coordinate 1-d: electron; coordinate d+1: photon.
Name Poisson1DSoftCoulombParam
Section Hamiltonian::Poisson
Type float
Default 1.0 bohr
When Dimensions = 1, to prevent divergence, the Coulomb interaction treated by the Poisson
solver is not $1/r$ but $1/\sqrt{a^2 + r^2}$, where this variable sets the value of $a$.
Name PoissonCutoffRadius
Section Hamiltonian::Poisson
Type float
When PoissonSolver = fft and PoissonFFTKernel is neither multipole_corrections
nor fft_nocut,
this variable controls the distance after which the electron-electron interaction goes to zero.
A warning will be written if the value is too large and will cause spurious interactions between images.
The default is half of the FFT box max dimension in a finite direction.
Name PoissonFFTKernel
Section Hamiltonian::Poisson
Type integer
Defines which kernel is used to impose the correct boundary
conditions when using FFTs to solve the Poisson equation. The
default is selected depending on the dimensionality and
periodicity of the system:
In 1D, spherical if finite, fft_nocut if periodic.
In 2D, spherical if finite, cylindrical if 1D-periodic, fft_nocut if 2D-periodic.
In 3D, spherical if finite, cylindrical if 1D-periodic, planar if 2D-periodic,
fft_nocut if 3D-periodic.
See C. A. Rozzi et al., Phys. Rev. B 73, 205119 (2006) for 3D implementation and
A. Castro et al., Phys. Rev. B 80, 033102 (2009) for 2D implementation.
Options:
- spherical:
FFTs using spherical cutoff (in 2D or 3D).
- cylindrical:
FFTs using cylindrical cutoff (in 2D or 3D).
- planar:
FFTs using planar cutoff (in 3D).
- fft_nocut:
FFTs without using a cutoff (for fully periodic systems).
- multipole_correction:
The boundary conditions are imposed by using a multipole expansion. Only appropriate for finite systems.
Further specification occurs with variables PoissonSolverBoundaries and PoissonSolverMaxMultipole.
Name PoissonSolver
Section Hamiltonian::Poisson
Type integer
Defines which method to use to solve the Poisson equation. Some incompatibilities apply depending on
dimensionality, periodicity, etc.
For a comparison of the accuracy and performance of the methods in Octopus, see P Garcia-Risueño,
J Alberdi-Rodriguez et al., J. Comp. Chem. 35, 427-444 (2014)
or arXiV.
Defaults:
1D and 2D: fft.
3D: cg_corrected if curvilinear, isf if not periodic, fft if periodic.
Dressed orbitals: direct_sum.
Options:
- NoPoisson:
Do not use a Poisson solver at all.
- FMM:
(Experimental) Fast multipole method. Requires FMM library.
- direct_sum:
Direct evaluation of the Hartree potential (only for finite systems).
- fft:
The Poisson equation is solved using FFTs. A cutoff technique
for the Poisson kernel is selected so the proper boundary
conditions are imposed according to the periodicity of the
system. This can be overridden by the PoissonFFTKernel
variable. To choose the FFT library use FFTLibrary
- cg:
Conjugate gradients (only for finite systems).
- cg_corrected:
Conjugate gradients, corrected for boundary conditions (only for finite systems).
- multigrid:
Multigrid method (only for finite systems).
- isf:
Interpolating Scaling Functions Poisson solver (only for finite systems).
- psolver:
Solver based on Interpolating Scaling Functions as implemented in the PSolver library.
Parallelization in k-points requires PoissonSolverPSolverParallelData = no.
Requires the PSolver external library.
- poke:
(Experimental) Solver from the Poke library.
Name PoissonSolverBoundaries
Section Hamiltonian::Poisson
Type integer
Default multipole
For finite systems, some Poisson solvers (multigrid,
cg_corrected, and fft with PoissonFFTKernel = multipole_correction)
require the calculation of the
boundary conditions with an auxiliary method. This variable selects that method.
Options:
- multipole:
A multipole expansion of the density is used to approximate the potential on the boundaries.
- exact:
An exact integration of the Poisson equation is done over the boundaries. This option is
experimental, and not implemented for domain parallelization.
Name PoissonSolverMaxIter
Section Hamiltonian::Poisson
Type integer
Default 500
The maximum number of iterations for conjugate-gradient
Poisson solvers.
Name PoissonSolverMaxMultipole
Section Hamiltonian::Poisson
Type integer
Order of the multipolar expansion for boundary corrections.
The Poisson solvers multigrid, cg, and cg_corrected (and fft with PoissonFFTKernel = multipole_correction) do a multipolar expansion of the given charge density, such that $\rho = \rho_{multip.expansion}+\Delta \rho$. The Hartree potential due to the $\rho_{multip.expansion}$ is calculated analytically, while the Hartree potential due to $\Delta \rho$ is calculated with either a multigrid or cg solver. The order of the multipolar expansion is set by this variable.
Default is 4 for PoissonSolver = cg_corrected and multigrid, and 2
for fft with PoissonFFTKernel = multipole_correction.
Name PoissonSolverNodes
Section Hamiltonian::Poisson
Type integer
Default 0
How many nodes to use to solve the Poisson equation. A value of
0, the default, implies that all available nodes are used.
Name PoissonSolverThreshold
Section Hamiltonian::Poisson
Type float
Default 1e-6
The tolerance for the Poisson solution, used by the cg,
cg_corrected, and multigrid solvers.
Name PoissonTestPeriodicThreshold
Section Hamiltonian::Poisson
Type float
Default 1e-5
This threshold determines the accuracy of the periodic copies of
the Gaussian charge distribution that are taken into account when
computing the analytical solution for periodic systems.
Be aware that the default leads to good results for systems
that are periodic in 1D - for 3D it is very costly because of the
large number of copies needed.