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