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: