Skip to content

Commit

Permalink
fix after rebase
Browse files Browse the repository at this point in the history
fix after rebase (dav_subspace still negative eig)

fix exx compile and Makefile

default move Parallel_2D
  • Loading branch information
maki49 committed Jun 22, 2024
1 parent d2741d4 commit 74cfeaa
Show file tree
Hide file tree
Showing 35 changed files with 390 additions and 423 deletions.
3 changes: 1 addition & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -690,8 +690,7 @@ target_link_libraries(
esolver
vdw
device
container
lr)
container)

if(ENABLE_PAW)
target_link_libraries(${ABACUS_BIN_NAME} paw)
Expand Down
1 change: 1 addition & 0 deletions examples/lr-tddft/lcao_H2O/INPUT
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ smearing_sigma 0.02
#Parameters (5.Mixing)
mixing_type pulay
mixing_beta 0.4
mixing_gg0 0

nstates 2
xc_kernel lda
Expand Down
3 changes: 0 additions & 3 deletions examples/lr-tddft/lcao_H2O/STRU
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@ NUMERICAL_ORBITAL
H_gga_8au_60Ry_2s1p.orb
O_gga_7au_60Ry_2s2p1d.orb

NUMERICAL_DESCRIPTOR
jle.orb


LATTICE_CONSTANT
1
Expand Down
10 changes: 5 additions & 5 deletions examples/lr-tddft/lcao_Si2/INPUT
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,17 @@ smearing_sigma 0.02
mixing_type pulay
mixing_beta 0.4

nstates 2
nstates 10 # for test/debug, you can try a smaller one like 2
xc_kernel lda
lr_solver dav
lr_thr 1e-6
lr_thr 1e-2
pw_diag_ndim 4

esolver_type ks-lr
out_alllog 1
# out_wfc_lcao 1
# out_chg 1
#out_wfc_lcao 1
#out_chg 1

nvirt 19
abs_wavelen_range 100 175

#diago_full_acc 1
23 changes: 23 additions & 0 deletions source/Makefile.Objects
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,12 @@ VPATH=./src_global:\
./module_io/json_output:\
./src_ri:\
./module_ri:\
./module_beyonddft:\
./module_beyonddft/AX:\
./module_beyonddft/dm_trans:\
./module_beyonddft/operator_casida:\
./module_beyonddft/potentials:\
./module_beyonddft/utils:\
./\

OBJS_ABACUS_PW=${OBJS_MAIN}\
Expand Down Expand Up @@ -105,6 +111,7 @@ ${OBJS_DFTU}\
${OBJS_DELTASPIN}\
${OBJS_TENSOR}\
${OBJS_HSOLVER_PEXSI}\
${OBJS_LR}\

OBJS_MAIN=main.o\
driver.o\
Expand Down Expand Up @@ -656,3 +663,19 @@ OBJS_TENSOR=tensor.o\
linalg_op.o\
cpu_allocator.o\
refcount.o

OBJS_LR=lr_util.o\
lr_util_hcontainer.o\
AX_parallel.o\
AX_serial.o\
dm_trans_parallel.o\
dm_trans_serial.o\
dmr_complex.o\
operator_lr_hxc.o\
operator_lr_exx.o\
kernel_xc.o\
pot_hxc_lrtd.o\
hsolver_lrtd.o\
lr_spectrum.o\
hamilt_casida.o\
esolver_lrtd_lcao.o\
4 changes: 2 additions & 2 deletions source/driver_run.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -111,8 +111,8 @@ void Driver::driver_run(void)
else
p_esolver_lr = new ModuleESolver::ESolver_LRTD<std::complex<double>, double>(std::move(*dynamic_cast<ModuleESolver::ESolver_KS_LCAO<std::complex<double>, double>*>(p_esolver)), INPUT, GlobalC::ucell);
ModuleESolver::clean_esolver(p_esolver);
p_esolver_lr->run(0, GlobalC::ucell);
p_esolver_lr->post_process();
p_esolver_lr->runner(0, GlobalC::ucell);
p_esolver_lr->after_all_runners();

std::cout << "before clean lr" << std::endl;
ModuleESolver::clean_esolver(p_esolver_lr);
Expand Down
25 changes: 0 additions & 25 deletions source/module_basis/module_ao/parallel_2d.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -136,28 +136,3 @@ void Parallel_2D::set_serial(const int mg, const int ng)
blacs_ctxt = -1;
#endif
}

Parallel_2D& Parallel_2D::operator=(Parallel_2D&& rhs)
{
this->nrow = rhs.nrow;
this->ncol = rhs.ncol;
this->nloc = rhs.nloc;
this->nb = rhs.nb;
this->dim0 = rhs.dim0;
this->dim1 = rhs.dim1;
this->coord[0] = rhs.coord[0];
this->coord[1] = rhs.coord[1];
this->testpb = rhs.testpb;
this->local2global_row_ = std::move(rhs.local2global_row_);
this->local2global_col_ = std::move(rhs.local2global_col_);
this->global2local_row_ = std::move(rhs.global2local_row_);
this->global2local_col_ = std::move(rhs.global2local_col_);

#ifdef __MPI
this->blacs_ctxt = rhs.blacs_ctxt;
this->comm_2D = rhs.comm_2D;
for (int i = 0; i < 9; ++i)
this->desc[i] = rhs.desc[i];
#endif
return *this;
}
2 changes: 1 addition & 1 deletion source/module_basis/module_ao/parallel_2d.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ class Parallel_2D
Parallel_2D() = default;
~Parallel_2D() = default;

Parallel_2D& operator=(Parallel_2D&& rhs);
Parallel_2D& operator=(Parallel_2D&& rhs) = default;

/// number of local rows
int get_row_size() const
Expand Down
24 changes: 12 additions & 12 deletions source/module_beyonddft/AX/AX.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,56 +10,56 @@ namespace hamilt
// double
void cal_AX_forloop_serial(
const std::vector<container::Tensor>& V_istate,
const psi::Psi<double, psi::DEVICE_CPU>& c,
const psi::Psi<double>& c,
const int& nocc,
const int& nvirt,
psi::Psi<double, psi::DEVICE_CPU>& AX_istate);
psi::Psi<double>& AX_istate);
void cal_AX_blas(
const std::vector<container::Tensor>& V_istate,
const psi::Psi<double, psi::DEVICE_CPU>& c,
const psi::Psi<double>& c,
const int& nocc,
const int& nvirt,
psi::Psi<double, psi::DEVICE_CPU>& AX_istate,
psi::Psi<double>& AX_istate,
const bool add_on = true);
#ifdef __MPI
void cal_AX_pblas(
const std::vector<container::Tensor>& V_istate,
const Parallel_2D& pmat,
const psi::Psi<double, psi::DEVICE_CPU>& c,
const psi::Psi<double>& c,
const Parallel_2D& pc,
int naos,
int nocc,
int nvirt,
Parallel_2D& pX,
psi::Psi<double, psi::DEVICE_CPU>& AX_istate,
psi::Psi<double>& AX_istate,
const bool add_on=true);
#endif
// complex
void cal_AX_forloop_serial(
const std::vector<container::Tensor>& V_istate,
const psi::Psi<std::complex<double>, psi::DEVICE_CPU>& c,
const psi::Psi<std::complex<double>>& c,
const int& nocc,
const int& nvirt,
psi::Psi<std::complex<double>, psi::DEVICE_CPU>& AX_istate);
psi::Psi<std::complex<double>>& AX_istate);
void cal_AX_blas(
const std::vector<container::Tensor>& V_istate,
const psi::Psi<std::complex<double>, psi::DEVICE_CPU>& c,
const psi::Psi<std::complex<double>>& c,
const int& nocc,
const int& nvirt,
psi::Psi<std::complex<double>, psi::DEVICE_CPU>& AX_istate,
psi::Psi<std::complex<double>>& AX_istate,
const bool add_on = true);

#ifdef __MPI
void cal_AX_pblas(
const std::vector<container::Tensor>& V_istate,
const Parallel_2D& pmat,
const psi::Psi<std::complex<double>, psi::DEVICE_CPU>& c,
const psi::Psi<std::complex<double>>& c,
const Parallel_2D& pc,
int naos,
int nocc,
int nvirt,
Parallel_2D& pX,
psi::Psi<std::complex<double>, psi::DEVICE_CPU>& AX_istate,
psi::Psi<std::complex<double>>& AX_istate,
const bool add_on = true);
#endif
}
8 changes: 4 additions & 4 deletions source/module_beyonddft/AX/AX_parallel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ namespace hamilt
void cal_AX_pblas(
const std::vector<container::Tensor>& V_istate,
const Parallel_2D& pmat,
const psi::Psi<double, psi::DEVICE_CPU>& c,
const psi::Psi<double>& c,
const Parallel_2D& pc,
int naos,
int nocc,
int nvirt,
Parallel_2D& pX,
psi::Psi<double, psi::DEVICE_CPU>& AX_istate,
psi::Psi<double>& AX_istate,
const bool add_on)
{
ModuleBase::TITLE("hamilt_lrtd", "cal_AX_pblas");
Expand Down Expand Up @@ -69,13 +69,13 @@ namespace hamilt
void cal_AX_pblas(
const std::vector<container::Tensor>& V_istate,
const Parallel_2D& pmat,
const psi::Psi<std::complex<double>, psi::DEVICE_CPU>& c,
const psi::Psi<std::complex<double>>& c,
const Parallel_2D& pc,
int naos,
int nocc,
int nvirt,
Parallel_2D& pX,
psi::Psi<std::complex<double>, psi::DEVICE_CPU>& AX_istate,
psi::Psi<std::complex<double>>& AX_istate,
const bool add_on)
{
ModuleBase::TITLE("hamilt_lrtd", "cal_AX_plas");
Expand Down
16 changes: 8 additions & 8 deletions source/module_beyonddft/AX/AX_serial.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ namespace hamilt
{
void cal_AX_forloop_serial(
const std::vector<container::Tensor>& V_istate,
const psi::Psi<double, psi::DEVICE_CPU>& c,
const psi::Psi<double>& c,
const int& nocc,
const int& nvirt,
psi::Psi<double, psi::DEVICE_CPU>& AX_istate)
psi::Psi<double>& AX_istate)
{
ModuleBase::TITLE("hamilt_lrtd", "cal_AX_forloop");
int nks = c.get_nk();
Expand Down Expand Up @@ -39,10 +39,10 @@ namespace hamilt
}
void cal_AX_forloop_serial(
const std::vector<container::Tensor>& V_istate,
const psi::Psi<std::complex<double>, psi::DEVICE_CPU>& c,
const psi::Psi<std::complex<double>>& c,
const int& nocc,
const int& nvirt,
psi::Psi<std::complex<double>, psi::DEVICE_CPU>& AX_istate)
psi::Psi<std::complex<double>>& AX_istate)
{
ModuleBase::TITLE("hamilt_lrtd", "cal_AX_forloop");
int nks = c.get_nk();
Expand Down Expand Up @@ -73,10 +73,10 @@ namespace hamilt

void cal_AX_blas(
const std::vector<container::Tensor>& V_istate,
const psi::Psi<double, psi::DEVICE_CPU>& c,
const psi::Psi<double>& c,
const int& nocc,
const int& nvirt,
psi::Psi<double, psi::DEVICE_CPU>& AX_istate,
psi::Psi<double>& AX_istate,
const bool add_on)
{
ModuleBase::TITLE("hamilt_lrtd", "cal_AX_blas");
Expand Down Expand Up @@ -109,10 +109,10 @@ namespace hamilt
}
void cal_AX_blas(
const std::vector<container::Tensor>& V_istate,
const psi::Psi<std::complex<double>, psi::DEVICE_CPU>& c,
const psi::Psi<std::complex<double>>& c,
const int& nocc,
const int& nvirt,
psi::Psi<std::complex<double>, psi::DEVICE_CPU>& AX_istate,
psi::Psi<std::complex<double>>& AX_istate,
const bool add_on)
{
ModuleBase::TITLE("hamilt_lrtd", "cal_AX_blas");
Expand Down
Loading

0 comments on commit 74cfeaa

Please sign in to comment.