Electronic mixer using modified Broyden scheme.
More...
|
| procedure | next (self, error) |
| | Apply mixing to the density.
|
| |
| procedure | set_1d (self, qvec) |
| | Set new density from 1D array.
|
| |
| procedure | diff_1d (self, qvec) |
| | Set difference between new and old density from 1D array.
|
| |
| procedure | get_1d (self, qvec) |
| | Get density as 1D array.
|
| |
|
procedure | get_error (self) |
| | Get error metric from mixing.
|
| |
| procedure(next), deferred | next (self, error) |
| | Apply mixing to the density.
|
| |
| generic | set (self, qvec) |
| | Set new density.
|
| |
| generic | set (self, qvec) |
| | Set new density.
|
| |
| generic | set (self, qvec) |
| | Set new density.
|
| |
| procedure(set_1d), deferred | set_1d (self, qvec) |
| | Set new density from 1D array.
|
| |
| procedure | set_2d (self, qvec) |
| | Set new density from 2D array.
|
| |
| procedure | set_3d (self, qvec) |
| | Set new density from 3D array.
|
| |
| generic | diff (self, qvec) |
| | Set difference between new and old density.
|
| |
| generic | diff (self, qvec) |
| | Set difference between new and old density.
|
| |
| generic | diff (self, qvec) |
| | Set difference between new and old density.
|
| |
| procedure(diff_1d), deferred | diff_1d (self, qvec) |
| | Set difference between new and old density from 1D array.
|
| |
| procedure | diff_2d (self, qvec) |
| | Set difference between new and old density from 2D array.
|
| |
| procedure | diff_3d (self, qvec) |
| | Set difference between new and old density from 3D array.
|
| |
| generic | get (self, qvec) |
| | Get density.
|
| |
| generic | get (self, qvec) |
| | Get density.
|
| |
| generic | get (self, qvec) |
| | Get density.
|
| |
| procedure(get_1d), deferred | get_1d (self, qvec) |
| | Get density as 1D array.
|
| |
| procedure | get_2d (self, qvec) |
| | Get density as 2D array.
|
| |
| procedure | get_3d (self, qvec) |
| | Get density as 3D array.
|
| |
| procedure(get_error), deferred | get_error (self) |
| | Get error metric from mixing.
|
| |
|
|
integer | ndim |
| |
|
integer | memory |
| |
|
integer | iter |
| |
|
integer | iset |
| |
|
integer | idif |
| |
|
integer | iget |
| |
|
real(wp) | damp |
| |
|
real(wp), dimension(:, :), allocatable | df |
| |
|
real(wp), dimension(:, :), allocatable | u |
| |
|
real(wp), dimension(:, :), allocatable | a |
| |
|
real(wp), dimension(:), allocatable | dq |
| |
|
real(wp), dimension(:), allocatable | dqlast |
| |
|
real(wp), dimension(:), allocatable | qlast_in |
| |
|
real(wp), dimension(:), allocatable | omega |
| |
|
real(wp), dimension(:), allocatable | q_in |
| |
Electronic mixer using modified Broyden scheme.
◆ diff_1d()
| procedure tblite_scf_mixer_broyden::broyden_mixer::diff_1d |
( |
class(broyden_mixer), intent(inout) | self, |
|
|
real(wp), dimension(:), intent(in) | qvec ) |
Set difference between new and old density from 1D array.
- Parameters
-
| [in,out] | self | Instance of the mixer |
| [in] | qvec | Density vector |
◆ get_1d()
| procedure tblite_scf_mixer_broyden::broyden_mixer::get_1d |
( |
class(broyden_mixer), intent(inout) | self, |
|
|
real(wp), dimension(:), intent(out) | qvec ) |
Get density as 1D array.
- Parameters
-
| [in,out] | self | Instance of the mixer |
| [out] | qvec | Density vector |
◆ next()
| procedure tblite_scf_mixer_broyden::broyden_mixer::next |
( |
class(broyden_mixer), intent(inout) | self, |
|
|
type(error_type), intent(out), allocatable | error ) |
Apply mixing to the density.
- Parameters
-
| [in,out] | self | Instance of the mixer |
| [out] | error | Error handling |
◆ set_1d()
| procedure tblite_scf_mixer_broyden::broyden_mixer::set_1d |
( |
class(broyden_mixer), intent(inout) | self, |
|
|
real(wp), dimension(:), intent(in) | qvec ) |
Set new density from 1D array.
- Parameters
-
| [in,out] | self | Instance of the mixer |
| [in] | qvec | Density vector |
The documentation for this type was generated from the following file:
- /home/runner/work/tblite/tblite/src/tblite/scf/mixer/broyden.f90