Skip to content

Commit 0ffdf34

Browse files
authored
Merge pull request #390 from tsaihsiaoyi/gwr_sc
Add GWR iteration support and plotting functionality
2 parents 463f98f + dc7697e commit 0ffdf34

8 files changed

Lines changed: 6330 additions & 14 deletions

File tree

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/usr/bin/env python
2+
from __future__ import print_function, unicode_literals, division, absolute_import
3+
import sys
4+
5+
from abipy.data import AbinitFilesGenerator
6+
7+
8+
class MyGenerator(AbinitFilesGenerator):
9+
"""This class generates the output files used in the unit tests and in the examples."""
10+
# Subclasses must define the following class attributes:
11+
# List of pseudos (basenames in abipy/data/pseudos)
12+
pseudos = ["Ga-low_r.psp8", "As_r.psp8"]
13+
14+
# Mapping old_name --> new_name for the output files that must be preserved.
15+
files_to_save = {
16+
"out_DS3_GWR.nc": "out_DS3_GWR.nc",
17+
"out_DS4_GSR.nc": "out_DS4_GSR.nc",
18+
}
19+
20+
mpiexec = "mpirun"
21+
mpinp = "8"
22+
23+
if __name__ == "__main__":
24+
sys.exit(MyGenerator().run())
1.17 MB
Binary file not shown.
167 KB
Binary file not shown.

abipy/data/refs/gwr_egew/run.abi

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
# Crystalline silicon.
2+
# Calculation of the GW corrections with GWR code and energy-only self-consistency
3+
4+
ndtset 4
5+
iomode 1
6+
istwfk *1
7+
nstep 1000
8+
9+
# This to compute QP without symmetries for debugging purposes
10+
#nsym 1
11+
#kptopt 3
12+
#kptopt 2
13+
#
14+
####################
15+
# Dataset 1: SCF run
16+
####################
17+
nband1 6
18+
tolvrs1 1.e-8
19+
20+
###########################################
21+
# Dataset 2: Direct diago with empty states
22+
###########################################
23+
optdriver2 6 # Activate GWR code
24+
gwr_task2 "HDIAGO_FULL" # Direct Diagonalization with nband == npw
25+
getden2 1
26+
27+
#########################################
28+
# GWR variables common to dataset 3 and 4
29+
#########################################
30+
gwr_ntau 6 # Number of imaginary-time points
31+
gwr_sigma_algo 1 # Use supercell for Sigma
32+
gwr_boxcutmin 1.1 # This should be subject to convergence studies
33+
#mixprec 1 # Mixed precision FFT.
34+
nband 30 # Bands to be used in the screening calculation
35+
ecuteps 4 # Cut-off energy of the planewave set to represent the dielectric matrix.
36+
# It is important to adjust this parameter.
37+
ecutsigx 4.0 # Dimension of the G sum in Sigma_x.
38+
# ecutsigx = ecut is usually a wise choice
39+
# (the dimension in Sigma_c is controlled by ecuteps)
40+
gw_qprange +5
41+
# gwr_nstep 4 # Max number of iteration (default 50, so one might omit it)
42+
gwr_tolqpe 0.005 eV # Will stop if all abs differences between QP energies computed at two
43+
# consecutive iteration steps are smaller than this value.
44+
#
45+
#gw_icutcoul 16 # Monte-Carlo integration in the mini-Brillouin zone for Full Coulomb interaction.
46+
#gw_icutcoul 0 # Spherical cutoff
47+
48+
# Spectral function (very coarse grid to reduce txt file size)
49+
nfreqsp 50
50+
freqspmax 5 eV
51+
52+
################################
53+
# Dataset 3: EGEW with GWR code
54+
################################
55+
optdriver3 6 # Activate GWR code
56+
gwr_task3 "EGEW" # energy-only self-consistency both in G and W
57+
58+
getden3 1
59+
getwfk3 2 # WFK file with empty states
60+
prtvol3 1 # Write additional stuff to abo file for testing purposes.
61+
62+
63+
# Definition of the k-point grid
64+
# IMPORTANT: GWR requires Gamma-centered k-meshes
65+
ngkpt1 4 4 4
66+
nshiftk1 1
67+
shiftk1 0.0 0.0 0.0
68+
69+
ngkpt2 4 4 4
70+
nshiftk2 1
71+
shiftk2 0.0 0.0 0.0
72+
73+
ngkpt3 4 4 4
74+
nshiftk3 1
75+
shiftk3 0.0 0.0 0.0
76+
77+
########################
78+
# Dataset 4: SCF run for KS bands on k-path
79+
########################
80+
nband4 30
81+
getden4 1
82+
iscf4 -2
83+
ndivsm4 20
84+
kptopt4 -4
85+
kptbounds4
86+
+0.500000000 +0.500000000 +0.500000000 # L
87+
+0.000000000 +0.000000000 +0.000000000 # $\Gamma$
88+
+0.500000000 +0.000000000 +0.500000000 # X
89+
+0.375000000 +0.375000000 +0.750000000 # K
90+
+0.000000000 +0.000000000 +0.000000000 # $\Gamma$
91+
tolwfr4 1.0d-15
92+
enunit4 1
93+
94+
########################
95+
# Global variables
96+
########################
97+
98+
99+
ecut 4.0 # Maximal kinetic energy cut-off, in Hartree
100+
101+
# Definition of the SCF procedure
102+
acell 3*5.61 angstrom # expt value
103+
rprim 0 1/2 1/2
104+
1/2 0 1/2
105+
1/2 1/2 0
106+
natom 2
107+
ntypat 2
108+
typat 1 2
109+
znucl 31 33
110+
xred 3*0 3*1/4
111+
112+
#%%<BEGIN TEST_INFO>
113+
#%% [setup]
114+
#%% executable = abinit
115+
#%% exclude_builders = eos_nvhpc_23.9_elpa, eos_nvhpc_24.9_openmpi, haicgu_*
116+
#%% [files]
117+
#%% files_to_test =
118+
#%% t04.abo, tolnlines = 70, tolabs = 8e-3, tolrel = 3.0e-3, fld_options = -medium;
119+
#%% [paral_info]
120+
#%% max_nprocs = 12
121+
#%% [extra_info]
122+
#%% authors = M. Giantomassi
123+
#%% keywords = NC, GWR
124+
#%% description =
125+
#%% Crystalline silicon
126+
#%% Calculation of the GW corrections with GWR code and energy-only self-consistency
127+
#%%<END TEST_INFO>

0 commit comments

Comments
 (0)