From 4253e6eea1e1b3f2016108c2358905ef94b318b0 Mon Sep 17 00:00:00 2001 From: hongriTianqi Date: Thu, 18 Jan 2024 06:33:08 +0800 Subject: [PATCH 1/4] update deltalambda --- source/module_hamilt_lcao/module_deltaspin/lambda_loop.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/module_hamilt_lcao/module_deltaspin/lambda_loop.cpp b/source/module_hamilt_lcao/module_deltaspin/lambda_loop.cpp index db64d5490d..845db88062 100644 --- a/source/module_hamilt_lcao/module_deltaspin/lambda_loop.cpp +++ b/source/module_hamilt_lcao/module_deltaspin/lambda_loop.cpp @@ -45,6 +45,7 @@ void SpinConstrain, psi::DEVICE_CPU>::run_lambda_loop(int o } else { + where_fill_scalar_else_2d(this->constrain_, 0, zero, delta_lambda, delta_lambda); add_scalar_multiply_2d(initial_lambda, delta_lambda, one, this->lambda_); this->cal_mw_from_lambda(i_step); new_spin = this->Mi_; @@ -87,6 +88,7 @@ void SpinConstrain, psi::DEVICE_CPU>::run_lambda_loop(int o add_scalar_multiply_2d(dnu, search, alpha_trial, dnu); delta_lambda = dnu; + where_fill_scalar_else_2d(this->constrain_, 0, zero, delta_lambda, delta_lambda); add_scalar_multiply_2d(initial_lambda, delta_lambda, one, this->lambda_); this->cal_mw_from_lambda(i_step); @@ -115,4 +117,4 @@ void SpinConstrain, psi::DEVICE_CPU>::run_lambda_loop(int o } alpha_trial = alpha_trial * pow(g, 0.7); } -} \ No newline at end of file +} From e6b9d1736df272e59cca6f81a958bd6685754a52 Mon Sep 17 00:00:00 2001 From: hongriTianqi Date: Sat, 20 Jan 2024 16:14:50 +0800 Subject: [PATCH 2/4] avoid numerical error in orbMulP --- .../module_hamilt_lcao/module_deltaspin/cal_mw_helper.cpp | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/source/module_hamilt_lcao/module_deltaspin/cal_mw_helper.cpp b/source/module_hamilt_lcao/module_deltaspin/cal_mw_helper.cpp index 0c0595a9ce..cb7729c587 100644 --- a/source/module_hamilt_lcao/module_deltaspin/cal_mw_helper.cpp +++ b/source/module_hamilt_lcao/module_deltaspin/cal_mw_helper.cpp @@ -22,7 +22,7 @@ std::vector>> SpinConstrain AorbMulP[is][iat].resize(nw_it, 0.0); for (int iw = 0; iw < nw_it; iw++) { - AorbMulP[is][iat][iw] = orbMulP(is, num); + AorbMulP[is][iat][iw] = std::abs(orbMulP(is, num))< 1e-10 ? 0.0 : orbMulP(is, num); num++; } } @@ -96,12 +96,6 @@ void SpinConstrain, psi::DEVICE_CPU>::calculate_MW( this->Mi_[iat].y = total_charge_soc[2]; this->Mi_[iat].z = total_charge_soc[3]; } - if (std::abs(this->Mi_[iat].x) < 1e-12) - this->Mi_[iat].x = 0.0; - if (std::abs(this->Mi_[iat].y) < 1e-12) - this->Mi_[iat].y = 0.0; - if (std::abs(this->Mi_[iat].z) < 1e-12) - this->Mi_[iat].z = 0.0; } } } From 0fe8770b4334f74f810dd0068493629f4814915f Mon Sep 17 00:00:00 2001 From: hongriTianqi Date: Sat, 20 Jan 2024 21:41:57 +0800 Subject: [PATCH 3/4] add constrain on Mi --- .../module_hamilt_lcao/module_deltaspin/cal_mw_helper.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/module_hamilt_lcao/module_deltaspin/cal_mw_helper.cpp b/source/module_hamilt_lcao/module_deltaspin/cal_mw_helper.cpp index cb7729c587..bd0ad4ce3a 100644 --- a/source/module_hamilt_lcao/module_deltaspin/cal_mw_helper.cpp +++ b/source/module_hamilt_lcao/module_deltaspin/cal_mw_helper.cpp @@ -92,9 +92,9 @@ void SpinConstrain, psi::DEVICE_CPU>::calculate_MW( } else if (this->nspin_ == 4) { - this->Mi_[iat].x = total_charge_soc[1]; - this->Mi_[iat].y = total_charge_soc[2]; - this->Mi_[iat].z = total_charge_soc[3]; + this->Mi_[iat].x = (std::abs(total_charge_soc[1]) < this->sc_thr_)? 0.0 : total_charge_soc[1]; + this->Mi_[iat].y = (std::abs(total_charge_soc[2]) < this->sc_thr_)? 0.0 : total_charge_soc[2]; + this->Mi_[iat].z = (std::abs(total_charge_soc[3]) < this->sc_thr_)? 0.0 : total_charge_soc[3]; } } } From 36687e0a7d602d6fea29d3cba3832454ed118c05 Mon Sep 17 00:00:00 2001 From: hongriTianqi Date: Sun, 21 Jan 2024 05:19:28 +0800 Subject: [PATCH 4/4] change case reference value --- .../204_NO_KP_NC_deltaspin/mulliken.txt.ref | 168 +++++++++--------- .../204_NO_KP_NC_deltaspin/result.ref | 6 +- 2 files changed, 87 insertions(+), 87 deletions(-) diff --git a/tests/integrate/204_NO_KP_NC_deltaspin/mulliken.txt.ref b/tests/integrate/204_NO_KP_NC_deltaspin/mulliken.txt.ref index dee68c8f40..bffad6b08a 100644 --- a/tests/integrate/204_NO_KP_NC_deltaspin/mulliken.txt.ref +++ b/tests/integrate/204_NO_KP_NC_deltaspin/mulliken.txt.ref @@ -3,92 +3,92 @@ CALCULATE THE MULLIkEN ANALYSIS FOR EACH ATOM Total charge: 32 Decomposed Mulliken populations 0 Zeta of Fe Spin 1 Spin 2 Spin 3 Spin 4 -s 0 1.317 0.05552 -0.2843 0.02903 - sum over m 1.317 0.05552 -0.2843 0.02903 -s 1 1.726 -0.01923 0.09498 0.005159 - sum over m 1.726 -0.01923 0.09498 0.005159 -s 2 0.03246 -0.04333 0.2148 0.008137 - sum over m 0.03246 -0.04333 0.2148 0.008137 -s 3 -0.02921 0.005194 -0.02641 0.001867 - sum over m -0.02921 0.005194 -0.02641 0.001867 - sum over m+zeta 3.046 -0.001842 -0.0009368 0.04419 -pz 0 2.034 -0.001185 0.005932 1.545e-06 -px 0 2.033 -0.001283 0.006419 1.538e-06 -py 0 2.033 -0.001188 0.005944 1.543e-06 - sum over m 6.1 -0.003656 0.01829 4.626e-06 -pz 1 -0.02622 0.0005602 -0.002791 0 -px 1 -0.02639 0.0006145 -0.003054 0 -py 1 -0.02603 0.0005563 -0.00277 0 - sum over m -0.07864 0.001731 -0.008615 0 - sum over m+zeta 6.021 -0.001925 0.00968 5.611e-06 -dz^2 0 1.964 0.0008273 -0.004131 4.077e-06 -dxz 0 1.044 0.1755 -0.7507 0.002258 -dyz 0 0.9544 0.1768 -0.7532 0.002329 -dx^2-y^2 0 1.967 0.0007523 -0.003756 3.978e-06 -dxy 0 1.055 0.1751 -0.7495 0.002251 - sum over m 6.984 0.529 -2.261 0.006846 -dz^2 1 0.03863 -0.0008699 0.004363 5.197e-06 -dxz 1 -0.03759 -0.005346 0.01936 -0.0001322 -dyz 1 -0.03407 -0.005734 0.02118 -0.0001342 -dx^2-y^2 1 0.03943 -0.0009093 0.004564 5.691e-06 -dxy 1 -0.03787 -0.005246 0.0189 -0.0001314 - sum over m -0.03146 -0.01811 0.06836 -0.000387 - sum over m+zeta 6.952 0.5109 -2.193 0.006459 -fz^3 0 -0.007049 0.0007578 -0.003775 0 -fxz^2 0 -0.002045 0.0002638 -0.001312 0 -fyz^2 0 -0.002729 0.0002912 -0.001448 0 -fzx^2-zy^2 0 6.273e-05 0 6.642e-06 0 -fxyz 0 1.153e-05 1.446e-06 -5.675e-06 0 -fx^3-3*xy^2 0 -0.00338 0.00044 -0.002189 0 -f3yx^2-y^3 0 -0.00407 0.0004646 -0.002311 0 - sum over m -0.0192 0.002219 -0.01103 2.581e-06 - sum over m+zeta -0.0192 0.002219 -0.01103 2.581e-06 -Total Charge on atom: Fe 16 -Total Magnetism on atom: Fe (0.5093, -2.195, 0.05066) +s 0 1.317 0.06196 -0.2625 -0.07949 + sum over m 1.317 0.06196 -0.2625 -0.07949 +s 1 1.726 -0.01809 0.09886 -0.01413 + sum over m 1.726 -0.01809 0.09886 -0.01413 +s 2 0.03246 -0.04153 0.2209 -0.02228 + sum over m 0.03246 -0.04153 0.2209 -0.02228 +s 3 -0.02921 0.005609 -0.025 -0.005114 + sum over m -0.02921 0.005609 -0.025 -0.005114 + sum over m+zeta 3.046 0.007945 0.0323 -0.121 +pz 0 2.034 -0.001186 0.005932 -3.981e-06 +px 0 2.033 -0.001283 0.006419 -3.989e-06 +py 0 2.033 -0.001188 0.005944 -3.979e-06 + sum over m 6.1 -0.003658 0.0183 -1.195e-05 +pz 1 -0.02621 0.0005578 -0.002789 0 +px 1 -0.02639 0.0006107 -0.003054 0 +py 1 -0.02603 0.0005536 -0.002768 0 + sum over m -0.07863 0.001722 -0.008611 0 + sum over m+zeta 6.021 -0.001936 0.009684 -1.277e-05 +dz^2 0 1.964 0.0008269 -0.004128 -1.088e-05 +dxz 0 1.044 0.156 -0.7849 -0.0003055 +dyz 0 0.9592 0.1564 -0.7869 -0.0003096 +dx^2-y^2 0 1.967 0.000752 -0.003754 -1.059e-05 +dxy 0 1.055 0.1558 -0.7835 -0.0003047 + sum over m 6.988 0.4698 -2.363 -0.0009413 +dz^2 1 0.03863 -0.0008716 0.004365 -1.357e-05 +dxz 1 -0.03708 -0.004148 0.02101 1.956e-05 +dyz 1 -0.03373 -0.004494 0.02274 1.968e-05 +dx^2-y^2 1 0.03943 -0.0009117 0.004566 -1.471e-05 +dxy 1 -0.03733 -0.004056 0.02055 1.945e-05 + sum over m -0.03008 -0.01448 0.07324 3.041e-05 + sum over m+zeta 6.958 0.4553 -2.29 -0.0009109 +fz^3 0 -0.007044 0.0007552 -0.003776 -1.406e-06 +fxz^2 0 -0.002046 0.0002628 -0.001314 0 +fyz^2 0 -0.00273 0.00029 -0.00145 0 +fzx^2-zy^2 0 5.811e-05 0 3.451e-06 0 +fxyz 0 1.14e-05 1.249e-06 -6.306e-06 0 +fx^3-3*xy^2 0 -0.003379 0.0004381 -0.00219 0 +f3yx^2-y^3 0 -0.00407 0.0004626 -0.002313 0 + sum over m -0.0192 0.002209 -0.01105 -4.307e-06 + sum over m+zeta -0.0192 0.002209 -0.01105 -4.307e-06 +Total Charge on atom: Fe 16.01 +Total Magnetism on atom: Fe (0.4635, -2.259, -0.1219) 1 Zeta of Fe Spin 1 Spin 2 Spin 3 Spin 4 -s 0 1.275 0.05341 -0.2605 -0.02903 - sum over m 1.275 0.05341 -0.2605 -0.02903 -s 1 1.755 -0.01752 0.08879 -0.005156 - sum over m 1.755 -0.01752 0.08879 -0.005156 -s 2 -0.02898 -0.0404 0.2039 -0.00813 - sum over m -0.02898 -0.0404 0.2039 -0.00813 -s 3 -0.04711 0.006367 -0.03139 -0.001874 - sum over m -0.04711 0.006367 -0.03139 -0.001874 - sum over m+zeta 2.954 0.001862 0.0008532 -0.04419 -pz 0 2.032 -0.001369 0.006852 -1.367e-06 -px 0 2.025 -0.0009208 0.004608 -1.387e-06 -py 0 2.032 -0.001332 0.006666 -1.366e-06 - sum over m 6.089 -0.003622 0.01813 -4.119e-06 -pz 1 -0.02528 0.0005889 -0.002889 0 -px 1 -0.01606 0.0001369 -0.0006408 0 -py 1 -0.02466 0.000571 -0.002802 0 - sum over m -0.066 0.001297 -0.006331 2.367e-06 - sum over m+zeta 6.023 -0.002325 0.01179 -1.753e-06 -dz^2 0 1.957 0.001158 -0.005774 -3.913e-06 -dxz 0 1.097 0.1724 -0.7275 0.002311 -dyz 0 0.9509 0.1759 -0.7475 0.002269 -dx^2-y^2 0 1.947 0.001654 -0.008245 -4.075e-06 -dxy 0 1.113 0.1714 -0.7227 0.002304 - sum over m 7.065 0.5225 -2.212 0.006876 -dz^2 1 0.03925 -0.001062 0.005333 -4.383e-06 -dxz 1 -0.0366 -0.003947 0.01263 -0.0001213 -dyz 1 -0.03157 -0.005197 0.01856 -0.0001267 -dx^2-y^2 1 0.04266 -0.001394 0.007002 -4.206e-06 -dxy 1 -0.03743 -0.003854 0.01222 -0.0001203 - sum over m -0.02369 -0.01545 0.05575 -0.0003768 - sum over m+zeta 7.041 0.5071 -2.156 0.006499 -fz^3 0 -0.006614 0.0007261 -0.003596 0 -fxz^2 0 -0.001954 0.0002565 -0.001276 0 -fyz^2 0 -0.002684 0.0002742 -0.001366 0 -fzx^2-zy^2 0 9.09e-05 1.99e-05 -8.018e-05 0 -fxyz 0 2.062e-05 4.102e-06 -1.816e-05 0 -fx^3-3*xy^2 0 -0.003203 0.0004291 -0.00213 0 -f3yx^2-y^3 0 -0.003698 0.0004635 -0.002271 0 - sum over m -0.01804 0.002174 -0.01074 0 - sum over m+zeta -0.01804 0.002174 -0.01074 0 -Total Charge on atom: Fe 16 -Total Magnetism on atom: Fe (0.5088, -2.154, -0.03769) +s 0 1.275 0.04699 -0.2823 0.07949 + sum over m 1.275 0.04699 -0.2823 0.07949 +s 1 1.755 -0.01866 0.08491 0.01412 + sum over m 1.755 -0.01866 0.08491 0.01412 +s 2 -0.02899 -0.04221 0.1978 0.02226 + sum over m -0.02899 -0.04221 0.1978 0.02226 +s 3 -0.04712 0.00595 -0.03281 0.005133 + sum over m -0.04712 0.00595 -0.03281 0.005133 + sum over m+zeta 2.954 -0.007928 -0.03239 0.121 +pz 0 2.032 -0.001371 0.00685 3.967e-06 +px 0 2.025 -0.0009218 0.004606 3.958e-06 +py 0 2.032 -0.001333 0.006664 3.965e-06 + sum over m 6.089 -0.003626 0.01812 1.189e-05 +pz 1 -0.02529 0.0005803 -0.002904 0 +px 1 -0.01606 0.0001295 -0.0006492 0 +py 1 -0.02466 0.0005625 -0.002815 0 + sum over m -0.06602 0.001272 -0.006367 0 + sum over m+zeta 6.023 -0.002353 0.01175 1.25e-05 +dz^2 0 1.957 0.001154 -0.005778 1.149e-05 +dxz 0 1.091 0.1517 -0.7637 -8.462e-05 +dyz 0 0.9556 0.1553 -0.7815 -8.443e-05 +dx^2-y^2 0 1.947 0.001648 -0.008249 1.233e-05 +dxy 0 1.106 0.1508 -0.7591 -8.432e-05 + sum over m 7.056 0.4606 -2.318 -0.0002295 +dz^2 1 0.03925 -0.001067 0.005328 1.289e-05 +dxz 1 -0.03558 -0.002824 0.01439 2.5e-06 +dyz 1 -0.03117 -0.003962 0.0201 2.798e-06 +dx^2-y^2 1 0.04266 -0.001401 0.006997 1.29e-05 +dxy 1 -0.03637 -0.002747 0.01401 2.475e-06 + sum over m -0.02122 -0.012 0.06082 3.356e-05 + sum over m+zeta 7.035 0.4486 -2.257 -0.000196 +fz^3 0 -0.006615 0.0007206 -0.003605 1.352e-06 +fxz^2 0 -0.001955 0.0002554 -0.001278 0 +fyz^2 0 -0.002684 0.0002735 -0.001368 0 +fzx^2-zy^2 0 9.383e-05 1.68e-05 -8.473e-05 0 +fxyz 0 2.053e-05 3.66e-06 -1.839e-05 0 +fx^3-3*xy^2 0 -0.003204 0.0004266 -0.002134 0 +f3yx^2-y^3 0 -0.003695 0.0004558 -0.002281 0 + sum over m -0.01804 0.002152 -0.01077 4.022e-06 + sum over m+zeta -0.01804 0.002152 -0.01077 4.022e-06 +Total Charge on atom: Fe 15.99 +Total Magnetism on atom: Fe (0.4405, -2.289, 0.1208) diff --git a/tests/integrate/204_NO_KP_NC_deltaspin/result.ref b/tests/integrate/204_NO_KP_NC_deltaspin/result.ref index a5ca4b1941..8a17a1fada 100644 --- a/tests/integrate/204_NO_KP_NC_deltaspin/result.ref +++ b/tests/integrate/204_NO_KP_NC_deltaspin/result.ref @@ -1,4 +1,4 @@ -etotref -6844.685232778258 -etotperatomref -3422.3426163891 +etotref -6844.326716364628 +etotperatomref -3422.1633581823 Compare_mulliken_pass 0 -totaltimeref 17.11 +totaltimeref 36.59