Skip to content

Commit ee2919c

Browse files
authored
Merge branch 'develop' into fix_scf_MPI_ERR_TRUNCATE
2 parents b6ff7e5 + c7ea97c commit ee2919c

File tree

49 files changed

+746
-26
lines changed

Some content is hidden

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

49 files changed

+746
-26
lines changed

docs/advanced/input_files/input-main.md

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@
195195
- [bessel\_descriptor\_smooth](#bessel_descriptor_smooth)
196196
- [bessel\_descriptor\_sigma](#bessel_descriptor_sigma)
197197
- [deepks\_bandgap](#deepks_bandgap)
198+
- [deepks\_bandgap\_range](#deepks_bandgap_range)
198199
- [deepks\_v\_delta](#deepks_v_delta)
199200
- [deepks\_out\_unittest](#deepks_out_unittest)
200201
- [OFDFT: orbital free density functional theory](#ofdft-orbital-free-density-functional-theory)
@@ -1625,16 +1626,15 @@ These variables are used to control the output of properties.
16251626
- **Type**: Integer
16261627
- **Description**:
16271628
- 1: Output the **total local potential** (i.e., local pseudopotential + Hartree potential + XC potential + external electric field (if exists) + dipole correction potential (if exists) + ...) on real space grids (in Ry) into files in the folder `OUT.${suffix}`. The files are named as:
1628-
- nspin = 1: SPIN1_POT.cube;
1629-
- nspin = 2: SPIN1_POT.cube, and SPIN2_POT.cube;
1630-
- nspin = 4: SPIN1_POT.cube, SPIN2_POT.cube, SPIN3_POT.cube, and SPIN4_POT.cube.
1631-
- 2: Output the **electrostatic potential** on real space grids into `OUT.${suffix}/ElecStaticPot.cube`. The Python script named `tools/average_pot/aveElecStatPot.py` can be used to calculate the average electrostatic potential along the z-axis and outputs it into ElecStaticPot_AVE.
1632-
1629+
- nspin = 1: `pots1.cube`;
1630+
- nspin = 2: `pots1.cube` and `pots2.cube`;
1631+
- nspin = 4: `pots1.cube`, `pots2.cube`, `pots3.cube`, and `pots4.cube`
1632+
- 2: Output the **electrostatic potential** on real space grids into `OUT.${suffix}/pot_es.cube`. The Python script named `tools/average_pot/aveElecStatPot.py` can be used to calculate the average electrostatic potential along the z-axis and outputs it into ElecStaticPot_AVE.
16331633
Please note that the total local potential refers to the local component of the self-consistent potential, excluding the non-local pseudopotential. The distinction between the local potential and the electrostatic potential is as follows: local potential = electrostatic potential + XC potential.
16341634
- 3: Apart from 1, also output the **total local potential** of the initial charge density. The files are named as:
1635-
- nspin = 1: SPIN1_POT_INI.cube;
1636-
- nspin = 2: SPIN1_POT_INI.cube, and SPIN2_POT_INI.cube;
1637-
- nspin = 4: SPIN1_POT_INI.cube, SPIN2_POT_INI.cube, SPIN3_POT_INI.cube, and SPIN4_POT_INI.cube.
1635+
- nspin = 1: `pots1_ini.cube`;
1636+
- nspin = 2: `pots1_ini.cube` and `pots2_ini.cube`;
1637+
- nspin = 4: `pots1_ini.cube`, `pots2_ini.cube`, `pots3_ini.cube`, and `pots4_ini.cube`
16381638

16391639
In molecular dynamics calculations, the output frequency is controlled by [out_interval](#out_interval).
16401640
- **Default**: 0
@@ -1656,7 +1656,7 @@ These variables are used to control the output of properties.
16561656

16571657
- **Type**: Boolean
16581658
- **Availability**: Numerical atomic orbital basis (multi-k points)
1659-
- **Description**: Whether to output the density matrix with Bravias lattice vector R, labelled as DM(R), into files in the folder `OUT.${suffix}`. The files are named as `dmr{s}{spin index}{g}{geometry index}{_nao} + {".csr"}`. Here, 's' refers to spin, where s1 means spin up channel while s2 means spin down channel, and the sparse matrix format 'csr' is mentioned in [out_mat_hs2](#out_mat_hs2). Finally, if [out_app_flag](#out_app_flag) is set to false, the file name contains the optinal 'g' index for each ionic step that may have different geometries, and if [out_app_flag](#out_app_flag) is set to true, the density matrix with respect to Bravias lattice vector R accumulates during ionic steps:
1659+
- **Description**: Whether to output the density matrix with Bravias lattice vector R index into files in the folder `OUT.${suffix}`. The files are named as `dmr{s}{spin index}{g}{geometry index}{_nao} + {".csr"}`. Here, 's' refers to spin, where s1 means spin up channel while s2 means spin down channel, and the sparse matrix format 'csr' is mentioned in [out_mat_hs2](#out_mat_hs2). Finally, if [out_app_flag](#out_app_flag) is set to false, the file name contains the optinal 'g' index for each ionic step that may have different geometries, and if [out_app_flag](#out_app_flag) is set to true, the density matrix with respect to Bravias lattice vector R accumulates during ionic steps:
16601660
- nspin = 1: `dmrs1_nao.csr`;
16611661
- nspin = 2: `dmrs1_nao.csr` and `dmrs2_nao.csr` for the two spin channels.
16621662
- **Default**: False
@@ -2145,10 +2145,24 @@ Warning: this function is not robust enough for the current version. Please try
21452145

21462146
### deepks_bandgap
21472147

2148-
- **Type**: Boolean
2148+
- **Type**: Int
21492149
- **Availability**: numerical atomic orbital basis and `deepks_scf` is true
21502150
- **Description**: include bandgap label for DeePKS training
2151-
- **Default**: False
2151+
- 0: Don't include bandgap label
2152+
- 1: Include HOMO and LOMO for bandgap label
2153+
- 2: Include multiple bandgap label (see [deepks\_bandgap\_range](#deepks_bandgap_range) for more details)
2154+
- 3: Include target bandgap label (see [deepks\_bandgap\_range](#deepks_bandgap_range) for more details)
2155+
- 4: For systems containing H atoms only, HOMO is defined as the max occupation expect H atoms and the bandgap label is the energy between (HOMO, HOMO + 1)
2156+
- **Default**: 0
2157+
2158+
### deepks_bandgap_range
2159+
2160+
- **Type**: Int*2
2161+
- **Availability**: numerical atomic orbital basis, `deepks_scf` is true, and `deepks_bandgap` is 2 or 3
2162+
- **Description**:
2163+
- `deepks_bandgap` is 2: Bandgap labels are energies between (LUMO + deepks_bandgap_range[0], HOMO), (LUMO + deepks_bandgap_range[0] + 1, HOMO), ..., (LUMO + deepks_bandgap_range[1], HOMO) except (HOMO, HOMO)
2164+
- `deepks_bandgap` is 3: Bandgap label is the energy between (LUMO + deepks_bandgap_range[0], LUMO + deepks_bandgap_range[1])
2165+
- **Default**: 0 0
21522166

21532167
### deepks_v_delta
21542168

source/module_cell/read_atoms.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,10 @@ bool unitcell::read_atom_positions(UnitCell& ucell,
8080
ofs_warning << " Label from ATOMIC_SPECIES is " << ucell.atom_label[it] << std::endl;
8181
return false;
8282
}
83-
ModuleBase::GlobalFunc::OUT(ofs_running, "atom label",ucell.atoms[it].label);
83+
ModuleBase::GlobalFunc::OUT(ofs_running, "atom label", ucell.atoms[it].label);
8484

8585
bool set_element_mag_zero = false;
86-
ModuleBase::GlobalFunc::READ_VALUE(ifpos, ucell.magnet.start_mag[it] );
86+
ModuleBase::GlobalFunc::READ_VALUE(ifpos, ucell.magnet.start_mag[it]);
8787

8888
#ifndef __SYMMETRY
8989
//===========================================

source/module_esolver/esolver_fp.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ void ESolver_FP::after_scf(UnitCell& ucell, const int istep, const bool conv_eso
196196
{
197197
for (int is = 0; is < PARAM.inp.nspin; is++)
198198
{
199-
std::string fn =PARAM.globalv.global_out_dir + "/SPIN" + std::to_string(is + 1) + "_POT.cube";
199+
std::string fn =PARAM.globalv.global_out_dir + "/pots" + std::to_string(is + 1) + ".cube";
200200

201201
ModuleIO::write_vdata_palgrid(Pgrid,
202202
this->pelec->pot->get_effective_v(is),
@@ -212,7 +212,7 @@ void ESolver_FP::after_scf(UnitCell& ucell, const int istep, const bool conv_eso
212212
}
213213
else if (PARAM.inp.out_pot == 2)
214214
{
215-
std::string fn =PARAM.globalv.global_out_dir + "/ElecStaticPot.cube";
215+
std::string fn =PARAM.globalv.global_out_dir + "/pot_es.cube";
216216
ModuleIO::write_elecstat_pot(
217217
#ifdef __MPI
218218
this->pw_big->bz,
@@ -359,7 +359,7 @@ void ESolver_FP::before_scf(UnitCell& ucell, const int istep)
359359
for (int is = 0; is < PARAM.inp.nspin; is++)
360360
{
361361
std::stringstream ss;
362-
ss << PARAM.globalv.global_out_dir << "SPIN" << is + 1 << "_POT_INI.cube";
362+
ss << PARAM.globalv.global_out_dir << "pots" << is + 1 << "_ini.cube";
363363
ModuleIO::write_vdata_palgrid(this->Pgrid,
364364
this->pelec->pot->get_effective_v(is),
365365
is,

0 commit comments

Comments
 (0)