@@ -37,6 +37,7 @@ void Charge_Mixing::set_mixing(const std::string& mixing_mode_in,
3737 GlobalV::ofs_running<<" mixing_type: " << this ->mixing_mode <<std::endl;
3838 GlobalV::ofs_running<<" mixing_beta: " << this ->mixing_beta <<std::endl;
3939 GlobalV::ofs_running<<" mixing_gg0: " << this ->mixing_gg0 <<std::endl;
40+ GlobalV::ofs_running<<" mixing_gg0_min: " << GlobalV::MIXING_GG0_MIN <<std::endl;
4041 if (GlobalV::NSPIN==2 )
4142 {
4243 GlobalV::ofs_running<<" mixing_beta_mag: " << GlobalV::MIXING_BETA_MAG <<std::endl;
@@ -98,50 +99,6 @@ void Charge_Mixing::set_rhopw(ModulePW::PW_Basis* rhopw_in, ModulePW::PW_Basis*
9899 this ->rhodpw = rhodpw_in;
99100}
100101
101- // void Charge_Mixing::need_auto_set()
102- // {
103- // this->autoset = true;
104- // }
105-
106- // void Charge_Mixing::auto_set(const double& bandgap_in, const UnitCell& ucell_)
107- // {
108- // // auto set parameters once
109- // if (!this->autoset)
110- // {
111- // return;
112- // }
113- // else
114- // {
115- // this->autoset = false;
116- // }
117- // GlobalV::ofs_running << "--------------AUTO-SET---------------" << std::endl;
118- // // 0.8 for nspin=1 and 0.4 for others
119- // if (GlobalV::NSPIN == 1)
120- // {
121- // this->mixing->mixing_beta = this->mixing_beta = 0.8;
122- // GlobalV::ofs_running << " Autoset mixing_beta to " << this->mixing_beta << std::endl;
123- // }
124- // else
125- // {
126- // this->mixing->mixing_beta = this->mixing_beta = 0.4;
127- // GlobalV::MIXING_BETA_MAG = 4 * this->mixing_beta;
128- // GlobalV::ofs_running << " Autoset mixing_beta to " << this->mixing_beta << std::endl;
129- // GlobalV::ofs_running << " Autoset mixing_beta_mag to " << GlobalV::MIXING_BETA_MAG << std::endl;
130- // }
131- // GlobalV::MIXING_BETA = mixing_beta;
132-
133- // // auto set kerker mixing_gg0 = 1.0 as default
134- // this->mixing_gg0 = 1.0;
135- // GlobalV::ofs_running << " Autoset mixing_gg0 to " << this->mixing_gg0 << std::endl;
136- // if (GlobalV::NSPIN == 1)
137- // {
138- // GlobalV::MIXING_GG0_MAG = 0.0;
139- // GlobalV::ofs_running << " Autoset mixing_gg0_mag to " << GlobalV::MIXING_GG0_MAG << std::endl;
140- // }
141-
142- // GlobalV::ofs_running << "-------------------------------------" << std::endl;
143- // }
144-
145102double Charge_Mixing::get_drho (Charge* chr, const double nelec)
146103{
147104 ModuleBase::TITLE (" Charge_Mixing" , " get_drho" );
@@ -657,7 +614,7 @@ void Charge_Mixing::Kerker_screen_recip(std::complex<double>* drhog)
657614 for (int ig = 0 ; ig < this ->rhopw ->npw ; ++ig)
658615 {
659616 double gg = this ->rhopw ->gg [ig];
660- double filter_g = std::max (gg / (gg + gg0), 0.1 / this ->mixing_beta );
617+ double filter_g = std::max (gg / (gg + gg0), GlobalV::MIXING_GG0_MIN / this ->mixing_beta );
661618 drhog[is * this ->rhopw ->npw + ig] *= filter_g;
662619 }
663620 }
@@ -700,7 +657,7 @@ void Charge_Mixing::Kerker_screen_recip_new(std::complex<double>* drhog)
700657 for (int ig = 0 ; ig < this ->rhopw ->npw ; ++ig)
701658 {
702659 double gg = this ->rhopw ->gg [ig];
703- double filter_g = std::max (gg / (gg + gg0), 0.1 / amin);
660+ double filter_g = std::max (gg / (gg + gg0), GlobalV::MIXING_GG0_MIN / amin);
704661 drhog[is * this ->rhopw ->npw + ig] *= filter_g;
705662 }
706663 }
@@ -756,7 +713,7 @@ void Charge_Mixing::Kerker_screen_real(double* drhor)
756713 // drhog[is * this->rhopw->npw + ig] *= 0;
757714 // continue;
758715 // }
759- double filter_g = std::max (gg / (gg + gg0), 0.1 / amin);
716+ double filter_g = std::max (gg / (gg + gg0), GlobalV::MIXING_GG0_MIN / amin);
760717 drhog[is * this ->rhopw ->npw + ig] *= (1 - filter_g);
761718 }
762719 }
@@ -794,7 +751,7 @@ void Charge_Mixing::Kerker_screen_real_test(double* drhor)
794751 for (int ig = 0 ; ig < this ->rhopw ->npw ; ig++)
795752 {
796753 double gg = this ->rhopw ->gg [ig];
797- double filter_g = std::max (gg / (gg + gg0), 0.1 / this ->mixing_beta );
754+ double filter_g = std::max (gg / (gg + gg0), GlobalV::MIXING_GG0_MIN / this ->mixing_beta );
798755 drhog[ig] *= (1 - filter_g);
799756 }
800757 // inverse FT
@@ -826,7 +783,7 @@ void Charge_Mixing::Kerker_screen_real_test(double* drhor)
826783 for (int ig = 0 ; ig < this ->rhopw ->npw ; ig++)
827784 {
828785 double gg = this ->rhopw ->gg [ig];
829- double filter_g = std::max (gg / (gg + gg0_mag), 0.1 / GlobalV::MIXING_BETA_MAG);
786+ double filter_g = std::max (gg / (gg + gg0_mag), GlobalV::MIXING_GG0_MIN / GlobalV::MIXING_BETA_MAG);
830787 drhog_mag[ig] *= (1 - filter_g);
831788 }
832789 // inverse FT
0 commit comments