Skip to content

Commit 0e5b946

Browse files
committed
add fermi surface plot in pw dos
1 parent 59dcecb commit 0e5b946

File tree

8 files changed

+50
-35
lines changed

8 files changed

+50
-35
lines changed

source/module_esolver/esolver_ks_lcaopw.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
#include "module_io/input_conv.h"
55
#include "module_io/nscf_band.h"
66
#include "module_io/output_log.h"
7-
#include "module_io/write_dos_pw.h"
87
#include "module_io/write_istate_info.h"
98
#include "module_io/write_wfc_pw.h"
109

source/module_esolver/esolver_ks_pw.cpp

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -837,16 +837,17 @@ void ESolver_KS_PW<T, Device>::after_all_runners(UnitCell& ucell)
837837
//! 1) Compute density of states (DOS)
838838
if (PARAM.inp.out_dos)
839839
{
840-
ModuleIO::write_dos_pw(this->pelec->ekb,
841-
this->pelec->wg,
842-
this->kv,
843-
PARAM.inp.nbands,
844-
this->pelec->eferm,
845-
PARAM.inp.dos_edelta_ev,
846-
PARAM.inp.dos_scale,
847-
PARAM.inp.dos_sigma,
848-
GlobalV::ofs_running);
849-
}
840+
ModuleIO::write_dos_pw(ucell,
841+
this->pelec->ekb,
842+
this->pelec->wg,
843+
this->kv,
844+
PARAM.inp.nbands,
845+
this->pelec->eferm,
846+
PARAM.inp.dos_edelta_ev,
847+
PARAM.inp.dos_scale,
848+
PARAM.inp.dos_sigma,
849+
GlobalV::ofs_running);
850+
}
850851

851852
// out ldos
852853
if (PARAM.inp.out_ldos[0])

source/module_esolver/pw_others.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
#include "module_io/input_conv.h"
66
#include "module_io/nscf_band.h"
77
#include "module_io/output_log.h"
8-
#include "module_io/write_dos_pw.h"
98
#include "module_io/write_istate_info.h"
109
#include "module_io/write_wfc_pw.h"
1110

source/module_io/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ list(APPEND objects
77
cif_io.cpp
88
write_dos_pw.cpp
99
nscf_band.cpp
10+
nscf_fermi_surf.cpp
1011
write_istate_info.cpp
1112
numerical_basis.cpp
1213
numerical_basis_jyjy.cpp
@@ -52,7 +53,6 @@ if(ENABLE_LCAO)
5253
cal_pdos_multik.cpp
5354
write_orb_info.cpp
5455
write_proj_band_lcao.cpp
55-
nscf_fermi_surf.cpp
5656
get_pchg_lcao.cpp
5757
get_wf_lcao.cpp
5858
read_wfc_nao.cpp

source/module_io/nscf_fermi_surf.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#ifndef NSCF_FERMI_SURF_H
22
#define NSCF_FERMI_SURF_H
3+
34
#include "module_base/matrix.h"
45
#include "module_cell/klist.h"
56
#include "module_cell/unitcell.h"

source/module_io/test/write_dos_pw_test.cpp

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,12 @@ TEST_F(DosPWTest,Dos1)
6868
elecstate::efermi fermi_energy;
6969

7070
std::ofstream ofs("write_dos_pw.log");
71-
ModuleIO::write_dos_pw(dosp.ekb,
71+
72+
UnitCell ucell;
73+
74+
ModuleIO::write_dos_pw(
75+
ucell, // this should be unitcell, 2025-04-12
76+
dosp.ekb,
7277
dosp.wg,
7378
*kv,
7479
PARAM.inp.nbands,
@@ -134,7 +139,12 @@ TEST_F(DosPWTest,Dos2)
134139
elecstate::efermi fermi_energy;
135140

136141
std::ofstream ofs("write_dos_pw.log");
137-
ModuleIO::write_dos_pw(dosp.ekb,
142+
143+
UnitCell ucell;
144+
145+
ModuleIO::write_dos_pw(
146+
ucell,
147+
dosp.ekb,
138148
dosp.wg,
139149
*kv,
140150
PARAM.inp.nbands,

source/module_io/write_dos_pw.cpp

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
11
#include "write_dos_pw.h"
2-
32
#include "cal_dos.h"
3+
#include "nscf_fermi_surf.h"
44
#include "module_base/parallel_reduce.h"
55
#include "module_parameter/parameter.h"
66

7-
void ModuleIO::write_dos_pw(const ModuleBase::matrix& ekb,
8-
const ModuleBase::matrix& wg,
9-
const K_Vectors& kv,
10-
const int nbands,
11-
const elecstate::efermi &energy_fermi,
12-
const double& dos_edelta_ev,
13-
const double& dos_scale,
14-
const double& bcoeff,
15-
std::ofstream& ofs_running)
7+
void ModuleIO::write_dos_pw(
8+
const UnitCell& ucell,
9+
const ModuleBase::matrix& ekb,
10+
const ModuleBase::matrix& wg,
11+
const K_Vectors& kv,
12+
const int nbands,
13+
const elecstate::efermi &energy_fermi,
14+
const double& dos_edelta_ev,
15+
const double& dos_scale,
16+
const double& bcoeff,
17+
std::ofstream& ofs_running)
1618
{
1719
ModuleBase::TITLE("ModuleIO", "write_dos_pw");
1820

@@ -61,7 +63,7 @@ void ModuleIO::write_dos_pw(const ModuleBase::matrix& ekb,
6163

6264
if (PARAM.inp.out_dos == 2)
6365
{
64-
WARNING_QUIT("ModuleIO::write_dos_pw","PW basis do not support PDOS calculations yet.");
66+
ModuleBase::WARNING_QUIT("ModuleIO::write_dos_pw","PW basis do not support PDOS calculations yet.");
6567
}
6668

6769
if(PARAM.inp.out_dos == 3)

source/module_io/write_dos_pw.h

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,23 @@
22
#define WRITE_DOS_PW_H
33

44
#include "module_base/matrix.h"
5+
#include "module_cell/unitcell.h"
56
#include "module_cell/klist.h"
67
#include "module_elecstate/fp_energy.h"
78

89
namespace ModuleIO
910
{
1011
/// @brief calculate density of states(DOS) for PW base
11-
void write_dos_pw(const ModuleBase::matrix &ekb,
12-
const ModuleBase::matrix &wg,
13-
const K_Vectors& kv,
14-
const int nbands,
15-
const elecstate::efermi &energy_fermi,
16-
const double &dos_edelta_ev,
17-
const double &dos_scale,
18-
const double &bcoeff,
19-
std::ofstream& ofs_running);
12+
void write_dos_pw(
13+
const UnitCell& ucell,
14+
const ModuleBase::matrix &ekb,
15+
const ModuleBase::matrix &wg,
16+
const K_Vectors& kv,
17+
const int nbands,
18+
const elecstate::efermi &energy_fermi,
19+
const double &dos_edelta_ev,
20+
const double &dos_scale,
21+
const double &bcoeff,
22+
std::ofstream& ofs_running);
2023
}
2124
#endif

0 commit comments

Comments
 (0)