Skip to content

Commit 1c5b365

Browse files
MinotakmAndresOrtegaGuerrero
authored andcommitted
👌 PdosWorkChain: Update protocols for improved accuracy
Update the Briollouin zone sampling algorithm and adjust the `deltaE` parameter for DOS and pDOS to 0.01. The optimized tetrahedron method is now selected as recommended by the Quantum ESPRESSO documentation for improved efficiency and accuracy. Additionally, tightening the energy grid helps mitigate the issue of skipping semicore states in certain cases. Co-authored-by: Andres Ortega-Guerrero <34098967+AndresOrtegaGuerrero@users.noreply.github.com> Co-authored-by: Michail Minotakis <mminotakis@gmail.com>
1 parent bcd5508 commit 1c5b365

File tree

4 files changed

+9
-9
lines changed

4 files changed

+9
-9
lines changed

‎src/aiida_quantumespresso/workflows/pdos.py‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,8 @@ def validate_nscf(value, _):
134134
parameters = value['pw']['parameters'].get_dict()
135135
if parameters.get('CONTROL', {}).get('calculation', 'scf') != 'nscf':
136136
return '`CONTOL.calculation` in `nscf.pw.parameters` is not set to `nscf`.'
137-
if parameters.get('SYSTEM', {}).get('occupations', None) != 'tetrahedra':
138-
return '`SYSTEM.occupations` in `nscf.pw.parameters` is not set to `tetrahedra`.'
137+
if not parameters.get('SYSTEM', {}).get('occupations', '').startswith('tetrahedra'):
138+
return '`SYSTEM.occupations` in `nscf.pw.parameters` is not set to one of the `tetrahedra` options.'
139139

140140

141141
def validate_dos(value, _):

‎src/aiida_quantumespresso/workflows/protocols/pdos.yaml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ default_inputs:
1313
calculation: nscf
1414
restart_mode: from_scratch
1515
SYSTEM:
16-
occupations: tetrahedra
16+
occupations: tetrahedra_opt
1717
nosym: True
1818
dos:
1919
parameters:
2020
DOS:
21-
DeltaE: 0.02
21+
DeltaE: 0.01
2222
metadata:
2323
options:
2424
resources:
@@ -28,7 +28,7 @@ default_inputs:
2828
projwfc:
2929
parameters:
3030
PROJWFC:
31-
DeltaE: 0.02
31+
DeltaE: 0.01
3232
metadata:
3333
options:
3434
resources:

‎tests/workflows/protocols/test_pdos.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def test_electronic_type(get_pdos_generator_inputs):
5151
builder = PdosWorkChain.get_builder_from_protocol(
5252
**get_pdos_generator_inputs, electronic_type=ElectronicType.INSULATOR
5353
)
54-
for namespace, occupations in zip((builder.scf, builder.nscf), ('fixed', 'tetrahedra')):
54+
for namespace, occupations in zip((builder.scf, builder.nscf), ('fixed', 'tetrahedra_opt')):
5555
parameters = namespace['pw']['parameters'].get_dict()
5656
assert parameters['SYSTEM']['occupations'] == occupations
5757
assert 'degauss' not in parameters['SYSTEM']

‎tests/workflows/protocols/test_pdos/test_default.yml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ dos:
99
withmpi: true
1010
parameters:
1111
DOS:
12-
DeltaE: 0.02
12+
DeltaE: 0.01
1313
nscf:
1414
kpoints_distance: 0.1
1515
kpoints_force_parity: false
@@ -39,7 +39,7 @@ nscf:
3939
ecutrho: 240.0
4040
ecutwfc: 30.0
4141
nosym: true
42-
occupations: tetrahedra
42+
occupations: tetrahedra_opt
4343
pseudos:
4444
Si: Si<md5=57fa15d98af99972c7b7aa5c179b0bb8>
4545
projwfc:
@@ -52,7 +52,7 @@ projwfc:
5252
withmpi: true
5353
parameters:
5454
PROJWFC:
55-
DeltaE: 0.02
55+
DeltaE: 0.01
5656
scf:
5757
kpoints_distance: 0.15
5858
kpoints_force_parity: false

0 commit comments

Comments
 (0)