ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Mix_DMk_2D.h
Go to the documentation of this file.
1//=======================
2// AUTHOR : Peize Lin
3// DATE : 2023-05-09
4//=======================
5
6#ifndef MIX_DMK_2D_H
7#define MIX_DMK_2D_H
8
9#include "Mix_Matrix.h"
11#include "source_base/matrix.h"
12
13#include <vector>
14
16{
17public:
24 Mix_DMk_2D &set_nks(const int nks, const bool gamma_only_in);
25
32
38 Mix_DMk_2D &set_mixing_beta(const double mixing_beta);
39
45 void mix(const std::vector<std::vector<double>>& dm, const bool flag_restart);
46
52 void mix(const std::vector<std::vector<std::complex<double>>>& dm, const bool flag_restart);
53
58 std::vector<const std::vector<double>*> get_DMk_gamma_out() const;
63 std::vector<const std::vector<std::complex<double>>*> get_DMk_k_out() const;
64
65private:
66 std::vector<Mix_Matrix<std::vector<double>>> mix_DMk_gamma;
67 std::vector<Mix_Matrix<std::vector<std::complex<double>>>> mix_DMk_k;
69};
70
71#endif
Mixing class can mixing different steps of data to solver the iteration problem. For equation x = f(x...
Definition mixing.h:19
Definition Mix_DMk_2D.h:16
std::vector< Mix_Matrix< std::vector< double > > > mix_DMk_gamma
Definition Mix_DMk_2D.h:66
std::vector< const std::vector< std::complex< double > > * > get_DMk_k_out() const
Returns the complex density matrix.
Definition Mix_DMk_2D.cpp:66
Mix_DMk_2D & set_mixing_beta(const double mixing_beta)
Sets the mixing beta.
Definition Mix_DMk_2D.cpp:32
Mix_DMk_2D & set_mixing(Base_Mixing::Mixing *mixing_in)
Sets the mixing mode.
Definition Mix_DMk_2D.cpp:20
bool gamma_only
Definition Mix_DMk_2D.h:68
void mix(const std::vector< std::vector< double > > &dm, const bool flag_restart)
Mixes the double density matrix.
Definition Mix_DMk_2D.cpp:44
std::vector< const std::vector< double > * > get_DMk_gamma_out() const
Returns the double density matrix.
Definition Mix_DMk_2D.cpp:59
std::vector< Mix_Matrix< std::vector< std::complex< double > > > > mix_DMk_k
Definition Mix_DMk_2D.h:67
Mix_DMk_2D & set_nks(const int nks, const bool gamma_only_in)
Sets the number of k-points and gamma_only flag.
Definition Mix_DMk_2D.cpp:9