tblite
Light-weight tight-binding framework
Loading...
Searching...
No Matches
tblite_scf_mixer_broyden::broyden_mixer Type Reference

Electronic mixer using modified Broyden scheme. More...

Inheritance diagram for tblite_scf_mixer_broyden::broyden_mixer:
tblite_scf_mixer_type::mixer_type

Public Member Functions

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.
Public Member Functions inherited from tblite_scf_mixer_type::mixer_type
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.

Data Fields

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

Detailed Description

Electronic mixer using modified Broyden scheme.

Member Function/Subroutine Documentation

◆ 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]selfInstance of the mixer
[in]qvecDensity 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]selfInstance of the mixer
[out]qvecDensity 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]selfInstance of the mixer
[out]errorError 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]selfInstance of the mixer
[in]qvecDensity vector

The documentation for this type was generated from the following file: