Skip to content

Commit 209f815

Browse files
author
dyzheng
committed
Feature: DFT+U for noncollinear spin calculation with PW base
1 parent fe7c74a commit 209f815

File tree

78 files changed

+5764
-632
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+5764
-632
lines changed

docs/advanced/input_files/input-main.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1235,6 +1235,12 @@ Note: In new angle mixing, you should set `mixing_beta_mag >> mixing_beta`. The
12351235
- **Description**: To determine the number of old iterations' `drho` used in slope calculations.
12361236
- **Default**: `mixing_ndim`
12371237

1238+
### sc_os_ndim
1239+
1240+
- **Type**: int
1241+
- **Description**: To determine the number of old iterations to judge oscillation, it occured, more accurate lambda with DeltaSpin method would be calculated, only for PW base.
1242+
- **Default**: 5
1243+
12381244
### chg_extrap
12391245

12401246
- **Type**: String

source/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ list(APPEND device_srcs
4747

4848
module_hamilt_pw/hamilt_pwdft/kernels/force_op.cpp
4949
module_hamilt_pw/hamilt_pwdft/kernels/stress_op.cpp
50+
module_hamilt_pw/hamilt_pwdft/kernels/onsite_op.cpp
5051
module_hamilt_pw/hamilt_pwdft/kernels/wf_op.cpp
5152
module_hamilt_pw/hamilt_pwdft/kernels/vnl_op.cpp
5253
module_base/kernels/math_op.cpp
@@ -60,6 +61,7 @@ if(USE_CUDA)
6061
module_hamilt_pw/hamilt_pwdft/kernels/cuda/ekinetic_op.cu
6162
module_hamilt_pw/hamilt_pwdft/kernels/cuda/meta_op.cu
6263
module_hamilt_pw/hamilt_stodft/kernels/cuda/hpsi_norm_op.cu
64+
module_hamilt_pw/hamilt_pwdft/kernels/cuda/onsite_op.cu
6365
module_basis/module_pw/kernels/cuda/pw_op.cu
6466
module_hsolver/kernels/cuda/dngvd_op.cu
6567
module_hsolver/kernels/cuda/math_kernel_op.cu
@@ -83,6 +85,7 @@ if(USE_ROCM)
8385
module_hamilt_pw/hamilt_pwdft/kernels/rocm/veff_op.hip.cu
8486
module_hamilt_pw/hamilt_pwdft/kernels/rocm/ekinetic_op.hip.cu
8587
module_hamilt_pw/hamilt_pwdft/kernels/rocm/meta_op.hip.cu
88+
module_hamilt_pw/hamilt_pwdft/kernels/rocm/onsite_op.hip.cu
8689
module_hamilt_pw/hamilt_stodft/kernels/rocm/hpsi_norm_op.hip.cu
8790
module_basis/module_pw/kernels/rocm/pw_op.hip.cu
8891
module_hsolver/kernels/rocm/dngvd_op.hip.cu

source/Makefile.Objects

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -634,10 +634,13 @@ OBJS_SRCPW=H_Ewald_pw.o\
634634
forces_nl.o\
635635
forces_cc.o\
636636
forces_scc.o\
637+
forces_onsite.o\
638+
onsite_proj_pw.o\
637639
fs_nonlocal_tools.o\
638640
fs_kin_tools.o\
639641
force_op.o\
640642
stress_op.o\
643+
onsite_op.o\
641644
wf_op.o\
642645
vnl_op.o\
643646
global.o\
@@ -662,6 +665,7 @@ OBJS_SRCPW=H_Ewald_pw.o\
662665
stress_func_loc.o\
663666
stress_func_nl.o\
664667
stress_func_us.o\
668+
stress_func_onsite.o\
665669
stress_pw.o\
666670
of_stress_pw.o\
667671
symmetry_rho.o\
@@ -672,7 +676,9 @@ OBJS_SRCPW=H_Ewald_pw.o\
672676
elecond.o\
673677
sto_tool.o\
674678
sto_elecond.o\
675-
sto_dos.o
679+
sto_dos.o\
680+
onsite_projector.o\
681+
onsite_proj_tools.o
676682

677683
OBJS_VDW=vdw.o\
678684
vdwd2_parameters.o\
@@ -690,7 +696,8 @@ OBJS_DFTU=dftu.o\
690696
dftu_io.o\
691697
dftu_tools.o\
692698
dftu_occup.o\
693-
dftu_hamilt.o
699+
dftu_hamilt.o\
700+
dftu_pw.o
694701

695702
OBJS_DELTASPIN=basic_funcs.o\
696703
cal_mw_from_lambda.o\

source/module_base/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ add_library(
5454
spherical_bessel_transformer.cpp
5555
cubic_spline.cpp
5656
parallel_2d.cpp
57+
projgen.cpp
5758
module_mixing/mixing_data.cpp
5859
module_mixing/mixing.cpp
5960
module_mixing/plain_mixing.cpp
File renamed without changes.
File renamed without changes.

source/module_basis/module_nao/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ if(ENABLE_LCAO)
1414
two_center_table.cpp
1515
two_center_integrator.cpp
1616
two_center_bundle.cpp
17-
projgen.cpp
1817
)
1918

2019
if(ENABLE_COVERAGE)

source/module_basis/module_nao/atomic_radials.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
// FIXME: should update with pyabacus
88
// #include "module_io/orb_io.h"
99

10-
#include "projgen.h"
10+
#include "module_base/projgen.h"
1111

1212
#include <fstream>
1313
#include <iostream>

source/module_basis/module_nao/test/CMakeLists.txt

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ AddTest(
1414
../atomic_radials.cpp
1515
../radial_set.cpp
1616
../numerical_radial.cpp
17-
../projgen.cpp
1817
../../module_ao/ORB_atomic_lm.cpp
1918
../../module_ao/ORB_atomic.cpp
2019
../../../module_io/orb_io.cpp
@@ -84,7 +83,6 @@ AddTest(
8483
../pswfc_radials.cpp
8584
../radial_set.cpp
8685
../numerical_radial.cpp
87-
../projgen.cpp
8886
../sphbes_radials.cpp
8987
../../module_ao/ORB_atomic_lm.cpp
9088
../../module_ao/ORB_atomic.cpp
@@ -104,7 +102,6 @@ AddTest(
104102
../pswfc_radials.cpp
105103
../sphbes_radials.cpp
106104
../radial_set.cpp
107-
../projgen.cpp
108105
../numerical_radial.cpp
109106
../two_center_bundle.cpp
110107
../two_center_integrator.cpp
@@ -131,7 +128,6 @@ AddTest(
131128
../real_gaunt_table.cpp
132129
../radial_collection.cpp
133130
../atomic_radials.cpp
134-
../projgen.cpp
135131
../beta_radials.cpp
136132
../hydrogen_radials.cpp
137133
../pswfc_radials.cpp
@@ -158,7 +154,6 @@ AddTest(
158154
../pswfc_radials.cpp
159155
../sphbes_radials.cpp
160156
../radial_set.cpp
161-
../projgen.cpp
162157
../numerical_radial.cpp
163158
../../../module_io/orb_io.cpp
164159
LIBS parameter ${math_libs} device base container orb
@@ -179,7 +174,6 @@ AddTest(
179174
../pswfc_radials.cpp
180175
../sphbes_radials.cpp
181176
../radial_set.cpp
182-
../projgen.cpp
183177
../numerical_radial.cpp
184178
../../../module_io/orb_io.cpp
185179
LIBS parameter ${math_libs} device base container orb

source/module_basis/module_nao/test/projgen_test.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#include "module_basis/module_nao/projgen.h"
1+
#include "module_base/projgen.h"
22
#include "gtest/gtest.h"
33

44
#include "module_base/math_integral.h"

0 commit comments

Comments
 (0)