Octopus
|
Functions/Subroutines | |
subroutine, public | dkerker_preconditioner (der, q_0, delta_f, f_out) |
Kerker preconditioner for the mixing operator in real space. More... | |
subroutine, public | zkerker_preconditioner (der, q_0, delta_f, f_out) |
Kerker preconditioner for the mixing operator in real space. More... | |
subroutine, public mixing_preconditioner_oct_m::dkerker_preconditioner | ( | type(derivatives_t), intent(in) | der, |
real(real64), intent(in) | q_0, | ||
real(real64), dimension(:), intent(in), contiguous | delta_f, | ||
real(real64), dimension(:), intent(out) | f_out | ||
) |
Kerker preconditioner for the mixing operator in real space.
Computes the preconditioned residual:
\[ f_{out} = (\Delta - q_0^2)^{-1} \Delta \delta f \]
by multiplying through by \((\Delta - q_0^2)\) and solving the linear system:
\[ (\Delta - q_0^2) f_{out} = \Delta \delta f \]
for \(f_{out}\). The implementation follows [Shiihara et. al. 2008 Modelling Simul. Mater. Sci. Eng. 16 035004] (https: the mixing coefficient in the preconditioned residual.
If the starting density does not already integrate to the fully correct total charge, an additional charge correction treatment is necessary:
\[ f_{out} = f_{out} + \frac{a}{V} \int_{V} \delta f d\mathbr{r} \]
See [Winkelmann et. al.](https:
[in] | der | Derivatives |
[in] | q_0 | Kerker parameter |
[in] | delta_f | Residual |
[out] | f_out | Preconditioned Residual |
Definition at line 225 of file mixing_preconditioner.F90.
subroutine, public mixing_preconditioner_oct_m::zkerker_preconditioner | ( | type(derivatives_t), intent(in) | der, |
real(real64), intent(in) | q_0, | ||
complex(real64), dimension(:), intent(in), contiguous | delta_f, | ||
complex(real64), dimension(:), intent(out) | f_out | ||
) |
Kerker preconditioner for the mixing operator in real space.
Computes the preconditioned residual:
\[ f_{out} = (\Delta - q_0^2)^{-1} \Delta \delta f \]
by multiplying through by \((\Delta - q_0^2)\) and solving the linear system:
\[ (\Delta - q_0^2) f_{out} = \Delta \delta f \]
for \(f_{out}\). The implementation follows [Shiihara et. al. 2008 Modelling Simul. Mater. Sci. Eng. 16 035004] (https: the mixing coefficient in the preconditioned residual.
If the starting density does not already integrate to the fully correct total charge, an additional charge correction treatment is necessary:
\[ f_{out} = f_{out} + \frac{a}{V} \int_{V} \delta f d\mathbr{r} \]
See [Winkelmann et. al.](https:
[in] | der | Derivatives |
[in] | q_0 | Kerker parameter |
[in] | delta_f | Residual |
[out] | f_out | Preconditioned Residual |
Definition at line 393 of file mixing_preconditioner.F90.