tblite
Light-weight tight-binding framework
Loading...
Searching...
No Matches
tblite_scf_mixer_type::mixer_type Type Referenceabstract

Abstract base class for electronic mixing. More...

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

Public Member Functions

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.
 

Detailed Description

Abstract base class for electronic mixing.

Member Function/Subroutine Documentation

◆ diff() [1/3]

generic tblite_scf_mixer_type::mixer_type::diff ( class(mixer_type), intent(inout) self,
real(wp), dimension(:), intent(in) qvec )

Set difference between new and old density.

Parameters
[in,out]selfInstance of the electronic mixer
[in]qvecDensity vector

◆ diff() [2/3]

generic tblite_scf_mixer_type::mixer_type::diff ( class(mixer_type), intent(inout) self,
real(wp), dimension(:, :), intent(in), target, contiguous qvec )

Set difference between new and old density.

Parameters
[in,out]selfInstance of the electronic mixer
[in]qvecDensity vector

◆ diff() [3/3]

generic tblite_scf_mixer_type::mixer_type::diff ( class(mixer_type), intent(inout) self,
real(wp), dimension(:, :, :), intent(in), target, contiguous qvec )

Set difference between new and old density.

Parameters
[in,out]selfInstance of the electronic mixer
[in]qvecDensity vector

◆ diff_1d()

procedure(diff_1d), deferred tblite_scf_mixer_type::mixer_type::diff_1d ( class(mixer_type), intent(inout) self,
real(wp), dimension(:), intent(in) qvec )
pure virtual

Set difference between new and old density from 1D array.

Parameters
[in,out]selfInstance of the electronic mixer
[in]qvecDensity vector

◆ diff_2d()

procedure tblite_scf_mixer_type::mixer_type::diff_2d ( class(mixer_type), intent(inout) self,
real(wp), dimension(:, :), intent(in), target, contiguous qvec )

Set difference between new and old density from 2D array.

Parameters
[in,out]selfInstance of the electronic mixer
[in]qvecDensity vector

◆ diff_3d()

procedure tblite_scf_mixer_type::mixer_type::diff_3d ( class(mixer_type), intent(inout) self,
real(wp), dimension(:, :, :), intent(in), target, contiguous qvec )

Set difference between new and old density from 3D array.

Parameters
[in,out]selfInstance of the electronic mixer
[in]qvecDensity vector

◆ get() [1/3]

generic tblite_scf_mixer_type::mixer_type::get ( class(mixer_type), intent(inout) self,
real(wp), dimension(:), intent(out) qvec )

Get density.

Parameters
[in,out]selfInstance of the electronic mixer
[out]qvecDensity vector

◆ get() [2/3]

generic tblite_scf_mixer_type::mixer_type::get ( class(mixer_type), intent(inout) self,
real(wp), dimension(:, :), intent(out), target, contiguous qvec )

Get density.

Parameters
[in,out]selfInstance of the electronic mixer
[out]qvecDensity vector

◆ get() [3/3]

generic tblite_scf_mixer_type::mixer_type::get ( class(mixer_type), intent(inout) self,
real(wp), dimension(:, :, :), intent(out), target, contiguous qvec )

Get density.

Parameters
[in,out]selfInstance of the electronic mixer
[out]qvecDensity vector

◆ get_1d()

procedure(get_1d), deferred tblite_scf_mixer_type::mixer_type::get_1d ( class(mixer_type), intent(inout) self,
real(wp), dimension(:), intent(out) qvec )
pure virtual

Get density as 1D array.

Parameters
[in,out]selfInstance of the electronic mixer
[out]qvecDensity vector

◆ get_2d()

procedure tblite_scf_mixer_type::mixer_type::get_2d ( class(mixer_type), intent(inout) self,
real(wp), dimension(:, :), intent(out), target, contiguous qvec )

Get density as 2D array.

Parameters
[in,out]selfInstance of the electronic mixer
[out]qvecDensity vector

◆ get_3d()

procedure tblite_scf_mixer_type::mixer_type::get_3d ( class(mixer_type), intent(inout) self,
real(wp), dimension(:, :, :), intent(out), target, contiguous qvec )

Get density as 3D array.

Parameters
[in,out]selfInstance of the electronic mixer
[out]qvecDensity vector

◆ get_error()

procedure(get_error), deferred tblite_scf_mixer_type::mixer_type::get_error ( class(mixer_type), intent(in) self)
pure virtual

Get error metric from mixing.

Parameters
[in]selfInstance of the electronic mixer
Returns
Error metric

◆ next()

procedure(next), deferred tblite_scf_mixer_type::mixer_type::next ( class(mixer_type), intent(inout) self,
type(error_type), intent(out), allocatable error )
pure virtual

Apply mixing to the density.

Parameters
[in,out]selfInstance of the electronic mixer
[out]errorError handling

◆ set() [1/3]

generic tblite_scf_mixer_type::mixer_type::set ( class(mixer_type), intent(inout) self,
real(wp), dimension(:), intent(in) qvec )

Set new density.

Parameters
[in,out]selfInstance of the electronic mixer
[in]qvecDensity vector

◆ set() [2/3]

generic tblite_scf_mixer_type::mixer_type::set ( class(mixer_type), intent(inout) self,
real(wp), dimension(:, :), intent(in), target, contiguous qvec )

Set new density.

Parameters
[in,out]selfInstance of the electronic mixer
[in]qvecDensity vector

◆ set() [3/3]

generic tblite_scf_mixer_type::mixer_type::set ( class(mixer_type), intent(inout) self,
real(wp), dimension(:, :, :), intent(in), target, contiguous qvec )

Set new density.

Parameters
[in,out]selfInstance of the electronic mixer
[in]qvecDensity vector

◆ set_1d()

procedure(set_1d), deferred tblite_scf_mixer_type::mixer_type::set_1d ( class(mixer_type), intent(inout) self,
real(wp), dimension(:), intent(in) qvec )
pure virtual

Set new density from 1D array.

Parameters
[in,out]selfInstance of the electronic mixer
[in]qvecDensity vector

◆ set_2d()

procedure tblite_scf_mixer_type::mixer_type::set_2d ( class(mixer_type), intent(inout) self,
real(wp), dimension(:, :), intent(in), target, contiguous qvec )

Set new density from 2D array.

Parameters
[in,out]selfInstance of the electronic mixer
[in]qvecDensity vector

◆ set_3d()

procedure tblite_scf_mixer_type::mixer_type::set_3d ( class(mixer_type), intent(inout) self,
real(wp), dimension(:, :, :), intent(in), target, contiguous qvec )

Set new density from 3D array.

Parameters
[in,out]selfInstance of the electronic mixer
[in]qvecDensity vector

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