1Test    : Silicon with EPM (complex, spin-polarized)
2Enabled : Yes
3
4# DO NOT MAKE CHANGES HERE INDEPENDENTLY! They MUST follow the values in
5# Si_cplx.test (generated from Si.test) or spin-polarization is broken.
6# Running the command "diff -y Si_cplx.test Si_cplx_spin.test --width=200"
7# should result in only a small number of lines of difference, all of which have comments
8# around them noting how and why they differ.
9
10Command: cp $TESTDIR/WFN*.in $WORKDIR/
11# FHJ: The following sed is always executed
12Command: sed -i.bak 's/^real_or_complex.*/real_or_complex 2/;s/^nspin.*/nspin 2/' WFN*.in
13
14Executable : epm2bgw.x
15Processors : serial
16Output : WFN.out
17Input  : WFN.in PIPE NOCOPY
18
19Precision : 6e-15
20match ; Eigenvalue  1 at k-pt 1   ; GREP(WFN.out,   "kpoint          1", 2,  1); -0.1283435360829054
21match ; Eigenvalue 10 at k-pt 1   ; GREP(WFN.out,   "kpoint          1", 2, 10);  1.3282472551260550
22match ; Eigenvalue 18 at k-pt 2   ; GREP(WFN.out,   "kpoint          2", 2, 18);  2.3490532646407310
23
24Output : WFNq.out
25Input  : WFNq.in PIPE NOCOPY
26
27match ; Eigenvalue  1 at k-pt 1   ; GREP(WFNq.out,   "kpoint          1", 2,  1); -0.1278872033838455
28match ; Eigenvalue  1 at k-pt 2   ; GREP(WFNq.out,   "kpoint          2", 2,  1); -0.1287983831755248
29match ; Eigenvalue  4 at k-pt 3   ; GREP(WFNq.out,   "kpoint          3", 2,  4);  0.6800817811482534
30
31Output : WFN_co.out
32Input  : WFN_co.in PIPE NOCOPY
33
34match ; Eigenvalue  1 at k-pt 1   ; GREP(WFN_co.out, "kpoint          1", 2,  1); -0.1875783994953054
35match ; Eigenvalue  1 at k-pt 3   ; GREP(WFN_co.out, "kpoint          3", 2,  1);  0.1223225560313585
36match ; Eigenvalue 18 at k-pt 3   ; GREP(WFN_co.out, "kpoint          3", 2, 18);  2.2892013856110280
37
38Output : WFN_fi.out
39Input  : WFN_fi.in PIPE NOCOPY
40
41match ; Eigenvalue  1 at k-pt 1   ; GREP(WFN_fi.out, "kpoint          1", 2, 1);  -0.1699064558009724
42match ; Eigenvalue  4 at k-pt 1   ; GREP(WFN_fi.out, "kpoint          1", 2, 4);   0.7222736945499569
43match ; Eigenvalue  6 at k-pt 7   ; GREP(WFN_fi.out, "kpoint          7", 2, 6);   1.0573090701231470
44
45Output : WFNq_fi.out
46Input  : WFNq_fi.in PIPE NOCOPY
47
48match ; Eigenvalue  1 at k-pt 2   ; GREP(WFNq_fi.out, "kpoint          2", 2, 1);  -0.0628178651675045
49match ; Eigenvalue  4 at k-pt 5   ; GREP(WFNq_fi.out, "kpoint          5", 2, 4);   0.5510534752750740
50match ; Eigenvalue  3 at k-pt 20  ; GREP(WFNq_fi.out, "kpoint         20", 2, 3);   0.4468196210876209
51
52# no kgrid run, it doesn't depend on spin so that is pointless
53
54Executable : wfn_rho_vxc_info.x
55Processors : serial
56Arguments : WFN > WFN_info.out
57
58match ; Max number of wfn G-vectors ; GREP(WFN_info.out, "Max number of wfn G-vectors", 6, 0); 171
59match ; Real-space metric (0, 0)    ; GREP(WFN_info.out, "Metric (real space", 1, 1);          52.646113
60
61Command : cp WFNq WFNq_cp
62Executable : wfn_dotproduct.x
63Processors : serial
64Arguments : B WFNq WFNq_cp > dotproduct.out
65
66# line numbers are different when there are two spins
67match ; Overlap ik  1, bands 1 1 ; GREP(dotproduct.out, "k-point      1:", 6,  4); 1.0
68match ; Overlap ik  1, bands 3 2 ; GREP(dotproduct.out, "k-point      1:", 6, 21); 0.0
69match ; Overlap ik 10, bands 4 4 ; GREP(dotproduct.out, "k-point      4:", 6, 35); 1.0
70
71Executable : degeneracy_check.x
72Processors : serial
73Arguments : WFN WFN_inner WFN_fi > degeneracy.out
74
75match ; Highest allowed number of bands ; GREP(degeneracy.out, "numbers of bands", 1, 3); 10
76match ; Highest allowed number of valence bands ; GREP(degeneracy.out, "numbers of valence bands", 1, 1); 4
77match ; Highest allowed number of conduction bands ; GREP(degeneracy.out, "numbers of conduction bands", 1, 2); 6
78
79###############################################################################
80Banner: GPP/COHSEX/HF (complex-spin)
81###############################################################################
82
83Copy : epsilon.inp
84Command : echo "skip_epsilon" >> epsilon.inp
85
86Executable : epsilon.cplx.x
87Processors : 4
88Output : eps_static_skip_epsilon.out
89Input  : NONE
90
91Precision : 1e-13
92match ; Re chi(q1,0,0)       ; LINE(chi_converge.dat, 16, 2) ; -0.71438266E-06
93match ; Re chi(q1,Gmax,Gmax) ; LINE(chi_converge.dat, 16, 4) ; -0.17070033E-02
94match ; Re chi(q3,0,0)       ; LINE(chi_converge.dat, 50, 2) ; -0.28262692E-01
95match ; Re chi(q3,Gmax,Gmax) ; LINE(chi_converge.dat, 50, 4) ; -0.74153363E-03
96
97Command : mv epsilon.log eps_static_skip_epsilon.log
98
99Copy : epsilon.inp
100Command : echo "skip_chi" >> epsilon.inp
101
102Executable : epsilon.cplx.x
103Output : eps_static_skip_chi.out
104Input  : NONE
105
106Precision : 2e-11
107match ; epsilon q1 ; GREP(eps_static_skip_chi.out, "q-pt      1: Head of Epsilon",         7, 0); 16.9619547514149
108Precision : 2e-13
109match ; eps inv q1 ; GREP(eps_static_skip_chi.out, "q-pt      1: Head of Epsilon Inverse", 8, 0); 0.0650198678428007
110match ; epsilon q2 ; GREP(eps_static_skip_chi.out, "q-pt      2: Head of Epsilon",         7, 0); 3.1043208107546914
111match ; eps inv q2 ; GREP(eps_static_skip_chi.out, "q-pt      2: Head of Epsilon Inverse", 8, 0); 0.36141535117630236
112match ; epsilon q3 ; GREP(eps_static_skip_chi.out, "q-pt      3: Head of Epsilon",         7, 0); 2.8944796695309591
113match ; eps inv q3 ; GREP(eps_static_skip_chi.out, "q-pt      3: Head of Epsilon Inverse", 8, 0); 0.36570423105364530
114match ; epsilonInv Head      ; GREP(epsilon.log, "inverse epsilon", 7, 1); 0.06501987
115
116Command : mv epsilon.log eps_static_skip_chi.log
117
118
119#Testing Epsilon restart feature (HDF5 only). Note: for non-HDF5 calculations,
120#the code will run these calculation from scratch. So, make sure you always
121#grep for the correct q-point here, otherwise you might be matching something
122#else!
123
124#Test chi restart, take 1
125Copy : epsilon.inp
126Command : echo "skip_epsilon" >> epsilon.inp
127Command : echo "stop_after_qpt 2" >> epsilon.inp
128
129Executable : epsilon.cplx.x
130Processors : 4
131Output : eps_static_skip_epsilon_restart_1.out
132Input  : NONE
133
134Precision : 1e-13
135match ; Re chi(q1,0,0)       ; GREP(chi_converge.dat, "(qpt 1)", 2, 15) ; -0.71438266E-06
136match ; Re chi(q1,Gmax,Gmax) ; GREP(chi_converge.dat, "(qpt 1)", 4, 15) ; -0.17070033E-02
137Command : mv epsilon.log eps_static_skip_epsilon_restart_1.log
138Command : mv chi_converge.dat chi_converge_skip_epsilon_restart_1.dat
139
140
141#Test chi restart, take 2
142Copy : epsilon.inp
143Command : echo "skip_epsilon" >> epsilon.inp
144Command : echo "restart" >> epsilon.inp
145
146Executable : epsilon.cplx.x
147Processors : 4
148Output : eps_static_skip_epsilon_restart_2.out
149Input  : NONE
150
151Precision : 1e-13
152match ; Re chi(q3,0,0)       ; GREP(chi_converge.dat, "(qpt 3)", 2, 15) ; -0.28262692E-01
153match ; Re chi(q3,Gmax,Gmax) ; GREP(chi_converge.dat, "(qpt 3)", 4, 15) ; -0.74153363E-03
154Command : mv epsilon.log eps_static_skip_epsilon_restart_2.log
155Command : mv chi_converge.dat chi_converge_skip_epsilon_restart_2.dat
156
157
158#Test eps restart, take 1
159Copy : epsilon.inp
160Command : echo "skip_chi" >> epsilon.inp
161Command : echo "stop_after_qpt 2" >> epsilon.inp
162
163Executable : epsilon.cplx.x
164Output : eps_static_skip_chi_restart_1.out
165Input  : NONE
166
167Precision : 2e-11
168match ; epsilon q1 ; GREP(eps_static_skip_chi_restart_1.out, "q-pt      1: Head of Epsilon",         7, 0); 16.9619547514149
169Precision : 2e-13
170match ; eps inv q1 ; GREP(eps_static_skip_chi_restart_1.out, "q-pt      1: Head of Epsilon Inverse", 8, 0); 0.0650198678428007
171match ; epsilon q2 ; GREP(eps_static_skip_chi_restart_1.out, "q-pt      2: Head of Epsilon",         7, 0); 3.1043208107546914
172match ; eps inv q2 ; GREP(eps_static_skip_chi_restart_1.out, "q-pt      2: Head of Epsilon Inverse", 8, 0); 0.36141535117630236
173Command : mv epsilon.log eps_static_skip_chi_restart_1.log
174
175
176#Test eps restart, take 2
177Copy : epsilon.inp
178Command : echo "skip_chi" >> epsilon.inp
179Command : echo "restart" >> epsilon.inp
180
181Executable : epsilon.cplx.x
182Output : eps_static_skip_chi_restart_2.out
183Input  : NONE
184
185Precision : 1e-13
186match ; epsilon q3 ; GREP(eps_static_skip_chi_restart_2.out, "q-pt      3: Head of Epsilon",         7, 0); 2.8944796695309591
187match ; eps inv q3 ; GREP(eps_static_skip_chi_restart_2.out, "q-pt      3: Head of Epsilon Inverse", 8, 0); 0.36570423105364530
188Command : mv epsilon.log eps_static_skip_chi_restart_2.log
189
190
191# no eps0sym/epsbinasc/epsascbin runs, they don't depend on spin
192
193Executable : sigma.cplx.x
194Processors : 4
195Output : sig_HF.out
196Input  : sig_HF.inp sigma.inp
197
198# These numbers should be identical to the full GW Sigma calculation below.
199Precision : 2e-6
200match ; n2, k1 Exchange             ; GREP(sigma_hp.log, "ik =   1",  4, 4); -14.234329
201match ; n5, k2 Exchange             ; GREP(sigma_hp.log, "ik =   2",  4, 7);  -4.919106
202
203Command : mv sigma_hp.log sig_hp_HF.log
204
205Copy : sig_COHSEX.inp sigma.inp
206Command : echo "spin_index_min 2" >> sigma.inp
207Command : echo "spin_index_max 2" >> sigma.inp
208
209Executable : sigma.cplx.x
210Output : sig_COHSEX.out
211Input  : NONE
212
213match ; n2, k1 Exchange             ; GREP(sigma_hp.log, "ik =   1",  4, 4); -14.234329
214match ; n2, k1 Screened Exchange    ; GREP(sigma_hp.log, "ik =   1",  5, 4);   9.436203
215match ; n2, k1 Coulomb Hole         ; GREP(sigma_hp.log, "ik =   1",  6, 4);  -8.650859
216match ; n2, k1 Linear QP Correction ; GREP(sigma_hp.log, "ik =   1", 10, 4);  -3.413123
217
218match ; n5, k2 Exchange             ; GREP(sigma_hp.log, "ik =   2",  4, 7);  -4.919106
219match ; n5, k2 Screened Exchange    ; GREP(sigma_hp.log, "ik =   2",  5, 7);   2.372129
220match ; n5, k2 Coulomb Hole         ; GREP(sigma_hp.log, "ik =   2",  6, 7);  -7.929344
221match ; n5, k2 Linear QP Correction ; GREP(sigma_hp.log, "ik =   2", 10, 7);   1.513581
222
223Command : mv sigma_hp.log sig_hp_COHSEX.log
224
225Executable : sigma.cplx.x
226Output : sig_COHSEX_offdiag.out
227Input  : sig_COHSEX_offdiag.inp sigma.inp
228
229match ; n1 x n1 k1 Exchange         ; GREP(sigma_hp.log, "1   1   3   real",  5, 0); -16.677015
230match ; n1 x n1 k1 Screened Exchange; GREP(sigma_hp.log, "1   1   3   real",  6, 0);  11.480658
231match ; n1 x n1 k1 Coulomb Hole     ; GREP(sigma_hp.log, "1   1   3   real",  7, 0);  -8.423929
232match ; n1 x n5 k1 Exchange         ; GREP(sigma_hp.log, "1   5   3   real",  5, 0);   -0.001542
233match ; n1 x n5 k1 Screened Exchange; GREP(sigma_hp.log, "1   5   3   real",  6, 0);  0.001797
234match ; n1 x n5 k1 Coulomb Hole     ; GREP(sigma_hp.log, "1   5   3   real",  7, 0);   -0.000133
235match ; n2 x n5 k1 Exchange         ; GREP(sigma_hp.log, "2   5   3   real",  5, 0);  -1.542806
236match ; n2 x n5 k1 Screened Exchange; GREP(sigma_hp.log, "2   5   3   real",  6, 0);   0.797644
237match ; n2 x n5 k1 Coulomb Hole     ; GREP(sigma_hp.log, "2   5   3   real",  7, 0);  -0.530405
238
239Processors : serial
240Executable : offdiag.cplx.x
241Output : offdiag.out
242Input : NONE
243
244# we evaluate at fixed energy, so Sigma is Hermitian and eigenvalues must be real
245match ; Eigenvalue 1 Re ; GREP(offdiag.out, "Sig(Eo)", 2, 2); -13.862077
246match ; Eigenvalue 1 Im ; GREP(offdiag.out, "Sig(Eo)", 3, 2);   0.000000
247match ; Eigenvalue 5 Re ; GREP(offdiag.out, "Sig(Eo)", 2, 6);   1.653623
248match ; Eigenvalue 5 Im ; GREP(offdiag.out, "Sig(Eo)", 3, 6);   0.000000
249
250Command : mv sigma_hp.log sig_hp_COHSEX_offdiag.log
251
252Copy : sig_GPP.inp sigma.inp
253Command : echo "spin_index_min 1" >> sigma.inp
254Command : echo "spin_index_max 2" >> sigma.inp
255
256Processors : 4
257Executable : sigma.cplx.x
258Output : sig_GPP.out
259Input  : NONE
260
261Precision : 2e-5
262match ; k-point 1 z-coordinate      ; GREP(sigma_hp.log, "ik =   1",  5, 0);   0.000000
263match ; n2, k1 Initial Eigenvalue   ; GREP(sigma_hp.log, "ik =   1",  2, 4);  10.035862
264match ; n2, k1 Exchange             ; GREP(sigma_hp.log, "ik =   1",  4, 4); -14.234668
265match ; n2, k1 Screened Exchange    ; GREP(sigma_hp.log, "ik =   1",  5, 4);   9.582573
266match ; n2, k1 Coulomb Hole         ; GREP(sigma_hp.log, "ik =   1", 11, 4);  -6.836764
267match ; n2, k1 CH + Static Remainder; GREP(sigma_hp.log, "ik =   1",  6, 4);  -7.628986
268match ; n2, k1 Linear QP Correction ; GREP(sigma_hp.log, "ik =   1", 10, 4);   0.163878
269match ; n2, k1 Znk                  ; GREP(sigma_hp.log, "ik =   1", 15, 4);   0.803837
270
271# offdiagonals
272# this is a diagonal actually and must match exactly the unsymmetrized diagonal value
273match ; n1 x n1 k1 Exchange         ; GREP(sigma_hp.log, "1   1   1   real",  5, 0); -17.224976
274match ; n1 x n1 k1 Screened Exchange; GREP(sigma_hp.log, "1   1   1   real",  6, 0);  12.367894
275match ; n1 x n1 k1 Coulomb Hole     ; GREP(sigma_hp.log, "1   1   1   real", 10, 0);  -6.360950
276# this is some other offdiagonal
277match ; n1 x n8 k1 Exchange         ; GREP(sigma_hp.log, "1   8   1   real",  5, 0);   0.000026
278match ; n1 x n8 k1 Screened Exchange; GREP(sigma_hp.log, "1   8   1   real",  6, 0);   0.003215
279match ; n1 x n8 k1 Coulomb Hole     ; GREP(sigma_hp.log, "1   8   1   real", 10, 0);  -0.000765
280# this one is zero by symmetry
281Precision : 1e-6
282match ; n2 x n1 k1 Exchange         ; GREP(sigma_hp.log, "2   1   2   real",  5, 0);   0.000000
283match ; n2 x n1 k1 Screened Exchange; GREP(sigma_hp.log, "2   1   2   real",  6, 0);   0.000000
284match ; n2 x n1 k1 Coulomb Hole     ; GREP(sigma_hp.log, "2   1   2   real", 10, 0);   0.000000
285
286match ; k-point 2 z-coordinate      ; GREP(sigma_hp.log, "ik =   2",  5, 0);   0.500000
287match ; n5, k2 Initial Eigenvalue   ; GREP(sigma_hp.log, "ik =   2",  2, 7);  11.989902
288match ; n5, k2 Exchange             ; GREP(sigma_hp.log, "ik =   2",  4, 7);  -4.919330
289match ; n5, k2 Screened Exchange    ; GREP(sigma_hp.log, "ik =   2",  5, 7);   2.770033
290match ; n5, k2 Coulomb Hole         ; GREP(sigma_hp.log, "ik =   2", 11, 7);  -6.456372
291match ; n5, k2 CH + Static Remainder; GREP(sigma_hp.log, "ik =   2",  6, 7);  -7.200217
292match ; n5, k2 Linear QP Correction ; GREP(sigma_hp.log, "ik =   2", 10, 7);   4.516284
293
294Copy : Si.nnkp
295
296Executable : sig2wan.x
297Processors : serial
298Output : sig2wan.out
299Input : sig2wan.inp
300
301match ; number of symmetries       ; GREP(sig2wan.out, "nsym = ", 3, 0) ;   48
302Precision : 2e-5
303match ; eigenvalue band 2 k 2      ; GREP(Si.eig, "2    2 ", 3, 0)      ;   -5.975508000000
304match ; eigenvalue band 3 k 4      ; GREP(Si.eig, "3    4 ", 3, 0)      ;   -0.821639000000
305match ; eigenvalue band 1 k 6      ; GREP(Si.eig, "1    6 ", 3, 0)      ;   -7.253629000000
306
307Command : mv sigma_hp.log sig_hp_GPP.log
308Command : mv WFN_inner WFN_co
309
310Executable : kernel.cplx.x
311Processors : 4
312Output : kernel_res.out
313Input  : kernel.inp
314
315Precision : 1e-8
316match ; Norm of head (res); GREP(kernel_res.out, " - Head :", 4); 2.3132138684155E+0001
317match ; Norm of wing (res); GREP(kernel_res.out, " - Wing :", 4); 3.3151235078540E+0000
318match ; Norm of body (res); GREP(kernel_res.out, " - Body :", 4); 2.7187084608215E+0001
319match ; Norm of x    (res); GREP(kernel_res.out, " - X    :", 4); 2.9710126990925E+0001
320
321Executable : eqp.py
322Arguments : eqp1 sig_hp_GPP.log eqp_co.dat > eqp.out
323
324# the line numbers are different from non-spin-polarized but ref values must be the same
325match ; k-point 2 z-coord ; LINE(eqp_co.dat, 18, 3);  0.500
326match ; LDA Eigenvalue    ; LINE(eqp_co.dat, 22, 3);  8.767754000
327Precision : 2e-5
328match ; GW Eigenvalue     ; LINE(eqp_co.dat, 22, 4); -0.821639000
329
330# inteqp. We will not use the result however.
331Executable : inteqp.cplx.x
332Output : inteqp.out
333Input : inteqp.inp
334
335Precision : 1e-5
336match ; Cartesian kx coord  ; LINE(bandstructure.dat,  4, 3);  0.24758
337match ; MF Eigenvalue       ; LINE(bandstructure.dat,  4, 6); -0.854680521
338match ; GW Eigenvalue       ; LINE(bandstructure.dat,  4, 7); -9.480701656
339match ; Difference          ; LINE(bandstructure.dat,  4, 8); -8.626021097
340# below in eqp_q.dat must match result in bandstructure.dat!
341# the line numbers are different from non-spin-polarized but ref values must be the same
342match ; eqp_q.dat k2 b2 MF  ; LINE(eqp_q.dat, 11, 3);  -0.854680521
343match ; eqp_q.dat k2 b2 GW  ; LINE(eqp_q.dat, 11, 4);  -9.480701656
344match ; eqp.dat k5 b1 s1 MF ; LINE(eqp.dat,   38, 3);  11.894735794
345match ; eqp.dat k5 b1 s1 GW ; LINE(eqp.dat,   38, 4);   5.044438378
346match ; eqp.dat k5 b1 s2 MF ; LINE(eqp.dat,   42, 3);  11.894735794
347match ; eqp.dat k5 b1 s2 GW ; LINE(eqp.dat,   42, 4);   5.044438378
348
349# BSE with velocity operator
350Executable : absorption.cplx.x
351Output : absp.out
352Input  : absorption.inp
353
354# Eigenvalues and singlet transition mtxel must match corresponding results in non-spin-polarized test.
355# Sum rule should match the singlet calculation.
356Precision : 0.0001
357match ; Number of eigenvalues  ; GREP(eigenvalues.dat, "# neig  = ", 4); 864
358match ; Singlet eigenvalue 1           ; LINE(eigenvalues.dat,  7, 1);  0.30491926E+01
359Precision : 1e-5
360match ; Singlet transition mtxel 1     ; LINE(eigenvalues.dat,  7, 2);  0.48635697E+02
361Precision : 0.0001
362match ; Triplet eigenvalue 1           ; LINE(eigenvalues.dat,  5, 1);  0.28850156E+01
363Precision : 1e-5
364match ; Triplet transition mtxel 1     ; LINE(eigenvalues.dat,  5, 2);  0.0
365match ; Triplet eigenvalue 10          ; LINE(eigenvalues.dat, 26, 1);  0.39620494E+01
366match ; Triplet transition mtxel 10    ; LINE(eigenvalues.dat, 26, 2);  0.0
367Precision : 1e-10
368match ; Sum rule               ; GREP(absp.out, "Sum rule (BSE)", 5);  0.88770513193490552
369
370# BSE with momentum operator
371# The eigenvalues would be identical to velocity operator in q->0 limit, and the transition
372# matrix elements should be very close, since EPM is a local potential.
373Executable : absorption.cplx.x
374Output : absp_mom.out
375Input  : absp_mom.inp absorption.inp
376
377Precision : 0.0001
378match ; Number of eigenvalues  ; GREP(eigenvalues.dat, "# neig  = ", 4); 864
379match ; Singlet eigenvalue 1           ; LINE(eigenvalues.dat,  6, 1);  0.30493802E+01
380Precision : 1e-5
381match ; Singlet transition mtxel 1     ; LINE(eigenvalues.dat,  6, 2);  0.65579179E-21
382Precision : 0.0001
383match ; Triplet eigenvalue 1           ; LINE(eigenvalues.dat,  5, 1);  0.28857964E+01
384Precision : 1e-5
385match ; Triplet transition mtxel 1     ; LINE(eigenvalues.dat,  5, 2);  0.65525241E-28
386match ; Triplet eigenvalue 10          ; LINE(eigenvalues.dat, 26, 1);  0.39614575E+01
387match ; Triplet transition mtxel 10    ; LINE(eigenvalues.dat, 26, 2);  0.0
388Precision : 1e-10
389match ; Sum rule               ; GREP(absp_mom.out, "Sum rule (BSE)", 5);  0.88655632851108246
390
391# BSE with momentum operator cell averaging
392Executable : absorption.cplx.x
393Output : absp_mom_ca.out
394Input  : absp_mom_ca.inp absorption.inp
395
396Precision : 0.0001
397match ; Number of eigenvalues  ; GREP(eigenvalues.dat, "# neig  = ", 4); 864
398match ; Singlet eigenvalue 1           ; LINE(eigenvalues.dat,  7, 1);  0.30499126E+01
399Precision : 1e-5
400match ; Singlet transition mtxel 1     ; LINE(eigenvalues.dat,  7, 2);  0.47540819E+02
401Precision : 0.0001
402match ; Triplet eigenvalue 1           ; LINE(eigenvalues.dat,  5, 1);  0.28857964E+01
403Precision : 1e-5
404match ; Triplet transition mtxel 1     ; LINE(eigenvalues.dat,  5, 2);  0.0
405match ; Singlet eigenvalue 10          ; LINE(eigenvalues.dat, 25, 1);  0.39049357E+01
406match ; Singlet transition mtxel 10    ; LINE(eigenvalues.dat, 25, 2);  0.44237130E+02
407Precision : 1e-10
408match ; Sum rule               ; GREP(absp_mom_ca.out, "Sum rule (BSE)", 5);  0.88655632851108246
409
410Executable : absorption.cplx.x
411Output : absp_haydock.out
412Input : absp_haydock.inp absorption.inp
413
414Precision : 2e-8
415match ; Static epsilon 1 ; GREP(absorption_eh.dat, " 0.000000000 ", 3);  15.632659506
416match ; Peak   epsilon 2 ; GREP(absorption_eh.dat, " 3.850000000 ", 2); 43.276848310
417match ; Peak   epsilon 1 ; GREP(absorption_eh.dat, " 3.850000000 ", 3); -1.139756049
418
419Executable : bsebinasc.cplx.x
420Processors : serial
421Arguments : .asc > bsebinasc.out
422
423Executable : bseascbin.cplx.x
424Processors : serial
425Arguments : .asc > bseascbin.out
426
427Command : mv WFNq_fi WFNq_fi_orig
428Command : ln -s WFN_fi WFNq_fi
429
430# NLO Two Photon
431Executable : nonlinearoptics.cplx.x
432Processors : 4
433Output : nonlinearoptics_tp.out
434Input  : nonlinearoptics_tp.inp nonlinearoptics.inp
435
436Precision : 0.0001
437match ; Eigenvalue 2 ; LINE(osc.dat, 4, 2);  0.31991348E+01
438match ; Osc 2 ; LINE(osc.dat, 4, 3);  0.76407954E+01
439match ; 2P Osc 2 ; LINE(osc.dat, 4, 4);  0.12989215E+02
440match ; 2P Max ; LINE(osc.dat, 4, 5);  4
441match ; 2P Max Val ; LINE(osc.dat, 4, 6);  0.18820367E+02
442match ; absorp peak ; LINE(absorption_nl.dat, 308, 2); 173.703164718
443
444Command : mv absorption_nl.dat absorp_tp.dat
445Command : mv osc.dat osc.dat_tp
446
447#Copy : nonlinearoptics_uf.inp
448#Command : sed 's/2 3.1928862 1.0/4 3.1928862 1.0/' nonlinearoptics_uf.inp > nonlinearoptics.inp
449
450# NLO UltraFast
451#Executable : nonlinearoptics.cplx.x
452#Output : nonlinearoptics_uf.out
453#Input  : NONE
454
455#Precision : 0.0001
456#match ; Index state 6 ; LINE(osc.dat, 6, 2); 6
457#match ; Osc 2 ; LINE(osc.dat, 6, 4);  0.32838747E+01
458#match ; UF Osc 2 ; LINE(osc.dat, 6, 5);  0.69487036E-05
459#match ; absorp peak ; LINE(absorption_nl.dat, 19, 2);  0.000000000
460
461#Command : mv absorption_nl.dat absorp_uf.dat
462
463
464
465###############################################################################
466Banner: Full Frequency: Real Axis (complex-spin)
467###############################################################################
468
469Command : mv WFN_co WFN_inner
470
471Executable : epsilon.cplx.x
472Processors : 4
473Output : eps_ff.out
474Input  : eps_ff.inp epsilon.inp
475
476Precision : 5e-12
477match ; Re eps q1          ; GREP(eps_ff.out, "q-pt      1: Head of Epsilon",          7, 0); 7.47530571237935
478Precision : 2e-13
479match ; Im eps q1          ; GREP(eps_ff.out, "q-pt      1: Head of Epsilon",          8, 0); 0.0
480match ; Re epsinv q1       ; GREP(eps_ff.out, "q-pt      1: Head of Epsilon Inverse",  8, 0); 0.143379135635558
481match ; Im epsinv q1       ; GREP(eps_ff.out, "q-pt      1: Head of Epsilon Inverse",  9, 0); 0.0
482
483Precision : 1e-5
484match ; epsilon    Head 30.0 eV Re ; LINE(EpsDyn, 9, 2) ; 0.645807
485match ; epsilon    Head 30.0 eV Im ; LINE(EpsDyn, 9, 3) ; 0.134043
486match ; epsilonInv Head 30.0 eV Re ; LINE(EpsInvDyn, 21, 2) ; 1.393469
487match ; epsilonInv Head 30.0 eV Im ; LINE(EpsInvDyn, 21, 3) ; -0.360050
488
489Command : mv epsilon.log eps_ff.log
490
491Executable : sigma.cplx.x
492Processors : 4
493Output : sig_ff.out
494Input  : sig_ff.inp sigma.inp
495
496Precision : 2e-5
497match ; n2, k1 Initial Eigenvalue   ; GREP(sigma_hp.log, "ik =   1",  2, 6);  10.035862
498match ; n2, k1 Exchange             ; GREP(sigma_hp.log, "ik =   1",  4, 6); -14.234668
499match ; n2, k1 Screened Exchange    ; GREP(sigma_hp.log, "ik =   1",  5, 6);   8.725202
500match ; n2, k1 Coulomb Hole         ; GREP(sigma_hp.log, "ik =   1", 13, 6);  -4.93979
501match ; n2, k1 Imag SX              ; GREP(sigma_hp.log, "ik =   1",  1, 7);   1.329838
502match ; n2, k1 Imag CH              ; GREP(sigma_hp.log, "ik =   1",  2, 7);  -2.277567
503
504# offdiagonals
505# this is a diagonal actually and must match exactly the unsymmetrized diagonal value
506match ; n1 x n1 k1 Exchange         ; GREP(sigma_hp.log, "1   1   1   real",  5, 0); -17.224976
507match ; n1 x n1 k1 Screened Exchange; GREP(sigma_hp.log, "1   1   1   real",  6, 0);  11.399726
508match ; n1 x n1 k1 Coulomb Hole     ; GREP(sigma_hp.log, "1   1   1   real", 10, 0);  -5.663441
509match ; n1 x n1 k1 Imag SX          ; GREP(sigma_hp.log, "1   1   1   imag",  6, 0);   6.998630
510match ; n1 x n1 k1 Imag CH          ; GREP(sigma_hp.log, "1   1   1   imag",  7, 0);  -6.056120
511# this is some other offdiagonal
512match ; n1 x n8 k1 Exchange         ; GREP(sigma_hp.log, "1   8   1   real",  5, 0);   0.000026
513match ; n1 x n8 k1 Screened Exchange; GREP(sigma_hp.log, "1   8   1   real",  6, 0);  0.002917
514match ; n1 x n8 k1 Coulomb Hole     ; GREP(sigma_hp.log, "1   8   1   real", 10, 0);  -0.001523
515match ; n1 x n8 k1 Imag SX          ; GREP(sigma_hp.log, "1   8   1   imag",  6, 0);   0.000000
516match ; n1 x n8 k1 Imag CH          ; GREP(sigma_hp.log, "1   8   1   imag",  7, 0);  -0.000653
517# this one is zero by symmetry
518Precision : 1e-6
519match ; n2 x n1 k1 Exchange         ; GREP(sigma_hp.log, "2   1   2   real",  5, 0);   0.000000
520match ; n2 x n1 k1 Screened Exchange; GREP(sigma_hp.log, "2   1   2   real",  6, 0);   0.000000
521match ; n2 x n1 k1 Imag SX          ; GREP(sigma_hp.log, "2   1   2   imag",  6, 0);   0.000000
522match ; n2 x n1 k1 Coulomb Hole     ; GREP(sigma_hp.log, "2   1   2   real", 10, 0);   0.000000
523match ; n2 x n1 k1 Imag CH          ; GREP(sigma_hp.log, "2   1   2   imag",  7, 0);   0.000000
524
525Command : mv sigma_hp.log sig_hp_ff.log
526
527Executable : epsilon.cplx.x
528Processors : 4
529Output : eps_ff_parallel_freq.out
530Input  : eps_ff_parallel_freq.inp epsilon.inp
531
532Precision : 5e-12
533match ; Re eps q1          ; GREP(eps_ff_parallel_freq.out, "q-pt      1: Head of Epsilon",          7, 0); 7.47530571237935
534Precision : 2e-13
535match ; Im eps q1          ; GREP(eps_ff_parallel_freq.out, "q-pt      1: Head of Epsilon",          8, 0); 0.0
536match ; Re epsinv q1       ; GREP(eps_ff_parallel_freq.out, "q-pt      1: Head of Epsilon Inverse",  8, 0); 0.143379135635558
537match ; Im epsinv q1       ; GREP(eps_ff_parallel_freq.out, "q-pt      1: Head of Epsilon Inverse",  9, 0); 0.0
538
539Precision : 1e-5
540match ; epsilon    Head 30.0 eV Re ; LINE(EpsDyn, 9, 2) ; 0.645807
541match ; epsilon    Head 30.0 eV Im ; LINE(EpsDyn, 9, 3) ; 0.134043
542match ; epsilonInv Head 30.0 eV Re ; LINE(EpsInvDyn, 21, 2) ; 1.393469
543match ; epsilonInv Head 30.0 eV Im ; LINE(EpsInvDyn, 21, 3) ; -0.360050
544
545Command : mv epsilon.log eps_ff_parallel_freq.log
546
547Executable : epsilon.cplx.x
548Processors : 4
549Output : eps_ff_elements.out
550Input  : eps_ff_elements.inp epsilon.inp
551
552Precision : 5e-12
553match ; Re eps q1          ; GREP(eps_ff_elements.out, "q-pt      1: Head of Epsilon",          7, 0); 7.47530571237935
554Precision : 2e-13
555match ; Im eps q1          ; GREP(eps_ff_elements.out, "q-pt      1: Head of Epsilon",          8, 0); 0.0
556match ; Re epsinv q1       ; GREP(eps_ff_elements.out, "q-pt      1: Head of Epsilon Inverse",  8, 0); 0.143379135635558
557match ; Im epsinv q1       ; GREP(eps_ff_elements.out, "q-pt      1: Head of Epsilon Inverse",  9, 0); 0.0
558
559Precision : 1e-5
560match ; epsilon    Head 30.0 eV Re ; LINE(EpsDyn, 9, 2) ; 0.645807
561match ; epsilon    Head 30.0 eV Im ; LINE(EpsDyn, 9, 3) ; 0.134043
562match ; epsilonInv Head 30.0 eV Re ; LINE(EpsInvDyn, 21, 2) ; 1.393469
563match ; epsilonInv Head 30.0 eV Im ; LINE(EpsInvDyn, 21, 3) ; -0.360050
564
565Command : mv epsilon.log eps_ff_elements.log
566
567Executable : epsilon.cplx.x
568Processors : 4
569Output : eps_ff_parallel_freq_elements.out
570Input  : eps_ff_parallel_freq_elements.inp epsilon.inp
571
572Precision : 5e-12
573match ; Re eps q1          ; GREP(eps_ff_parallel_freq_elements.out, "q-pt      1: Head of Epsilon",          7, 0); 7.47530571237935
574Precision : 2e-13
575match ; Im eps q1          ; GREP(eps_ff_parallel_freq_elements.out, "q-pt      1: Head of Epsilon",          8, 0); 0.0
576match ; Re epsinv q1       ; GREP(eps_ff_parallel_freq_elements.out, "q-pt      1: Head of Epsilon Inverse",  8, 0); 0.143379135635558
577match ; Im epsinv q1       ; GREP(eps_ff_parallel_freq_elements.out, "q-pt      1: Head of Epsilon Inverse",  9, 0); 0.0
578
579Precision : 1e-5
580match ; epsilon    Head 30.0 eV Re ; LINE(EpsDyn, 9, 2) ; 0.645807
581match ; epsilon    Head 30.0 eV Im ; LINE(EpsDyn, 9, 3) ; 0.134043
582match ; epsilonInv Head 30.0 eV Re ; LINE(EpsInvDyn, 21, 2) ; 1.393469
583match ; epsilonInv Head 30.0 eV Im ; LINE(EpsInvDyn, 21, 3) ; -0.360050
584
585Command : mv epsilon.log eps_ff_parallel_freq_elements.log
586
587Executable : epsilon.cplx.x
588Processors : 4
589Output : eps_ff1_elements.out
590Input  : eps_ff1_elements.inp epsilon.inp
591
592Precision : 5e-12
593match ; Re eps q1          ; GREP(eps_ff1_elements.out, "q-pt      1: Head of Epsilon",          7, 0); 7.40118943397643
594Precision : 2e-13
595match ; Im eps q1          ; GREP(eps_ff1_elements.out, "q-pt      1: Head of Epsilon",          8, 0); 0.0
596match ; Re epsinv q1       ; GREP(eps_ff1_elements.out, "q-pt      1: Head of Epsilon Inverse",  8, 0); 0.144811192937705
597match ; Im epsinv q1       ; GREP(eps_ff1_elements.out, "q-pt      1: Head of Epsilon Inverse",  9, 0); 0.0
598
599Precision : 1e-5
600match ; epsilon    Head 30.0 eV Re ; LINE(EpsDyn, 21, 2) ; 0.681210
601match ; epsilon    Head 30.0 eV Im ; LINE(EpsDyn, 21, 3) ; 0.155351
602match ; epsilonInv Head 30.0 eV Re ; LINE(EpsInvDyn, 9, 2) ; 1.480033
603match ; epsilonInv Head 30.0 eV Im ; LINE(EpsInvDyn, 9, 3) ; -0.357544
604
605Command : mv epsilon.log eps_ff1_elements.log
606Command : mv EpsDyn EpsDyn_ff1_elements
607Command : mv EpsInvDyn EpsInvDyn_ff1_elements
608
609###############################################################################
610Banner: Full Frequency: Contour Deformation (complex-spin)
611###############################################################################
612
613Executable : epsilon.cplx.x
614Processors : 4
615Output : eps_cd.out
616Input  : eps_cd.inp epsilon.inp
617
618Precision : 8e-12
619match ; Re eps q1          ; GREP(eps_cd.out, "q-pt      1: Head of Epsilon",          7, 0); 1.126674527407858E+001
620Precision : 1e-13
621match ; Im eps q1          ; GREP(eps_cd.out, "q-pt      1: Head of Epsilon",          8, 0); 0.0
622match ; Re epsinv q1       ; GREP(eps_cd.out, "q-pt      1: Head of Epsilon Inverse",  8, 0); 9.648428196707495E-002
623match ; Im epsinv q1       ; GREP(eps_cd.out, "q-pt      1: Head of Epsilon Inverse",  9, 0); 0.0
624Precision : 1e-5
625match ; epsilon    Head imag freq, Re ; LINE(EpsDyn, 11, 2) ; 1.109906E+00
626match ; epsilon    Head imag freq, Im ; LINE(EpsDyn, 11, 3) ; 0.0
627match ; epsilonInv Head imag freq, Re ; LINE(EpsInvDyn, 11, 2) ; 9.016851E-01
628match ; epsilonInv Head imag freq, Im ; LINE(EpsInvDyn, 11, 3) ; 0.0
629
630Command : mv epsilon.log eps_cd.log
631
632Executable : sigma.cplx.x
633Processors : 4
634Output : sig_cd.out
635Input  : sig_cd.inp sigma.inp
636
637Precision : 2e-5
638match ; n2, k1 Initial Eigenvalue   ; GREP(sigma_hp.log, "ik =   1",  2, 6);  10.035862
639match ; n2, k1 Exchange             ; GREP(sigma_hp.log, "ik =   1",  4, 6); -14.234668
640match ; n2, k1 Re Cor               ; GREP(sigma_hp.log, "ik =   1",  8, 6);   2.089547
641match ; n2, k1 Imag Cor             ; GREP(sigma_hp.log, "ik =   1",  4, 7);   0.000000
642match ; n2, k1 Eqp0                 ; GREP(sigma_hp.log, "ik =   1", 10, 6);  -2.109259
643
644# supposed to be equal to above due to degeneracy and band-averaging
645match ; n3, k1 Initial Eigenvalue   ; GREP(sigma_hp.log, "ik =   1",  2, 8);  10.035862
646match ; n3, k1 Exchange             ; GREP(sigma_hp.log, "ik =   1",  4, 8); -14.234668
647match ; n3, k1 Re Cor               ; GREP(sigma_hp.log, "ik =   1",  8, 8);   2.089547
648match ; n3, k1 Imag Cor             ; GREP(sigma_hp.log, "ik =   1",  4, 9);   0.0
649match ; n3, k1 Eqp0                 ; GREP(sigma_hp.log, "ik =   1", 10, 8);  -2.109259
650
651match ; n5, k1 Initial Eigenvalue   ; GREP(sigma_hp.log, "ik =   1",  2, 12);  13.331588
652match ; n5, k1 Exchange             ; GREP(sigma_hp.log, "ik =   1",  4, 12);  -4.938779
653match ; n5, k1 Re Cor               ; GREP(sigma_hp.log, "ik =   1",  8, 12);  -4.179383
654match ; n5, k1 Imag Cor             ; GREP(sigma_hp.log, "ik =   1",  4, 13);  -0.037363
655match ; n5, k1 Eqp0                 ; GREP(sigma_hp.log, "ik =   1", 10, 12);   4.213426
656
657# offdiagonals
658# this is a diagonal actually and must match exactly the unsymmetrized diagonal value
659match ; n1 x n8 k1 Exchange         ; GREP(sigma_hp.log, "1   1   1   real",  5, 0); -17.224976
660match ; n1 x n8 k1 Re Cor           ; GREP(sigma_hp.log, "1   1   1   real",  8, 0); -11.639131
661match ; n1 x n8 k1 Imag Cor         ; GREP(sigma_hp.log, "1   1   1   imag",  8, 0);   1.386347
662# this is some other offdiagonal
663match ; n1 x n8 k1 Exchange         ; GREP(sigma_hp.log, "1   8   1   real",  5, 0);   0.000026
664match ; n1 x n8 k1 Re Cor           ; GREP(sigma_hp.log, "1   8   1   real",  8, 0);  0.001612
665match ; n1 x n8 k1 Imag Cor         ; GREP(sigma_hp.log, "1   8   1   imag",  8, 0);  -0.000001
666# this one is zero by symmetry
667Precision : 1e-3
668match ; n2 x n1 k1 Re Cor           ; GREP(sigma_hp.log, "2   1   2   real",  8, 0);  0.0
669Precision : 1e-6
670match ; n2 x n1 k1 Imag Cor         ; GREP(sigma_hp.log, "2   1   2   imag",  8, 0);  0.0
671match ; n2 x n1 k1 Exchange         ; GREP(sigma_hp.log, "2   1   2   real",  5, 0);  0.0
672
673Command : mv sigma_hp.log sig_hp_cd.log
674
675Executable : epsilon.cplx.x
676Processors : 4
677Output : eps_cd_parallel_freq.out
678Input  : eps_cd_parallel_freq.inp epsilon.inp
679
680Precision : 8e-12
681match ; Re eps q1          ; GREP(eps_cd_parallel_freq.out, "q-pt      1: Head of Epsilon",          7, 0); 1.126674527407858E+001
682Precision : 1e-13
683match ; Im eps q1          ; GREP(eps_cd_parallel_freq.out, "q-pt      1: Head of Epsilon",          8, 0); 0.0
684match ; Re epsinv q1       ; GREP(eps_cd_parallel_freq.out, "q-pt      1: Head of Epsilon Inverse",  8, 0); 9.648428196707495E-002
685match ; Im epsinv q1       ; GREP(eps_cd_parallel_freq.out, "q-pt      1: Head of Epsilon Inverse",  9, 0); 0.0
686Precision : 1e-5
687match ; epsilon    Head imag freq, Re ; LINE(EpsDyn, 11, 2) ; 1.109906E+00
688match ; epsilon    Head imag freq, Im ; LINE(EpsDyn, 11, 3) ; 0.0
689match ; epsilonInv Head imag freq, Re ; LINE(EpsInvDyn, 11, 2) ; 9.016851E-01
690match ; epsilonInv Head imag freq, Im ; LINE(EpsInvDyn, 11, 3) ; 0.0
691
692Command : mv epsilon.log eps_cd_parallel_freq.log
693
694Executable : epsilon.cplx.x
695Processors : 4
696Output : eps_cd_elements.out
697Input  : eps_cd_elements.inp epsilon.inp
698
699Precision : 8e-12
700match ; Re eps q1          ; GREP(eps_cd_elements.out, "q-pt      1: Head of Epsilon",          7, 0); 1.126674527407858E+001
701Precision : 1e-13
702match ; Im eps q1          ; GREP(eps_cd_elements.out, "q-pt      1: Head of Epsilon",          8, 0); 0.0
703match ; Re epsinv q1       ; GREP(eps_cd_elements.out, "q-pt      1: Head of Epsilon Inverse",  8, 0); 9.648428196707493E-002
704match ; Im epsinv q1       ; GREP(eps_cd_elements.out, "q-pt      1: Head of Epsilon Inverse",  9, 0); 0.0
705
706Precision : 1e-5
707match ; epsilon    Head imag freq, Re ; LINE(EpsDyn, 11, 2) ; 1.109906E+00
708match ; epsilon    Head imag freq, Im ; LINE(EpsDyn, 11, 3) ; 0.0
709match ; epsilonInv Head imag freq, Re ; LINE(EpsInvDyn, 11, 2) ; 9.016851E-01
710match ; epsilonInv Head imag freq, Im ; LINE(EpsInvDyn, 11, 3) ; 0.0
711
712Command : mv epsilon.log eps_cd_elements.log
713
714Executable : epsilon.cplx.x
715Processors : 4
716Output : eps_cd_parallel_freq_elements.out
717Input  : eps_cd_parallel_freq_elements.inp epsilon.inp
718
719Precision : 8e-12
720match ; Re eps q1          ; GREP(eps_cd_parallel_freq_elements.out, "q-pt      1: Head of Epsilon",          7, 0); 1.126674527407858E+001
721Precision : 1e-13
722match ; Im eps q1          ; GREP(eps_cd_parallel_freq_elements.out, "q-pt      1: Head of Epsilon",          8, 0); 0.0
723match ; Re epsinv q1       ; GREP(eps_cd_parallel_freq_elements.out, "q-pt      1: Head of Epsilon Inverse",  8, 0); 9.648428196707493E-002
724match ; Im epsinv q1       ; GREP(eps_cd_parallel_freq_elements.out, "q-pt      1: Head of Epsilon Inverse",  9, 0); 0.0
725
726Precision : 1e-5
727match ; epsilon    Head imag freq, Re ; LINE(EpsDyn, 11, 2) ; 1.109906E+00
728match ; epsilon    Head imag freq, Im ; LINE(EpsDyn, 11, 3) ; 0.0
729match ; epsilonInv Head imag freq, Re ; LINE(EpsInvDyn, 11, 2) ; 9.016851E-01
730match ; epsilonInv Head imag freq, Im ; LINE(EpsInvDyn, 11, 3) ; 0.0
731
732Command : mv epsilon.log eps_cd_parallel_freq_elements.log
733