ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
cal_dm_psi.h
Go to the documentation of this file.
1#ifndef CAL_DM_PSI_H
2#define CAL_DM_PSI_H
3
5#include "density_matrix.h"
6
7namespace elecstate
8{
9 // for Gamma-Only case where DMK is double
11
12 // for Multi-k case where DMK is std::complex<double>
13 void cal_dm_psi(const Parallel_Orbitals* ParaV, const ModuleBase::matrix& wg, const psi::Psi<std::complex<double>>& wfc, elecstate::DensityMatrix<std::complex<double>, double>& DM);
14
15 // for Gamma-Only case with MPI
16 void psiMulPsiMpi(const psi::Psi<double>& psi1,
17 const psi::Psi<double>& psi2,
18 double* dm_out,
19 const int* desc_psi,
20 const int* desc_dm);
21
22 // for multi-k case with MPI
23 void psiMulPsiMpi(const psi::Psi<std::complex<double>>& psi1,
24 const psi::Psi<std::complex<double>>& psi2,
25 std::complex<double>* dm_out,
26 const int* desc_psi,
27 const int* desc_dm);
28
29 // for Gamma-Only case without MPI
30 void psiMulPsi(const psi::Psi<double>& psi1, const psi::Psi<double>& psi2, double* dm_out);
31
32 // for multi-k case without MPI
33 void psiMulPsi(const psi::Psi<std::complex<double>>& psi1,
34 const psi::Psi<std::complex<double>>& psi2,
35 std::complex<double>* dm_out);
36};
37#endif
Definition matrix.h:19
Definition parallel_orbitals.h:9
Definition density_matrix.h:36
Definition psi.h:37
Definition cal_dm.h:10
void psiMulPsi(const psi::Psi< double > &psi1, const psi::Psi< double > &psi2, double *dm_out)
Definition cal_dm_psi.cpp:227
void cal_dm_psi(const Parallel_Orbitals *ParaV, const ModuleBase::matrix &wg, const psi::Psi< double > &wfc, elecstate::DensityMatrix< double, double > &DM)
Definition cal_dm_psi.cpp:13
void psiMulPsiMpi(const psi::Psi< double > &psi1, const psi::Psi< double > &psi2, double *dm_out, const int *desc_psi, const int *desc_dm)
Definition cal_dm_psi.cpp:156