Merge lp:~albertog/siesta/4.1-scf-first into lp:~nickpapior/siesta/4.1-scf-first
- 4.1-scf-first
- Merge into 4.1-scf-first
Status: | Merged |
---|---|
Merged at revision: | 1086 |
Proposed branch: | lp:~albertog/siesta/4.1-scf-first |
Merge into: | lp:~nickpapior/siesta/4.1-scf-first |
Diff against target: |
43804 lines (+33872/-4830) 133 files modified
Docs/Contributors.txt (+1/-0) Docs/siesta.tex (+46/-15) Src/Makefile (+23/-15) Src/alloc.F90 (+10/-2) Src/atmfuncs.f (+48/-56) Src/bands.F (+41/-59) Src/compute_dm.F (+2/-2) Src/compute_energies.F90 (+18/-1) Src/delk.F90 (+1/-1) Src/dfscf.f (+1/-1) Src/dhscf.F (+6/-1) Src/diag2g.F (+18/-5) Src/diag2k.F (+66/-24) Src/diag3g.F (+21/-6) Src/diag3k.F (+61/-21) Src/diagg.F (+8/-6) Src/diagk.F (+5/-1) Src/diagon.F (+3/-3) Src/ioeig.f (+11/-5) Src/iosockets.F90 (+11/-1) Src/m_energies.F90 (+38/-8) Src/m_io_yaml.F90 (+0/-1) Src/m_mixing.F90 (+61/-29) Src/m_new_dm.F90 (+3/-3) Src/m_spin.F90 (+2/-0) Src/m_transiesta.F90 (+10/-9) Src/m_ts_options.F90 (+1/-1) Src/mixer.F (+25/-29) Src/print_spin.F90 (+64/-49) Src/read_options.F90 (+3/-3) Src/rhoofd.F90 (+1/-1) Src/rhoofdsp.f (+2/-1) Src/siesta_analysis.F (+100/-70) Src/siesta_dicts.F90 (+13/-2) Src/siesta_forces.F (+1/-2) Src/spher_harm.f (+25/-25) Src/ts_energies.F90 (+206/-0) Src/vmat.F90 (+1/-1) Src/vmatsp.f (+2/-1) Src/write_subs.F (+122/-34) Src/writewave.F (+116/-79) Tests/Pseudos/Bi.psf (+3061/-0) Tests/Pseudos/Se.psf (+2891/-0) Tests/Reference/bi2se3_3ql.out (+889/-0) Tests/bi2se3_3ql/bi2se3_3ql.fdf (+158/-0) Tests/bi2se3_3ql/bi2se3_3ql.pseudos (+1/-0) Tests/bi2se3_3ql/makefile (+6/-0) Tests/mix_broyden/mix_broyden.fdf (+2/-0) Util/COOP/Docs/UnitsAndMeaningOfCurves.txt (+55/-33) Util/COOP/Makefile (+40/-17) Util/COOP/README (+40/-0) Util/COOP/Tests/bi2se3_3ql/README (+24/-0) Util/COOP/Tests/bi2se3_3ql/spin_texture.dat.reference (+14150/-0) Util/COOP/Tests/ge_fatbands_so/README (+55/-0) Util/COOP/Tests/ge_fatbands_so/coo.gplot (+3/-0) Util/COOP/Tests/ge_fatbands_so/coo.mpr (+10/-0) Util/COOP/Tests/ge_fatbands_so/fatbands.mpr (+22/-0) Util/COOP/Tests/ge_fatbands_so/pdos.gplot (+3/-0) Util/COOP/Tests/ge_fatbands_so/pdos.mpr (+8/-0) Util/COOP/dm_creator.F90 (+77/-145) Util/COOP/fat.f90 (+46/-20) Util/COOP/io_hs.f90 (+2/-0) Util/COOP/main_vars.f90 (+4/-2) Util/COOP/mprop.f90 (+179/-107) Util/COOP/read_spin_texture.f90 (+103/-0) Util/COOP/spin_texture.f90 (+419/-0) Util/COOP/subs.f90 (+66/-5) Util/Denchar/Docs/README (+0/-3) Util/Denchar/Docs/denchar.tex (+16/-32) Util/Denchar/Src/Makefile (+31/-24) Util/Denchar/Src/README (+27/-1) Util/Denchar/Src/denchar.f (+90/-133) Util/Denchar/Src/itochar.f (+0/-54) Util/Denchar/Src/local_reinit.f (+6/-10) Util/Denchar/Src/readsts.f (+0/-174) Util/Denchar/Src/readwaves.f (+0/-163) Util/Denchar/Src/rhoofr.f (+134/-155) Util/Denchar/Src/stsofr.f (+0/-371) Util/Denchar/Src/wavofr.f (+452/-495) Util/Denchar/Src/wrout.f (+1/-30) Util/Eig2DOS/Eig2DOS.f90 (+37/-18) Util/Gen-basis/Makefile (+22/-14) Util/Grid/README (+3/-1) Util/Grid/g2c_ng.f (+13/-4) Util/Grid/m_gridfunc.F90 (+248/-10) Util/Grid/makefile (+8/-1) Util/Grid/v_info.f90 (+36/-0) Util/Grimme/Makefile (+24/-14) Util/Helpers/Makefile (+24/-14) Util/README (+5/-5) Util/STM/README.md (+80/-0) Util/STM/ol-stm/Docs/stm.tex (+165/-157) Util/STM/ol-stm/Examples/2d.gplot (+17/-0) Util/STM/ol-stm/Examples/Benzene/C.psf (+1525/-0) Util/STM/ol-stm/Examples/Benzene/H.psf (+1527/-0) Util/STM/ol-stm/Examples/Benzene/benzene-stm.STRUCT_IN (+16/-0) Util/STM/ol-stm/Examples/Benzene/benzene-stm.fdf (+54/-0) Util/STM/ol-stm/Examples/ML-Cr/AGCR.fdf (+111/-0) Util/STM/ol-stm/Examples/ML-Cr/Cr.psf (+2821/-0) Util/STM/ol-stm/Examples/ML-Cr/README (+7/-0) Util/STM/ol-stm/Examples/ML-Cr/q.inp (+6/-0) Util/STM/ol-stm/Examples/README (+10/-9) Util/STM/ol-stm/Examples/siesta.fdf (+0/-81) Util/STM/ol-stm/Examples/stm.fdf (+0/-32) Util/STM/ol-stm/Src/Makefile (+49/-29) Util/STM/ol-stm/Src/README (+27/-0) Util/STM/ol-stm/Src/atompla.f (+0/-122) Util/STM/ol-stm/Src/extrapolate.f (+32/-85) Util/STM/ol-stm/Src/length.f (+0/-21) Util/STM/ol-stm/Src/m_wfsx.f (+0/-159) Util/STM/ol-stm/Src/mainstm.F (+116/-152) Util/STM/ol-stm/Src/matvect.f (+0/-27) Util/STM/ol-stm/Src/readstm.f (+20/-24) Util/STM/ol-stm/Src/redata.f (+3/-4) Util/STM/ol-stm/Src/stm.f (+388/-463) Util/STM/ol-stm/Src/sts.f (+582/-0) Util/STM/ol-stm/Src/vacpot.f (+55/-110) Util/STM/simple-stm/Makefile (+15/-14) Util/STM/simple-stm/README.NXNY (+24/-0) Util/STM/simple-stm/options.f90 (+201/-0) Util/STM/simple-stm/plstm.f90 (+547/-401) Util/STM/simple-stm/plsts.f (+126/-0) Util/SpPivot/Makefile (+24/-14) Util/TS/TBtrans/Makefile (+24/-14) Util/TS/ts2ts/Makefile (+24/-14) Util/TS/tshs2tshs/Makefile (+24/-14) Util/VCA/Makefile (+24/-14) Util/WFS/README (+18/-0) Util/WFS/info_wfsx.f (+0/-81) Util/WFS/m_getopts.f90 (+202/-0) Util/WFS/makefile (+9/-6) Util/WFS/readwfx.f90 (+310/-154) version.info (+1/-1) |
To merge this branch: | bzr merge lp:~albertog/siesta/4.1-scf-first |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Nick Papior | Pending | ||
Review via email: mp+371434@code.launchpad.net |
Commit message
Description of the change
I have written a longer explanation in the manual. In particular, I explicitly mention that atomically filled DMs will be mixed by default, something that might be important in some cases.
Besides, this case highlights a contradiction: atomically filled DMs are not idempotent, and yet we happily mix them.
In fact, I believe that the idempotency issue is a red herring. Our DM is a decimated version of the true DM: we only keep those elements for which S (actually H) is not zero. This is fine to compute the charge density, and even to compute things like Tr(H*DM) and similar constructs. But since our DM is not the true DM, it is not idempotent. Moreover, even if DM_1 and DM_2 are idempotent, their mixing will not be. The really important thing is that the *output* DM is the one to be used to compute things like the kinetic energy, and the *input* DM is only an intermediate tool to compute the Hamiltonian.
I have avoided to open the can of worms of the heuristics when mixing the Hamiltonian. I believe that we should soon offer the possibility of reading H from file.
Alberto Garcia (albertog) wrote : | # |
Nick Papior (nickpapior) wrote : | # |
I think you made a branch of 4.1 (after 4.1-wfs merge), merged in 4.1-scf-first made changes and then committed. :(
I.e. it is difficult to merge in 4.1-scf-first since there are many unrelated changes.
Do you mind me updating 4.1-scf-first branch with what I think you changed in r1093?
Nick Papior (nickpapior) wrote : | # |
PS. I think your changes looks extremely appropriate and well thought! Thanks!
Nick Papior (nickpapior) wrote : | # |
Could you check r1086 on lp:~nickpapior/siesta/4.1-scf-first to see if all is good?
Alberto Garcia (albertog) wrote : | # |
Yes, that is correct!
----- El 19 de Ago de 2019, a las 10:19, Nick Rubner Papior <email address hidden> escribió:
| Could you check r1086 on lp:~nickpapior/siesta/4.1-scf-first to see if all is
| good?
| --
| https:/
| You are the owner of lp:~albertog/siesta/4.1-scf-first.
Preview Diff
1 | === modified file 'Docs/Contributors.txt' |
2 | --- Docs/Contributors.txt 2018-10-22 14:12:27 +0000 |
3 | +++ Docs/Contributors.txt 2019-08-18 23:02:58 +0000 |
4 | @@ -60,6 +60,7 @@ |
5 | Magnus Paulsson |
6 | Oscar Paz |
7 | Andrei Postnikov |
8 | +Roberto Robles |
9 | Tristana Sondon |
10 | Andrew Walker |
11 | Andrew Walkingshaw |
12 | |
13 | === modified file 'Docs/siesta.tex' |
14 | --- Docs/siesta.tex 2019-08-16 10:13:21 +0000 |
15 | +++ Docs/siesta.tex 2019-08-18 23:02:58 +0000 |
16 | @@ -277,6 +277,7 @@ |
17 | Magnus Paulsson, |
18 | Oscar Paz, |
19 | Andrei Postnikov, |
20 | +Roberto Robles, |
21 | Tristana Sondon, |
22 | Andrew Walker, |
23 | Andrew Walkingshaw, |
24 | @@ -4103,23 +4104,41 @@ |
25 | \fdfindex*{DM.MixSCF1}[|see SCF.Mix.First] |
26 | \fdfdepend{SCF.Mix!First.Force}% |
27 | |
28 | - Whether the first SCF should be mixed or it uses the output as input |
29 | - in the next SCF step. It is generally advised to set this to true, |
30 | - at least when restarting calculations. |
31 | - |
32 | - The general logic of mixing on the first method is determined by the |
33 | - read matrices. If the sparsity pattern has changed between the read |
34 | - matrix and the current matrix \siesta\ will default to \emph{not} |
35 | - mix in the first step, regardless of this flag. To ensure mixing is |
36 | - done in the first step \fdf{SCF.Mix!First.Force} should be set to |
37 | - \fdftrue. |
38 | + This flag is used to decide whether mixing (of the DM or H) should |
39 | + be done in the first SCF step. If mixing is not performed the output |
40 | + DM or H generated in the first SCF step is used as input in the next |
41 | + SCF step. When mixing the DM, this ``reset'' has the effect of |
42 | + avoiding potentially undesirable memory effects: for example, a DM |
43 | + read from file which corresponds to a different structure might not |
44 | + satisfy the correct symmetry, and mixing will not fix it. On the |
45 | + other hand, when reusing a DM for a restart of an interrupted |
46 | + calculation, a full reset might not be advised. |
47 | + |
48 | + The value of this flag is one of the ingredients used by \siesta\ to |
49 | + decide what to do. If \fdftrue (the default), mixing will be |
50 | + performed in all cases, except when a DM has been read from file and |
51 | + the sparsity pattern of the DM on file is different from the current |
52 | + one. To ensure that a first-step mixing is done even in this case, |
53 | + \fdf{SCF.Mix!First.Force} should be set to \fdftrue. |
54 | + |
55 | + If the flag is \fdffalse, no mixing in the first step will be |
56 | + performed, except if overridden by \fdf{SCF.Mix!First.Force}. |
57 | |
58 | + Note that the default value for this flag has changed from the old |
59 | + (pre-version 4) setting in \siesta\. The new setting is most |
60 | + appropriate for the case of restarting calculations. On the other |
61 | + hand, it means that mixing in the first scf step will also be |
62 | + performed for the standard case in which the initial DM is built as |
63 | + a (diagonal) superposition of atomic orbital occupation values. In |
64 | + some cases (e.g. spin-orbit calculations) better results might be |
65 | + obtained by avoiding this mixing. |
66 | + |
67 | \end{fdflogicalT} |
68 | |
69 | \begin{fdflogicalF}{SCF.Mix!First.Force} |
70 | |
71 | - Force the mixing of the first step, regardless of what \siesta\ may |
72 | - heuristically decide. |
73 | + Force the mixing (of DM or H) in the first SCF step, regardless of |
74 | + what \siesta\ may heuristically decide. |
75 | |
76 | This overrules \fdf{SCF.Mix!First}. |
77 | |
78 | @@ -10915,6 +10934,12 @@ |
79 | in a \tbtrans\ calculation to achieve a converged transmission |
80 | function. |
81 | |
82 | + \item% |
83 | + Energies from \tsiesta\ are \emph{not} to be trusted since the open |
84 | + boundaries complicates the energy calculation. Therefore you cannot |
85 | + compare energies between different calculations and/or different |
86 | + bias'. |
87 | + |
88 | \end{itemize} |
89 | |
90 | \subsection{Electrodes} |
91 | @@ -12137,12 +12162,18 @@ |
92 | |
93 | \end{fdfentry} |
94 | |
95 | -\begin{fdfentry}{TS!Elecs!DM.Init}[string]<diagon|bulk> |
96 | +\begin{fdfentry}{TS!Elecs!DM.Init}[string]<bulk|diagon> |
97 | |
98 | The density matrix elements in the electrodes may be forcefully set |
99 | to the bulk values by reading in the DM of the corresponding |
100 | - electrode. This may be set to \fdf*{bulk} to forcefully set the bulk |
101 | - values. |
102 | + electrode. This is by default \fdf*{bulk} for non-bias calculation, |
103 | + and otherwise defaults to \fdf*{diagon}. |
104 | + |
105 | + This step is only required once since the DM will be constant in the |
106 | + electrode regions and thus it will be propagated through the |
107 | + \sysfile{TSDE} files without having to re-do this step. |
108 | + If this is done (by default) in the 0 bias calculation it will also |
109 | + be effective in the bias calculation. |
110 | |
111 | \note this will automatically be set to \fdf*{diagon} for |
112 | non-equilibrium calculations. If bulk density matrix elements are |
113 | |
114 | === modified file 'Src/Makefile' |
115 | --- Src/Makefile 2019-05-21 09:18:42 +0000 |
116 | +++ Src/Makefile 2019-08-18 23:02:58 +0000 |
117 | @@ -434,7 +434,8 @@ |
118 | m_ts_cctype.o ts_init.o ts_show_regions.o m_ts_electype.o \ |
119 | m_ts_method.o m_ts_elec_se.o \ |
120 | m_ts_debug.o m_ts_tdir.o \ |
121 | - m_ts_chem_pot.o m_transiesta.o m_ts_hartree.o m_ts_voltage.o |
122 | + m_ts_chem_pot.o m_transiesta.o m_ts_hartree.o m_ts_voltage.o \ |
123 | + ts_energies.o |
124 | |
125 | # contour objects |
126 | TS_OBJS += m_ts_contour_eq.o m_ts_contour_neq.o m_ts_io_ctype.o \ |
127 | @@ -647,8 +648,9 @@ |
128 | compute_ebs_shift.o: m_mpi_utils.o parallel.o precision.o |
129 | compute_energies.o: atomlist.o class_SpData1D.o class_SpData2D.o dhscf.o |
130 | compute_energies.o: files.o m_dipol.o m_energies.o m_mpi_utils.o m_ntm.o |
131 | -compute_energies.o: m_rhog.o m_spin.o precision.o siesta_geom.o |
132 | -compute_energies.o: siesta_options.o sparse_matrices.o |
133 | +compute_energies.o: m_rhog.o m_spin.o m_ts_global_vars.o precision.o |
134 | +compute_energies.o: siesta_geom.o siesta_options.o sparse_matrices.o |
135 | +compute_energies.o: ts_energies.o |
136 | compute_max_diff.o: m_mpi_utils.o precision.o |
137 | compute_norm.o: m_mpi_utils.o m_spin.o precision.o sparse_matrices.o |
138 | compute_pw_matrix.o: alloc.o m_planewavematrix.o m_planewavematrixvar.o |
139 | @@ -683,11 +685,11 @@ |
140 | dhscf.o: vmat.o |
141 | diag.o: alloc.o diag_option.o parallel.o precision.o sys.o |
142 | diag2g.o: fermid.o intrinsic_missing.o parallel.o parallelsubs.o precision.o |
143 | -diag2g.o: sys.o |
144 | -diag2k.o: fermid.o parallel.o parallelsubs.o precision.o sys.o |
145 | +diag2g.o: sys.o writewave.o |
146 | +diag2k.o: fermid.o parallel.o parallelsubs.o precision.o sys.o writewave.o |
147 | diag3g.o: fermid.o intrinsic_missing.o parallel.o parallelsubs.o precision.o |
148 | -diag3g.o: sys.o |
149 | -diag3k.o: fermid.o parallel.o parallelsubs.o precision.o sys.o |
150 | +diag3g.o: sys.o writewave.o |
151 | +diag3k.o: fermid.o parallel.o parallelsubs.o precision.o sys.o writewave.o |
152 | diag_option.o: parallel.o precision.o |
153 | diagg.o: alloc.o fermid.o intrinsic_missing.o m_spin.o parallel.o |
154 | diagg.o: parallelsubs.o precision.o sys.o writewave.o |
155 | @@ -822,7 +824,7 @@ |
156 | m_dscfcomm.o: alloc.o parallel.o parallelsubs.o precision.o schecomm.o |
157 | m_efield.o: atmfuncs.o m_cite.o m_ts_global_vars.o mesh.o parallel.o |
158 | m_efield.o: precision.o siesta_cml.o siesta_geom.o sys.o units.o |
159 | -m_energies.o: precision.o |
160 | +m_energies.o: m_ts_global_vars.o precision.o |
161 | m_eo.o: precision.o |
162 | m_exp_coord.o: files.o m_os.o parallel.o precision.o units.o |
163 | m_filter.o: bessph.o precision.o radfft.o sys.o |
164 | @@ -935,12 +937,13 @@ |
165 | m_test_io.o: precision.o |
166 | m_timer.o: m_io.o m_walltime.o moreParallelSubs.o parallel.o precision.o sys.o |
167 | m_transiesta.o: alloc.o class_OrbitalDistribution.o class_SpData1D.o |
168 | -m_transiesta.o: class_SpData2D.o class_Sparsity.o files.o m_interpolate.o |
169 | -m_transiesta.o: m_ts_charge.o m_ts_contour_eq.o m_ts_contour_neq.o |
170 | -m_transiesta.o: m_ts_electype.o m_ts_fullg.o m_ts_fullk.o m_ts_gf.o |
171 | -m_transiesta.o: m_ts_kpoints.o m_ts_method.o m_ts_mumpsg.o m_ts_mumpsk.o |
172 | -m_transiesta.o: m_ts_options.o m_ts_sparse.o m_ts_tri_common.o m_ts_tri_init.o |
173 | -m_transiesta.o: m_ts_trig.o m_ts_trik.o parallel.o precision.o units.o |
174 | +m_transiesta.o: class_SpData2D.o class_Sparsity.o files.o m_energies.o |
175 | +m_transiesta.o: m_interpolate.o m_ts_charge.o m_ts_contour_eq.o |
176 | +m_transiesta.o: m_ts_contour_neq.o m_ts_electype.o m_ts_fullg.o m_ts_fullk.o |
177 | +m_transiesta.o: m_ts_gf.o m_ts_kpoints.o m_ts_method.o m_ts_mumpsg.o |
178 | +m_transiesta.o: m_ts_mumpsk.o m_ts_options.o m_ts_sparse.o m_ts_tri_common.o |
179 | +m_transiesta.o: m_ts_tri_init.o m_ts_trig.o m_ts_trik.o parallel.o precision.o |
180 | +m_transiesta.o: units.o |
181 | m_trialorbitalclass.o: precision.o units.o |
182 | m_trimat_invert.o: class_TriMat.o intrinsic_missing.o m_pivot_array.o |
183 | m_trimat_invert.o: precision.o |
184 | @@ -1321,6 +1324,10 @@ |
185 | timer.o: timer_tree.o |
186 | timer_tree.o: m_walltime.o |
187 | transition_rate.o: alloc.o fermid.o parallel.o parallelsubs.o precision.o sys.o |
188 | +ts_energies.o: class_OrbitalDistribution.o class_SpData1D.o class_SpData2D.o |
189 | +ts_energies.o: class_Sparsity.o geom_helper.o m_energies.o m_spin.o |
190 | +ts_energies.o: m_ts_electype.o m_ts_method.o m_ts_options.o parallel.o |
191 | +ts_energies.o: precision.o sparse_matrices.o |
192 | ts_init.o: m_fixed.o m_os.o m_ts_cctype.o m_ts_charge.o m_ts_electrode.o |
193 | ts_init.o: m_ts_electype.o m_ts_gf.o m_ts_global_vars.o m_ts_kpoints.o |
194 | ts_init.o: m_ts_method.o m_ts_options.o parallel.o siesta_options.o |
195 | @@ -1346,7 +1353,7 @@ |
196 | write_subs.o: m_steps.o m_stress.o m_ts_global_vars.o parallel.o precision.o |
197 | write_subs.o: siesta_cml.o siesta_geom.o siesta_options.o units.o zmatrix.o |
198 | writewave.o: alloc.o atmfuncs.o atomlist.o densematrix.o diag.o diag_option.o |
199 | -writewave.o: get_kpoints_scale.o kpoint_grid.o m_spin.o parallel.o |
200 | +writewave.o: get_kpoints_scale.o kpoint_grid.o m_spin.o m_spin.o parallel.o |
201 | writewave.o: parallelsubs.o precision.o siesta_geom.o sys.o units.o |
202 | xml.o: precision.o |
203 | zm_broyden_optim.o: m_broyddj_nocomm.o parallel.o precision.o sys.o units.o |
204 | @@ -1506,6 +1513,7 @@ |
205 | t_spin.o: m_spin.o |
206 | timer_options.o: timer.o |
207 | trialorbitalclass.o: m_trialorbitalclass.o |
208 | +ts_energies_m.o: ts_energies.o |
209 | version_info.o: version.o |
210 | write_subs_energies.o: write_subs.o |
211 | write_subs_positions.o: write_subs.o |
212 | |
213 | === modified file 'Src/alloc.F90' |
214 | --- Src/alloc.F90 2017-10-10 19:27:53 +0000 |
215 | +++ Src/alloc.F90 2019-08-18 23:02:58 +0000 |
216 | @@ -45,7 +45,7 @@ |
217 | ! Notice that, if the restore call is skipped, the new defaults will |
218 | ! stay in effect until a new call to alloc_dafault is made. |
219 | ! ================================================================== |
220 | -! SUBROUTINE alloc_report( level, unit, file, printNow, threshold ) |
221 | +! SUBROUTINE alloc_report( level, unit, file, printNow, threshold, shutdown ) |
222 | ! Sets the output file for the allocation report |
223 | ! INPUT (optional): |
224 | ! integer :: level : Level (detail) of report |
225 | @@ -53,7 +53,8 @@ |
226 | ! character*(*):: file : Output file name |
227 | ! logical :: printNow : If present & true => print report now |
228 | ! real(dp) :: threshold : Memory threshold (in bytes) to print |
229 | -! the memory use of any given array |
230 | +! the memory use of any given array |
231 | +! logical :: shutdown : If present & true then close output unit. |
232 | ! BEHAVIOR: |
233 | ! The detail/extent of the report increses with the value of level: |
234 | ! level=0 : no report at all (the default) |
235 | @@ -73,6 +74,13 @@ |
236 | ! reports are written consecutively in the same file, each with a |
237 | ! time stamp header. |
238 | ! If threshold is not present, threshold=0 is assumed. |
239 | +! When performing library invocations of this module in say |
240 | +! external methods it is vital to close units before exiting the |
241 | +! library to ensure that no dangling files are kept open. |
242 | +! To ensure the file is closed before return one can use |
243 | +! the shutdown=.true. argument to forcefully close (and free) |
244 | +! the unit used to report. If not present or .false. the unit |
245 | +! will be kept open. |
246 | ! In parallel execution, the report sections that involve every |
247 | ! reallocation (levels 1, 3, and 4) are written only by node 0. |
248 | ! The section that is written upon request (level 2) is written |
249 | |
250 | === modified file 'Src/atmfuncs.f' |
251 | --- Src/atmfuncs.f 2016-04-29 07:31:13 +0000 |
252 | +++ Src/atmfuncs.f 2019-08-18 23:02:58 +0000 |
253 | @@ -23,11 +23,6 @@ |
254 | |
255 | implicit none |
256 | ! |
257 | - type(species_info), pointer :: spp |
258 | - type(rad_func), pointer :: op |
259 | - type(rad_func), pointer :: pp |
260 | - type(rad_func), pointer :: func |
261 | -! |
262 | character(len=79) message |
263 | integer, parameter :: max_l = 5 |
264 | integer, parameter :: max_ilm = (max_l+1)*(max_l+1) |
265 | @@ -47,10 +42,8 @@ |
266 | |
267 | public :: orb_gindex, kbproj_gindex, vna_gindex, ldau_gindex |
268 | private |
269 | - ! |
270 | + |
271 | contains |
272 | -! |
273 | -! |
274 | |
275 | subroutine chk(name,is) |
276 | character(len=*), intent(in) :: name |
277 | @@ -290,9 +283,10 @@ |
278 | C IO = 0 => Local pseudopotential |
279 | C************************OUTPUT***************************************** |
280 | C INTEGER LOFIO : Quantum number L of orbital or KB projector |
281 | + type(species_info), pointer :: spp |
282 | |
283 | call chk('lofio',is) |
284 | - |
285 | + |
286 | spp => species(is) |
287 | if (io.gt.0) then |
288 | if (io.gt.spp%norbs) call die("lofio: No such orbital") |
289 | @@ -320,6 +314,7 @@ |
290 | C IO = 0 => Local pseudopotential |
291 | C************************OUTPUT***************************************** |
292 | C INTEGER MOFIO : Quantum number m of orbital or KB projector |
293 | + type(species_info), pointer :: spp |
294 | |
295 | call chk('mofio',is) |
296 | |
297 | @@ -348,6 +343,7 @@ |
298 | C IO > 0 => Basis orbitals |
299 | C************************OUTPUT***************************************** |
300 | C INTEGER ZETAFIO : Zeta number of orbital |
301 | + type(species_info), pointer :: spp |
302 | |
303 | call chk('mofio',is) |
304 | |
305 | @@ -372,6 +368,7 @@ |
306 | C Returns cutoff radius of Kleynman-Bylander projectors and |
307 | C atomic basis orbitals. |
308 | C Distances in Bohr |
309 | + type(species_info), pointer :: spp |
310 | |
311 | call chk('rcut',is) |
312 | |
313 | @@ -379,12 +376,10 @@ |
314 | if (io.gt.0) then |
315 | if (io.gt.spp%norbs) call die("rcut: No such orbital") |
316 | |
317 | - op => spp%orbnl(spp%orb_index(io)) |
318 | - rcut = op%cutoff |
319 | + rcut = spp%orbnl(spp%orb_index(io))%cutoff |
320 | else if (io.lt.0) then |
321 | if (-io.gt.spp%nprojs) call die("rcut: No such projector") |
322 | - pp => spp%pjnl(spp%pj_index(-io)) |
323 | - rcut = pp%cutoff |
324 | + rcut = spp%pjnl(spp%pj_index(-io))%cutoff |
325 | else |
326 | rcut = spp%vna%cutoff |
327 | endif |
328 | @@ -424,6 +419,7 @@ |
329 | data (sym_label(i),i=17,25) |
330 | . / 'gxy(x2-y2)', 'gzy(3x2-y2)', 'gz2xy', 'gz3y', 'gz4', |
331 | . 'gz3x', 'gz2(x2-y2)', 'gzx(x2-3y2)', 'gx4+y4' / |
332 | + type(species_info), pointer :: spp |
333 | |
334 | call chk('rcut',is) |
335 | |
336 | @@ -461,12 +457,12 @@ |
337 | ! io>0 => basis orbitals |
338 | |
339 | C If true, the orbital IO is a perturbative polarization orbital |
340 | + type(species_info), pointer :: spp |
341 | |
342 | spp => species(is) |
343 | if ( (io .gt. species(is)%norbs) .or. |
344 | $ (io .le. 0)) call die("pol: Wrong io") |
345 | |
346 | - spp => species(is) |
347 | pol = spp%orbnl_ispol(spp%orb_index(io)) |
348 | |
349 | end function pol |
350 | @@ -483,6 +479,7 @@ |
351 | C Sum_lm( epsKB_l * <Psi|Phi_lm> * <Phi_lm|Psi'> ) |
352 | C where Phi_lm is returned by subroutine PHIATM. |
353 | C Energy in Rydbergs. |
354 | + type(species_info), pointer :: spp |
355 | |
356 | integer ik |
357 | |
358 | @@ -504,13 +501,14 @@ |
359 | C Returns local part of neutral-atom Kleynman-Bylander pseudopotential. |
360 | C Distances in Bohr, Energies in Rydbergs |
361 | C 2) Returns exactly zero when |R| > RCUT(IS,0) |
362 | + type(rad_func), pointer :: func |
363 | |
364 | real(dp) rmod, dvdr |
365 | |
366 | call chk('vna_sub',is) |
367 | |
368 | - v=0.0_dp |
369 | - grv(1:3)=0.0_dp |
370 | + v = 0.0_dp |
371 | + grv(1:3) = 0.0_dp |
372 | |
373 | if (floating(is)) return |
374 | |
375 | @@ -520,7 +518,7 @@ |
376 | if (rmod .gt. func%cutoff) return |
377 | |
378 | call rad_get(func,rmod,v,dvdr) |
379 | - rmod=rmod+tiny20 |
380 | + rmod = rmod + tiny20 |
381 | grv(1:3) = dvdr * r(1:3)/rmod |
382 | |
383 | end subroutine vna_sub |
384 | @@ -535,13 +533,14 @@ |
385 | C Distances in Bohr, Energies in Rydbergs |
386 | C Density in electrons/Bohr**3 |
387 | C 2) Returns exactly zero when |R| > Rchloc |
388 | + type(rad_func), pointer :: func |
389 | |
390 | real(dp) :: rmod, dchdr |
391 | |
392 | call chk('psch',is) |
393 | |
394 | - ch=0.0_dp |
395 | - grch(1:3)=0.0_dp |
396 | + ch = 0.0_dp |
397 | + grch(1:3) = 0.0_dp |
398 | |
399 | if (floating(is)) return |
400 | |
401 | @@ -550,7 +549,7 @@ |
402 | if (rmod .gt. func%cutoff) return |
403 | |
404 | call rad_get(func,rmod,ch,dchdr) |
405 | - rmod=rmod+tiny20 |
406 | + rmod = rmod + tiny20 |
407 | grch(1:3) = dchdr * r(1:3)/rmod |
408 | |
409 | end subroutine psch |
410 | @@ -565,19 +564,20 @@ |
411 | C in the xc potential. |
412 | C Distances in Bohr, Energies in Rydbergs, Density in electrons/Bohr**3 |
413 | C 2) Returns exactly zero when |R| > Rcore |
414 | + type(rad_func), pointer :: func |
415 | |
416 | real(dp) rmod, dchdr |
417 | |
418 | call chk('chcore_sub',is) |
419 | |
420 | - ch=0.0_dp |
421 | - grch(1:3)=0.0_dp |
422 | + ch = 0.0_dp |
423 | + grch(1:3) = 0.0_dp |
424 | |
425 | if (floating(is)) return |
426 | |
427 | func => species(is)%core |
428 | rmod = sqrt(sum(r*r)) |
429 | - rmod=rmod+tiny20 ! Moved here. JMS, Dec.2012 |
430 | + rmod = rmod + tiny20 ! Moved here. JMS, Dec.2012 |
431 | if (rmod .gt. func%cutoff) return |
432 | |
433 | call rad_get(func,rmod,ch,dchdr) |
434 | @@ -611,6 +611,8 @@ |
435 | C 5) Prints a message and stops when no data exits for IS and/or IO |
436 | C 6) Returns exactly zero when |R| > RCUT(IS,IO) |
437 | C 7) PHIATM with IO = 0 is strictly equivalent to VNA_SUB |
438 | + type(species_info), pointer :: spp |
439 | + type(rad_func), pointer :: func |
440 | |
441 | real(dp) rmod, phir, dphidr |
442 | real(dp) rly(max_ilm), grly(3,max_ilm) |
443 | @@ -652,6 +654,7 @@ |
444 | ilm = l*l + l + m + 1 |
445 | call rlylm( l, r, rly, grly ) |
446 | phi = phir * rly(ilm) |
447 | +!GCC$ unroll 3 |
448 | do i = 1,3 |
449 | grphi(i)=dphidr*rly(ilm)*r(i)/rmod+phir*grly(i,ilm) |
450 | enddo |
451 | @@ -687,6 +690,8 @@ |
452 | C where epsKB_l is returned by function EPSKB |
453 | C 6) Returns exactly zero when |R| > RCUT(IS,IO) |
454 | C 7) RPHIATM with ITYPE = 0 is strictly equivalent to VNA_SUB |
455 | + type(species_info), pointer :: spp |
456 | + type(rad_func), pointer :: func |
457 | |
458 | real(dp) rmod, phir |
459 | integer l, m, ik |
460 | @@ -734,16 +739,17 @@ |
461 | end subroutine rphiatm |
462 | |
463 | |
464 | - subroutine all_phi( is, it, r, nphi, phi, grphi ) |
465 | + subroutine all_phi( is, it, r, maxnphi, nphi, phi, grphi ) |
466 | integer, intent(in) :: is ! Species index |
467 | integer, intent(in) :: it ! Orbital-type switch: |
468 | ! IT > 0 => Basis orbitals |
469 | ! IT < 0 => KB projectors |
470 | real(dp), intent(in) :: r(3) ! Point vector, relative to atom |
471 | + integer, intent(in) :: maxnphi ! Maximum number of phi's |
472 | integer, intent(out) :: nphi ! Number of phi's |
473 | - real(dp), intent(out) :: phi(:) ! Basis orbital, KB projector, or |
474 | + real(dp), intent(out) :: phi(maxnphi) ! Basis orbital, KB projector, or |
475 | ! local pseudopotential |
476 | - real(dp), optional, intent(out) :: grphi(:,:) ! Gradient of phi |
477 | + real(dp), optional, intent(out) :: grphi(3,maxnphi) ! Gradient of phi |
478 | |
479 | C Returns Kleynman-Bylander local pseudopotential, nonlocal projectors, |
480 | C and atomic basis orbitals (and their gradients). |
481 | @@ -763,16 +769,15 @@ |
482 | C 6) Returns exactly zero when |R| > RCUT(IS,IO) |
483 | C 8) If arrays phi or grphi are too small, returns with the required |
484 | C value of nphi |
485 | + type(species_info), pointer :: spp |
486 | |
487 | - integer i, jlm, l, lmax, m, maxlm, n |
488 | + integer i, jlm, l, lmax, m, maxlm |
489 | double precision rmod, phir, dphidr |
490 | real(dp) rly(max_ilm), grly(3,max_ilm) |
491 | |
492 | - integer, parameter :: maxphi=100 |
493 | - |
494 | - integer :: ilm(maxphi) |
495 | - double precision :: rmax(maxphi) |
496 | - logical :: within(maxphi) |
497 | + integer :: ilm(maxnphi) |
498 | + double precision :: rmax(maxnphi) |
499 | + logical :: within(maxnphi) |
500 | |
501 | call chk('all_phi',is) |
502 | spp => species(is) |
503 | @@ -786,37 +791,24 @@ |
504 | call die("all_phi: Please use phiatm to get Vna...") |
505 | endif |
506 | |
507 | - if (nphi.gt.maxphi) call die('all_phi: maxphi too small') |
508 | + if (nphi.gt.maxnphi) call die('all_phi: maxphi too small') |
509 | |
510 | if (it.gt.0) then |
511 | do i = 1, nphi |
512 | l = spp%orb_l(i) |
513 | m = spp%orb_m(i) |
514 | ilm(i) = l*(l+1)+m+1 |
515 | - op => spp%orbnl(spp%orb_index(i)) |
516 | - rmax(i) = op%cutoff |
517 | + rmax(i) = spp%orbnl(spp%orb_index(i))%cutoff |
518 | enddo |
519 | else |
520 | do i = 1, nphi |
521 | - pp => spp%pjnl(spp%pj_index(i)) |
522 | - rmax(i) = pp%cutoff |
523 | + rmax(i) = spp%pjnl(spp%pj_index(i))%cutoff |
524 | l = spp%pj_l(i) |
525 | m = spp%pj_m(i) |
526 | ilm(i) = l*(l+1)+m+1 |
527 | enddo |
528 | endif |
529 | |
530 | -! Check size of output arrays |
531 | - if (present(grphi)) then |
532 | - if (size(grphi,1).ne.3) |
533 | - . call die('all_phi: incorrect first dimension of grphi') |
534 | - n = min( size(phi), size(grphi,2) ) |
535 | - else |
536 | - n = size(phi) |
537 | - endif |
538 | -! Return if the caller did not provide arrays large enough... |
539 | - if (n.lt.nphi) return |
540 | - |
541 | ! Initialize orbital values |
542 | phi(1:nphi) = 0._dp |
543 | if (present(grphi)) grphi(:,1:nphi) = 0._dp |
544 | @@ -841,14 +833,11 @@ |
545 | if (.not.within(i)) cycle i_loop |
546 | |
547 | ! Find radial part |
548 | - |
549 | if (it.gt.0) then |
550 | - func => spp%orbnl(spp%orb_index(i)) |
551 | - else |
552 | - func => spp%pjnl(spp%pj_index(i)) |
553 | - endif |
554 | - |
555 | - call rad_get(func,rmod,phir,dphidr) |
556 | + call rad_get(spp%orbnl(spp%orb_index(i)),rmod,phir,dphidr) |
557 | + else |
558 | + call rad_get(spp%pjnl(spp%pj_index(i)),rmod,phir,dphidr) |
559 | + end if |
560 | |
561 | ! Multiply radial and angular parts |
562 | jlm = ilm(i) |
563 | @@ -875,6 +864,7 @@ |
564 | C due to the overlap of the two 'local pseudopotential charge densities' |
565 | C Distances in Bohr, Energies in Rydbergs |
566 | C 2) Returns exactly zero when |R| > Rchloc |
567 | + type(rad_func), pointer :: func |
568 | |
569 | integer ismx, ismn, indx |
570 | real(dp) r_local |
571 | @@ -910,6 +900,7 @@ |
572 | integer, intent(in) :: l ! Angular momentum of the basis funcs |
573 | C Returns the number of different basis functions |
574 | C with the same angular momentum and for a given species |
575 | + type(species_info), pointer :: spp |
576 | |
577 | integer i |
578 | |
579 | @@ -930,7 +921,8 @@ |
580 | |
581 | C Returns the number of different KB projectors |
582 | C with the same angular momentum and for a given species |
583 | - |
584 | + type(species_info), pointer :: spp |
585 | + |
586 | integer i |
587 | |
588 | call chk('nkbl_func',is) |
589 | |
590 | === modified file 'Src/bands.F' |
591 | --- Src/bands.F 2018-10-17 13:04:40 +0000 |
592 | +++ Src/bands.F 2019-08-18 23:02:58 +0000 |
593 | @@ -296,7 +296,8 @@ |
594 | end subroutine initbands |
595 | |
596 | |
597 | - subroutine bands( no_s, nspin, maxspn, no_u, no_l, maxnh, maxk, |
598 | + subroutine bands( no_s, spin, |
599 | + . no_u, no_l,maxnh, maxk, |
600 | . numh, listhptr, listh, H, S, ef, xij, indxuo, |
601 | . writeb, nk, kpoint, ek, occtol, getPSI ) |
602 | |
603 | @@ -305,40 +306,39 @@ |
604 | C Written by J.Soler, August 1997 and August 1998. |
605 | C Initialisation moved into a separate routine, JDG Jan 2000. |
606 | C WFS options by A. Garcia, April 2012 |
607 | +C Cleaned for tSpin by N. Papior, August 2019 |
608 | |
609 | C **************************** INPUT ********************************** |
610 | C integer no_s : Number of basis orbitals in supercell |
611 | -C integer nspin : Number of spin components |
612 | -C integer maxspn : Maximum number of spin components |
613 | -C nspin /= maxspn for spin-orbit |
614 | +C type(tSpin) spin : Containing all spin-information |
615 | C integer maxnh : Maximum number of orbitals interacting |
616 | C with any orbital |
617 | C integer maxk : Last dimension of kpoint and ek |
618 | -C integer numh(no_l) : Number of nonzero elements of each row |
619 | +C integer numh(no_l) : Number of nonzero elements of each row |
620 | C of hamiltonian matrix |
621 | -C integer listhptr(no_l) : Pointer to start of each row of the |
622 | +C integer listhptr(no_l) : Pointer to start of each row of the |
623 | C hamiltonian matrix |
624 | C integer listh(maxlh) : Nonzero hamiltonian-matrix element |
625 | C column indexes for each matrix row |
626 | -C real*8 H(maxnh,nspin) : Hamiltonian in sparse form |
627 | +C real*8 H(maxnh,spin%H) : Hamiltonian in sparse form |
628 | C real*8 S(maxnh) : Overlap in sparse form |
629 | C real*8 ef : Fermi energy |
630 | C real*8 xij(3,maxnh) : Vectors between orbital centers (sparse) |
631 | C (not used if only gamma point) |
632 | C integer no_u : First dimension of ek |
633 | -C integer no_l : Second dimension of H and S |
634 | -C integer indxuo(no_s) : Index of equivalent orbital in unit cell |
635 | +C integer no_l : Second dimension of H and S |
636 | +C integer indxuo(no_s) : Index of equivalent orbital in unit cell |
637 | C Unit cell orbitals must be the first in |
638 | C orbital lists, i.e. indxuo.le.no_l, with |
639 | C no_l the number of orbitals in unit cell |
640 | C real*8 ef : Fermi energy |
641 | C logical writeb : This routine must write bands? |
642 | -C integer no_u : Total number of orbitals in unit cell |
643 | +C integer no_u : Total number of orbitals in unit cell |
644 | C integer nk : Number of band k points |
645 | C real*8 kpoint(3,maxk) : k point vectors |
646 | C real*8 occtol : Occupancy threshold for DM build |
647 | C *************************** OUTPUT ********************************** |
648 | -C real*8 ek(no_u,maxspn,maxk) : Eigenvalues |
649 | +C real*8 ek(no_u,spin%spinor,maxk) : Eigenvalues |
650 | C *************************** UNITS *********************************** |
651 | C Lengths in atomic units (Bohr). |
652 | C k vectors in reciprocal atomic units. |
653 | @@ -366,7 +366,7 @@ |
654 | use atmfuncs, only : symfio, cnfigfio, labelfis, nofis |
655 | use writewave, only : wfs_filename |
656 | |
657 | - use m_spin, only: NoMagn, SPpol, NonCol, SpOrb |
658 | + use t_spin, only: tSpin |
659 | |
660 | use m_diag_option, only: ParallelOverK, Serial |
661 | use m_diag, only: diag_init |
662 | @@ -374,13 +374,13 @@ |
663 | |
664 | implicit none |
665 | |
666 | - integer :: nspin |
667 | - integer :: maxk, maxnh, maxspn, no_u, no_l, nk, no_s, |
668 | + type(tSpin), intent(in) :: spin |
669 | + integer :: maxk, maxnh, no_u, no_l, nk, no_s, |
670 | . indxuo(no_s), listh(maxnh), numh(no_l), |
671 | - . listhptr(*), nuo |
672 | + . listhptr(*) |
673 | logical :: writeb |
674 | - real(dp) :: ef, ek(no_u,maxspn,maxk), |
675 | - . H(maxnh,nspin), kpoint(3,maxk), |
676 | + real(dp) :: ef, ek(no_u,spin%spinor,maxk), |
677 | + . H(maxnh,spin%H), kpoint(3,maxk), |
678 | . S(maxnh), xij(3,maxnh), occtol |
679 | logical, intent(in) :: getPSI |
680 | |
681 | @@ -394,7 +394,6 @@ |
682 | logical, parameter :: fixspin = .false. |
683 | |
684 | integer :: ik, il, io, ispin, iu, iu_wfs, iuo, naux, nhs, j |
685 | - |
686 | logical :: SaveParallelOverK |
687 | |
688 | real(dp) |
689 | @@ -405,17 +404,10 @@ |
690 | real(dp), dimension(:), pointer :: aux => null() |
691 | |
692 | parameter ( eV = 1.d0 / 13.60580d0 ) |
693 | + |
694 | save Dnew, Enew, e1, e2, qk, qtot, temp, wk |
695 | - |
696 | data Dnew, Enew, e1, e2, qk, qtot, temp, wk /8*0.d0/ |
697 | |
698 | -C Get number of local orbitals |
699 | -#ifdef MPI |
700 | - call GetNodeOrbs(no_u,Node,Nodes,nuo) |
701 | -#else |
702 | - nuo = no_u |
703 | -#endif |
704 | - |
705 | C Start time counter |
706 | call timer( 'bands', 1 ) |
707 | |
708 | @@ -430,12 +422,13 @@ |
709 | endif |
710 | |
711 | C Allocate local arrays - only aux is relevant here |
712 | - if ( nspin >=4 ) then |
713 | - nhs = 2 * (2*no_u) * (2*no_l) |
714 | + |
715 | + if ( spin%Grid == 4 ) then |
716 | + nhs = 2 * (2*no_u) * (2*no_l) |
717 | else |
718 | nhs = 2 * no_u*no_l |
719 | endif |
720 | - naux = 2*no_u*5 |
721 | + naux = 2*no_u*5 |
722 | call allocDenseMatrix(nhs, nhs, nhs) |
723 | call re_alloc( aux, 1, naux, 'aux', 'bands' ) |
724 | |
725 | @@ -448,7 +441,7 @@ |
726 | rewind (iu_wfs) |
727 | |
728 | write(iu_wfs) nk, .false. ! nk, Gamma, same file-format in WFS as for Gamma-point |
729 | - write(iu_wfs) nspin |
730 | + write(iu_wfs) spin%Grid |
731 | write(iu_wfs) no_u |
732 | write(iu_wfs) (iaorb(j),labelfis(isa(iaorb(j))), |
733 | . iphorb(j), cnfigfio(isa(iaorb(j)),iphorb(j)), |
734 | @@ -458,7 +451,7 @@ |
735 | endif |
736 | |
737 | C Find the band energies |
738 | - if (NoMagn .or. SPpol) then |
739 | + if ( spin%Grid < 4 ) then |
740 | C fixspin and qs are not used in diagk, since getD=.false. ... |
741 | qs(1) = 0.0_dp |
742 | qs(2) = 0.0_dp |
743 | @@ -475,7 +468,7 @@ |
744 | call diag_init() |
745 | end if |
746 | |
747 | - call diagk( nspin, no_l, no_s, maxspn, |
748 | + call diagk( spin%H, no_l, no_s, spin%spinor, |
749 | . maxnh, maxnh, |
750 | . no_u, numh, listhptr, listh, numh, listhptr, |
751 | . listh, H, S, getD, getPSI, fixspin, qtot, qs, temp, |
752 | @@ -487,29 +480,17 @@ |
753 | ParallelOverK = SaveParallelOverK |
754 | if ( ParallelOverK ) Serial = .true. |
755 | |
756 | - elseif ( NonCol ) then |
757 | - if (getPSI) then |
758 | - if (node==0) then |
759 | - write(6,*) "No WFS for non-colinear spin, yet..." |
760 | - endif |
761 | - RETURN |
762 | - endif |
763 | + elseif ( spin%NCol ) then |
764 | call diag2k(no_l, no_s, maxnh, maxnh, no_u, |
765 | . numh, listhptr, listh, numh, listhptr, |
766 | - . listh, H, S, getD, qtot, temp, e1, e2, |
767 | + . listh, H, S, getD, getPSI, qtot, temp, e1, e2, |
768 | . xij, indxuo, nk, kpoint, wk, |
769 | . ek, qk, Dnew, Enew, ef, Entropy, |
770 | . Haux, Saux, psi, Haux, Saux, aux, |
771 | . no_u, occtol, 1, no_u ) |
772 | |
773 | - elseif ( SpOrb ) then |
774 | - if (getPSI) then |
775 | - if (node==0) then |
776 | - write(6,*) "No WFS for spin-orbit, yet..." |
777 | - endif |
778 | - return |
779 | - end if |
780 | - call diag3k(nuo, no_s, maxnh, maxnh, no_u, numh, |
781 | + elseif ( spin%SO ) then |
782 | + call diag3k(no_l, no_s, maxnh, maxnh, no_u, numh, |
783 | . listhptr, listh, numh, listhptr, listh, |
784 | . H, S, getD, getPSI, qtot, temp, e1, e2, xij, |
785 | . indxuo, nk, kpoint, wk, ek, qk, Dnew, |
786 | @@ -517,7 +498,7 @@ |
787 | . Haux, Saux, psi, Haux, Saux, aux, |
788 | . no_u, occtol, 1, no_u ) |
789 | else |
790 | - call die( 'bands: ERROR: incorrect value of nspin') |
791 | + call die( 'bands: ERROR: incorrect value of spin%H') |
792 | endif |
793 | |
794 | C Write bands |
795 | @@ -540,7 +521,7 @@ |
796 | . path = path + sqrt( (kpoint(1,ik)-kpoint(1,ik-1))**2 + |
797 | . (kpoint(2,ik)-kpoint(2,ik-1))**2 + |
798 | . (kpoint(3,ik)-kpoint(3,ik-1))**2 ) |
799 | - do ispin = 1,maxspn |
800 | + do ispin = 1, spin%spinor |
801 | do io = 1, no_u |
802 | emax = max( emax, ek(io,ispin,ik) ) |
803 | emin = min( emin, ek(io,ispin,ik) ) |
804 | @@ -552,13 +533,14 @@ |
805 | write(iu,*) emin/eV, emax/eV |
806 | |
807 | C Write eigenvalues |
808 | - if ( nspin <= 2 ) then |
809 | - write(iu,*) no_u, maxspn, nk |
810 | - else if ( nspin <= 8 ) then |
811 | - write(iu,*) 2*no_u, 1, nk |
812 | - else |
813 | - call die( 'bands: ERROR: incorrect value of nspin' ) |
814 | - end if |
815 | + if ( spin%Grid == 4 ) then |
816 | + write(iu,*) 2*no_u, 1, nk ! A single spin channel, double number of bands |
817 | + else |
818 | + write(iu,*) no_u, spin%spinor, nk |
819 | + endif |
820 | + |
821 | + ! For non-collinear calculations, the ek array will contain the first no_u |
822 | + ! bands in ek(:,1,ik), and the next no_u bands in ek(:,2,ik) |
823 | path = 0.d0 |
824 | do ik = 1,nk |
825 | if (nlines .ge. 0) then |
826 | @@ -568,11 +550,11 @@ |
827 | . (kpoint(3,ik)-kpoint(3,ik-1))**2 ) |
828 | write(iu,'(f10.6,10f12.4,/,(10x,10f12.4))') |
829 | . path, ((ek(io,ispin,ik)/eV,io=1,no_u), |
830 | - . ispin=1,maxspn) |
831 | + . ispin=1,spin%spinor) |
832 | else |
833 | write(iu,'(3f9.5,8f12.4,/,(27x,8f12.4))') |
834 | . kpoint(1,ik), kpoint(2,ik), kpoint(3,ik), |
835 | - . ((ek(io,ispin,ik)/eV,io=1,no_u),ispin=1,maxspn) |
836 | + . ((ek(io,ispin,ik)/eV,io=1,no_u),ispin=1,spin%spinor) |
837 | endif |
838 | enddo |
839 | |
840 | |
841 | === modified file 'Src/compute_dm.F' |
842 | --- Src/compute_dm.F 2018-11-02 09:03:25 +0000 |
843 | +++ Src/compute_dm.F 2019-08-18 23:02:58 +0000 |
844 | @@ -24,7 +24,7 @@ |
845 | & qtot, Qtots, no_l |
846 | use sys, only: die, bye |
847 | use Kpoint_grid |
848 | - use m_energies, only: Ebs, Ecorrec, Entropy, DE_NEGF |
849 | + use m_energies, only: Ebs, Ecorrec, Entropy |
850 | use m_energies, only: Ef, Efs |
851 | use m_rmaxh |
852 | use m_eo |
853 | @@ -231,7 +231,7 @@ |
854 | call transiesta(iscf,spin%H, block_dist, sparse_pattern, |
855 | & no_u == no_s, ucell, nsc, isc_off, no_u, na_u, |
856 | & lasto, xa, maxnh, |
857 | - & H, S, Dscf, Escf, Ef, Qtot, .false., DE_NEGF ) |
858 | + & H, S, Dscf, Escf, Ef, Qtot, .false.) |
859 | |
860 | Ecorrec = 0._dp |
861 | Entropy = 0.0_dp |
862 | |
863 | === modified file 'Src/compute_energies.F90' |
864 | --- Src/compute_energies.F90 2017-12-21 15:49:49 +0000 |
865 | +++ Src/compute_energies.F90 2019-08-18 23:02:58 +0000 |
866 | @@ -55,6 +55,8 @@ |
867 | #ifdef MPI |
868 | use m_mpi_utils, only: globalize_sum |
869 | #endif |
870 | + use m_ts_global_vars, only: TSrun |
871 | + use ts_energies_m, only: ts_compute_energies |
872 | |
873 | integer, intent(in) :: iscf |
874 | |
875 | @@ -85,6 +87,10 @@ |
876 | ! E0 = Ena + Ekin + Enl + Eso - Eions |
877 | |
878 | call update_DEna() |
879 | + ! Also call transiesta |
880 | + if ( TSrun ) then |
881 | + call ts_compute_energies() |
882 | + end if |
883 | call update_Etot() |
884 | |
885 | |
886 | @@ -94,9 +100,13 @@ |
887 | |
888 | if (mix_charge) then ! possibly add mixH here |
889 | EHarrs = 0.0_dp |
890 | + NEGF_Eharrs = 0._dp |
891 | else |
892 | call compute_DEharr() |
893 | Eharrs = Etot + DEharr |
894 | + if ( TSrun ) then |
895 | + NEGF_Eharrs = NEGF_Etot + NEGF_DEharr |
896 | + end if |
897 | endif |
898 | |
899 | ! Possible correction to Etot if mixing the DM. This is purely |
900 | @@ -218,6 +228,8 @@ |
901 | use class_dSpData1D, only : val |
902 | use class_dSpData2D, only : val |
903 | use sparse_matrices, only: H_kin_1D, H_vkb_1D, H_so_2D |
904 | + use ts_energies_m, only: ts_compute_energies |
905 | + use m_ts_global_vars, only: TSrun |
906 | |
907 | type(filesOut_t) :: filesOut ! blank output file names |
908 | real(dp), pointer :: H_vkb(:), H_kin(:), H_so(:,:) |
909 | @@ -281,7 +293,12 @@ |
910 | Eso = buffer1 |
911 | #endif |
912 | end if |
913 | - |
914 | + |
915 | + ! Also call transiesta |
916 | + if ( TSrun ) then |
917 | + call ts_compute_energies() |
918 | + end if |
919 | + |
920 | ! E0 = Ena + Ekin + Enl + Eso - Eions |
921 | |
922 | ! Clarify: Ecorrec (from O(N)) |
923 | |
924 | === modified file 'Src/delk.F90' |
925 | --- Src/delk.F90 2016-03-01 14:24:48 +0000 |
926 | +++ Src/delk.F90 2019-08-18 23:02:58 +0000 |
927 | @@ -386,7 +386,7 @@ |
928 | r2sp = sum(dxsp**2) |
929 | if ( r2sp < r2cut(is) ) then |
930 | !$OMP critical |
931 | - call all_phi( is, +1, dxsp, nphiloc, phia(:,isp) ) |
932 | + call all_phi( is, +1, dxsp, maxoa, nphiloc, phia(:,isp) ) |
933 | !$OMP end critical |
934 | else |
935 | phia(:,isp) = 0.0_dp |
936 | |
937 | === modified file 'Src/dfscf.f' |
938 | --- Src/dfscf.f 2018-04-22 00:13:43 +0000 |
939 | +++ Src/dfscf.f 2019-08-18 23:02:58 +0000 |
940 | @@ -303,7 +303,7 @@ |
941 | dxsp(1:3,isp) = xdop(1:3,iop)+xdsp(1:3,isp)-dxa(1:3,ia) |
942 | r2sp = dxsp(1,isp)**2 + dxsp(2,isp)**2 + dxsp(3,isp)**2 |
943 | if (r2sp.lt.r2cut(is)) then |
944 | - call all_phi( is,+1, dxsp(:,isp), nphiloc, |
945 | + call all_phi( is,+1, dxsp(:,isp), maxoa, nphiloc, |
946 | . phia(:,isp), grada(:,:,isp)) |
947 | else |
948 | phia(:,isp) = 0.0_dp |
949 | |
950 | === modified file 'Src/dhscf.F' |
951 | --- Src/dhscf.F 2019-06-27 10:49:55 +0000 |
952 | +++ Src/dhscf.F 2019-08-18 23:02:58 +0000 |
953 | @@ -948,7 +948,7 @@ |
954 | call de_alloc( DRho_par, 'DRho_par','dhscf' ) |
955 | |
956 | if ( debug_dhscf ) then |
957 | - write(*,debug_fmt) Node,'DRho', |
958 | + write(*,debug_fmt) Node,'Rho', |
959 | & (sqrt(sum(DRho(:,ispin)**2)),ispin=1,nspin) |
960 | end if |
961 | |
962 | @@ -1141,6 +1141,11 @@ |
963 | enddo |
964 | !$OMP end parallel do |
965 | |
966 | + if ( debug_dhscf ) then |
967 | + write(*,debug_fmt) Node,'DRho', |
968 | + & (sqrt(sum(DRho(:,ispin)**2)),ispin=1,nspin) |
969 | + end if |
970 | + |
971 | C ---------------------------------------------------------------------- |
972 | C Save electron density difference |
973 | C ---------------------------------------------------------------------- |
974 | |
975 | === modified file 'Src/diag2g.F' |
976 | --- Src/diag2g.F 2018-06-25 11:33:42 +0000 |
977 | +++ Src/diag2g.F 2019-08-18 23:02:58 +0000 |
978 | @@ -7,7 +7,7 @@ |
979 | ! |
980 | subroutine diag2g( nuo, no, maxnh, maxnd, maxo, |
981 | . numh, listhptr, listh, numd, listdptr, |
982 | - . listd, H, S, getD, qtot, temp, e1, e2, |
983 | + . listd, H, S, getD, getPSI, qtot, temp, e1, e2, |
984 | . eo, qo, Dnew, Enew, ef, Entropy, |
985 | . Haux, Saux, psi, caux, |
986 | . nuotot, occtol, iscf, neigwanted) |
987 | @@ -19,6 +19,8 @@ |
988 | use sys |
989 | use parallel, only : Node, Nodes, BlockSize |
990 | use parallelsubs, only : LocalToGlobalOrb,GlobalToLocalOrb |
991 | + use writewave, only : writew |
992 | + use iso_c_binding, only : c_loc, c_f_pointer |
993 | use m_fermid, only : fermid, stepf |
994 | use intrinsic_missing, only: MODP |
995 | |
996 | @@ -100,16 +102,19 @@ |
997 | real(dp) Entropy, eo(maxo*2), H(maxnh,4), qo(maxo*2) |
998 | real(dp) qtot, S(maxnh), temp, occtol |
999 | |
1000 | - complex(dp), dimension(2,nuotot,2*nuo) :: psi |
1001 | + complex(dp), dimension(2,nuotot,2*nuo), target :: psi |
1002 | complex(dp), dimension(2,nuotot,2,nuo) :: Haux, Saux |
1003 | - complex(dp), dimension(2,nuotot) :: caux |
1004 | - logical getD |
1005 | + complex(dp), dimension(2,nuotot), target :: caux |
1006 | + logical getD, getPSI |
1007 | |
1008 | ! Internal variables ............................................. |
1009 | |
1010 | + real(dp), pointer :: psi_real_1d(:) |
1011 | + real(dp), pointer :: aux(:) |
1012 | + |
1013 | integer BNode, BTest, ie, ierror, iie, iio |
1014 | integer ind, io, j, jo, nd, iuo, juo |
1015 | - real(dp) ee, pipj, qe, t |
1016 | + real(dp) ee, pipj, qe, t, k(3) |
1017 | complex(dp) :: cicj, D11, D22, D12, D21 |
1018 | #ifdef MPI |
1019 | integer MPIerror |
1020 | @@ -201,6 +206,14 @@ |
1021 | call cdiag(Haux,Saux,2*nuotot,2*nuo,2*nuotot,eo,psi, |
1022 | . 2*neigwanted,iscf,ierror, 2*BlockSize) |
1023 | endif |
1024 | + |
1025 | + if (getPSI) then |
1026 | + k(1:3) = 0.0d0 |
1027 | + call c_f_pointer( c_loc(psi), psi_real_1d, [size(psi)*2] ) |
1028 | + call writew(nuotot,nuo,1,k,1, |
1029 | + & eo,psi_real_1d,gamma=.true., |
1030 | + $ non_coll=.true., blocksize=2*BlockSize) |
1031 | + endif |
1032 | |
1033 | ! Check if we are done |
1034 | if (.not.getD) goto 1001 |
1035 | |
1036 | === modified file 'Src/diag2k.F' |
1037 | --- Src/diag2k.F 2018-04-14 23:14:53 +0000 |
1038 | +++ Src/diag2k.F 2019-08-18 23:02:58 +0000 |
1039 | @@ -7,7 +7,7 @@ |
1040 | ! |
1041 | subroutine diag2k( nuo, no, maxnh, maxnd, maxo, |
1042 | . numh, listhptr, listh, numd, listdptr, |
1043 | - . listd, H, S, getD, qtot, temp, e1, e2, |
1044 | + . listd, H, S, getD, getPsi, qtot, temp, e1, e2, |
1045 | . xij, indxuo, nk, kpoint, wk, |
1046 | . eo, qo, Dnew, Enew, ef, Entropy, |
1047 | . Haux, Saux, psi, Dk, Ek, caux, |
1048 | @@ -20,7 +20,9 @@ |
1049 | use sys |
1050 | use parallel, only : Node, Nodes, BlockSize |
1051 | use parallelsubs, only : LocalToGlobalOrb |
1052 | + use writewave, only : writew |
1053 | use m_fermid, only : fermid, stepf |
1054 | + use iso_c_binding, only : c_loc, c_f_pointer |
1055 | #ifdef MPI |
1056 | use mpi_siesta |
1057 | #endif |
1058 | @@ -79,8 +81,8 @@ |
1059 | C integer iscf : SCF cycle number |
1060 | C integer neigwanted : Number of eigenvalues wanted |
1061 | C *************************** OUTPUT ********************************** |
1062 | -C real*8 eo(maxo*4,nk) : Eigenvalues |
1063 | -C real*8 qo(maxo*4,nk) : Occupations of eigenstates |
1064 | +C real*8 eo(maxo*2,nk) : Eigenvalues |
1065 | +C real*8 qo(maxo*2,nk) : Occupations of eigenstates |
1066 | C real*8 Dnew(maxnd,4) : Output Density Matrix |
1067 | C real*8 Enew(maxnd,4) : Output Energy-Density Matrix |
1068 | C real*8 ef : Fermi energy |
1069 | @@ -116,11 +118,15 @@ |
1070 | integer :: neigwanted |
1071 | |
1072 | complex(dp), dimension(2,nuotot,2,nuo) :: Haux, Saux, Dk, Ek |
1073 | - complex(dp), dimension(2,nuotot,2*nuo) :: psi |
1074 | - complex(dp), dimension(2,nuotot) :: caux |
1075 | - logical getD |
1076 | + complex(dp), dimension(2,nuotot,2*nuo), target :: psi |
1077 | + complex(dp), dimension(2,nuotot), target :: caux |
1078 | + logical, intent(in) :: getD, getPsi |
1079 | |
1080 | ! Internal variables ............................................. |
1081 | + |
1082 | + ! For interface compliance using c_f_pointer |
1083 | + real(dp), pointer :: aux(:) |
1084 | + real(dp), pointer :: psi_real(:) |
1085 | |
1086 | integer BNode, BTest, ie, ierror, iie, ik, ind, io, iio |
1087 | integer iuo, j, jo, juo, neigneeded |
1088 | @@ -170,6 +176,9 @@ |
1089 | ! |
1090 | ! 1. Hermiticity imposes H_{i,j}^{is,js}=H_{j,i}^{js,is}^* |
1091 | |
1092 | + ! Jump point for bands and wfs output only |
1093 | + if (getPSI .and. (.not. GetD)) goto 10 |
1094 | + |
1095 | ! Find eigenvalues at every k point |
1096 | do ik = 1,nk |
1097 | |
1098 | @@ -214,10 +223,10 @@ |
1099 | endif |
1100 | enddo |
1101 | |
1102 | -!----------------------------------------------------------------------- |
1103 | -! Check if we are done |
1104 | -!----------------------------------------------------------------------- |
1105 | - if (.not.getD) goto 1001 |
1106 | + ! Check if we are done (i.e.: pure bands only) |
1107 | + if (.not.getD .and. .not. getPSI) then |
1108 | + RETURN |
1109 | + end if |
1110 | !----------------------------------------------------------------------- |
1111 | |
1112 | ! Find new Fermi energy and occupation weights |
1113 | @@ -240,16 +249,23 @@ |
1114 | Dnew(:,:) = 0.0_dp |
1115 | Enew(:,:) = 0.0_dp |
1116 | |
1117 | -! Find maximum eigenvector that is required for this k point |
1118 | + 10 continue ! ---- Start here for (getPsi and (not getDM)) |
1119 | + |
1120 | do ik = 1,nk |
1121 | - neigneeded = 0 |
1122 | - ie = 2*nuotot |
1123 | - do while (ie.gt.0.and.neigneeded.eq.0) |
1124 | - qe = qo(ie,ik) |
1125 | - if (abs(qe).gt.occtol) neigneeded = ie |
1126 | - ie = ie - 1 |
1127 | - enddo |
1128 | - |
1129 | + ! Find maximum eigenvector index that is required for this k point |
1130 | + if (getPSI) then |
1131 | + ! We do not have info about occupation |
1132 | + neigneeded = neigwanted |
1133 | + else |
1134 | + neigneeded = 0 |
1135 | + ie = 2*nuotot ! for mixed spins |
1136 | + do while (ie.gt.0.and.neigneeded.eq.0) |
1137 | + qe = qo(ie,ik) |
1138 | + if (abs(qe).gt.occtol) neigneeded = ie |
1139 | + ie = ie - 1 |
1140 | + enddo |
1141 | + endif |
1142 | + |
1143 | ! Find eigenvectors |
1144 | Saux = dcmplx(0.0_dp,0.0_dp) |
1145 | Haux = dcmplx(0.0_dp,0.0_dp) |
1146 | @@ -310,8 +326,25 @@ |
1147 | call cdiag(Haux,Saux,2*nuotot,2*nuo,2*nuotot,caux,psi, |
1148 | . neigneeded,iscf,ierror,2*BlockSize) |
1149 | endif |
1150 | - |
1151 | -!----------------------------------------------------------------------- |
1152 | + |
1153 | + |
1154 | + if (getPSI) then |
1155 | + if (.not. getD) then |
1156 | + ! Fill in the missing eigenvalue information |
1157 | + ! This is useful if we are requesting WFS in a "bands" setting |
1158 | + call c_f_pointer(c_loc(caux),aux,[2*nuotot]) |
1159 | + call kludge_copy(2*nuotot,eo(1,ik),aux) |
1160 | + endif |
1161 | + call c_f_pointer(c_loc(psi),psi_real,[2*size(psi)]) |
1162 | + call writew(nuotot,nuo,ik,kpoint(1,ik),1, ! last '1' is 'spin-block number' |
1163 | + . eo(1,ik), ! energies |
1164 | + . psi_real,gamma=.false.,non_coll=.true., |
1165 | + $ blocksize=2*BlockSize) |
1166 | + endif |
1167 | + |
1168 | + if (.not. getD) CYCLE ! process new k-point |
1169 | + |
1170 | +!----------------------------------------------------------------------- |
1171 | ! Store the products of eigenvectors in matrices Dk and Ek |
1172 | ! WARNING: Dk and Ek may be EQUIVALENCE'd to Haux and Saux |
1173 | !----------------------------------------------------------------------- |
1174 | @@ -445,13 +478,22 @@ |
1175 | |
1176 | enddo |
1177 | enddo |
1178 | - enddo |
1179 | + enddo ! over k-points |
1180 | |
1181 | - 1001 continue |
1182 | - |
1183 | #ifdef DEBUG |
1184 | call write_debug( ' POS diag2k' ) |
1185 | #endif |
1186 | + |
1187 | + CONTAINS |
1188 | + ! Work around shape of aux array |
1189 | + subroutine kludge_copy(n,a,b) |
1190 | + integer, intent(in) :: n |
1191 | + real(dp), intent(out) :: a(n) |
1192 | + real(dp), intent(in) :: b(n) |
1193 | +!$OMP parallel workshare default(shared) |
1194 | + a(1:n) = b(1:n) |
1195 | +!$OMP end parallel workshare |
1196 | + end subroutine kludge_copy |
1197 | |
1198 | end subroutine diag2k |
1199 | |
1200 | |
1201 | === modified file 'Src/diag3g.F' |
1202 | --- Src/diag3g.F 2018-06-25 11:33:42 +0000 |
1203 | +++ Src/diag3g.F 2019-08-18 23:02:58 +0000 |
1204 | @@ -5,7 +5,7 @@ |
1205 | ! or http://www.gnu.org/copyleft/gpl.txt. |
1206 | ! See Docs/Contributors.txt for a list of contributors. |
1207 | ! |
1208 | - subroutine diag3g( nuo, no, maxuo, maxnh, maxnd, maxo, |
1209 | + subroutine diag3g( nuo, no, maxnh, maxnd, maxo, |
1210 | . numh, listhptr, listh, numd, listdptr, |
1211 | . listd, H, S, getD, getPSI, qtot, temp, e1, e2, |
1212 | . eo, qo, Dnew, Enew, ef, Entropy, |
1213 | @@ -16,8 +16,10 @@ |
1214 | use sys |
1215 | use parallel, only : Node, Nodes, BlockSize |
1216 | use parallelsubs, only : LocalToGlobalOrb,GlobalToLocalOrb |
1217 | + use writewave, only : writew |
1218 | use m_fermid, only : fermid, stepf |
1219 | use intrinsic_missing, only: MODP |
1220 | + use iso_c_binding, only : c_loc, c_f_pointer |
1221 | #ifdef MPI |
1222 | use mpi_siesta |
1223 | #endif |
1224 | @@ -33,7 +35,6 @@ |
1225 | C **************************** INPUT ********************************** |
1226 | C integer nuo : Number of basis orbitals on local node |
1227 | C integer no : Number of basis orbitals |
1228 | -C integer maxuo : Maximum number of basis orbitals |
1229 | C integer maxnh : Maximum number of orbitals interacting |
1230 | C integer maxnd : First dimension of Dnew and Enew |
1231 | C integer maxo : First dimension of eo and qo |
1232 | @@ -86,7 +87,7 @@ |
1233 | ! Indices is and js are for spin components |
1234 | ! Indices iuo and juo are for orbital components: |
1235 | ! ********************************************************************* |
1236 | - integer maxo, maxuo, maxnd, maxnh |
1237 | + integer maxo, maxnd, maxnh |
1238 | integer no, nuo, nuotot, iscf, neigwanted |
1239 | |
1240 | integer listh(maxnh), numh(nuo), listhptr(nuo) |
1241 | @@ -96,7 +97,8 @@ |
1242 | real(dp) Entropy, eo(maxo*2), H(maxnh,8), qo(maxo*2) |
1243 | real(dp) qtot, S(maxnh), temp, occtol |
1244 | |
1245 | - complex(dp), dimension(2,nuotot,2*nuo) :: psi |
1246 | + complex(dp), dimension(2,nuotot,2*nuo), target :: psi |
1247 | + real(dp), pointer :: psi_real_1d(:) |
1248 | complex(dp), dimension(2,nuotot,2,nuo) :: Haux, Saux |
1249 | complex(dp), dimension(2,nuotot) :: caux |
1250 | logical getD, getPSI |
1251 | @@ -105,7 +107,7 @@ |
1252 | |
1253 | integer BNode, BTest, ie, ierror, iie, iio |
1254 | integer ind, io, j, jo, nd, iuo, juo |
1255 | - real(dp) ee, qe, t |
1256 | + real(dp) ee, qe, t, k(3) |
1257 | complex(dp) D11, D22, D12, D21 |
1258 | #ifdef MPI |
1259 | integer MPIerror |
1260 | @@ -193,7 +195,20 @@ |
1261 | call cdiag(Haux,Saux,2*nuotot,2*nuo,2*nuotot,eo,psi, |
1262 | . 2*neigwanted,iscf,ierror,2*BlockSize) |
1263 | endif |
1264 | - |
1265 | + |
1266 | + if (getPSI) then |
1267 | + k(1:3) = 0.0d0 |
1268 | + |
1269 | + ! We do not have info about occupation |
1270 | + ! In the current implementation, neigneeded |
1271 | + ! is ALWAYS nuotot. |
1272 | + ! This is because writewave expects the full spectrum |
1273 | + call c_f_pointer( c_loc(psi), psi_real_1d, [size(psi)*2] ) |
1274 | + call writew(nuotot,nuo,1,k,1, |
1275 | + & eo,psi_real_1d,gamma=.true., |
1276 | + $ non_coll=.true.,blocksize=2*BlockSize) |
1277 | + endif |
1278 | + |
1279 | ! Check if we are done |
1280 | if (.not.getD) return |
1281 | |
1282 | |
1283 | === modified file 'Src/diag3k.F' |
1284 | --- Src/diag3k.F 2017-08-06 11:17:47 +0000 |
1285 | +++ Src/diag3k.F 2019-08-18 23:02:58 +0000 |
1286 | @@ -18,7 +18,9 @@ |
1287 | use sys |
1288 | use parallel, only : Node, Nodes, BlockSize |
1289 | use parallelsubs, only : LocalToGlobalOrb |
1290 | + use writewave, only : writew |
1291 | use m_fermid, only : fermid, stepf |
1292 | + use iso_c_binding, only : c_f_pointer, c_loc |
1293 | #ifdef MPI |
1294 | use mpi_siesta |
1295 | #endif |
1296 | @@ -114,12 +116,14 @@ |
1297 | integer :: neigwanted |
1298 | |
1299 | complex(dp), dimension(2,nuotot,2,nuo) :: Haux, Saux, Dk, Ek |
1300 | - complex(dp), dimension(2,nuotot,2*nuo) :: psi |
1301 | - complex(dp), dimension(2,nuotot) :: caux |
1302 | - logical getD, getPSI |
1303 | - |
1304 | -! TEMPOS, INTERNAL VARIABLES etc. |
1305 | - |
1306 | + complex(dp), dimension(2,nuotot,2*nuo), target :: psi |
1307 | + complex(dp), dimension(2,nuotot), target :: caux |
1308 | + logical, intent(in) :: getD, getPSI |
1309 | + |
1310 | + |
1311 | + real(dp), pointer :: aux(:) |
1312 | + real(dp), pointer :: psi_real(:) |
1313 | + |
1314 | integer BNode, BTest, ie, ierror, iie, ik, ind, io, iio |
1315 | integer iuo, j, jo, juo, neigneeded |
1316 | real(dp) ee, qe, t |
1317 | @@ -175,6 +179,9 @@ |
1318 | ! |
1319 | ! |
1320 | |
1321 | + ! Jump point for bands and wfs output only |
1322 | + if (getPSI .and. (.not. GetD)) goto 10 |
1323 | + |
1324 | ! Find eigenvalues at every k point |
1325 | |
1326 | do ik = 1,nk |
1327 | @@ -214,11 +221,11 @@ |
1328 | call die('Terminating due to failed diagonalisation') |
1329 | endif |
1330 | enddo |
1331 | - |
1332 | -!----------------------------------------------------------------------- |
1333 | -! Check if we are done |
1334 | -!----------------------------------------------------------------------- |
1335 | - if (.not.getD) return |
1336 | + |
1337 | + ! Check if we are done (i.e.: pure bands only) |
1338 | + if (.not.getD .and. .not. getPSI) then |
1339 | + RETURN |
1340 | + end if |
1341 | !----------------------------------------------------------------------- |
1342 | |
1343 | ! Find new Fermi energy and occupation weights |
1344 | @@ -240,16 +247,23 @@ |
1345 | ! New density and energy-density matrices of unit-cell orbitals |
1346 | Dnew(:,:) = 0.0_dp |
1347 | Enew(:,:) = 0.0_dp |
1348 | + |
1349 | + 10 continue ! ---- Start here for (getPsi and (not getDM)) |
1350 | |
1351 | -! Find maximum eigenvector that is required for this k point |
1352 | do ik = 1,nk |
1353 | - neigneeded = 0 |
1354 | - ie = 2*nuotot ! for mixed spins |
1355 | - do while (ie.gt.0.and.neigneeded.eq.0) |
1356 | - qe = qo(ie,ik) |
1357 | - if (abs(qe).gt.occtol) neigneeded = ie |
1358 | - ie = ie - 1 |
1359 | - enddo |
1360 | + ! Find maximum eigenvector index that is required for this k point |
1361 | + if (getPSI) then |
1362 | + ! We do not have info about occupation |
1363 | + neigneeded = neigwanted |
1364 | + else |
1365 | + neigneeded = 0 |
1366 | + ie = 2*nuotot ! for mixed spins |
1367 | + do while (ie.gt.0.and.neigneeded.eq.0) |
1368 | + qe = qo(ie,ik) |
1369 | + if (abs(qe).gt.occtol) neigneeded = ie |
1370 | + ie = ie - 1 |
1371 | + enddo |
1372 | + endif |
1373 | |
1374 | ! Find eigenvectors |
1375 | Saux = dcmplx(0.0_dp,0.0_dp) |
1376 | @@ -314,6 +328,22 @@ |
1377 | . neigneeded,iscf,ierror, 2*BlockSize) |
1378 | endif |
1379 | |
1380 | + if (getPSI) then |
1381 | + if (.not. getD) then |
1382 | + ! Fill in the missing eigenvalue information |
1383 | + ! This is useful if we are requesting WFS in a "bands" setting |
1384 | + call c_f_pointer(c_loc(caux),aux,[2*nuotot]) |
1385 | + call kludge_copy(2*nuotot,eo(1,ik),aux) |
1386 | + endif |
1387 | + call c_f_pointer(c_loc(psi),psi_real,[2*size(psi)]) |
1388 | + call writew(nuotot,nuo,ik,kpoint(1,ik),1, ! last '1' is 'spin-block number' |
1389 | + . eo(1,ik), ! energies |
1390 | + . psi_real,gamma=.false.,non_coll=.true., |
1391 | + $ blocksize=2*BlockSize) |
1392 | + endif |
1393 | + |
1394 | + if (.not. getD) CYCLE ! process new k-point |
1395 | + |
1396 | !*********************************************************************** |
1397 | ! BUILD NEW DENSITY MATRIX |
1398 | !*********************************************************************** |
1399 | @@ -429,8 +459,18 @@ |
1400 | enddo |
1401 | enddo |
1402 | |
1403 | -!*********************************************************************** |
1404 | - return |
1405 | + CONTAINS |
1406 | + ! Work around shape of aux array |
1407 | + subroutine kludge_copy(n,a,b) |
1408 | + integer, intent(in) :: n |
1409 | + real(dp), intent(out) :: a(n) |
1410 | + real(dp), intent(in) :: b(n) |
1411 | +!$OMP parallel workshare default(shared) |
1412 | + a(1:n) = b(1:n) |
1413 | +!$OMP end parallel workshare |
1414 | + end subroutine kludge_copy |
1415 | + |
1416 | end subroutine diag3k |
1417 | !*********************************************************************** |
1418 | + |
1419 | |
1420 | |
1421 | === modified file 'Src/diagg.F' |
1422 | --- Src/diagg.F 2018-06-25 11:33:42 +0000 |
1423 | +++ Src/diagg.F 2019-08-18 23:02:58 +0000 |
1424 | @@ -91,7 +91,7 @@ |
1425 | use m_spin, only : spinor_dim, e_spin_dim |
1426 | use alloc |
1427 | use intrinsic_missing, only: MODP |
1428 | - |
1429 | + use iso_c_binding, only : c_f_pointer, c_loc |
1430 | #ifdef MPI |
1431 | use mpi_siesta |
1432 | #endif |
1433 | @@ -117,10 +117,9 @@ |
1434 | & qo(maxo,spinor_dim), qtot, qs(spinor_dim), S(maxnh), temp, |
1435 | & efs(spinor_dim), occtol |
1436 | |
1437 | - real(dp) |
1438 | - & Haux(nuotot,nuo), Saux(nuotot,nuo), |
1439 | - & psi(nuotot,maxuo,spinor_dim) |
1440 | - |
1441 | + real(dp) Haux(nuotot,nuo), Saux(nuotot,nuo) |
1442 | + real(dp), target :: psi(nuotot,maxuo,spinor_dim) |
1443 | + real(dp), pointer :: psi_real_1d(:) |
1444 | real(dp), dimension(1), parameter :: wk = (/ 1.0_dp /) |
1445 | integer, parameter :: nk = 1 |
1446 | |
1447 | @@ -203,8 +202,11 @@ |
1448 | do ix = 1,3 |
1449 | k(ix) = 0.0d0 |
1450 | enddo |
1451 | + call c_f_pointer(c_loc(psi(:,:,ispin)),psi_real_1d, |
1452 | + $ [size(psi,1)*size(psi,2)]) |
1453 | call writew(nuotot,nuo,1,k,ispin, |
1454 | - & eo(1,ispin),psi(1,1,ispin),.true.) |
1455 | + & eo(1,ispin),psi_real_1d,gamma=.true., |
1456 | + $ non_coll=.false.,blocksize=BlockSize) |
1457 | endif |
1458 | |
1459 | enddo |
1460 | |
1461 | === modified file 'Src/diagk.F' |
1462 | --- Src/diagk.F 2017-08-06 09:35:09 +0000 |
1463 | +++ Src/diagk.F 2019-08-18 23:02:58 +0000 |
1464 | @@ -101,6 +101,7 @@ |
1465 | use writewave, only : writew |
1466 | use m_fermid, only : fermid, fermispin, stepf |
1467 | use m_spin, only : spinor_dim, e_spin_dim |
1468 | + use iso_c_binding, only : c_loc, c_f_pointer |
1469 | #ifdef MPI |
1470 | use mpi_siesta |
1471 | #endif |
1472 | @@ -143,6 +144,7 @@ |
1473 | real(dp) :: qp1, qp2, eqp1, eqp2 |
1474 | |
1475 | real(dp), pointer :: lpsi(:,:) |
1476 | + real(dp), pointer :: psi_real_1d(:) |
1477 | |
1478 | logical, allocatable :: done_juo(:) |
1479 | C .................... |
1480 | @@ -347,8 +349,10 @@ |
1481 | ! This is useful if we are requesting WFS in a "bands" setting |
1482 | call kludge_copy(nuotot,eo(1,ispin,ik),aux) |
1483 | endif |
1484 | + call c_f_pointer(c_loc(psi),psi_real_1d,[size(psi)]) |
1485 | call writew(nuotot,nuo,ik,kpoint(1,ik),ispin, |
1486 | - . aux,psi,.false.) |
1487 | + . aux,psi_real_1d,gamma=.false.,non_coll=.false., |
1488 | + $ blocksize=BlockSize) |
1489 | endif |
1490 | |
1491 | if (getD) then |
1492 | |
1493 | === modified file 'Src/diagon.F' |
1494 | --- Src/diagon.F 2018-11-02 09:03:25 +0000 |
1495 | +++ Src/diagon.F 2019-08-18 23:02:58 +0000 |
1496 | @@ -266,7 +266,7 @@ |
1497 | if (gamma) then |
1498 | call diag2g( nuo, no, maxnh, maxnd, maxo, numh, |
1499 | . listhptr, listh, numd, listdptr, listd, |
1500 | - . H, S, getD, qtot, temp, e1, e2, eo, qo, |
1501 | + . H, S, getD, getPSI, qtot, temp, e1, e2, eo, qo, |
1502 | . Dnew, Enew, ef, Entropy, |
1503 | . Haux, Saux, psi, aux, |
1504 | . nuotot, occtol, iscf, neigwanted ) |
1505 | @@ -281,7 +281,7 @@ |
1506 | else |
1507 | call diag2k( nuo, no, maxnh, maxnd, maxo, numh, |
1508 | . listhptr, listh, numd, listdptr, listd, |
1509 | - . H, S, getD, qtot, temp, e1, e2, xij, |
1510 | + . H, S, getD, getPsi, qtot, temp, e1, e2, xij, |
1511 | . indxuo, nk, kpoint, wk, eo, qo, Dnew, |
1512 | . Enew, ef, Entropy, |
1513 | . Haux, Saux, psi, Haux, Saux, aux, |
1514 | @@ -289,7 +289,7 @@ |
1515 | endif |
1516 | elseif ( spin%SO ) then |
1517 | if (gamma) then |
1518 | - call diag3g( nuo, no, maxuo, maxnh, maxnd, maxo, numh, |
1519 | + call diag3g( nuo, no, maxnh, maxnd, maxo, numh, |
1520 | . listhptr, listh, numd, listdptr, listd, |
1521 | . H, S, getD, getPSI, qtot, temp, e1, e2, eo, qo, |
1522 | . Dnew, Enew, ef, Entropy, |
1523 | |
1524 | === modified file 'Src/ioeig.f' |
1525 | --- Src/ioeig.f 2018-05-08 11:36:55 +0000 |
1526 | +++ Src/ioeig.f 2019-08-18 23:02:58 +0000 |
1527 | @@ -19,10 +19,10 @@ |
1528 | |
1529 | implicit none |
1530 | |
1531 | - integer, intent(in) :: no |
1532 | - integer, intent(in) :: nspin |
1533 | + integer, intent(in) :: no ! no_u: number of orbitals in unit cell |
1534 | + integer, intent(in) :: nspin ! 'nspin_grid': 1, 2, or 4 |
1535 | integer, intent(in) :: nk |
1536 | - integer, intent(in) :: maxo |
1537 | + integer, intent(in) :: maxo ! no_u again |
1538 | integer, intent(in) :: nspinor |
1539 | integer, intent(in) :: maxk |
1540 | real(dp), intent(in) :: ef |
1541 | @@ -45,11 +45,17 @@ |
1542 | |
1543 | write(iu,"(e17.9)") ef/eV |
1544 | if ( nspin > nspinor ) then |
1545 | - write(iu,"(tr1,i10,i2,tr1,i10)") no*2, 1, nk |
1546 | + ! NC/SOC case: a single block of wavefunctions (without spin tag) |
1547 | + ! nspin (4) will be used here to signal NC/SOC to utilities such as |
1548 | + ! Eig2DOS |
1549 | + write(iu,"(tr1,i10,i2,tr1,i10)") no*2, nspin, nk |
1550 | else |
1551 | write(iu,"(tr1,i10,i2,tr1,i10)") no, min(nspin,2), nk |
1552 | end if |
1553 | do ik = 1,nk |
1554 | + ! This statement will correctly print eo in the NC/SOC case, |
1555 | + ! as the eigenvalues take up two complete 'io' columns, |
1556 | + ! and nspinor = 2. |
1557 | write(iu,"(i10,10(tr1,e17.9),/,(tr10,10(tr1,e17.9)))") |
1558 | . ik, ((eo(io,is,ik)/eV,io=1,no),is=1,nspinor) |
1559 | enddo |
1560 | @@ -83,7 +89,7 @@ |
1561 | if ( is == 1 .and. nspinor > 1 ) then |
1562 | call cmlAddProperty(xf=mainXML, value="up", |
1563 | . dictRef="siesta:spin") |
1564 | - else if ( nspinor > 1 ) then |
1565 | + else if ( nspinor > 1) then |
1566 | call cmlAddProperty(xf=mainXML, value="down", |
1567 | . dictRef="siesta:spin") |
1568 | end if |
1569 | |
1570 | === modified file 'Src/iosockets.F90' |
1571 | --- Src/iosockets.F90 2018-11-27 11:01:23 +0000 |
1572 | +++ Src/iosockets.F90 2019-08-18 23:02:58 +0000 |
1573 | @@ -181,6 +181,8 @@ |
1574 | if (IOnode) then |
1575 | if (leqi(master,"i-pi") .and. trim(header)=="POSDATA") then |
1576 | call readbuffer(socket, c, 9) |
1577 | + ! Please see below for the cell array |
1578 | + ! If this is to be used, it should *ALSO* be transposed! |
1579 | call readbuffer(socket, aux, 9) ! not used in siesta |
1580 | master_xunit = ipi_xunit |
1581 | master_eunit = ipi_eunit |
1582 | @@ -201,7 +203,15 @@ |
1583 | MPI_Comm_World, MPIerror) |
1584 | call MPI_Bcast(c,9, MPI_Double_Precision,0, MPI_Comm_World, MPIerror) |
1585 | #endif |
1586 | - cell = RESHAPE( c, (/3,3/) ) |
1587 | + ! I-Pi assumes row-major order of *only* the cell parameters |
1588 | + ! So we need to transpose the cell |
1589 | + ! This is a very bad practice since the same is happening in |
1590 | + ! ASE I-pi implementation. |
1591 | + ! The cell is transposed when transfering, but not the coordinates. |
1592 | + ! Essentially one could leave out *any* transposes in all implementations |
1593 | + ! and it would work! However, this is now a legacy implementation |
1594 | + ! that should not be changed, neither in I-pi, nor ASE. |
1595 | + cell = TRANSPOSE( RESHAPE( c, (/3,3/) ) ) |
1596 | |
1597 | ! Read and check number of atoms |
1598 | if (ionode) then |
1599 | |
1600 | === modified file 'Src/m_energies.F90' |
1601 | --- Src/m_energies.F90 2018-07-03 13:43:29 +0000 |
1602 | +++ Src/m_energies.F90 2019-08-18 23:02:58 +0000 |
1603 | @@ -47,7 +47,18 @@ |
1604 | real(dp):: Eldau |
1605 | real(dp):: DEldau |
1606 | |
1607 | - real(dp) :: DE_NEGF ! NEGF total energy contribution = - e * \sum_i N_i \mu_i |
1608 | + real(dp) :: NEGF_DE ! NEGF total energy contribution = - e * \sum_i N_i \mu_i |
1609 | + ! Generally we should only calculate energies in the regions where we are updating elements |
1610 | + ! As such we need a specific energy for the NEGF part |
1611 | + ! Their meaning is directly transferable to the above listed energies (in the updating regions) |
1612 | + real(dp) :: NEGF_Ebs |
1613 | + real(dp) :: NEGF_Ekin |
1614 | + real(dp) :: NEGF_Enl |
1615 | + real(dp) :: NEGF_Eso |
1616 | + real(dp) :: NEGF_DEharr |
1617 | + real(dp) :: NEGF_Eharrs |
1618 | + real(dp) :: NEGF_Etot |
1619 | + real(dp) :: NEGF_FreeE |
1620 | |
1621 | contains |
1622 | |
1623 | @@ -85,7 +96,17 @@ |
1624 | Eso = 0._dp |
1625 | Eldau = 0._dp |
1626 | DEldau = 0._dp |
1627 | - DE_NEGF = 0._dp |
1628 | + |
1629 | + ! NEGF part |
1630 | + NEGF_DE = 0._dp |
1631 | + NEGF_Ebs = 0._dp |
1632 | + NEGF_Ekin = 0._dp |
1633 | + NEGF_Enl = 0._dp |
1634 | + NEGF_Eso = 0._dp |
1635 | + NEGF_DEharr = 0._dp |
1636 | + NEGF_Eharrs = 0._dp |
1637 | + NEGF_Etot = 0._dp |
1638 | + NEGF_FreeE = 0._dp |
1639 | |
1640 | end subroutine init_Energies |
1641 | |
1642 | @@ -102,27 +123,36 @@ |
1643 | subroutine update_E0() |
1644 | |
1645 | E0 = Ena + Ekin + Enl + Eso - Eions |
1646 | - |
1647 | + |
1648 | end subroutine update_E0 |
1649 | |
1650 | subroutine update_Etot() |
1651 | + use m_ts_global_vars, only: TSrun |
1652 | |
1653 | ! DUext (external electric field) -- should it be in or out? |
1654 | Etot = Ena + Ekin + Enl + Eso - Eions + & |
1655 | - DEna + DUscf + DUext + Exc + & |
1656 | - Ecorrec + Emad + Emm + Emeta + Eldau |
1657 | - ! Commented out the NEGF contribution to the total energy |
1658 | - ! We know it is wrong, but we estimate it. See output |
1659 | - ! Etot = Etot + DE_NEGF |
1660 | + DEna + DUscf + DUext + Exc + & |
1661 | + Ecorrec + Emad + Emm + Emeta + Eldau |
1662 | |
1663 | + if ( TSrun ) then |
1664 | + NEGF_Etot = Ena + NEGF_Ekin + NEGF_Enl + NEGF_Eso - Eions + & |
1665 | + DEna + DUscf + DUext + Exc + Ecorrec + Emad + Emm + Emeta + & |
1666 | + Eldau + NEGF_DE |
1667 | + end if |
1668 | + |
1669 | end subroutine update_Etot |
1670 | |
1671 | !> @param kBT the temperature in energy |
1672 | subroutine update_FreeE( kBT ) |
1673 | + use m_ts_global_vars, only: TSrun |
1674 | real(dp), intent(in) :: kBT |
1675 | |
1676 | FreeE = Etot - kBT * Entropy |
1677 | |
1678 | + if ( TSrun ) then |
1679 | + NEGF_FreeE = NEGF_Etot - kBT * Entropy |
1680 | + end if |
1681 | + |
1682 | end subroutine update_FreeE |
1683 | |
1684 | !> @param kBT the temperature in energy |
1685 | |
1686 | === modified file 'Src/m_io_yaml.F90' |
1687 | --- Src/m_io_yaml.F90 2018-05-30 08:58:52 +0000 |
1688 | +++ Src/m_io_yaml.F90 2019-08-18 23:02:58 +0000 |
1689 | @@ -174,7 +174,6 @@ |
1690 | write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "DEna", DEna |
1691 | write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "DUscf", DUscf |
1692 | write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "DUext", DUext |
1693 | - write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "Enegf", DE_NEGF |
1694 | write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "Exc", Exc |
1695 | write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "Ecorrec", Ecorrec |
1696 | write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "Emadel", Emad |
1697 | |
1698 | === modified file 'Src/m_mixing.F90' |
1699 | --- Src/m_mixing.F90 2019-06-20 10:46:56 +0000 |
1700 | +++ Src/m_mixing.F90 2019-08-18 23:02:58 +0000 |
1701 | @@ -423,25 +423,46 @@ |
1702 | |
1703 | ! Do options so that a pulay option may refer to |
1704 | ! the actual names of the constants |
1705 | + |
1706 | if ( m%m == MIX_PULAY ) then |
1707 | - |
1708 | - ! The linear mixing weight |
1709 | - if ( leqi(opt,'weight.linear') & |
1710 | - .or. leqi(opt,'w.linear') ) then |
1711 | - |
1712 | - m%rv(1) = fdf_breals(pline,1) |
1713 | - |
1714 | - else if ( leqi(opt,'svd.cond') ) then |
1715 | - |
1716 | - ! This is only applicable to the Pulay |
1717 | - ! mixing scheme... |
1718 | - |
1719 | - m%rv(I_SVD_COND) = fdf_bvalues(pline,1) |
1720 | - |
1721 | - end if |
1722 | - |
1723 | + if ( leqi(opt,'weight.linear') & |
1724 | + .or. leqi(opt,'w.linear') ) then |
1725 | + |
1726 | + m%rv(1) = fdf_breals(pline,1) |
1727 | + if ( m%rv(1) <= 0._dp .or. 1._dp < m%rv(1) ) then |
1728 | + call die("m_mixing: Mixing weight should be 0 < weight <= 1") |
1729 | + end if |
1730 | + |
1731 | + else if ( leqi(opt,'svd.cond') ) then |
1732 | + m%rv(I_SVD_COND) = fdf_bvalues(pline,1) |
1733 | + end if |
1734 | + |
1735 | + else if ( m%m == MIX_BROYDEN ) then |
1736 | + |
1737 | + ! The linear mixing weight |
1738 | + if ( leqi(opt,'weight.linear') & |
1739 | + .or. leqi(opt,'w.linear') ) then |
1740 | + |
1741 | + m%rv(1) = fdf_breals(pline,1) |
1742 | + if ( m%rv(1) <= 0._dp .or. 1._dp < m%rv(1) ) then |
1743 | + call die("m_mixing: Linear mixing weight should be 0 < weight <= 1") |
1744 | + end if |
1745 | + |
1746 | + else if ( leqi(opt,'weight.prime') & |
1747 | + .or. leqi(opt,'w.prime') ) then |
1748 | + |
1749 | + m%rv(2) = fdf_breals(pline,1) |
1750 | + if ( m%rv(2) < 0._dp .or. 1._dp < m%rv(2) ) then |
1751 | + call die("m_mixing: Prime weight should be 0 <= weight <= 1") |
1752 | + end if |
1753 | + |
1754 | + else if ( leqi(opt,'svd.cond') ) then |
1755 | + |
1756 | + m%rv(I_SVD_COND) = fdf_bvalues(pline,1) |
1757 | + |
1758 | + end if |
1759 | + |
1760 | end if |
1761 | - |
1762 | |
1763 | ! Generic options for all advanced methods... |
1764 | if ( leqi(opt,'next.p') ) then |
1765 | @@ -473,6 +494,10 @@ |
1766 | type(tMixer), intent(inout) :: mix |
1767 | integer :: n |
1768 | |
1769 | + if ( mix%w <= 0._dp .or. 1._dp < mix%w ) then |
1770 | + call die("m_mixing: Mixing weight should be: 0 < weight <= 1") |
1771 | + end if |
1772 | + |
1773 | ! Correct amount of history in the mixing. |
1774 | if ( 0 < mix%restart .and. & |
1775 | mix%restart < mix%n_hist ) then |
1776 | @@ -518,7 +543,7 @@ |
1777 | |
1778 | ! allocate temporary array |
1779 | mix%n_hist = max(2, mix%n_hist) |
1780 | - n = 1 + mix%n_hist |
1781 | + n = 2 + mix%n_hist |
1782 | allocate(mix%rv(I_SVD_COND:n)) |
1783 | mix%rv(1:n) = mix%w |
1784 | |
1785 | @@ -702,7 +727,7 @@ |
1786 | type(tMixer), intent(in), target :: mixers(:) |
1787 | |
1788 | type(tMixer), pointer :: m |
1789 | - character(len=50) :: fmt |
1790 | + character(len=64) :: fmt |
1791 | |
1792 | logical :: bool |
1793 | integer :: i |
1794 | @@ -795,9 +820,13 @@ |
1795 | write(*,'(2a,t50,''= '',i0)') trim(fmt), & |
1796 | ' History steps',m%n_hist |
1797 | write(*,'(2a,t50,''= '',f12.6)') trim(fmt), & |
1798 | - ' Jacobian weight',m%w |
1799 | - write(*,'(2a,t50,''= '',f12.6)') trim(fmt), & |
1800 | - ' Weight prime',m%rv(1) |
1801 | + ' Linear mixing weight',m%rv(1) |
1802 | + write(*,'(2a,t50,''= '',f12.6)') trim(fmt), & |
1803 | + ' Inverse Jacobian weight',m%w |
1804 | + write(*,'(2a,t50,''= '',f12.6)') trim(fmt), & |
1805 | + ' Weight prime',m%rv(2) |
1806 | + write(*,'(2a,t50,''= '',e10.4)') trim(fmt), & |
1807 | + ' SVD condition',m%rv(I_SVD_COND) |
1808 | if ( m%rv(I_P_NEXT) > 0._dp ) then |
1809 | write(*,'(2a,t50,''= '',f6.4)') trim(fmt), & |
1810 | ' Step mixer parameter',m%rv(I_P_NEXT) |
1811 | @@ -921,8 +950,11 @@ |
1812 | ! For Broyden this is the inverse Jacobian |
1813 | write(*,'(t3,a,f6.4)') 'weight ', m%w |
1814 | select case ( m%m ) |
1815 | - case ( MIX_PULAY, MIX_BROYDEN ) |
1816 | - write(*,'(t3,a,f6.4)') 'weight.linear ', m%rv(1) |
1817 | + case ( MIX_PULAY ) |
1818 | + write(*,'(t3,a,f6.4)') 'weight.linear ', m%rv(1) |
1819 | + case ( MIX_BROYDEN ) |
1820 | + write(*,'(t3,a,f6.4)') 'weight.linear ', m%rv(1) |
1821 | + write(*,'(t3,a,f6.4)') 'weight.prime ', m%rv(2) |
1822 | end select |
1823 | |
1824 | if ( m%n_hist > 0 ) then |
1825 | @@ -1685,7 +1717,7 @@ |
1826 | ! This is the modified Broyden algorithm... |
1827 | |
1828 | ! Retrieve the previous weights |
1829 | - w => mix%rv(2:1+nh) |
1830 | + w => mix%rv(3:2+nh) |
1831 | select case ( mix%v ) |
1832 | case ( 2 ) ! Unity Broyden |
1833 | |
1834 | @@ -1779,9 +1811,9 @@ |
1835 | |
1836 | ! Add the diagonal term |
1837 | ! This should also prevent it from being |
1838 | - ! singular (unless mix%w == 0) |
1839 | + ! singular (unless mix%rv(2) == 0) |
1840 | do i = 1 , nh |
1841 | - A(i,i) = mix%rv(1) ** 2 + A(i,i) |
1842 | + A(i,i) = mix%rv(2) ** 2 + A(i,i) |
1843 | end do |
1844 | |
1845 | ! Calculate the inverse |
1846 | @@ -2006,7 +2038,7 @@ |
1847 | |
1848 | end if |
1849 | |
1850 | - ! Get the linear mixing term... |
1851 | + ! Get the inverse Jacobian term... |
1852 | G = mix%w |
1853 | |
1854 | ! if debugging print out the different variables |
1855 | @@ -2242,7 +2274,7 @@ |
1856 | |
1857 | ! Update weights (if necessary) |
1858 | if ( nh > 1 ) then |
1859 | - do i = 2 , nh |
1860 | + do i = 3 , nh + 1 |
1861 | mix%rv(i) = mix%rv(i+1) |
1862 | end do |
1863 | end if |
1864 | |
1865 | === modified file 'Src/m_new_dm.F90' |
1866 | --- Src/m_new_dm.F90 2019-08-16 10:13:21 +0000 |
1867 | +++ Src/m_new_dm.F90 2019-08-18 23:02:58 +0000 |
1868 | @@ -335,7 +335,7 @@ |
1869 | ! Determine how the mixing of the first step should be performed |
1870 | ! |
1871 | ! The idea is that one will allow mixing on the first SCF step |
1872 | - ! only for atomicly filled orbitals. This will in most cases |
1873 | + ! only for atomically filled orbitals. This will in most cases |
1874 | ! be a good initial choice, while in certain systems (spin-orbit) |
1875 | ! it may not be so good. |
1876 | ! Subsequently for any MD steps beyond the initial step, we will not |
1877 | @@ -352,8 +352,8 @@ |
1878 | mix_scf_first = .true. |
1879 | if ( IONode .and. init_method < 0 ) then |
1880 | ! Warn the user about this |
1881 | - write(*,"(a)") "Mixing first iteration is *forced* although the sparsity pattern has changed..." |
1882 | - write(*,"(a)") "Mixing non-compatible matrices may result in non-idempotency problems." |
1883 | + write(*,"(a)") "Mixing first scf iteration is *forced* although the sparsity pattern has changed..." |
1884 | + write(*,"(a)") "Mixing non-compatible matrices might result in problems." |
1885 | write(*,"(a)") "Please use a linear mixer for the first few steps to remove history effects." |
1886 | end if |
1887 | else if ( mix_scf_first .and. init_method < 0 ) then |
1888 | |
1889 | === modified file 'Src/m_spin.F90' |
1890 | --- Src/m_spin.F90 2019-01-13 16:11:47 +0000 |
1891 | +++ Src/m_spin.F90 2019-08-18 23:02:58 +0000 |
1892 | @@ -355,6 +355,8 @@ |
1893 | write(*,'(a)') repeat('#',60) |
1894 | write(*,'(a,t16,a,t60,a)') '#','Spin-orbit coupling is in beta','#' |
1895 | write(*,'(a,t13,a,t60,a)') '#','Several options may not be compatible','#' |
1896 | + call message("WARNING","This spin-orbit implementation uses a local approximation.") |
1897 | + call message("WARNING","You are strongly advised to use the newer version.") |
1898 | write(*,'(a)') repeat('#',60) |
1899 | end if |
1900 | |
1901 | |
1902 | === modified file 'Src/m_transiesta.F90' |
1903 | --- Src/m_transiesta.F90 2019-02-13 17:39:22 +0000 |
1904 | +++ Src/m_transiesta.F90 2019-08-18 23:02:58 +0000 |
1905 | @@ -48,7 +48,7 @@ |
1906 | sp_dist, sparse_pattern, & |
1907 | no_aux_cell, ucell, nsc, isc_off, no_u, na_u, lasto, xa, n_nzs, & |
1908 | H, S, DM, EDM, Ef, & |
1909 | - Qtot, Fermi_correct, DE_NEGF) |
1910 | + Qtot, Fermi_correct) |
1911 | |
1912 | use units, only : eV |
1913 | use alloc, only : re_alloc, de_alloc |
1914 | @@ -75,6 +75,8 @@ |
1915 | use m_ts_gf, only : read_Green |
1916 | use m_interpolate |
1917 | |
1918 | + use m_energies, only: NEGF_DE |
1919 | + |
1920 | ! ******************** |
1921 | ! * INPUT variables * |
1922 | ! ******************** |
1923 | @@ -94,7 +96,6 @@ |
1924 | real(dp), intent(in) :: Qtot |
1925 | real(dp), intent(inout) :: Ef |
1926 | logical, intent(in) :: Fermi_correct |
1927 | - real(dp), intent(inout) :: DE_NEGF |
1928 | |
1929 | ! ******************** IO descriptors ************************ |
1930 | integer, allocatable :: uGF(:) |
1931 | @@ -127,7 +128,7 @@ |
1932 | ! Note that this will *only* be updated in case V /= 0. |
1933 | ! This energy corresponds to the non-equilibrium energies: |
1934 | ! e \sum_i N_i * \mu_i |
1935 | - DE_NEGF = 0._dp |
1936 | + NEGF_DE = 0._dp |
1937 | |
1938 | if ( TSiscf == 1 ) then |
1939 | ! We need to initialize TRANSIESTA |
1940 | @@ -256,14 +257,14 @@ |
1941 | nq, uGF, nspin, na_u, lasto, & |
1942 | sp_dist, sparse_pattern, & |
1943 | no_u, n_nzs, & |
1944 | - H, S, DM, EDM, Ef, DE_NEGF) |
1945 | + H, S, DM, EDM, Ef, NEGF_DE) |
1946 | else |
1947 | call ts_fullk(N_Elec,Elecs, & |
1948 | nq, uGF, & |
1949 | ucell, nspin, na_u, lasto, & |
1950 | sp_dist, sparse_pattern, & |
1951 | no_u, n_nzs, & |
1952 | - H, S, DM, EDM, Ef, DE_NEGF) |
1953 | + H, S, DM, EDM, Ef, NEGF_DE) |
1954 | end if |
1955 | else if ( ts_method == TS_BTD ) then |
1956 | if ( ts_Gamma ) then |
1957 | @@ -271,14 +272,14 @@ |
1958 | nq, uGF, nspin, na_u, lasto, & |
1959 | sp_dist, sparse_pattern, & |
1960 | no_u, n_nzs, & |
1961 | - H, S, DM, EDM, Ef, DE_NEGF) |
1962 | + H, S, DM, EDM, Ef, NEGF_DE) |
1963 | else |
1964 | call ts_trik(N_Elec,Elecs, & |
1965 | nq, uGF, & |
1966 | ucell, nspin, na_u, lasto, & |
1967 | sp_dist, sparse_pattern, & |
1968 | no_u, n_nzs, & |
1969 | - H, S, DM, EDM, Ef, DE_NEGF) |
1970 | + H, S, DM, EDM, Ef, NEGF_DE) |
1971 | end if |
1972 | #ifdef SIESTA__MUMPS |
1973 | else if ( ts_method == TS_MUMPS ) then |
1974 | @@ -287,14 +288,14 @@ |
1975 | nq, uGF, nspin, na_u, lasto, & |
1976 | sp_dist, sparse_pattern, & |
1977 | no_u, n_nzs, & |
1978 | - H, S, DM, EDM, Ef, DE_NEGF) |
1979 | + H, S, DM, EDM, Ef, NEGF_DE) |
1980 | else |
1981 | call ts_mumpsk(N_Elec,Elecs, & |
1982 | nq, uGF, & |
1983 | ucell, nspin, na_u, lasto, & |
1984 | sp_dist, sparse_pattern, & |
1985 | no_u, n_nzs, & |
1986 | - H, S, DM, EDM, Ef, DE_NEGF) |
1987 | + H, S, DM, EDM, Ef, NEGF_DE) |
1988 | end if |
1989 | #endif |
1990 | else |
1991 | |
1992 | === modified file 'Src/m_ts_options.F90' |
1993 | --- Src/m_ts_options.F90 2019-06-11 08:38:16 +0000 |
1994 | +++ Src/m_ts_options.F90 2019-08-18 23:02:58 +0000 |
1995 | @@ -375,7 +375,7 @@ |
1996 | |
1997 | ! Whether we should always set the DM to bulk |
1998 | ! values (by reading in from electrode DM) |
1999 | - if ( TS_scf_mode == 1 ) then |
2000 | + if ( TS_scf_mode == 1 .or. .not. IsVolt ) then |
2001 | chars = 'bulk' |
2002 | else |
2003 | chars = 'diagon' |
2004 | |
2005 | === modified file 'Src/mixer.F' |
2006 | --- Src/mixer.F 2018-11-27 11:01:23 +0000 |
2007 | +++ Src/mixer.F 2019-08-18 23:02:58 +0000 |
2008 | @@ -30,7 +30,8 @@ |
2009 | use m_mixing_scf, only: scf_mix |
2010 | use m_mixing, only: mixing |
2011 | |
2012 | - use m_spin, only: h_spin_dim, SpOrb |
2013 | + use m_spin, only: spin |
2014 | + |
2015 | use parallel, only: IONode |
2016 | |
2017 | implicit none |
2018 | @@ -42,6 +43,7 @@ |
2019 | |
2020 | real(dp) :: dtmp |
2021 | integer :: iiscf, i, is |
2022 | + integer :: nspin_mix |
2023 | |
2024 | external :: mulliken |
2025 | !-------------------------------------------------------------------- BEGIN |
2026 | @@ -52,15 +54,17 @@ |
2027 | ! Mix Hamiltonian |
2028 | Xin => Hold |
2029 | Xout => H |
2030 | + nspin_mix = spin%H |
2031 | else |
2032 | ! Mix density matrix |
2033 | Xin => Dold |
2034 | Xout => Dscf |
2035 | + nspin_mix = spin%DM |
2036 | end if |
2037 | |
2038 | |
2039 | ! Create residual function to minimize |
2040 | - allocate(F(maxnh,h_spin_dim)) |
2041 | + allocate(F(maxnh,nspin_mix)) |
2042 | |
2043 | !$OMP parallel default(shared), private(dtmp,i) |
2044 | |
2045 | @@ -103,15 +107,15 @@ |
2046 | ! Upon exit Xout contains the mixed quantity |
2047 | select case ( mix_spin ) |
2048 | case ( MIX_SPIN_ALL ) |
2049 | - call mixing( scf_mix, maxnh, h_spin_dim, Xin, F, Xout) |
2050 | + call mixing( scf_mix, maxnh, nspin_mix, Xin, F, Xout) |
2051 | case ( MIX_SPIN_SPINOR ) |
2052 | - call mixing( scf_mix, maxnh, h_spin_dim, Xin, F, Xout, |
2053 | + call mixing( scf_mix, maxnh, nspin_mix, Xin, F, Xout, |
2054 | & nsub=2) |
2055 | case ( MIX_SPIN_SUM ) |
2056 | - call mixing( scf_mix, maxnh, h_spin_dim, Xin, F, Xout, |
2057 | + call mixing( scf_mix, maxnh, nspin_mix, Xin, F, Xout, |
2058 | & nsub=1) |
2059 | case ( MIX_SPIN_SUM_DIFF ) |
2060 | - call mixing( scf_mix, maxnh, h_spin_dim, Xin, F, Xout, |
2061 | + call mixing( scf_mix, maxnh, nspin_mix, Xin, F, Xout, |
2062 | & nsub=2) |
2063 | end select |
2064 | |
2065 | @@ -148,31 +152,23 @@ |
2066 | ! Correctly handle mixed quantity |
2067 | ! move over mixed quantity to "input" |
2068 | if ( mix_scf_first ) then |
2069 | - |
2070 | - ! always allow mixing |
2071 | -!$OMP do |
2072 | - do is = 1 , size(Xin, 2) |
2073 | - do i = 1 , size(Xin, 1) |
2074 | - Xin(i,is) = Xout(i,is) |
2075 | - end do |
2076 | - end do |
2077 | -!$OMP end do nowait |
2078 | - |
2079 | + |
2080 | + ! always allow mixing |
2081 | + ! I.e. we do nothing |
2082 | + |
2083 | else if ( iscf == 1 ) then |
2084 | |
2085 | - ! We are not allowed to mix the first SCF |
2086 | - ! Remember that Xout contains the MIXED |
2087 | - ! quantity and F is the current residual |
2088 | - ! hence: |
2089 | - ! Xout = Xin + F |
2090 | + ! We are not allowed to mix the first SCF |
2091 | + ! Remember that Xout contains the MIXED |
2092 | + ! quantity and F is the current residual |
2093 | + ! hence for no mixing we re-create Xout: |
2094 | + ! Xout = Xin + F |
2095 | !$OMP do |
2096 | - do is = 1 , size(Xin, 2) |
2097 | - do i = 1 , size(Xin, 1) |
2098 | - Xin(i,is) = Xin(i,is) + F(i,is) |
2099 | - ! we require that Xin == Xout: |
2100 | - Xout(i,is) = Xin(i,is) |
2101 | - end do |
2102 | - end do |
2103 | + do is = 1 , nspin_mix |
2104 | + do i = 1 , size(Xin, 1) |
2105 | + Xout(i,is) = Xin(i,is) + F(i,is) |
2106 | + end do |
2107 | + end do |
2108 | !$OMP end do nowait |
2109 | |
2110 | end if |
2111 | @@ -188,7 +184,7 @@ |
2112 | |
2113 | if (muldeb .and. (.not. MixH) ) then |
2114 | if (IONode) write (6,"(/a)") 'Using DM after mixing:' |
2115 | - if ( SpOrb .and. orbmoms) then |
2116 | + if ( spin%SO .and. orbmoms) then |
2117 | call moments( 1, na_u, no_u, maxnh, numh, listhptr, |
2118 | . listh, S, Dscf, isa, lasto, iaorb, iphorb, |
2119 | . indxuo ) |
2120 | |
2121 | === modified file 'Src/print_spin.F90' |
2122 | --- Src/print_spin.F90 2018-04-11 09:52:01 +0000 |
2123 | +++ Src/print_spin.F90 2019-08-18 23:02:58 +0000 |
2124 | @@ -2,10 +2,10 @@ |
2125 | ! |
2126 | ! Prints spin in output and CML files |
2127 | ! |
2128 | - use m_spin, only: nspin |
2129 | + use m_spin, only: spin |
2130 | use atomlist, only: no_l |
2131 | use sparse_matrices, only: listhptr, numh |
2132 | - use sparse_matrices, only: S, Dscf |
2133 | + use sparse_matrices, only: S, Dscf ! Dscf could have 1, 2, 4, or 8 components |
2134 | use siesta_cml |
2135 | use parallel, only: IOnode |
2136 | use precision, only: dp |
2137 | @@ -15,58 +15,73 @@ |
2138 | |
2139 | implicit none |
2140 | |
2141 | - real(dp), intent(out) :: qspin(4) |
2142 | + real(dp), intent(out) :: qspin(spin%Grid) |
2143 | |
2144 | integer :: ispin, io, j, ind |
2145 | real(dp) :: qaux |
2146 | real(dp) :: Stot ! Total spin magnitude |
2147 | real(dp) :: Svec(3) ! Total spin vector |
2148 | #ifdef MPI |
2149 | - real(dp) :: qtmp(4) |
2150 | -#endif |
2151 | - |
2152 | - if (nspin .ge. 2) then |
2153 | - do ispin = 1,nspin |
2154 | - qspin(ispin) = 0.0_dp |
2155 | - do io = 1,no_l |
2156 | - do j = 1,numh(io) |
2157 | - ind = listhptr(io)+j |
2158 | - qspin(ispin) = qspin(ispin) + Dscf(ind,ispin) * S(ind) |
2159 | - enddo |
2160 | - enddo |
2161 | - enddo |
2162 | - |
2163 | -#ifdef MPI |
2164 | - ! Global reduction of spin components |
2165 | - call globalize_sum(qspin(1:nspin),qtmp(1:nspin)) |
2166 | - qspin(1:nspin) = qtmp(1:nspin) |
2167 | -#endif |
2168 | - |
2169 | - if (nspin .eq. 2) then |
2170 | - |
2171 | - if (IOnode) then |
2172 | - Svec(1) = 0.0_dp |
2173 | - Svec(2) = 0.0_dp |
2174 | - Svec(3) = qspin(1) - qspin(2) |
2175 | - Stot = Svec(3) |
2176 | - write(6,'(5x,a,f10.5,2f10.1,f10.5)') 'spin moment: S , {S} = ', Stot, Svec |
2177 | - endif |
2178 | - if (cml_p) call cmlAddProperty(xf=mainXML, & |
2179 | - value=qspin(1)-qspin(2), dictref='siesta:stot', & |
2180 | - units='siestaUnits:spin') |
2181 | - |
2182 | - elseif (nspin .eq. 4) then |
2183 | - |
2184 | - call spnvec( nspin, qspin, qaux, Stot, Svec ) |
2185 | - if (IONode) then |
2186 | - write(6,'(5x,a,4f10.5)') 'spin moment: S , {S} = ', Stot, Svec |
2187 | - if (cml_p) then |
2188 | - call cmlAddProperty(xf=mainXML, value=Stot, & |
2189 | - dictref='siesta:stot', units='siestaUnits:spin') |
2190 | - call cmlAddProperty(xf=mainXML, value=Svec, & |
2191 | - dictref='siesta:svec', units='siestaUnits:spin') |
2192 | - endif !cml_p |
2193 | - endif |
2194 | - endif |
2195 | + real(dp) :: qtmp(spin%Grid) |
2196 | +#endif |
2197 | + |
2198 | + qspin(:) = 0.0_dp |
2199 | + |
2200 | + if ( spin%Grid < 2 ) return |
2201 | + |
2202 | + if ( spin%SO ) then |
2203 | + |
2204 | + do io = 1,no_l |
2205 | + do j = 1,numh(io) |
2206 | + ind = listhptr(io)+j |
2207 | + ! In the SOC case, hermitify Dscf |
2208 | + qspin(1:2) = qspin(1:2) + dscf(ind,1:2) * S(ind) |
2209 | + qspin(3) = qspin(3) + 0.5_dp*(dscf(ind,3)+dscf(ind,7)) * S(ind) |
2210 | + qspin(4) = qspin(4) + 0.5_dp*(dscf(ind,4)+dscf(ind,8)) * S(ind) |
2211 | + end do |
2212 | + end do |
2213 | + |
2214 | + else |
2215 | + |
2216 | + do io = 1,no_l |
2217 | + do j = 1,numh(io) |
2218 | + ind = listhptr(io)+j |
2219 | + qspin(:) = qspin(:) + Dscf(ind,:) * S(ind) |
2220 | + end do |
2221 | + end do |
2222 | + |
2223 | endif |
2224 | +#ifdef MPI |
2225 | + ! Global reduction of spin components |
2226 | + call globalize_sum(qspin(1:spin%Grid),qtmp(1:spin%Grid)) |
2227 | + qspin(1:spin%Grid) = qtmp(1:spin%Grid) |
2228 | +#endif |
2229 | + |
2230 | + ! We are left with printing out to stdout |
2231 | + if ( .not. IONode ) return |
2232 | + |
2233 | + if ( spin%Grid == 2) then |
2234 | + |
2235 | + Svec(1) = 0.0_dp |
2236 | + Svec(2) = 0.0_dp |
2237 | + Svec(3) = qspin(1) - qspin(2) |
2238 | + Stot = Svec(3) |
2239 | + write(6,'(5x,a,f10.5,2f10.1,f10.5)') 'spin moment: S , {S} = ', Stot, Svec |
2240 | + if (cml_p) call cmlAddProperty(xf=mainXML, & |
2241 | + value=qspin(1)-qspin(2), dictref='siesta:stot', & |
2242 | + units='siestaUnits:spin') |
2243 | + |
2244 | + else if ( spin%Grid == 4 ) then |
2245 | + |
2246 | + call spnvec( spin%Grid, qspin, qaux, Stot, Svec ) |
2247 | + write(6,'(5x,a,4f10.5)') 'spin moment: S , {S} = ', Stot, Svec |
2248 | + if (cml_p) then |
2249 | + call cmlAddProperty(xf=mainXML, value=Stot, & |
2250 | + dictref='siesta:stot', units='siestaUnits:spin') |
2251 | + call cmlAddProperty(xf=mainXML, value=Svec, & |
2252 | + dictref='siesta:svec', units='siestaUnits:spin') |
2253 | + end if !cml_p |
2254 | + |
2255 | + end if |
2256 | + |
2257 | end subroutine print_spin |
2258 | |
2259 | === modified file 'Src/read_options.F90' |
2260 | --- Src/read_options.F90 2019-08-16 10:13:21 +0000 |
2261 | +++ Src/read_options.F90 2019-08-18 23:02:58 +0000 |
2262 | @@ -445,9 +445,9 @@ |
2263 | |
2264 | ! Density Matrix Mixing (proportion of output DM in new input DM) |
2265 | wmix = fdf_get('DM.MixingWeight',0.25_dp) |
2266 | - if (ionode) then |
2267 | - write(6,6) 'redata: New DM Mixing Weight',wmix |
2268 | - endif |
2269 | +!!$ if (ionode) then |
2270 | +!!$ write(6,6) 'redata: New DM Mixing Weight',wmix |
2271 | +!!$ endif |
2272 | |
2273 | if (cml_p) then |
2274 | call cmlAddParameter( xf=mainXML,name='DM.MixingWeight', & |
2275 | |
2276 | === modified file 'Src/rhoofd.F90' |
2277 | --- Src/rhoofd.F90 2016-09-13 13:22:20 +0000 |
2278 | +++ Src/rhoofd.F90 2019-08-18 23:02:58 +0000 |
2279 | @@ -294,7 +294,7 @@ |
2280 | r2sp = sum(dxsp**2) |
2281 | if ( r2sp < r2cut(is) ) then |
2282 | !$OMP critical |
2283 | - call all_phi( is, +1, dxsp, nphiloc, phia(:,isp) ) |
2284 | + call all_phi( is, +1, dxsp, maxoa, nphiloc, phia(:,isp) ) |
2285 | !$OMP end critical |
2286 | else |
2287 | phia(:,isp) = 0.0_dp |
2288 | |
2289 | === modified file 'Src/rhoofdsp.f' |
2290 | --- Src/rhoofdsp.f 2016-01-25 16:00:16 +0000 |
2291 | +++ Src/rhoofdsp.f 2019-08-18 23:02:58 +0000 |
2292 | @@ -306,7 +306,8 @@ |
2293 | dxsp(:) = xdsp(:,isp) + xdop(:,iop) - dxa(:,ia) |
2294 | r2sp = sum(dxsp**2) |
2295 | if (r2sp.lt.r2cut(is)) then |
2296 | - call all_phi( is, +1, dxsp, nphiloc, phia(:,isp) ) |
2297 | + call all_phi( is, +1, dxsp, maxoa, |
2298 | + & nphiloc, phia(:,isp) ) |
2299 | else |
2300 | phia(:,isp) = 0.0_dp |
2301 | endif |
2302 | |
2303 | === modified file 'Src/siesta_analysis.F' |
2304 | --- Src/siesta_analysis.F 2018-06-25 11:33:42 +0000 |
2305 | +++ Src/siesta_analysis.F 2019-08-18 23:02:58 +0000 |
2306 | @@ -46,8 +46,7 @@ |
2307 | use m_energies |
2308 | use m_steps, only: final |
2309 | use m_ntm |
2310 | - use m_spin, only: nspin, spinor_dim, h_spin_dim |
2311 | - use m_spin, only: SpOrb, NonCol, SPpol, NoMagn |
2312 | + use m_spin, only: spin |
2313 | use m_dipol |
2314 | use m_eo |
2315 | use m_forces, only: fa |
2316 | @@ -68,15 +67,15 @@ |
2317 | |
2318 | real(dp) :: dummy_str(3,3) |
2319 | real(dp) :: dummy_strl(3,3) |
2320 | - real(dp) :: qspin(4) ! Local |
2321 | + real(dp) :: qspin(spin%Grid) ! Local |
2322 | |
2323 | - real(dp) :: polxyz(3,nspin) ! Autom., small |
2324 | - real(dp) :: polR(3,nspin) ! Autom., small |
2325 | + real(dp) :: polxyz(3,spin%Grid) ! Autom., small |
2326 | + real(dp) :: polR(3,spin%Grid) ! Autom., small |
2327 | real(dp) :: qaux |
2328 | real(dp), pointer :: ebk(:,:,:) ! Band energies |
2329 | |
2330 | integer :: j, ix, ind, ik, io, ispin |
2331 | - integer :: wfs_band_min, wfs_band_max |
2332 | + integer :: wfs_band_min, wfs_band_max, max_n_states |
2333 | real(dp) :: g2max, current_ef |
2334 | type(filesOut_t) :: filesOut ! blank output file names |
2335 | |
2336 | @@ -127,7 +126,7 @@ |
2337 | |
2338 | if (fdf_get("Read-H-from-file",.false.)) then |
2339 | if (SIESTA_worker) then |
2340 | - call read_spmatrix(maxnh, no_l, h_spin_dim, numh, |
2341 | + call read_spmatrix(maxnh, no_l, spin%H, numh, |
2342 | . listhptr, listh, H, found, userfile="H_IN") |
2343 | if (.not. found) call die("Could not find H_IN") |
2344 | current_ef = ef |
2345 | @@ -137,7 +136,7 @@ |
2346 | |
2347 | #ifdef SIESTA__PEXSI |
2348 | if (fdf_get("PEXSI.DOS",.false.)) then |
2349 | - call pexsi_dos(no_u, no_l, spinor_dim, |
2350 | + call pexsi_dos(no_u, no_l, spin%spinor, |
2351 | $ maxnh, numh, listhptr, listh, H, S, qtot, ef) |
2352 | |
2353 | endif |
2354 | @@ -263,6 +262,17 @@ |
2355 | ! latest DM, although this is probably too much). |
2356 | ! See the logic in siesta_forces. |
2357 | |
2358 | +! Setup the number of states depending on the used method |
2359 | +! For polarized calculations we use no_u and separate spin-channels. |
2360 | +! For NC/SO we have mixed spin-channels and separating makes no |
2361 | +! sense. |
2362 | + if ( spin%Grid == 4 ) then |
2363 | +! We are NC/SO |
2364 | + max_n_states = no_u * 2 |
2365 | + else |
2366 | + max_n_states = no_u |
2367 | + end if |
2368 | + |
2369 | ! Find and print wavefunctions at selected k-points |
2370 | !** This uses H,S, and xa |
2371 | if (nwk.gt.0) then |
2372 | @@ -270,7 +280,7 @@ |
2373 | if (IONode) print "(a)", |
2374 | $ "Writing WFSX for selected k-points in " |
2375 | $ // trim(wfs_filename) |
2376 | - call wwave( no_s, h_spin_dim, spinor_dim, no_u, no_l, maxnh, |
2377 | + call wwave( no_s, spin, no_u, no_l, maxnh, |
2378 | & nwk, |
2379 | & numh, listhptr, listh, H, S, Ef, xijo, indxuo, |
2380 | & gamma_wavefunctions, nwk, wfk, no_u, occtol ) |
2381 | @@ -278,19 +288,20 @@ |
2382 | |
2383 | |
2384 | !** This uses H,S, and xa |
2385 | - if (write_coop) then |
2386 | + if ( write_coop ) then |
2387 | ! Output the wavefunctions for the kpoints in the SCF set |
2388 | ! Note that we allow both a band number and an energy range |
2389 | ! The user is responsible for using appropriate values. |
2390 | wfs_band_min = fdf_get("WFS.BandMin",1) |
2391 | - wfs_band_max = fdf_get("WFS.BandMax",no_u) |
2392 | - call setup_wfs_list(nkpnt,no_u,wfs_band_min,wfs_band_max, |
2393 | + wfs_band_max = fdf_get("WFS.BandMax",max_n_states) |
2394 | + call setup_wfs_list(nkpnt,max_n_states, |
2395 | + $ wfs_band_min,wfs_band_max, |
2396 | $ use_scf_weights=.true., |
2397 | $ use_energy_window=.true.) |
2398 | wfs_filename = trim(slabel)//".fullBZ.WFSX" |
2399 | if (IONode) print "(a)", "Writing WFSX for COOP/COHP in " |
2400 | $ // trim(wfs_filename) |
2401 | - call wwave( no_s, h_spin_dim, spinor_dim, no_u, no_l, maxnh, |
2402 | + call wwave( no_s, spin, no_u, no_l, maxnh, |
2403 | . nkpnt, |
2404 | . numh, listhptr, listh, H, S, Ef, xijo, indxuo, |
2405 | . gamma_SCF, nkpnt, kpoint, no_u, occtol) |
2406 | @@ -299,82 +310,101 @@ |
2407 | ! Compute bands |
2408 | !** This uses H,S, and xa |
2409 | nullify( ebk ) |
2410 | - call re_alloc( ebk, 1, no_u, 1, spinor_dim, 1, maxbk, |
2411 | - & 'ebk', 'siesta_analysis' ) |
2412 | - |
2413 | - if (nbk.gt.0) then |
2414 | + if ( spin%Grid == 4 ) then |
2415 | + call re_alloc( ebk, 1, no_u*2, 1, 1, 1, maxbk, |
2416 | + & 'ebk', 'siesta_analysis' ) |
2417 | + else |
2418 | + call re_alloc( ebk, 1, no_u, 1, spin%spinor, 1, maxbk, |
2419 | + & 'ebk', 'siesta_analysis' ) |
2420 | + end if |
2421 | + |
2422 | + if ( nbk > 0 ) then |
2423 | if (IONode) print "(a)", "Computing bands..." |
2424 | getPSI = fdf_get('WFS.Write.For.Bands', .false.) |
2425 | if (getPSI) then |
2426 | - wfs_filename = trim(slabel)//".bands.WFSX" |
2427 | - if (IONode) print "(a)", "Writing WFSX for bands in " |
2428 | - $ // trim(wfs_filename) |
2429 | - wfs_band_min = fdf_get("WFS.BandMin",1) |
2430 | - wfs_band_max = fdf_get("WFS.BandMax",no_u) |
2431 | - call setup_wfs_list(nbk,no_u,wfs_band_min,wfs_band_max, |
2432 | - $ use_scf_weights=.false., |
2433 | - $ use_energy_window=.false.) |
2434 | - endif |
2435 | - call bands( no_s, h_spin_dim, spinor_dim, no_u, no_l, maxnh, |
2436 | + wfs_filename = trim(slabel)//".bands.WFSX" |
2437 | + if (IONode) print "(a)", "Writing WFSX for bands in " |
2438 | + $ // trim(wfs_filename) |
2439 | + wfs_band_min = fdf_get("WFS.BandMin",1) |
2440 | + wfs_band_max = fdf_get("WFS.BandMax",max_n_states) |
2441 | + call setup_wfs_list(nbk,max_n_states, |
2442 | + $ wfs_band_min,wfs_band_max, |
2443 | + $ use_scf_weights=.false., |
2444 | + $ use_energy_window=.false.) |
2445 | + end if |
2446 | + call bands( no_s, spin, no_u, no_l, maxnh, |
2447 | . maxbk, |
2448 | . numh, listhptr, listh, H, S, Ef, xijo, indxuo, |
2449 | - . .true., nbk, bk, ebk, occtol, getPSI ) |
2450 | - if (IOnode) then |
2451 | + . .true., nbk, bk, ebk, occtol, getPSI ) |
2452 | + |
2453 | + if ( IOnode ) then |
2454 | if ( writbk ) then |
2455 | - write(6,'(/,a,/,a4,a12)') |
2456 | - & 'siesta: Band k vectors (Bohr**-1):', 'ik', 'k' |
2457 | + write(6,'(/,a,/,a4,tr1,a12)') |
2458 | + & 'siesta: Band k vectors (Bohr**-1):', 'ik', 'k' |
2459 | do ik = 1,nbk |
2460 | - write(6,'(i4,3f12.6)') ik, (bk(ix,ik),ix=1,3) |
2461 | - enddo |
2462 | - endif |
2463 | + write(6,'(i4,3(tr1,f12.6))') ik, (bk(ix,ik),ix=1,3) |
2464 | + end do |
2465 | + end if |
2466 | |
2467 | if ( writb ) then |
2468 | - write(6,'(/,a,/,a4,a3,a7)') |
2469 | - & 'siesta: Band energies (eV):', 'ik', 'is', 'eps' |
2470 | - do ispin = 1, spinor_dim |
2471 | + if ( spin%Grid == 4 ) then |
2472 | + write(6,'(/,a,/,a4,tr1,a9)') |
2473 | + & 'siesta: Band energies (eV):', 'ik', 'eps' |
2474 | do ik = 1,nbk |
2475 | - write(6,'(i4,i3,10f7.2)') |
2476 | - & ik, ispin, (ebk(io,ispin,ik)/eV,io=1,min(10,no_u)) |
2477 | - if (no_u.gt.10) write(6,'(7x,10f7.2)') |
2478 | - & (ebk(io,ispin,ik)/eV,io=11,no_u) |
2479 | + write(6,'(i4,10(tr1,f9.4))') |
2480 | + & ik, (ebk(io,1,ik)/eV,io=1,min(10,2*no_u)) |
2481 | + if ( 2*no_u > 10 ) write(6,'(4x,10(tr1,f9.4))') |
2482 | + & (ebk(io,1,ik)/eV,io=11,no_u*2) |
2483 | + end do |
2484 | + |
2485 | + else |
2486 | + write(6,'(/,a,/,a4,a3,tr1,a9)') |
2487 | + & 'siesta: Band energies (eV):', 'ik', 'is', 'eps' |
2488 | + do ispin = 1, spin%spinor |
2489 | + do ik = 1,nbk |
2490 | + write(6,'(i4,i3,10(tr1,f9.4))') |
2491 | + & ik, ispin, (ebk(io,ispin,ik)/eV,io=1,min(10,no_u)) |
2492 | + if ( no_u > 10 ) write(6,'(7x,10(tr1,f9.4))') |
2493 | + & (ebk(io,ispin,ik)/eV,io=11,no_u) |
2494 | + enddo |
2495 | enddo |
2496 | - enddo |
2497 | + end if |
2498 | endif |
2499 | + |
2500 | endif |
2501 | endif |
2502 | |
2503 | ! Print eigenvalues |
2504 | - if (IOnode .and. writeig) then |
2505 | - if ((isolve.eq.SOLVE_DIAGON .or. |
2506 | - & ((isolve.eq.SOLVE_MINIM) .and. minim_calc_eigenvalues)) |
2507 | - & .and. no_l.lt.1000) then |
2508 | - if ( h_spin_dim <= 2 ) then |
2509 | - write(6,'(/,a,/,a4,a3,a7)') |
2510 | - & 'siesta: Eigenvalues (eV):', 'ik', 'is', 'eps' |
2511 | - do ik = 1,nkpnt |
2512 | - do ispin = 1,spinor_dim |
2513 | - write(6,'(i4,i3,10f7.2)') |
2514 | + if ( IOnode .and. writeig .and. no_l < 1000 .and. |
2515 | + & (isolve.eq.SOLVE_DIAGON .or. |
2516 | + & (isolve.eq.SOLVE_MINIM .and. minim_calc_eigenvalues)) ) then |
2517 | + |
2518 | + if ( spin%Grid == 4 ) then |
2519 | + write(6,'(/,a)') 'siesta: Eigenvalues (eV):' |
2520 | + do ik = 1,nkpnt |
2521 | + write(6,'(a,i6)') 'ik =', ik |
2522 | + write(6,'(10(tr1,f9.4))') (eo(io,1,ik)/eV,io=1,2*neigwanted) |
2523 | + end do |
2524 | + |
2525 | + else |
2526 | + write(6,'(/,a,/,a4,a3,tr1,a9)') |
2527 | + & 'siesta: Eigenvalues (eV):', 'ik', 'is', 'eps' |
2528 | + do ik = 1,nkpnt |
2529 | + do ispin = 1, spin%spinor |
2530 | + write(6,'(i4,i3,10(tr1,f9.4))') |
2531 | & ik,ispin,(eo(io,ispin,ik)/eV,io=1,min(10,neigwanted)) |
2532 | - if (no_u.gt.10) write(6,'(7x,10f7.2)') |
2533 | + if (no_u.gt.10) write(6,'(7x,10(tr1,f9.4))') |
2534 | & (eo(io,ispin,ik)/eV,io=11,neigwanted) |
2535 | - enddo |
2536 | - enddo |
2537 | - else |
2538 | - write(6,'(/,a)') 'siesta: Eigenvalues (eV):' |
2539 | - do ik = 1,nkpnt |
2540 | - write(6,'(a,i6)') 'ik =', ik |
2541 | - write(6,'(10f7.2)') |
2542 | - & ((eo(io,ispin,ik)/eV,io=1,neigwanted),ispin=1,2) |
2543 | - enddo |
2544 | - endif |
2545 | - write(6,'(a,f15.6,a)') 'siesta: Fermi energy =', ef/eV, ' eV' |
2546 | - endif |
2547 | + end do |
2548 | + end do |
2549 | + end if |
2550 | + write(6,'(a,f15.6,a)') 'siesta: Fermi energy =', ef/eV, ' eV' |
2551 | endif |
2552 | |
2553 | if (((isolve.eq.SOLVE_DIAGON).or. |
2554 | & ((isolve.eq.SOLVE_MINIM).and.minim_calc_eigenvalues)) |
2555 | & .and.IOnode) |
2556 | - & call ioeig(eo,ef,neigwanted,nspin,nkpnt,no_u,spinor_dim, |
2557 | + & call ioeig(eo,ef,neigwanted,spin%H,nkpnt,no_u,spin%spinor, |
2558 | & nkpnt,kpoint, kweight) |
2559 | |
2560 | |
2561 | @@ -430,7 +460,7 @@ |
2562 | ! Calculation of the bulk polarization using the Berry phase |
2563 | ! formulas by King-Smith and Vanderbilt |
2564 | if (nkpol.gt.0 .and. .not.bornz) then |
2565 | - if (NonCol .or. SpOrb) then |
2566 | + if ( spin%NCol .or. spin%SO ) then |
2567 | if (IOnode) then |
2568 | write(6,'(/a)') |
2569 | . 'siesta_analysis: bulk polarization implemented only for' |
2570 | @@ -439,7 +469,7 @@ |
2571 | endif |
2572 | else |
2573 | call KSV_pol(na_u, na_s, xa_last, rmaxo, scell_last, |
2574 | - & ucell_last,no_u, no_l, no_s, nspin, qspin, |
2575 | + & ucell_last,no_u, no_l, no_s, spin%Grid, qspin, |
2576 | & maxnh, nkpol, numh, listhptr, listh, |
2577 | & H, S, xijo, indxuo, isa, iphorb, |
2578 | & iaorb, lasto, shape, |
2579 | @@ -449,7 +479,7 @@ |
2580 | |
2581 | ! Calculation of the optical conductivity |
2582 | call optical(na_u, na_s, xa_last, scell_last, ucell_last, |
2583 | - & no_u, no_l, no_s, nspin, qspin, |
2584 | + & no_u, no_l, no_s, spin%Grid, qspin, |
2585 | & maxnh, numh, listhptr, listh, H, S, xijo, |
2586 | $ indxuo, ebk, ef, temp, |
2587 | & isa, iphorb, iphKB, lasto, lastkb, shape ) |
2588 | @@ -479,7 +509,7 @@ |
2589 | g2max = g2cut |
2590 | dummy_str = 0.0 |
2591 | dummy_strl = 0.0 |
2592 | - call dhscf( nspin, no_s, iaorb, iphorb, no_l, |
2593 | + call dhscf( spin%Grid, no_s, iaorb, iphorb, no_l, |
2594 | . no_u, na_u, na_s, isa, xa_last, indxua, |
2595 | & ntm, 0, 0, 0, filesOut, |
2596 | & maxnh, numh, listhptr, listh, Dscf, Datm, |
2597 | |
2598 | === modified file 'Src/siesta_dicts.F90' |
2599 | --- Src/siesta_dicts.F90 2018-09-06 10:00:24 +0000 |
2600 | +++ Src/siesta_dicts.F90 2019-08-18 23:02:58 +0000 |
2601 | @@ -316,8 +316,19 @@ |
2602 | ('E.spin_orbit'.kvp.Eso) |
2603 | variables = variables // & |
2604 | ('E.ldau'.kvp.Eldau) |
2605 | - variables = variables // & |
2606 | - ('E.negf'.kvp.DE_NEGF) |
2607 | + |
2608 | + variables = variables // & |
2609 | + ('E.negf.dN'.kvp.NEGF_DE) |
2610 | + variables = variables // & |
2611 | + ('E.negf.spin_orbit'.kvp.NEGF_Eso) |
2612 | + variables = variables // & |
2613 | + ('E.negf.harris'.kvp.NEGF_Eharrs) |
2614 | + variables = variables // & |
2615 | + ('E.negf.total'.kvp.NEGF_Etot) |
2616 | + variables = variables // & |
2617 | + ('E.negf.kinetic'.kvp.NEGF_Ekin) |
2618 | + variables = variables // & |
2619 | + ('E.negf.band_structure'.kvp.NEGF_Ebs) |
2620 | |
2621 | ! Add the number of charges to the system |
2622 | variables = variables // & |
2623 | |
2624 | === modified file 'Src/siesta_forces.F' |
2625 | --- Src/siesta_forces.F 2018-09-24 07:27:11 +0000 |
2626 | +++ Src/siesta_forces.F 2019-08-18 23:02:58 +0000 |
2627 | @@ -84,7 +84,6 @@ |
2628 | use m_pexsi, only: pexsi_finalize_scfloop |
2629 | #endif |
2630 | |
2631 | - use m_energies, only: DE_NEGF |
2632 | use m_ts_options, only : N_Elec |
2633 | use m_ts_method |
2634 | use m_ts_global_vars, only: TSmode, TSinit, TSrun |
2635 | @@ -380,7 +379,7 @@ |
2636 | call transiesta(iscf,spin%H, |
2637 | & block_dist, sparse_pattern, Gamma_Scf, ucell, nsc, |
2638 | & isc_off, no_u, na_u, lasto, xa, maxnh, H, S, |
2639 | - & Dscf, Escf, Ef, Qtot, .true., DE_NEGF) |
2640 | + & Dscf, Escf, Ef, Qtot, .true.) |
2641 | |
2642 | ! We will not have not converged as we have just |
2643 | ! changed the Fermi-level |
2644 | |
2645 | === modified file 'Src/spher_harm.f' |
2646 | --- Src/spher_harm.f 2017-02-19 19:26:15 +0000 |
2647 | +++ Src/spher_harm.f 2019-08-18 23:02:58 +0000 |
2648 | @@ -68,12 +68,15 @@ |
2649 | PARAMETER (TINY=1.e-14_dp, ZERO=0._dp, HALF=0.5_dp, ONE=1._dp, |
2650 | . TWO=2._dp, THREE=3._dp, SIX=6._dp) |
2651 | |
2652 | + real(dp), parameter :: pi = 3.14159265358979323846264338327950_dp |
2653 | + real(dp), parameter :: pi4 = 4 * pi |
2654 | + |
2655 | C Internal variables |
2656 | INTEGER |
2657 | - . I, ILM, ILM0, L, LMXMX, M, MS |
2658 | + . I, ILM, ILM0, L, LMXMX, M |
2659 | REAL(DP) |
2660 | . C(0:MAXLP1*MAXLP1), COSM, COSMM1, COSPHI, |
2661 | - . ZP(0:MAXLP1,0:MAXLP1), FAC, FOURPI, GY(3), |
2662 | + . ZP(0:MAXLP1,0:MAXLP1), FAC, GY(3), |
2663 | . P(0:MAXLP1,0:MAXLP1), |
2664 | . RL(-1:MAXL), RSIZE, RX, RY, RZ, RXY, |
2665 | . SINM, SINMM1, SINPHI, YY |
2666 | @@ -83,11 +86,10 @@ |
2667 | C Evaluate normalization constants once and for all |
2668 | IF (LMAX.GT.LMXMX) THEN |
2669 | IF (LMAX.GT.MAXL) call die('YLM: MAXL too small') |
2670 | - FOURPI=TWO**4*ATAN(ONE) |
2671 | DO 20 L=0,LMAX |
2672 | ILM0=L*L+L |
2673 | DO 15 M=0,L |
2674 | - FAC=(2*L+1)/FOURPI |
2675 | + FAC=(2*L+1)/pi4 |
2676 | DO 10 I=L-M+1,L+M |
2677 | FAC=FAC/I |
2678 | 10 CONTINUE |
2679 | @@ -202,27 +204,25 @@ |
2680 | SINM=ZERO |
2681 | DO 90 M=0,LMAX |
2682 | DO 80 L=M,LMAX |
2683 | - DO 75 MS = -1,1,2 |
2684 | - IF (MS.EQ.-1) THEN |
2685 | - ILM=L*L+L-M |
2686 | - YY=C(ILM)*P(L,M)*SINM |
2687 | - GY(1)=(-ZP(L,M))*RX *RZ *SINM - P(L,M)*M*COSM*SINPHI/RXY |
2688 | - GY(2)=(-ZP(L,M))*RY *RZ *SINM + P(L,M)*M*COSM*COSPHI/RXY |
2689 | - GY(3)= ZP(L,M)*RXY*RXY*SINM |
2690 | - ELSE |
2691 | - ILM=L*L+L+M |
2692 | - YY=C(ILM)*P(L,M)*COSM |
2693 | - GY(1)=(-ZP(L,M))*RX *RZ *COSM + P(L,M)*M*SINM*SINPHI/RXY |
2694 | - GY(2)=(-ZP(L,M))*RY *RZ *COSM - P(L,M)*M*SINM*COSPHI/RXY |
2695 | - GY(3)= ZP(L,M)*RXY*RXY*COSM |
2696 | - ENDIF |
2697 | - GY(1)= GY(1)*C(ILM)/RSIZE |
2698 | - GY(2)= GY(2)*C(ILM)/RSIZE |
2699 | - GY(3)= GY(3)*C(ILM)/RSIZE |
2700 | - RLY(ILM)=RL(L)*YY |
2701 | - GRLY(1,ILM)= RX*L*RL(L-1)*YY + RL(L)*GY(1) |
2702 | - GRLY(2,ILM)= RY*L*RL(L-1)*YY + RL(L)*GY(2) |
2703 | - GRLY(3,ILM)= RZ*L*RL(L-1)*YY + RL(L)*GY(3) |
2704 | + ILM=L*L+L-M |
2705 | + GY(1)=(-ZP(L,M))*RX *RZ *SINM - P(L,M)*M*COSM*SINPHI/RXY |
2706 | + GY(2)=(-ZP(L,M))*RY *RZ *SINM + P(L,M)*M*COSM*COSPHI/RXY |
2707 | + GY(3)= ZP(L,M)*RXY*RXY*SINM |
2708 | + YY=C(ILM)*P(L,M)*SINM |
2709 | + RLY(ILM)=RL(L)*YY |
2710 | + GRLY(1,ILM)= RX*L*RL(L-1)*YY + RL(L)*GY(1)*C(ILM)/RSIZE |
2711 | + GRLY(2,ILM)= RY*L*RL(L-1)*YY + RL(L)*GY(2)*C(ILM)/RSIZE |
2712 | + GRLY(3,ILM)= RZ*L*RL(L-1)*YY + RL(L)*GY(3)*C(ILM)/RSIZE |
2713 | + |
2714 | + ILM=L*L+L+M |
2715 | + GY(1)=(-ZP(L,M))*RX *RZ *COSM + P(L,M)*M*SINM*SINPHI/RXY |
2716 | + GY(2)=(-ZP(L,M))*RY *RZ *COSM - P(L,M)*M*SINM*COSPHI/RXY |
2717 | + GY(3)= ZP(L,M)*RXY*RXY*COSM |
2718 | + YY=C(ILM)*P(L,M)*COSM |
2719 | + RLY(ILM)=RL(L)*YY |
2720 | + GRLY(1,ILM)= RX*L*RL(L-1)*YY + RL(L)*GY(1)*C(ILM)/RSIZE |
2721 | + GRLY(2,ILM)= RY*L*RL(L-1)*YY + RL(L)*GY(2)*C(ILM)/RSIZE |
2722 | + GRLY(3,ILM)= RZ*L*RL(L-1)*YY + RL(L)*GY(3)*C(ILM)/RSIZE |
2723 | 75 CONTINUE |
2724 | 80 CONTINUE |
2725 | COSMM1=COSM |
2726 | |
2727 | === added file 'Src/ts_energies.F90' |
2728 | --- Src/ts_energies.F90 1970-01-01 00:00:00 +0000 |
2729 | +++ Src/ts_energies.F90 2019-08-18 23:02:58 +0000 |
2730 | @@ -0,0 +1,206 @@ |
2731 | +! |
2732 | +! Copyright (C) 1996-2016 The SIESTA group |
2733 | +! This file is distributed under the terms of the |
2734 | +! GNU General Public License: see COPYING in the top directory |
2735 | +! or http://www.gnu.org/copyleft/gpl.txt. |
2736 | +! See Docs/Contributors.txt for a list of contributors. |
2737 | +! |
2738 | +! This code segment has been fully created by: |
2739 | +! Nick Papior Andersen, 2019, nickpapior@gmail.com |
2740 | +! Please conctact the author, prior to re-using this code. |
2741 | + |
2742 | +! Module for calculating energy contributions for the transiesta |
2743 | +! calculations. |
2744 | +! Effectively many of the energy contributions stem from Hamiltonian |
2745 | +! and/or DM elements. |
2746 | +! However, in TranSiesta we only update/use a subset of the full |
2747 | +! matrices. As such the energies should only be calculated |
2748 | +! on the used elements rather than the full. |
2749 | +! |
2750 | +! There are many more elements that need to be split, while currently |
2751 | +! we only calculate a subset of what is actually needed. |
2752 | +! The main problem in calculating NEGF energies is: |
2753 | +! 1. the open-boundary problem, and |
2754 | +! 2. how to handle real-space energies such as Exc from dhscf. |
2755 | +module ts_energies_m |
2756 | + |
2757 | + implicit none |
2758 | + |
2759 | +contains |
2760 | + |
2761 | + subroutine ts_compute_energies() |
2762 | + |
2763 | + use precision, only: dp |
2764 | + use m_ts_options, only: N_Elec, Elecs |
2765 | + use m_spin, only: spin |
2766 | + |
2767 | + use sparse_matrices, only: dit => block_dist |
2768 | + use sparse_matrices, only: n_nzs => maxnh |
2769 | + use sparse_matrices, only: Dold, Dscf, H |
2770 | + use sparse_matrices, only: H_kin_1D, H_vkb_1D, H_so_2D |
2771 | + use sparse_matrices, only: sp => sparse_pattern |
2772 | + |
2773 | + use m_ts_method |
2774 | + use parallel, only : Node |
2775 | +#ifdef MPI |
2776 | + use mpi_siesta |
2777 | +#endif |
2778 | + use class_OrbitalDistribution |
2779 | + use class_Sparsity |
2780 | + use class_dSpData1D |
2781 | + use class_dSpData2D |
2782 | + |
2783 | + use geom_helper, only : UCORB |
2784 | + use m_ts_electype, only: Elec |
2785 | + use m_energies, only: NEGF_Ebs, NEGF_Ekin, NEGF_Eso, NEGF_Etot, NEGF_Enl |
2786 | + use m_energies, only: NEGF_DEharr |
2787 | + |
2788 | +! ********************** |
2789 | +! * LOCAL variables * |
2790 | +! ********************** |
2791 | + integer, pointer :: l_ncol(:), l_ptr(:), l_col(:) |
2792 | + integer :: no_lo, no_u, lio, io, ind, jo, ir, jr, r, ispin |
2793 | + real(dp), pointer :: H_vkb(:), H_kin(:), H_so(:,:) |
2794 | + real(dp) :: Etmp(5,0:1+1+N_Elec*2) |
2795 | +#ifdef MPI |
2796 | + real(dp) :: tmp(5,0:1+1+N_Elec*2) |
2797 | + integer :: MPIerror |
2798 | +#endif |
2799 | + |
2800 | + H_vkb => val(H_vkb_1D) |
2801 | + H_kin => val(H_kin_1D) |
2802 | + if ( spin%SO ) then |
2803 | + H_so => val(H_so_2D) |
2804 | + end if |
2805 | + |
2806 | + ! Retrieve information about the sparsity pattern |
2807 | + call attach(sp, & |
2808 | + n_col=l_ncol,list_ptr=l_ptr,list_col=l_col, & |
2809 | + nrows=no_lo,nrows_g=no_u) |
2810 | + |
2811 | + ! Initialize energies |
2812 | + Etmp(:,:) = 0._dp |
2813 | + |
2814 | +!$OMP parallel do default(shared), & |
2815 | +!$OMP&private(lio,io,ir,ind,jo,jr,r,ispin), & |
2816 | +!$OMP&reduction(+:Etmp) |
2817 | + do lio = 1 , no_lo |
2818 | + |
2819 | + ! obtain the global index of the orbital. |
2820 | + io = index_local_to_global(dit,lio,Node) |
2821 | + ir = orb_type(io) |
2822 | + |
2823 | + ! Loop number of entries in the row... (index frame) |
2824 | + do ind = l_ptr(lio) + 1 , l_ptr(lio) + l_ncol(lio) |
2825 | + |
2826 | + ! as the local sparsity pattern is a super-cell pattern, |
2827 | + ! we need to check the unit-cell orbital |
2828 | + ! The unit-cell column index |
2829 | + jo = UCORB(l_col(ind),no_u) |
2830 | + jr = orb_type(jo) |
2831 | + |
2832 | + if ( all((/ir,jr/) == TYP_BUFFER) ) then |
2833 | + r = 1 ! buffer |
2834 | + else if ( any((/ir,jr/) == TYP_BUFFER) ) then |
2835 | + r = 0 ! other |
2836 | + else if ( all((/ir,jr/) == TYP_DEVICE) ) then |
2837 | + r = 2 ! device |
2838 | + else if ( any((/ir,jr/) == TYP_DEVICE) ) then |
2839 | + r = 4+(ir+jr-1)*2 ! device/electrode |
2840 | + else if ( ir == jr ) then |
2841 | + r = 3+(ir-1)*2 ! electrode/electrode |
2842 | + else |
2843 | + r = 0 ! other |
2844 | + end if |
2845 | + |
2846 | + ! Ebs |
2847 | + if ( spin%SO ) then |
2848 | + Etmp(1,r) = Etmp(1,r) + H(ind,1) * Dscf(ind,1) & |
2849 | + + H(ind,2) * Dscf(ind,2) & |
2850 | + + H(ind,3) * Dscf(ind,7) & |
2851 | + + H(ind,4) * Dscf(ind,8) & |
2852 | + - H(ind,5) * Dscf(ind,5) & |
2853 | + - H(ind,6) * Dscf(ind,6) & |
2854 | + + H(ind,7) * Dscf(ind,3) & |
2855 | + + H(ind,8) * Dscf(ind,4) |
2856 | + else if ( spin%NCol ) then |
2857 | + Etmp(1,r) = Etmp(1,r) + H(ind,1) * Dscf(ind,1) & |
2858 | + + H(ind,2) * Dscf(ind,2) & |
2859 | + + (H(ind,3) * Dscf(ind,3) & |
2860 | + + H(ind,4) * Dscf(ind,4) ) * 2 |
2861 | + else |
2862 | + Etmp(1,r) = Etmp(1,r) + sum(H(ind,:) * Dscf(ind,:) ) |
2863 | + end if |
2864 | + |
2865 | + do ispin = 1, spin%spinor |
2866 | + ! Ekin |
2867 | + Etmp(2,r) = Etmp(2,r) + H_kin(ind) * Dscf(ind,ispin) |
2868 | + ! Enl |
2869 | + Etmp(3,r) = Etmp(3,r) + H_vkb(ind) * Dscf(ind,ispin) |
2870 | + end do |
2871 | + |
2872 | + ! Eso |
2873 | + if ( spin%SO ) then |
2874 | + Etmp(4,r) = Etmp(4,r) + H_so(ind,1)*Dscf(ind,7) + H_so(ind,2)*Dscf(ind,8) & |
2875 | + + H_so(ind,5)*Dscf(ind,3) + H_so(ind,6)*Dscf(ind,4) & |
2876 | + - H_so(ind,3)*Dscf(ind,5) - H_so(ind,4)*Dscf(ind,6) |
2877 | + |
2878 | + end if |
2879 | + |
2880 | + ! DEharr |
2881 | + if ( spin%SO ) then |
2882 | + Etmp(5,r) = Etmp(5,r) + H(ind,1) * ( Dscf(ind,1) - Dold(ind,1) ) & |
2883 | + + H(ind,2) * ( Dscf(ind,2) - Dold(ind,2) ) & |
2884 | + + H(ind,3) * ( Dscf(ind,7) - Dold(ind,7) ) & |
2885 | + + H(ind,4) * ( Dscf(ind,8) - Dold(ind,8) ) & |
2886 | + - H(ind,5) * ( Dscf(ind,5) - Dold(ind,5) ) & |
2887 | + - H(ind,6) * ( Dscf(ind,6) - Dold(ind,6) ) & |
2888 | + + H(ind,7) * ( Dscf(ind,3) - Dold(ind,3) ) & |
2889 | + + H(ind,8) * ( Dscf(ind,4) - Dold(ind,4) ) |
2890 | + else if ( spin%NCol ) then |
2891 | + Etmp(5,r) = Etmp(5,r) + H(ind,1) * ( Dscf(ind,1) - Dold(ind,1) ) & |
2892 | + + H(ind,2) * ( Dscf(ind,2) - Dold(ind,2) ) & |
2893 | + + 2.0_dp * H(ind,3) * ( Dscf(ind,3) - Dold(ind,3) ) & |
2894 | + + 2.0_dp * H(ind,4) * ( Dscf(ind,4) - Dold(ind,4) ) |
2895 | + else |
2896 | + do ispin = 1, spin%spinor |
2897 | + Etmp(5,r) = Etmp(5,r) + H(ind,ispin) * (Dscf(ind,ispin) - Dold(ind,ispin)) |
2898 | + end do |
2899 | + end if |
2900 | + |
2901 | + end do |
2902 | + end do |
2903 | +!$OMP end parallel do |
2904 | + |
2905 | + ! Now add the *other* contributions |
2906 | + do ir = 1, N_Elec |
2907 | + if ( Elecs(ir)%DM_update >= 1 ) then |
2908 | + ! add cross-terms |
2909 | + r = 4 + (TYP_DEVICE+ir - 1) * 2 |
2910 | + Etmp(:,2) = Etmp(:,2) + Etmp(:,r) |
2911 | + end if |
2912 | + if ( Elecs(ir)%DM_update == 2 ) then |
2913 | + r = 3 + (ir - 1) * 2 |
2914 | + ! add diagonal electrode terms |
2915 | + Etmp(:,2) = Etmp(:,2) + Etmp(:,r) |
2916 | + end if |
2917 | + end do |
2918 | + |
2919 | +#ifdef MPI |
2920 | + call MPI_AllReduce(Etmp(1,2),tmp(1,2),size(Etmp, 1), & |
2921 | + MPI_Double_Precision,MPI_SUM, MPI_Comm_World,MPIerror) |
2922 | + Etmp(:,2) = tmp(:,2) |
2923 | +#endif |
2924 | + |
2925 | + ! Copy data over |
2926 | + NEGF_Ebs = Etmp(1,2) |
2927 | + NEGF_Ekin = Etmp(2,2) |
2928 | + NEGF_Enl = Etmp(3,2) |
2929 | + NEGF_Eso = Etmp(4,2) |
2930 | + NEGF_DEharr = Etmp(5,2) |
2931 | + |
2932 | + end subroutine ts_compute_energies |
2933 | + |
2934 | +end module ts_energies_m |
2935 | + |
2936 | + |
2937 | |
2938 | === modified file 'Src/vmat.F90' |
2939 | --- Src/vmat.F90 2016-06-22 08:57:57 +0000 |
2940 | +++ Src/vmat.F90 2019-08-18 23:02:58 +0000 |
2941 | @@ -339,7 +339,7 @@ |
2942 | r2sp = sum(dxsp**2) |
2943 | if ( r2sp < r2cut(is) ) then |
2944 | !$OMP critical |
2945 | - call all_phi( is, +1, dxsp, nphiloc, phia(:,isp) ) |
2946 | + call all_phi( is, +1, dxsp, maxoa, nphiloc, phia(:,isp) ) |
2947 | !$OMP end critical |
2948 | else |
2949 | phia(:,isp) = 0.0_dp |
2950 | |
2951 | === modified file 'Src/vmatsp.f' |
2952 | --- Src/vmatsp.f 2016-01-25 16:00:16 +0000 |
2953 | +++ Src/vmatsp.f 2019-08-18 23:02:58 +0000 |
2954 | @@ -309,7 +309,8 @@ |
2955 | enddo |
2956 | r2sp = sum(dxsp**2) |
2957 | if (r2sp.lt.r2cut(is)) then |
2958 | - call all_phi( is, +1, dxsp, nphiloc, phia(:,isp) ) |
2959 | + call all_phi( is, +1, dxsp, maxoa, |
2960 | + & nphiloc, phia(:,isp) ) |
2961 | else |
2962 | phia(:,isp) = 0.0_dp |
2963 | endif |
2964 | |
2965 | === modified file 'Src/write_subs.F' |
2966 | --- Src/write_subs.F 2017-11-23 14:17:27 +0000 |
2967 | +++ Src/write_subs.F 2019-08-18 23:02:58 +0000 |
2968 | @@ -296,7 +296,7 @@ |
2969 | use units |
2970 | use m_energies |
2971 | use m_spin |
2972 | - use m_ts_global_vars, only: TSinit, TSrun |
2973 | + use m_ts_global_vars, only: TSrun |
2974 | implicit none |
2975 | |
2976 | integer :: iscf |
2977 | @@ -304,16 +304,10 @@ |
2978 | real(dp), intent(in) :: dHmax ! Max. change in H elements |
2979 | |
2980 | character(len=64) :: fmt |
2981 | - character(len=6) :: scf_name |
2982 | |
2983 | logical :: first_scf_step |
2984 | integer :: i |
2985 | |
2986 | - scf_name = 'scf' |
2987 | - if ( TSrun ) then |
2988 | - scf_name = 'ts-scf' |
2989 | - end if |
2990 | - |
2991 | first_scf_step = (iscf == 1) |
2992 | ! Only print out full decomposition at very beginning and end. |
2993 | if ((istp==1.and.first_scf_step).or.final) then |
2994 | @@ -329,7 +323,6 @@ |
2995 | . 'siesta: DEna =', DEna/eV, |
2996 | . 'siesta: DUscf =', DUscf/eV, |
2997 | . 'siesta: DUext =', DUext/eV, |
2998 | - . 'siesta: Enegf =', DE_NEGF/eV, |
2999 | . 'siesta: Exc =', Exc/eV, |
3000 | . 'siesta: eta*DQ =', Ecorrec/eV, |
3001 | . 'siesta: Emadel =', Emad/eV, |
3002 | @@ -339,6 +332,18 @@ |
3003 | . 'siesta: Eharris =', (Eharrs+Ekinion)/eV, |
3004 | . 'siesta: Etot =', (Etot+Ekinion)/eV, |
3005 | . 'siesta: FreeEng =', (FreeE+Ekinion)/eV |
3006 | + if ( TSrun ) then |
3007 | + write(6,'(a,f17.6)') |
3008 | + . 'transiesta: E-dN =', NEGF_DE/eV, |
3009 | + . 'transiesta: Band Stru =', NEGF_Ebs/eV, |
3010 | + . 'transiesta: Kinetic =', NEGF_Ekin/eV, |
3011 | + . 'transiesta: Ion-elec =', (Enascf+NEGF_Enl+DUscf- |
3012 | + . Uscf-Uatm)/eV, |
3013 | + . 'transiesta: Eso =', NEGF_Eso/eV, |
3014 | + . 'transiesta: Eharris =', (NEGF_Eharrs+Ekinion)/eV, |
3015 | + . 'transiesta: Etot =', (NEGF_Etot+Ekinion)/eV, |
3016 | + . 'transiesta: FreeEng =', (NEGF_FreeE+Ekinion)/eV |
3017 | + end if |
3018 | if (cml_p) then |
3019 | call cmlStartPropertyList(mainXML, |
3020 | . title='Energy Decomposition') |
3021 | @@ -372,9 +377,6 @@ |
3022 | call cmlAddProperty(xf=mainXML, value=DUext/eV, |
3023 | . units='siestaUnits:eV', |
3024 | . dictref='siesta:DUext', fmt='r6') |
3025 | - call cmlAddProperty(xf=mainXML, value=DE_NEGF/eV, |
3026 | - . units='siestaUnits:eV', |
3027 | - . dictref='siesta:Enegf', fmt='r6') |
3028 | call cmlAddProperty(xf=mainXML, value=Exc/eV, |
3029 | . units='siestaUnits:eV', |
3030 | . dictref='siesta:Exc', fmt='r6') |
3031 | @@ -402,6 +404,29 @@ |
3032 | call cmlAddProperty(xf=mainXML, value=(FreeE+Ekinion)/eV, |
3033 | . units='siestaUnits:eV', |
3034 | . dictref='siesta:FreeEK', fmt='r6') |
3035 | + |
3036 | + if ( TSrun ) then |
3037 | + ! NEGF energies |
3038 | + call cmlAddProperty(xf=mainXML, value=NEGF_DE/eV, |
3039 | + . units='siestaUnits:eV', |
3040 | + . dictref='siesta:EdN-GF', fmt='r6') |
3041 | + call cmlAddProperty(xf=mainXML, value=NEGF_Ebs/eV, |
3042 | + . units='siestaUnits:eV', |
3043 | + . dictref='siesta:Ebs-GF', fmt='r6') |
3044 | + call cmlAddProperty(xf=mainXML, value=NEGF_Ekin/eV, |
3045 | + . units='siestaUnits:eV', |
3046 | + . dictref='siesta:Ekin-GF', fmt='r6') |
3047 | + call cmlAddProperty(xf=mainXML, |
3048 | + . value=(NEGF_Eharrs+Ekinion)/eV, |
3049 | + . units='siestaUnits:eV', |
3050 | + . dictref='siesta:EharrsK-GF', fmt='r6') |
3051 | + call cmlAddProperty(xf=mainXML, value=(NEGF_Etot+Ekinion)/eV, |
3052 | + . units='siestaUnits:eV', |
3053 | + . dictref='siesta:EtotK-GF', fmt='r6') |
3054 | + call cmlAddProperty(xf=mainXML, value=(NEGF_FreeE+Ekinion)/eV, |
3055 | + . units='siestaUnits:eV', |
3056 | + . dictref='siesta:FreeEK-GF', fmt='r6') |
3057 | + end if |
3058 | call cmlEndPropertyList(mainXML) |
3059 | endif |
3060 | endif |
3061 | @@ -414,6 +439,11 @@ |
3062 | call cmlAddProperty(xf=mainXML, value=Eharrs/eV, |
3063 | . units="siestaUnits:eV", |
3064 | . dictRef="siesta:Eharrs", fmt="r7") |
3065 | + if ( TSrun ) then |
3066 | + call cmlAddProperty(xf=mainXML, value=NEGF_Eharrs/eV, |
3067 | + . units="siestaUnits:eV", |
3068 | + . dictRef="siesta:Eharrs-GF", fmt="r7") |
3069 | + end if |
3070 | if ( .not. harrisfun ) then |
3071 | ! store dDmax and dHmax |
3072 | call cmlAddProperty(xf=mainXML, value=dDmax, |
3073 | @@ -438,6 +468,14 @@ |
3074 | call cmlAddProperty(xf=mainXML, value=FreeE/eV, |
3075 | . units="siestaUnits:eV", |
3076 | . dictRef="siesta:FreeE", fmt="r7") |
3077 | + if ( TSrun ) then |
3078 | + call cmlAddProperty(xf=mainXML, value=NEGF_Etot/eV, |
3079 | + . units="siestaUnits:eV", |
3080 | + . dictRef="siesta:Etot-GF", fmt="r7") |
3081 | + call cmlAddProperty(xf=mainXML, value=NEGF_FreeE/eV, |
3082 | + . units="siestaUnits:eV", |
3083 | + . dictRef="siesta:FreeE-GF", fmt="r7") |
3084 | + end if |
3085 | if ( fixspin ) then |
3086 | call cmlAddProperty(xf=mainXML, value=Efs(1)/eV, |
3087 | . units="siestaUnits:eV", |
3088 | @@ -455,25 +493,49 @@ |
3089 | end if |
3090 | endif |
3091 | |
3092 | - if ( fixspin ) then |
3093 | - if ( (iscf == 1) .or. muldeb ) then |
3094 | - write(6,'(/,a12,3a16,4a10)') |
3095 | - . 'iscf', 'Eharris(eV)', 'E_KS(eV)', 'FreeEng(eV)', |
3096 | - . 'dDmax', 'Ef_up', 'Ef_dn(eV)','dHmax(eV)' |
3097 | - end if |
3098 | - write(6,'(a8,i4,3f16.6,4f10.6)') |
3099 | - . trim(scf_name)//': ',iscf, Eharrs/eV, Etot/eV, FreeE/eV, |
3100 | - . dDmax, Efs(1:2)/eV, dHmax/eV |
3101 | - else ! fixspin |
3102 | - if ( (iscf == 1) .or. muldeb ) then |
3103 | - write(6,'(/,a12,3a16,3a10)') |
3104 | - . 'iscf', 'Eharris(eV)', 'E_KS(eV)', 'FreeEng(eV)', |
3105 | - . 'dDmax','Ef(eV)','dHmax(eV)' |
3106 | - end if |
3107 | - write(6,'(a8,i4,3f16.6,3f10.6)') |
3108 | - . trim(scf_name)//': ',iscf, Eharrs/eV, Etot/eV, FreeE/eV, |
3109 | - . dDmax, Ef /eV, dHmax/eV |
3110 | - end if ! fixspin |
3111 | + if ( TSrun ) then |
3112 | + if ( fixspin ) then |
3113 | + if ( (iscf == 1) .or. muldeb ) then |
3114 | + write(6,'(/,a12,3a16,4a10)') |
3115 | + . 'iscf', 'Eharris(eV)', 'E_KS(eV)', 'FreeEng(eV)', |
3116 | + . 'dDmax', 'Ef_up', 'Ef_dn(eV)','dHmax(eV)' |
3117 | + end if |
3118 | + write(6,'(a8,i4,3f16.6,4f10.6)') |
3119 | + . 'ts-scf: ',iscf, NEGF_Eharrs/eV, NEGF_Etot/eV, |
3120 | + . NEGF_FreeE/eV, |
3121 | + & dDmax, Efs(1:2)/eV, dHmax/eV |
3122 | + else ! fixspin |
3123 | + if ( (iscf == 1) .or. muldeb ) then |
3124 | + write(6,'(/,a12,3a16,3a10)') |
3125 | + . 'iscf', 'Eharris(eV)', 'E_KS(eV)','FreeEng(eV)', |
3126 | + . 'dDmax','Ef(eV)','dHmax(eV)' |
3127 | + end if |
3128 | + write(6,'(a8,i4,3f16.6,3f10.6)') |
3129 | + . 'ts-scf: ',iscf, NEGF_Eharrs/eV, NEGF_Etot/eV, |
3130 | + . NEGF_FreeE/eV, |
3131 | + & dDmax, Ef /eV, dHmax/eV |
3132 | + end if ! fixspin |
3133 | + else ! not NEGF |
3134 | + if ( fixspin ) then |
3135 | + if ( (iscf == 1) .or. muldeb ) then |
3136 | + write(6,'(/,a12,3a16,4a10)') |
3137 | + . 'iscf', 'Eharris(eV)', 'E_KS(eV)', 'FreeEng(eV)', |
3138 | + . 'dDmax', 'Ef_up', 'Ef_dn(eV)','dHmax(eV)' |
3139 | + end if |
3140 | + write(6,'(a8,i4,3f16.6,4f10.6)') |
3141 | + . 'scf: ',iscf, Eharrs/eV, Etot/eV, |
3142 | + & FreeE/eV,dDmax, Efs(1:2)/eV, dHmax/eV |
3143 | + else ! fixspin |
3144 | + if ( (iscf == 1) .or. muldeb ) then |
3145 | + write(6,'(/,a12,3a16,3a10)') |
3146 | + . 'iscf', 'Eharris(eV)', 'E_KS(eV)', 'FreeEng(eV)', |
3147 | + . 'dDmax','Ef(eV)','dHmax(eV)' |
3148 | + end if |
3149 | + write(6,'(a8,i4,3f16.6,3f10.6)') |
3150 | + . 'scf: ',iscf, Eharrs/eV, Etot/eV, |
3151 | + & FreeE/eV,dDmax, Ef /eV, dHmax/eV |
3152 | + end if ! fixspin |
3153 | + end if |
3154 | |
3155 | elseif ((isolve==SOLVE_ORDERN) .or. (isolve==SOLVE_MINIM)) then |
3156 | |
3157 | @@ -503,12 +565,21 @@ |
3158 | . 'siesta: ', 'Eldau =', Eldau/eV, |
3159 | . 'siesta: ', 'Eso =', Eso/eV, |
3160 | . 'siesta: ', 'Ext. field =', DUext/eV, |
3161 | - . 'siesta: ', 'Enegf =', DE_NEGF/eV, |
3162 | . 'siesta: ', 'Exch.-corr. =', Exc/eV, |
3163 | . 'siesta: ', 'Ion-electron =', (Enascf+Enl+DUscf-Uscf-Uatm)/eV, |
3164 | . 'siesta: ', 'Ion-ion =', (Ena+Uatm-Enaatm-Eions)/eV, |
3165 | . 'siesta: ', 'Ekinion =', Ekinion/eV, |
3166 | . 'siesta: ', 'Total =', (Etot+Ekinion)/eV |
3167 | + if ( TSrun ) then |
3168 | + write(6,'(a,a15,f15.6)') |
3169 | + . 'transiesta: ', 'E-dN =', NEGF_DE/eV, |
3170 | + . 'transiesta: ','Band Stru =', NEGF_Ebs/eV, |
3171 | + . 'transiesta: ', 'Kinetic =', NEGF_Ekin/eV, |
3172 | + . 'transiesta: ', 'Ion-elec =', (Enascf+NEGF_Enl+DUscf- |
3173 | + . Uscf-Uatm)/eV, |
3174 | + . 'transiesta: ', 'Eso =', NEGF_Eso/eV, |
3175 | + . 'transiesta: ', 'Total =', (NEGF_Etot+Ekinion)/eV |
3176 | + end if |
3177 | if ( fixspin ) then |
3178 | write(6,'(a,a15,f15.6)') |
3179 | . 'siesta: ', 'Fermi_up =', Efs(1)/eV, |
3180 | @@ -537,9 +608,6 @@ |
3181 | call cmlAddProperty(xf=mainXML, value=DUext/eV, |
3182 | . units='siestaUnits:eV', |
3183 | . dictref='siesta:DUext', fmt='r7') |
3184 | - call cmlAddProperty(xf=mainXML, value=DE_NEGF/eV, |
3185 | - . units='siestaUnits:eV', |
3186 | - . dictref='siesta:Enegf', fmt='r7') |
3187 | call cmlAddProperty(xf=mainXML, value=Exc/eV, |
3188 | . units='siestaUnits:eV', |
3189 | . dictref='siesta:Exc', fmt='r7') |
3190 | @@ -557,6 +625,26 @@ |
3191 | call cmlAddProperty(xf=mainXML, value=(Etot+Ekinion)/eV, |
3192 | . units='siestaUnits:eV', |
3193 | . dictref='siesta:Etot', fmt='r7') |
3194 | + |
3195 | + if ( TSrun ) then |
3196 | + ! NEGF energies |
3197 | + call cmlAddProperty(xf=mainXML, value=NEGF_DE/eV, |
3198 | + . units='siestaUnits:eV', |
3199 | + . dictref='siesta:EdN-GF', fmt='r7') |
3200 | + call cmlAddProperty(xf=mainXML, value=NEGF_Ebs/eV, |
3201 | + . units='siestaUnits:eV', |
3202 | + . dictref='siesta:Ebs-GF', fmt='r7') |
3203 | + call cmlAddProperty(xf=mainXML, value=NEGF_Ekin/eV, |
3204 | + . units='siestaUnits:eV', |
3205 | + . dictref='siesta:Ekin-GF', fmt='r7') |
3206 | + call cmlAddProperty(xf=mainXML, |
3207 | + . value=(Enascf+NEGF_Enl+DUscf-Uscf-Uatm)/eV, |
3208 | + . units='siestaUnits:eV', |
3209 | + . dictref='siesta:I-e-GF', fmt='r7') |
3210 | + call cmlAddProperty(xf=mainXML, value=(NEGF_Etot+Ekinion)/eV, |
3211 | + . units='siestaUnits:eV', |
3212 | + . dictref='siesta:Etot-GF', fmt='r7') |
3213 | + end if |
3214 | call cmlEndPropertyList(mainXML) |
3215 | endif !cml_p |
3216 | endif !final |
3217 | |
3218 | === modified file 'Src/writewave.F' |
3219 | --- Src/writewave.F 2018-10-17 13:04:40 +0000 |
3220 | +++ Src/writewave.F 2019-08-18 23:02:58 +0000 |
3221 | @@ -40,15 +40,23 @@ |
3222 | USE alloc, only: re_alloc |
3223 | USE sys, only: die |
3224 | USE atomlist, only: no_u |
3225 | + USE m_spin, only: spin |
3226 | |
3227 | implicit none |
3228 | |
3229 | + integer :: max_n_states |
3230 | + |
3231 | ! Find number of k-points for wavefunction printout |
3232 | |
3233 | nullify(wfk) |
3234 | |
3235 | nwk = 0 |
3236 | - call initwave( no_u, nwk, wfk ) |
3237 | + if ( spin%Grid == 4 ) then |
3238 | + max_n_states = 2 * no_u |
3239 | + else |
3240 | + max_n_states = no_u |
3241 | + end if |
3242 | + call initwave( max_n_states, nwk, wfk ) |
3243 | |
3244 | if (nwk .eq. 0) then |
3245 | gamma_wavefunctions = .true. |
3246 | @@ -96,7 +104,7 @@ |
3247 | call die("WFS.BandMin < 1") |
3248 | endif |
3249 | if (wfs_band_max > norb) then |
3250 | - call die("WFS.BandMax > number of orbitals") |
3251 | + call die("WFS.BandMax > maximum number of states") |
3252 | endif |
3253 | if (wfs_band_max < wfs_band_min) then |
3254 | call message("WARNING","WFS.BandMax < WFS.BandMin." // |
3255 | @@ -126,7 +134,7 @@ |
3256 | C Based on initband routine by J.Soler |
3257 | C Written by P. Ordejon, June 2003 |
3258 | C **************************** INPUT ********************************** |
3259 | -C integer norb : Number of orbitals |
3260 | +C integer norb : Number of orbitals (actually max number of bands) |
3261 | C *************************** OUTPUT ********************************** |
3262 | C integer nk : Number k points to compute wavefunctions |
3263 | C real*8 kpoint(3,maxk) : k point vectors |
3264 | @@ -383,7 +391,7 @@ |
3265 | |
3266 | end subroutine initwave |
3267 | |
3268 | - subroutine wwave( no, nspin, maxspn, maxo, maxuo, maxnh, |
3269 | + subroutine wwave( no, spin, maxo, maxuo, maxnh, |
3270 | . maxk, |
3271 | . numh, listhptr, listh, H, S, ef, xij, indxuo, |
3272 | . gamma, nk, kpoint, nuotot, occtol) |
3273 | @@ -391,10 +399,10 @@ |
3274 | C Finds wavefunctions at selected k-points. |
3275 | C Written by P. Ordejon, June 2003 |
3276 | C from routine 'bands' written by J.M.Soler |
3277 | +C Changed to use tSpin, N. Papior, August 2019 |
3278 | C **************************** INPUT ********************************** |
3279 | C integer no : Number of basis orbitals |
3280 | -C integer nspin = h_spin_dim : Number of spin components of H, D |
3281 | -C integer maxspn = spinor_dim : Second dimension of ek |
3282 | +C tSpin spin : Contains spin information |
3283 | C integer maxo : First dimension of ek |
3284 | C integer maxuo : Second dimension of H and S |
3285 | C integer maxnh : Maximum number of orbitals interacting |
3286 | @@ -406,7 +414,7 @@ |
3287 | C hamiltonian matrix |
3288 | C integer listh(maxlh) : Nonzero hamiltonian-matrix element |
3289 | C column indexes for each matrix row |
3290 | -C real*8 H(maxnh,nspin) : Hamiltonian in sparse form |
3291 | +C real*8 H(maxnh,spin%H) : Hamiltonian in sparse form |
3292 | C real*8 S(maxnh) : Overlap in sparse form |
3293 | C real*8 ef : Fermi energy |
3294 | C real*8 xij(3,maxnh) : Vectors between orbital centers (sparse) |
3295 | @@ -438,7 +446,7 @@ |
3296 | use atmfuncs, only : symfio, cnfigfio, labelfis, nofis |
3297 | use atomlist, only : iaorb, iphorb |
3298 | use siesta_geom, only : isa |
3299 | - use m_spin, only : NoMagn, SPpol, NonCol, SpOrb |
3300 | + use t_spin, only: tSpin |
3301 | use units, only : eV |
3302 | |
3303 | #ifdef MPI |
3304 | @@ -449,12 +457,12 @@ |
3305 | |
3306 | implicit none |
3307 | |
3308 | + type(tSpin), intent(in) :: spin |
3309 | logical, intent(in) :: Gamma |
3310 | integer maxk, maxnh, maxo, maxuo, nk, no, |
3311 | - . h_spin_dim, spinor_dim, nspin, maxspn, |
3312 | . nuotot, indxuo(no), listh(maxnh), numh(*), |
3313 | . listhptr(*) |
3314 | - real(dp) ef, H(:,:), kpoint(3,maxk), |
3315 | + real(dp) ef, H(maxnh,spin%H), kpoint(3,maxk), |
3316 | . S(maxnh), xij(3,maxnh), occtol |
3317 | |
3318 | external io_assign, io_close, memory |
3319 | @@ -480,9 +488,7 @@ |
3320 | data Dnew, Enew, e1, e2, qk, qtot, temp, wk /8*0.d0/ |
3321 | |
3322 | logical :: SaveParallelOverK |
3323 | - |
3324 | - h_spin_dim=size(H,dim=2) |
3325 | - |
3326 | + |
3327 | |
3328 | C Get local number of orbitals |
3329 | #ifdef MPI |
3330 | @@ -505,26 +511,17 @@ |
3331 | endif |
3332 | |
3333 | C Check spin |
3334 | - if (h_spin_dim .gt. 2) then |
3335 | - if (Node.eq.0) then |
3336 | - write(6,'(/,a,/,a)') |
3337 | - . 'writewave: WARNING: wavefunctions printed is only ' |
3338 | - write(6,'(/,a,/,a)') |
3339 | - . ' implemented for nspin = 1 or 2' |
3340 | - endif |
3341 | - goto 999 |
3342 | - endif |
3343 | |
3344 | C Allocate local arrays - only aux is relevant here |
3345 | - if ( h_spin_dim >= 4 ) then |
3346 | + if ( spin%Grid == 4 ) then |
3347 | nhs = 2 * (2*nuotot) * (2*nuo) |
3348 | else |
3349 | nhs = 2 * nuotot * nuo |
3350 | endif |
3351 | call allocDenseMatrix(nhs, nhs, nhs) |
3352 | |
3353 | - allocate(ek(nuotot,maxspn,nk)) |
3354 | - call memory('A','D',maxspn*nk*nuotot,'writewave') |
3355 | + allocate(ek(nuotot,spin%spinor,nk)) |
3356 | + call memory('A','D',nuotot*spin%spinor*nk,'writewave') |
3357 | naux = 2*nuotot*5 |
3358 | allocate(aux(naux)) |
3359 | call memory('A','D',naux,'writewave') |
3360 | @@ -543,12 +540,12 @@ |
3361 | write(6,'(a)') 'writewave: Wave Functions Coefficients' |
3362 | write(6,*) |
3363 | write(6,'(a26,2x,i6)') 'Number of k-points = ', nk |
3364 | - write(6,'(a26,2x,i6)') 'Number of Spins = ', maxspn |
3365 | + write(6,'(a26,2x,i6)') 'Number of Spins = ', spin%Grid |
3366 | write(6,'(a26,2x,i6)') 'Number of basis orbs = ',nuotot |
3367 | write(6,*) |
3368 | endif |
3369 | write(iu) nk, gamma |
3370 | - write(iu) maxspn |
3371 | + write(iu) spin%Grid ! This will be 1, 2, or 4 |
3372 | write(iu) nuotot |
3373 | write(iu) (iaorb(j),labelfis(isa(iaorb(j))), |
3374 | . iphorb(j), cnfigfio(isa(iaorb(j)),iphorb(j)), |
3375 | @@ -566,9 +563,9 @@ |
3376 | |
3377 | C Call appropriate diagonalization routine |
3378 | |
3379 | - if (NoMagn .or. SPpol) then |
3380 | + if ( spin%Grid <= 2 ) then |
3381 | if (gamma) then |
3382 | - call diagg( h_spin_dim, nuo, maxuo, maxnh, maxnh, |
3383 | + call diagg( spin%H, nuo, maxuo, maxnh, maxnh, |
3384 | . maxo, numh, listhptr, listh, numh, listhptr, |
3385 | . listh, H, S, getD, getPSI, |
3386 | . fixspin, qtot, qs, temp, |
3387 | @@ -588,7 +585,7 @@ |
3388 | call diag_init() |
3389 | end if |
3390 | |
3391 | - call diagk( h_spin_dim, nuo, no, maxspn, maxnh, maxnh, |
3392 | + call diagk( spin%H, nuo, no, spin%spinor, maxnh, maxnh, |
3393 | . maxo, numh, listhptr, listh, numh, listhptr, |
3394 | . listh, H, S, getD, getPSI, |
3395 | . fixspin, qtot, qs, temp, |
3396 | @@ -602,16 +599,16 @@ |
3397 | |
3398 | endif |
3399 | |
3400 | - elseif (NonCol) then |
3401 | + elseif ( spin%NCol) then |
3402 | if (gamma) then |
3403 | - call diag2g( nuo, no, maxuo, maxnh, maxnh, maxo, numh, |
3404 | + call diag2g( nuo, no, maxnh, maxnh, maxo, numh, |
3405 | . listhptr, listh, numh, listhptr, listh, |
3406 | . H, S, getD, getPSI, qtot, temp, e1, e2, ek, qk, |
3407 | . Dnew, Enew, ef, Entropy, |
3408 | . Haux, Saux, psi, aux, |
3409 | . nuotot, occtol, 1, nuotot ) |
3410 | else |
3411 | - call diag2k( nuo, no, maxuo, maxnh, maxnh, maxo, numh, |
3412 | + call diag2k( nuo, no, maxnh, maxnh, maxo, numh, |
3413 | . listhptr, listh, numh, listhptr, listh, |
3414 | . H, S, getD, getPSI, qtot, temp, e1, e2, xij, |
3415 | . indxuo, nk, kpoint, wk, ek, qk, Dnew, |
3416 | @@ -619,18 +616,18 @@ |
3417 | . Haux, Saux, psi, Haux, Saux, aux, |
3418 | . nuotot, occtol, 1, nuotot ) |
3419 | endif |
3420 | - elseif (SpOrb) then |
3421 | + elseif ( spin%SO ) then |
3422 | if (gamma) then |
3423 | call diag3g( nuo, no, maxnh, maxnh, maxo, numh, |
3424 | . listhptr, listh, numh, listhptr, listh, |
3425 | - . H, S, getD, qtot, temp, e1, e2, ek, qk, |
3426 | + . H, S, getD, getPSI, qtot, temp, e1, e2, ek, qk, |
3427 | . Dnew, Enew, ef, Entropy, |
3428 | . Haux, Saux, psi, aux, |
3429 | . nuotot, occtol, 1, nuotot ) |
3430 | else |
3431 | - call diag3k( nuo, no, maxuo, maxnh, maxnh, maxo, numh, |
3432 | + call diag3k( nuo, no, maxnh, maxnh, maxo, numh, |
3433 | . listhptr, listh, numh, listhptr, listh, |
3434 | - . H, S, getD, qtot, temp, e1, e2, xij, |
3435 | + . H, S, getD, getPsi, qtot, temp, e1, e2, xij, |
3436 | . indxuo, nk, kpoint, wk, ek, qk, Dnew, |
3437 | . Enew, ef, Entropy, |
3438 | . Haux, Saux, psi, Haux, Saux, aux, |
3439 | @@ -653,15 +650,16 @@ |
3440 | end subroutine wwave |
3441 | |
3442 | |
3443 | - subroutine writew(nuotot,nuo,ik,k,ispin,eo,psi,gamma) |
3444 | + subroutine writew(nuotot,nuo,ik,k,ispin,eo,psi, |
3445 | + $ gamma,non_coll,blocksize) |
3446 | |
3447 | use precision |
3448 | use sys |
3449 | use parallel, only : Node, Nodes |
3450 | + use parallel, only : Module_Blocksize=>BlockSize |
3451 | use parallelsubs, only : GlobalToLocalOrb, WhichNodeOrb |
3452 | use units, only : eV |
3453 | use kpoint_grid, only : kweight |
3454 | - |
3455 | #ifdef MPI |
3456 | use mpi_siesta |
3457 | #endif |
3458 | @@ -673,16 +671,17 @@ |
3459 | #endif |
3460 | |
3461 | integer, intent(in) :: nuotot, nuo, ispin, ik |
3462 | - real(dp), intent(in) :: eo(*), psi(*), k(3) |
3463 | + logical, intent(in) :: non_coll, gamma |
3464 | + real(dp), intent(in) :: eo(*), k(3) |
3465 | + real(dp), intent(in) :: psi(:) |
3466 | + integer, intent(in) :: blocksize |
3467 | |
3468 | - logical gamma |
3469 | |
3470 | C Internal variables ............................................. |
3471 | integer BNode, iie, iw, indwf, j, ind, iu |
3472 | - |
3473 | + integer :: blocksize_saved |
3474 | integer number_of_wfns |
3475 | integer, allocatable :: ind_wfn(:) |
3476 | - |
3477 | real(dp) :: kpoint_weight |
3478 | real(SP), dimension(:,:), allocatable :: aux !! NOTE SP |
3479 | |
3480 | @@ -692,12 +691,17 @@ |
3481 | |
3482 | C Allocate auxiliary arrays |
3483 | |
3484 | - if (gamma) then |
3485 | - allocate(aux(1,nuotot)) |
3486 | - call memory('A','D',nuotot,'writewave') |
3487 | + if (non_coll) then |
3488 | + allocate(aux(4,nuotot)) |
3489 | + call memory('A','D',4*nuotot,'writewave') |
3490 | else |
3491 | - allocate(aux(2,nuotot)) |
3492 | - call memory('A','D',2*nuotot,'writewave') |
3493 | + if (gamma) then |
3494 | + allocate(aux(1,nuotot)) |
3495 | + call memory('A','D',nuotot,'writewave') |
3496 | + else |
3497 | + allocate(aux(2,nuotot)) |
3498 | + call memory('A','D',2*nuotot,'writewave') |
3499 | + endif |
3500 | endif |
3501 | |
3502 | C Find file name, and open for Node 0 |
3503 | @@ -733,7 +737,11 @@ |
3504 | if (wwf) then |
3505 | write(6,*) |
3506 | write(6,'(a22,2x,i6,2x,3f10.6)') 'k-point = ',ik, k(1:3) |
3507 | - write(6,'(a22,2x,i6)') 'Spin component = ',ispin |
3508 | + if (non_coll) then |
3509 | + write(6,'(a22,2x,i6)') 'Spin component (non-collinear)= ',0 |
3510 | + else |
3511 | + write(6,'(a22,2x,i6)') 'Spin component = ',ispin |
3512 | + endif |
3513 | write(6,'(a22,2x,i6)') 'Num. wavefunctions = ',nwflist(ik) |
3514 | write(6,'(a)') 'Use readwfsx utility to print ' |
3515 | $ // "wavefunction coefficients from WFSX file" |
3516 | @@ -748,14 +756,26 @@ |
3517 | write(iu) nwflist(ik) |
3518 | endif |
3519 | |
3520 | -C Loop over wavefunctions that should be printed |
3521 | - |
3522 | + ! Loop over wavefunctions that should be stored |
3523 | + |
3524 | + ! The effective blocksize to use is passed as an argument. |
3525 | + ! Module_blocksize is the variable in the 'parallel' module that |
3526 | + ! holds the value that all the helper functions (WhichNodeOrb, |
3527 | + ! GetNodeOrb, etc) see. Hence, we must temporarily set |
3528 | + ! Module_blocksize to the passed blocksize. |
3529 | + |
3530 | + ! Examples: non-collinear calculations need a wf blocksize double |
3531 | + ! the 'orbital' one |
3532 | + |
3533 | + blocksize_saved = Module_blocksize |
3534 | + Module_blocksize = blocksize |
3535 | + |
3536 | if (Node .eq. 0 .and. debug) then |
3537 | print *, " -*- Will print ", nwflist(ik), " wfns." |
3538 | print *, " -*- ", iwf(ik,1:nwflist(ik)) |
3539 | endif |
3540 | do iw = 1,nwflist(ik) |
3541 | - indwf = iwf(ik,iw) |
3542 | + indwf = iwf(ik,iw) |
3543 | |
3544 | ! Determine which node handles this wavefunction |
3545 | ! Note that the distribution is block cyclic, |
3546 | @@ -770,30 +790,44 @@ |
3547 | |
3548 | if (Node.eq.BNode) then |
3549 | |
3550 | -C Determine the index of the wavefunction in the local node |
3551 | - |
3552 | + ! Determine the index of the wavefunction in the local node |
3553 | call GlobalToLocalOrb( indwf, BNode, Nodes, iie) |
3554 | |
3555 | -C Save wavefunction in aux array |
3556 | - |
3557 | -C psi has different structure in diagk and diagg, so the indexing |
3558 | -C must be handled differently |
3559 | - |
3560 | - if (gamma) then |
3561 | - do j = 1,nuotot |
3562 | - ind = j + (iie-1)*nuotot |
3563 | - aux(1,j) = real(psi(ind),kind=sp) |
3564 | - enddo |
3565 | - else |
3566 | - do j = 1,nuotot |
3567 | - ind = 1+(j-1)*2+(iie-1)*2*nuotot |
3568 | - aux(1,j) = real(psi(ind),kind=sp) |
3569 | - aux(2,j) = real(psi(ind+1),kind=sp) |
3570 | - enddo |
3571 | - endif |
3572 | - |
3573 | - endif |
3574 | - |
3575 | + ! Save wavefunction in aux array |
3576 | + |
3577 | + ! Despite being passed as a one-dimensional array, psi has |
3578 | + ! different underlying structures for different cases, so the |
3579 | + ! indexing must be handled differently |
3580 | + |
3581 | + if (.not. non_coll) then |
3582 | + if (gamma) then |
3583 | + ! Real functions |
3584 | + do j = 1,nuotot |
3585 | + ind = j + (iie-1)*nuotot |
3586 | + aux(1,j) = real(psi(ind),kind=sp) |
3587 | + enddo |
3588 | + else |
3589 | + ! Complex functions: two reals per orbital coefficient |
3590 | + do j = 1,nuotot |
3591 | + ind = 1+(j-1)*2+(iie-1)*2*nuotot |
3592 | + aux(1,j) = real(psi(ind),kind=sp) |
3593 | + aux(2,j) = real(psi(ind+1),kind=sp) |
3594 | + enddo |
3595 | + endif |
3596 | + else ! non-collinear case, including SOC |
3597 | + ! Each 'orbital' coefficient is actually four reals: complex up/down |
3598 | + ! (spinor) |
3599 | + do j = 1,nuotot |
3600 | + ind = 1 + (j-1)*4 + (iie-1)*4*nuotot |
3601 | + aux(1,j) = real(psi(ind),kind=sp) |
3602 | + aux(2,j) = real(psi(ind+1),kind=sp) |
3603 | + aux(3,j) = real(psi(ind+2),kind=sp) |
3604 | + aux(4,j) = real(psi(ind+3),kind=sp) |
3605 | + enddo |
3606 | + endif ! non-coll or not |
3607 | + |
3608 | + endif ! Node == BNode |
3609 | + |
3610 | #ifdef MPI |
3611 | C Pass the wf to the master node |
3612 | if (BNode.ne.0) then |
3613 | @@ -815,19 +849,22 @@ |
3614 | C eigenvector is now stored in aux in Node 0, and can be printed |
3615 | |
3616 | if (Node .eq. 0) then |
3617 | - write(iu) indwf |
3618 | - write(iu) eo(indwf)/eV |
3619 | - write(iu) (aux(1:,j), j=1,nuotot) |
3620 | - endif |
3621 | + write(iu) indwf |
3622 | + write(iu) eo(indwf)/eV |
3623 | + write(iu) (aux(1:,j), j=1,nuotot) |
3624 | + endif |
3625 | |
3626 | enddo |
3627 | - |
3628 | + |
3629 | C Close output file |
3630 | |
3631 | if (Node .eq. 0) then |
3632 | call io_close(iu) |
3633 | endif |
3634 | |
3635 | + ! Restore blocksize value in module |
3636 | + Module_blocksize = blocksize_saved |
3637 | + |
3638 | C Deallocate auxiliary arrays |
3639 | |
3640 | call memory('D','D',size(aux),'writewave') |
3641 | |
3642 | === added file 'Tests/Pseudos/Bi.psf' |
3643 | --- Tests/Pseudos/Bi.psf 1970-01-01 00:00:00 +0000 |
3644 | +++ Tests/Pseudos/Bi.psf 2019-08-18 23:02:58 +0000 |
3645 | @@ -0,0 +1,3061 @@ |
3646 | + Bi pb rel pcec |
3647 | + ATM3.3 12-FEB-13 Troullier-Martins |
3648 | + 6s 2.00r r= 1.98/6p 3.00r r= 1.98/5d10.00r r= 1.48/5f 0.00r r= 2.47/ |
3649 | + 4 3 1216 0.298644840562E-04 0.125000000000E-01 15.0000000000 |
3650 | + Radial grid follows |
3651 | + 0.375648965487E-06 0.756023013283E-06 0.114118157761E-05 0.153118484027E-05 |
3652 | + 0.192609374007E-05 0.232596998233E-05 0.273087604852E-05 0.314087520605E-05 |
3653 | + 0.355603151811E-05 0.397640985372E-05 0.440207589786E-05 0.483309616171E-05 |
3654 | + 0.526953799306E-05 0.571146958683E-05 0.615895999574E-05 0.661207914108E-05 |
3655 | + 0.707089782362E-05 0.753548773473E-05 0.800592146753E-05 0.848227252823E-05 |
3656 | + 0.896461534767E-05 0.945302529289E-05 0.994757867894E-05 0.104483527808E-04 |
3657 | + 0.109554258454E-04 0.114688771040E-04 0.119887867844E-04 0.125152361234E-04 |
3658 | + 0.130483073800E-04 0.135880838476E-04 0.141346498673E-04 0.146880908412E-04 |
3659 | + 0.152484932455E-04 0.158159446444E-04 0.163905337031E-04 0.169723502025E-04 |
3660 | + 0.175614850526E-04 0.181580303068E-04 0.187620791765E-04 0.193737260458E-04 |
3661 | + 0.199930664855E-04 0.206201972689E-04 0.212552163865E-04 0.218982230613E-04 |
3662 | + 0.225493177644E-04 0.232086022306E-04 0.238761794746E-04 0.245521538066E-04 |
3663 | + 0.252366308489E-04 0.259297175526E-04 0.266315222138E-04 0.273421544909E-04 |
3664 | + 0.280617254217E-04 0.287903474405E-04 0.295281343961E-04 0.302752015692E-04 |
3665 | + 0.310316656905E-04 0.317976449591E-04 0.325732590608E-04 0.333586291869E-04 |
3666 | + 0.341538780531E-04 0.349591299186E-04 0.357745106057E-04 0.366001475192E-04 |
3667 | + 0.374361696666E-04 0.382827076782E-04 0.391398938270E-04 0.400078620503E-04 |
3668 | + 0.408867479698E-04 0.417766889133E-04 0.426778239358E-04 0.435902938416E-04 |
3669 | + 0.445142412058E-04 0.454498103971E-04 0.463971476002E-04 0.473564008384E-04 |
3670 | + 0.483277199970E-04 0.493112568465E-04 0.503071650667E-04 0.513156002701E-04 |
3671 | + 0.523367200269E-04 0.533706838890E-04 0.544176534155E-04 0.554777921974E-04 |
3672 | + 0.565512658836E-04 0.576382422066E-04 0.587388910086E-04 0.598533842682E-04 |
3673 | + 0.609818961272E-04 0.621246029180E-04 0.632816831908E-04 0.644533177417E-04 |
3674 | + 0.656396896410E-04 0.668409842618E-04 0.680573893087E-04 0.692890948476E-04 |
3675 | + 0.705362933350E-04 0.717991796480E-04 0.730779511154E-04 0.743728075476E-04 |
3676 | + 0.756839512688E-04 0.770115871477E-04 0.783559226302E-04 0.797171677714E-04 |
3677 | + 0.810955352687E-04 0.824912404947E-04 0.839045015313E-04 0.853355392033E-04 |
3678 | + 0.867845771134E-04 0.882518416766E-04 0.897375621560E-04 0.912419706984E-04 |
3679 | + 0.927653023708E-04 0.943077951968E-04 0.958696901941E-04 0.974512314119E-04 |
3680 | + 0.990526659693E-04 0.100674244094E-03 0.102316219160E-03 0.103978847730E-03 |
3681 | + 0.105662389593E-03 0.107367107805E-03 0.109093268733E-03 0.110841142093E-03 |
3682 | + 0.112611000993E-03 0.114403121978E-03 0.116217785069E-03 0.118055273812E-03 |
3683 | + 0.119915875318E-03 0.121799880310E-03 0.123707583168E-03 0.125639281974E-03 |
3684 | + 0.127595278559E-03 0.129575878553E-03 0.131581391427E-03 0.133612130549E-03 |
3685 | + 0.135668413223E-03 0.137750560750E-03 0.139858898469E-03 0.141993755811E-03 |
3686 | + 0.144155466353E-03 0.146344367867E-03 0.148560802372E-03 0.150805116190E-03 |
3687 | + 0.153077660002E-03 0.155378788896E-03 0.157708862428E-03 0.160068244677E-03 |
3688 | + 0.162457304301E-03 0.164876414596E-03 0.167325953553E-03 0.169806303917E-03 |
3689 | + 0.172317853247E-03 0.174860993980E-03 0.177436123484E-03 0.180043644130E-03 |
3690 | + 0.182683963349E-03 0.185357493695E-03 0.188064652912E-03 0.190805864001E-03 |
3691 | + 0.193581555280E-03 0.196392160458E-03 0.199238118697E-03 0.202119874683E-03 |
3692 | + 0.205037878698E-03 0.207992586685E-03 0.210984460323E-03 0.214013967098E-03 |
3693 | + 0.217081580378E-03 0.220187779482E-03 0.223333049762E-03 0.226517882671E-03 |
3694 | + 0.229742775847E-03 0.233008233185E-03 0.236314764920E-03 0.239662887705E-03 |
3695 | + 0.243053124689E-03 0.246486005606E-03 0.249962066848E-03 0.253481851558E-03 |
3696 | + 0.257045909710E-03 0.260654798195E-03 0.264309080908E-03 0.268009328839E-03 |
3697 | + 0.271756120160E-03 0.275550040314E-03 0.279391682109E-03 0.283281645808E-03 |
3698 | + 0.287220539228E-03 0.291208977828E-03 0.295247584809E-03 0.299336991212E-03 |
3699 | + 0.303477836016E-03 0.307670766236E-03 0.311916437025E-03 0.316215511778E-03 |
3700 | + 0.320568662235E-03 0.324976568584E-03 0.329439919569E-03 0.333959412598E-03 |
3701 | + 0.338535753852E-03 0.343169658392E-03 0.347861850275E-03 0.352613062667E-03 |
3702 | + 0.357424037954E-03 0.362295527861E-03 0.367228293567E-03 0.372223105827E-03 |
3703 | + 0.377280745092E-03 0.382402001627E-03 0.387587675638E-03 0.392838577400E-03 |
3704 | + 0.398155527374E-03 0.403539356347E-03 0.408990905551E-03 0.414511026802E-03 |
3705 | + 0.420100582631E-03 0.425760446418E-03 0.431491502526E-03 0.437294646446E-03 |
3706 | + 0.443170784931E-03 0.449120836139E-03 0.455145729778E-03 0.461246407249E-03 |
3707 | + 0.467423821797E-03 0.473678938654E-03 0.480012735195E-03 0.486426201089E-03 |
3708 | + 0.492920338453E-03 0.499496162009E-03 0.506154699243E-03 0.512896990565E-03 |
3709 | + 0.519724089472E-03 0.526637062711E-03 0.533636990449E-03 0.540724966439E-03 |
3710 | + 0.547902098192E-03 0.555169507149E-03 0.562528328857E-03 0.569979713147E-03 |
3711 | + 0.577524824313E-03 0.585164841295E-03 0.592900957860E-03 0.600734382792E-03 |
3712 | + 0.608666340081E-03 0.616698069109E-03 0.624830824852E-03 0.633065878069E-03 |
3713 | + 0.641404515504E-03 0.649848040086E-03 0.658397771132E-03 0.667055044556E-03 |
3714 | + 0.675821213075E-03 0.684697646419E-03 0.693685731550E-03 0.702786872874E-03 |
3715 | + 0.712002492463E-03 0.721334030277E-03 0.730782944387E-03 0.740350711205E-03 |
3716 | + 0.750038825715E-03 0.759848801703E-03 0.769782171999E-03 0.779840488712E-03 |
3717 | + 0.790025323474E-03 0.800338267687E-03 0.810780932768E-03 0.821354950407E-03 |
3718 | + 0.832061972814E-03 0.842903672983E-03 0.853881744952E-03 0.864997904068E-03 |
3719 | + 0.876253887253E-03 0.887651453276E-03 0.899192383032E-03 0.910878479813E-03 |
3720 | + 0.922711569596E-03 0.934693501326E-03 0.946826147203E-03 0.959111402979E-03 |
3721 | + 0.971551188249E-03 0.984147446755E-03 0.996902146688E-03 0.100981728100E-02 |
3722 | + 0.102289486770E-02 0.103613695019E-02 0.104954559757E-02 0.106312290497E-02 |
3723 | + 0.107687099388E-02 0.109079201246E-02 0.110488813589E-02 0.111916156673E-02 |
3724 | + 0.113361453523E-02 0.114824929969E-02 0.116306814683E-02 0.117807339212E-02 |
3725 | + 0.119326738016E-02 0.120865248504E-02 0.122423111072E-02 0.124000569139E-02 |
3726 | + 0.125597869185E-02 0.127215260793E-02 0.128852996683E-02 0.130511332754E-02 |
3727 | + 0.132190528125E-02 0.133890845174E-02 0.135612549578E-02 0.137355910358E-02 |
3728 | + 0.139121199916E-02 0.140908694084E-02 0.142718672161E-02 0.144551416959E-02 |
3729 | + 0.146407214849E-02 0.148286355803E-02 0.150189133440E-02 0.152115845074E-02 |
3730 | + 0.154066791756E-02 0.156042278327E-02 0.158042613459E-02 0.160068109711E-02 |
3731 | + 0.162119083569E-02 0.164195855502E-02 0.166298750010E-02 0.168428095675E-02 |
3732 | + 0.170584225211E-02 0.172767475518E-02 0.174978187733E-02 0.177216707284E-02 |
3733 | + 0.179483383946E-02 0.181778571889E-02 0.184102629744E-02 0.186455920647E-02 |
3734 | + 0.188838812306E-02 0.191251677052E-02 0.193694891900E-02 0.196168838608E-02 |
3735 | + 0.198673903735E-02 0.201210478702E-02 0.203778959855E-02 0.206379748523E-02 |
3736 | + 0.209013251085E-02 0.211679879032E-02 0.214380049029E-02 0.217114182983E-02 |
3737 | + 0.219882708109E-02 0.222686056994E-02 0.225524667668E-02 0.228398983668E-02 |
3738 | + 0.231309454112E-02 0.234256533768E-02 0.237240683123E-02 0.240262368455E-02 |
3739 | + 0.243322061911E-02 0.246420241572E-02 0.249557391535E-02 0.252734001988E-02 |
3740 | + 0.255950569281E-02 0.259207596010E-02 0.262505591092E-02 0.265845069845E-02 |
3741 | + 0.269226554070E-02 0.272650572131E-02 0.276117659036E-02 0.279628356527E-02 |
3742 | + 0.283183213155E-02 0.286782784376E-02 0.290427632628E-02 0.294118327428E-02 |
3743 | + 0.297855445453E-02 0.301639570636E-02 0.305471294255E-02 0.309351215023E-02 |
3744 | + 0.313279939187E-02 0.317258080617E-02 0.321286260907E-02 0.325365109467E-02 |
3745 | + 0.329495263626E-02 0.333677368729E-02 0.337912078238E-02 0.342200053836E-02 |
3746 | + 0.346541965526E-02 0.350938491743E-02 0.355390319452E-02 0.359898144260E-02 |
3747 | + 0.364462670523E-02 0.369084611459E-02 0.373764689256E-02 0.378503635184E-02 |
3748 | + 0.383302189713E-02 0.388161102629E-02 0.393081133144E-02 0.398063050026E-02 |
3749 | + 0.403107631707E-02 0.408215666415E-02 0.413387952290E-02 0.418625297511E-02 |
3750 | + 0.423928520426E-02 0.429298449674E-02 0.434735924316E-02 0.440241793970E-02 |
3751 | + 0.445816918938E-02 0.451462170345E-02 0.457178430274E-02 0.462966591901E-02 |
3752 | + 0.468827559639E-02 0.474762249275E-02 0.480771588117E-02 0.486856515137E-02 |
3753 | + 0.493017981117E-02 0.499256948797E-02 0.505574393031E-02 0.511971300930E-02 |
3754 | + 0.518448672026E-02 0.525007518420E-02 0.531648864945E-02 0.538373749326E-02 |
3755 | + 0.545183222339E-02 0.552078347979E-02 0.559060203622E-02 0.566129880198E-02 |
3756 | + 0.573288482358E-02 0.580537128649E-02 0.587876951686E-02 0.595309098331E-02 |
3757 | + 0.602834729873E-02 0.610455022206E-02 0.618171166017E-02 0.625984366969E-02 |
3758 | + 0.633895845891E-02 0.641906838967E-02 0.650018597931E-02 0.658232390262E-02 |
3759 | + 0.666549499382E-02 0.674971224856E-02 0.683498882595E-02 0.692133805065E-02 |
3760 | + 0.700877341488E-02 0.709730858060E-02 0.718695738162E-02 0.727773382573E-02 |
3761 | + 0.736965209695E-02 0.746272655769E-02 0.755697175102E-02 0.765240240295E-02 |
3762 | + 0.774903342471E-02 0.784687991510E-02 0.794595716282E-02 0.804628064890E-02 |
3763 | + 0.814786604909E-02 0.825072923632E-02 0.835488628316E-02 0.846035346436E-02 |
3764 | + 0.856714725940E-02 0.867528435500E-02 0.878478164783E-02 0.889565624705E-02 |
3765 | + 0.900792547704E-02 0.912160688010E-02 0.923671821918E-02 0.935327748066E-02 |
3766 | + 0.947130287716E-02 0.959081285039E-02 0.971182607403E-02 0.983436145664E-02 |
3767 | + 0.995843814462E-02 0.100840755252E-01 0.102112932295E-01 0.103401111355E-01 |
3768 | + 0.104705493713E-01 0.106026283182E-01 0.107363686136E-01 0.108717911549E-01 |
3769 | + 0.110089171021E-01 0.111477678813E-01 0.112883651884E-01 0.114307309919E-01 |
3770 | + 0.115748875367E-01 0.117208573476E-01 0.118686632327E-01 0.120183282870E-01 |
3771 | + 0.121698758960E-01 0.123233297391E-01 0.124787137940E-01 0.126360523398E-01 |
3772 | + 0.127953699607E-01 0.129566915507E-01 0.131200423165E-01 0.132854477819E-01 |
3773 | + 0.134529337920E-01 0.136225265167E-01 0.137942524554E-01 0.139681384404E-01 |
3774 | + 0.141442116418E-01 0.143224995715E-01 0.145030300873E-01 0.146858313974E-01 |
3775 | + 0.148709320649E-01 0.150583610122E-01 0.152481475255E-01 0.154403212592E-01 |
3776 | + 0.156349122409E-01 0.158319508758E-01 0.160314679516E-01 0.162334946434E-01 |
3777 | + 0.164380625180E-01 0.166452035398E-01 0.168549500749E-01 0.170673348966E-01 |
3778 | + 0.172823911905E-01 0.175001525595E-01 0.177206530294E-01 0.179439270538E-01 |
3779 | + 0.181700095197E-01 0.183989357529E-01 0.186307415236E-01 0.188654630520E-01 |
3780 | + 0.191031370137E-01 0.193438005459E-01 0.195874912526E-01 0.198342472111E-01 |
3781 | + 0.200841069775E-01 0.203371095928E-01 0.205932945893E-01 0.208527019963E-01 |
3782 | + 0.211153723468E-01 0.213813466836E-01 0.216506665657E-01 0.219233740749E-01 |
3783 | + 0.221995118222E-01 0.224791229549E-01 0.227622511626E-01 0.230489406848E-01 |
3784 | + 0.233392363172E-01 0.236331834192E-01 0.239308279205E-01 0.242322163288E-01 |
3785 | + 0.245373957366E-01 0.248464138288E-01 0.251593188901E-01 0.254761598125E-01 |
3786 | + 0.257969861031E-01 0.261218478916E-01 0.264507959385E-01 0.267838816424E-01 |
3787 | + 0.271211570486E-01 0.274626748573E-01 0.278084884311E-01 0.281586518042E-01 |
3788 | + 0.285132196903E-01 0.288722474915E-01 0.292357913064E-01 0.296039079395E-01 |
3789 | + 0.299766549099E-01 0.303540904600E-01 0.307362735649E-01 0.311232639414E-01 |
3790 | + 0.315151220577E-01 0.319119091422E-01 0.323136871939E-01 0.327205189914E-01 |
3791 | + 0.331324681028E-01 0.335495988963E-01 0.339719765491E-01 0.343996670589E-01 |
3792 | + 0.348327372530E-01 0.352712547995E-01 0.357152882177E-01 0.361649068888E-01 |
3793 | + 0.366201810665E-01 0.370811818885E-01 0.375479813869E-01 0.380206525002E-01 |
3794 | + 0.384992690841E-01 0.389839059236E-01 0.394746387441E-01 0.399715442236E-01 |
3795 | + 0.404747000046E-01 0.409841847062E-01 0.415000779364E-01 0.420224603046E-01 |
3796 | + 0.425514134342E-01 0.430870199750E-01 0.436293636168E-01 0.441785291017E-01 |
3797 | + 0.447346022381E-01 0.452976699135E-01 0.458678201084E-01 0.464451419099E-01 |
3798 | + 0.470297255257E-01 0.476216622981E-01 0.482210447186E-01 0.488279664418E-01 |
3799 | + 0.494425223005E-01 0.500648083202E-01 0.506949217345E-01 0.513329609999E-01 |
3800 | + 0.519790258112E-01 0.526332171175E-01 0.532956371374E-01 0.539663893754E-01 |
3801 | + 0.546455786380E-01 0.553333110498E-01 0.560296940703E-01 0.567348365110E-01 |
3802 | + 0.574488485517E-01 0.581718417582E-01 0.589039290998E-01 0.596452249665E-01 |
3803 | + 0.603958451873E-01 0.611559070482E-01 0.619255293104E-01 0.627048322290E-01 |
3804 | + 0.634939375715E-01 0.642929686373E-01 0.651020502767E-01 0.659213089102E-01 |
3805 | + 0.667508725488E-01 0.675908708135E-01 0.684414349555E-01 0.693026978775E-01 |
3806 | + 0.701747941533E-01 0.710578600499E-01 0.719520335481E-01 0.728574543643E-01 |
3807 | + 0.737742639724E-01 0.747026056256E-01 0.756426243794E-01 0.765944671136E-01 |
3808 | + 0.775582825554E-01 0.785342213031E-01 0.795224358490E-01 0.805230806036E-01 |
3809 | + 0.815363119199E-01 0.825622881171E-01 0.836011695063E-01 0.846531184146E-01 |
3810 | + 0.857182992113E-01 0.867968783331E-01 0.878890243100E-01 0.889949077922E-01 |
3811 | + 0.901147015762E-01 0.912485806321E-01 0.923967221306E-01 0.935593054714E-01 |
3812 | + 0.947365123105E-01 0.959285265887E-01 0.971355345607E-01 0.983577248240E-01 |
3813 | + 0.995952883483E-01 0.100848418505 0.102117311100 0.103402164398 |
3814 | + 0.104703179161 0.106020558675 0.107354508783 0.108705237919 |
3815 | + 0.110072957135 0.111457880141 0.112860223334 0.114280205834 |
3816 | + 0.115718049514 0.117173979041 0.118648221907 0.120141008466 |
3817 | + 0.121652571968 0.123183148598 0.124732977512 0.126302300874 |
3818 | + 0.127891363894 0.129500414866 0.131129705208 0.132779489500 |
3819 | + 0.134450025523 0.136141574302 0.137854400146 0.139588770687 |
3820 | + 0.141344956924 0.143123233264 0.144923877567 0.146747171187 |
3821 | + 0.148593399018 0.150462849535 0.152355814846 0.154272590729 |
3822 | + 0.156213476684 0.158178775980 0.160168795697 0.162183846781 |
3823 | + 0.164224244087 0.166290306432 0.168382356643 0.170500721605 |
3824 | + 0.172645732318 0.174817723945 0.177017035863 0.179244011719 |
3825 | + 0.181498999484 0.183782351502 0.186094424554 0.188435579904 |
3826 | + 0.190806183363 0.193206605343 0.195637220915 0.198098409867 |
3827 | + 0.200590556764 0.203114051011 0.205669286908 0.208256663716 |
3828 | + 0.210876585717 0.213529462281 0.216215707923 0.218935742377 |
3829 | + 0.221689990652 0.224478883105 0.227302855507 0.230162349109 |
3830 | + 0.233057810713 0.235989692740 0.238958453303 0.241964556277 |
3831 | + 0.245008471372 0.248090674205 0.251211646377 0.254371875547 |
3832 | + 0.257571855505 0.260812086257 0.264093074094 0.267415331678 |
3833 | + 0.270779378118 0.274185739052 0.277634946733 0.281127540106 |
3834 | + 0.284664064895 0.288245073689 0.291871126029 0.295542788493 |
3835 | + 0.299260634785 0.303025245827 0.306837209846 0.310697122470 |
3836 | + 0.314605586818 0.318563213595 0.322570621189 0.326628435765 |
3837 | + 0.330737291365 0.334897830006 0.339110701781 0.343376564959 |
3838 | + 0.347696086090 0.352069940109 0.356498810439 0.360983389099 |
3839 | + 0.365524376815 0.370122483124 0.374778426491 0.379492934417 |
3840 | + 0.384266743551 0.389100599812 0.393995258501 0.398951484416 |
3841 | + 0.403970051979 0.409051745350 0.414197358556 0.419407695608 |
3842 | + 0.424683570631 0.430025807994 0.435435242430 0.440912719175 |
3843 | + 0.446459094095 0.452075233824 0.457762015895 0.463520328878 |
3844 | + 0.469351072522 0.475255157892 0.481233507514 0.487287055517 |
3845 | + 0.493416747780 0.499623542080 0.505908408242 0.512272328288 |
3846 | + 0.518716296594 0.525241320043 0.531848418183 0.538538623387 |
3847 | + 0.545312981013 0.552172549568 0.559118400874 0.566151620234 |
3848 | + 0.573273306602 0.580484572758 0.587786545476 0.595180365703 |
3849 | + 0.602667188740 0.610248184418 0.617924537282 0.625697446779 |
3850 | + 0.633568127441 0.641537809079 0.649607736971 0.657779172060 |
3851 | + 0.666053391149 0.674431687102 0.682915369045 0.691505762570 |
3852 | + 0.700204209943 0.709012070315 0.717930719932 0.726961552352 |
3853 | + 0.736105978659 0.745365427689 0.754741346250 0.764235199349 |
3854 | + 0.773848470418 0.783582661552 0.793439293738 0.803419907093 |
3855 | + 0.813526061110 0.823759334896 0.834121327420 0.844613657765 |
3856 | + 0.855237965379 0.865995910331 0.876889173573 0.887919457198 |
3857 | + 0.899088484711 0.910398001296 0.921849774087 0.933445592447 |
3858 | + 0.945187268246 0.957076636146 0.969115553883 0.981305902564 |
3859 | + 0.993649586955 1.00614853578 1.01880470203 1.03162006325 |
3860 | + 1.04459662188 1.05773640551 1.07104146728 1.08451388612 |
3861 | + 1.09815576714 1.11196924189 1.12595646876 1.14011963329 |
3862 | + 1.15446094849 1.16898265524 1.18368702257 1.19857634807 |
3863 | + 1.21365295823 1.22891920880 1.24437748517 1.26003020271 |
3864 | + 1.27587980720 1.29192877518 1.30817961432 1.32463486385 |
3865 | + 1.34129709495 1.35816891111 1.37525294859 1.39255187681 |
3866 | + 1.41006839876 1.42780525143 1.44576520624 1.46395106948 |
3867 | + 1.48236568271 1.50101192327 1.51989270465 1.53901097703 |
3868 | + 1.55836972768 1.57797198143 1.59782080118 1.61791928835 |
3869 | + 1.63827058336 1.65887786615 1.67974435665 1.70087331529 |
3870 | + 1.72226804351 1.74393188429 1.76586822263 1.78808048615 |
3871 | + 1.81057214554 1.83334671519 1.85640775365 1.87975886427 |
3872 | + 1.90340369570 1.92734594250 1.95158934569 1.97613769335 |
3873 | + 2.00099482121 2.02616461325 2.05165100230 2.07745797066 |
3874 | + 2.10358955072 2.13004982559 2.15684292975 2.18397304967 |
3875 | + 2.21144442449 2.23926134667 2.26742816266 2.29594927357 |
3876 | + 2.32482913590 2.35407226217 2.38368322170 2.41366664124 |
3877 | + 2.44402720577 2.47476965919 2.50589880507 2.53741950740 |
3878 | + 2.56933669136 2.60165534408 2.63438051540 2.66751731870 |
3879 | + 2.70107093167 2.73504659715 2.76944962388 2.80428538742 |
3880 | + 2.83955933092 2.87527696601 2.91144387364 2.94806570496 |
3881 | + 2.98514818222 3.02269709962 3.06071832426 3.09921779703 |
3882 | + 3.13820153355 3.17767562512 3.21764623963 3.25811962258 |
3883 | + 3.29910209801 3.34060006953 3.38262002127 3.42516851894 |
3884 | + 3.46825221082 3.51187782883 3.55605218957 3.60078219536 |
3885 | + 3.64607483536 3.69193718664 3.73837641528 3.78539977751 |
3886 | + 3.83301462082 3.88122838514 3.93004860395 3.97948290551 |
3887 | + 4.02953901404 4.08022475091 4.13154803587 4.18351688827 |
3888 | + 4.23613942837 4.28942387854 4.34337856458 4.39801191703 |
3889 | + 4.45333247245 4.50934887480 4.56606987675 4.62350434107 |
3890 | + 4.68166124202 4.74054966673 4.80017881664 4.86055800892 |
3891 | + 4.92169667795 4.98360437676 5.04629077856 5.10976567822 |
3892 | + 5.17403899384 5.23912076824 5.30502117059 5.37175049796 |
3893 | + 5.43931917693 5.50773776526 5.57701695349 5.64716756663 |
3894 | + 5.71820056586 5.79012705022 5.86295825839 5.93670557037 |
3895 | + 6.01138050935 6.08699474343 6.16356008749 6.24108850501 |
3896 | + 6.31959210998 6.39908316875 6.47957410194 6.56107748643 |
3897 | + 6.64360605730 6.72717270979 6.81179050138 6.89747265375 |
3898 | + 6.98423255493 7.07208376132 7.16103999985 7.25111517012 |
3899 | + 7.34232334655 7.43467878061 7.52819590302 7.62288932603 |
3900 | + 7.71877384566 7.81586444408 7.91417629189 8.01372475051 |
3901 | + 8.11452537459 8.21659391444 8.31994631847 8.42459873571 |
3902 | + 8.53056751830 8.63786922409 8.74652061919 8.85653868060 |
3903 | + 8.96794059886 9.08074378075 9.19496585200 9.31062466004 |
3904 | + 9.42773827678 9.54632500149 9.66640336356 9.78799212549 |
3905 | + 9.91111028577 10.0357770819 10.1620119932 10.2898347443 |
3906 | + 10.4192653076 10.5503239070 10.6830310207 10.8174073843 |
3907 | + 10.9534739945 11.0912521120 11.2307632649 11.3720292520 |
3908 | + 11.5150721466 11.6599142992 11.8065783418 11.9550871910 |
3909 | + 12.1054640515 12.2577324201 12.4119160890 12.5680391497 |
3910 | + 12.7261259968 12.8862013316 13.0482901662 13.2124178274 |
3911 | + 13.3786099605 13.5468925332 13.7172918401 13.8898345064 |
3912 | + 14.0645474923 14.2414580970 14.4205939632 14.6019830812 |
3913 | + 14.7856537934 14.9716347988 15.1599551573 15.3506442942 |
3914 | + 15.5437320053 15.7392484607 15.9372242104 16.1376901885 |
3915 | + 16.3406777181 16.5462185166 16.7543447000 16.9650887886 |
3916 | + 17.1784837114 17.3945628120 17.6133598530 17.8349090221 |
3917 | + 18.0592449366 18.2864026495 18.5164176548 18.7493258926 |
3918 | + 18.9851637554 19.2239680933 19.4657762201 19.7106259186 |
3919 | + 19.9585554472 20.2096035454 20.4638094399 20.7212128509 |
3920 | + 20.9818539982 21.2457736076 21.5130129171 21.7836136832 |
3921 | + 22.0576181879 22.3350692450 22.6160102069 22.9004849709 |
3922 | + 23.1885379870 23.4802142641 23.7755593770 24.0746194741 |
3923 | + 24.3774412842 24.6840721237 24.9945599044 25.3089531406 |
3924 | + 25.6273009569 25.9496530957 26.2760599253 26.6065724474 |
3925 | + 26.9412423053 27.2801217917 27.6232638573 27.9707221188 |
3926 | + 28.3225508672 28.6788050764 29.0395404119 29.4048132394 |
3927 | + 29.7746806335 30.1492003866 30.5284310183 30.9124317841 |
3928 | + 31.3012626850 31.6949844765 32.0936586784 32.4973475845 |
3929 | + 32.9061142720 33.3200226114 33.7391372768 34.1635237557 |
3930 | + 34.5932483594 35.0283782331 35.4689813669 35.9151266059 |
3931 | + 36.3668836611 36.8243231206 37.2875164601 37.7565360547 |
3932 | + 38.2314551894 38.7123480715 39.1992898414 39.6923565847 |
3933 | + 40.1916253442 40.6971741316 41.2090819399 41.7274287558 |
3934 | + 42.2522955719 42.7837643999 43.3219182828 43.8668413082 |
3935 | + 44.4186186215 44.9773364390 45.5430820614 46.1159438878 |
3936 | + 46.6960114289 47.2833753214 47.8781273423 48.4803604225 |
3937 | + 49.0901686624 49.7076473457 50.3328929547 50.9660031853 |
3938 | + 51.6070769622 52.2562144546 52.9135170915 53.5790875777 |
3939 | + 54.2530299100 54.9354493933 55.6264526570 56.3261476718 |
3940 | + 57.0346437664 57.7520516448 58.4784834034 59.2140525488 |
3941 | + 59.9588740149 60.7130641818 61.4767408931 62.2500234750 |
3942 | + 63.0330327543 63.8258910779 64.6287223315 65.4416519592 |
3943 | + 66.2648069827 67.0983160219 67.9423093140 68.7969187350 |
3944 | + 69.6622778191 70.5385217805 71.4257875341 72.3242137170 |
3945 | + 73.2339407101 74.1551106601 75.0878675017 76.0323569800 |
3946 | + 76.9887266734 77.9571260167 78.9377063242 79.9306208136 |
3947 | + 80.9360246297 81.9540748691 82.9849306040 84.0287529079 |
3948 | + 85.0857048800 86.1559516713 87.2396605100 88.3370007278 |
3949 | + 89.4481437863 90.5732633040 91.7125350830 92.8661371368 |
3950 | + 94.0342497182 95.2170553471 96.4147388393 97.6274873352 |
3951 | + 98.8554903293 100.098939700 101.358029738 102.632957179 |
3952 | + 103.923921233 105.231123615 106.554768580 107.895062949 |
3953 | + 109.252216145 110.626440227 112.017949920 113.426962651 |
3954 | + 114.853698579 116.298380637 117.761234558 119.242488916 |
3955 | + Down Pseudopotential follows (l on next line) |
3956 | + 0 |
3957 | + -0.344168687199E-05 -0.692679840936E-05 -0.104554786075E-04 -0.140289478131E-04 |
3958 | + -0.176469065595E-04 -0.213107567387E-04 -0.250204576271E-04 -0.287769247868E-04 |
3959 | + -0.325806108655E-04 -0.364321472444E-04 -0.403321296066E-04 -0.442811671561E-04 |
3960 | + -0.482798785096E-04 -0.523288870839E-04 -0.564288249121E-04 -0.605803351020E-04 |
3961 | + -0.647840642146E-04 -0.690406688999E-04 -0.733508169255E-04 -0.777151789328E-04 |
3962 | + -0.821344370388E-04 -0.866092832973E-04 -0.911404171782E-04 -0.957285444134E-04 |
3963 | + -0.100374383087E-03 -0.105078660462E-03 -0.109842108281E-03 -0.114665475116E-03 |
3964 | + -0.119549512171E-03 -0.124494981798E-03 -0.129502657329E-03 -0.134573322717E-03 |
3965 | + -0.139707770074E-03 -0.144906798902E-03 -0.150171224552E-03 -0.155501868603E-03 |
3966 | + -0.160899563188E-03 -0.166365152228E-03 -0.171899491848E-03 -0.177503443427E-03 |
3967 | + -0.183177883715E-03 -0.188923699707E-03 -0.194741789671E-03 -0.200633063791E-03 |
3968 | + -0.206598437413E-03 -0.212638847878E-03 -0.218755239624E-03 -0.224948563469E-03 |
3969 | + -0.231219789284E-03 -0.237569898767E-03 -0.243999884013E-03 -0.250510745727E-03 |
3970 | + -0.257103505071E-03 -0.263779192527E-03 -0.270538847013E-03 -0.277383530413E-03 |
3971 | + -0.284314307686E-03 -0.291332263400E-03 -0.298438495416E-03 -0.305634110901E-03 |
3972 | + -0.312920236998E-03 -0.320298011876E-03 -0.327768587213E-03 -0.335333130229E-03 |
3973 | + -0.342992825129E-03 -0.350748865287E-03 -0.358602464327E-03 -0.366554852417E-03 |
3974 | + -0.374607266828E-03 -0.382760967092E-03 -0.391017229999E-03 -0.399377344966E-03 |
3975 | + -0.407842615531E-03 -0.416414364742E-03 -0.425093936433E-03 -0.433882682943E-03 |
3976 | + -0.442781975768E-03 -0.451793210712E-03 -0.460917792987E-03 -0.470157145969E-03 |
3977 | + -0.479512717321E-03 -0.488985968172E-03 -0.498578376470E-03 -0.508291441805E-03 |
3978 | + -0.518126684904E-03 -0.528085638490E-03 -0.538169859579E-03 -0.548380926392E-03 |
3979 | + -0.558720431066E-03 -0.569189991536E-03 -0.579791242488E-03 -0.590525841147E-03 |
3980 | + -0.601395464919E-03 -0.612401810050E-03 -0.623546599492E-03 -0.634831572710E-03 |
3981 | + -0.646258492993E-03 -0.657829147133E-03 -0.669545340929E-03 -0.681408907375E-03 |
3982 | + -0.693421699779E-03 -0.705585592158E-03 -0.717902488767E-03 -0.730374313785E-03 |
3983 | + -0.743003014199E-03 -0.755790564062E-03 -0.768738961224E-03 -0.781850230270E-03 |
3984 | + -0.795126417336E-03 -0.808569598877E-03 -0.822181876116E-03 -0.835965373103E-03 |
3985 | + -0.849922245115E-03 -0.864054673918E-03 -0.878364867097E-03 -0.892855059288E-03 |
3986 | + -0.907527515729E-03 -0.922384529582E-03 -0.937428421625E-03 -0.952661542551E-03 |
3987 | + -0.968086271856E-03 -0.983705021111E-03 -0.999520230194E-03 -0.101553436936E-02 |
3988 | + -0.103174994242E-02 -0.104816948220E-02 -0.106479555412E-02 -0.108163075600E-02 |
3989 | + -0.109867771954E-02 -0.111593910674E-02 -0.113341761563E-02 -0.115111597786E-02 |
3990 | + -0.116903695686E-02 -0.118718335562E-02 -0.120555800661E-02 -0.122416378234E-02 |
3991 | + -0.124300359171E-02 -0.126208037470E-02 -0.128139711482E-02 -0.130095683031E-02 |
3992 | + -0.132076257612E-02 -0.134081744734E-02 -0.136112457800E-02 -0.138168714216E-02 |
3993 | + -0.140250835038E-02 -0.142359145705E-02 -0.144493975754E-02 -0.146655658590E-02 |
3994 | + -0.148844532051E-02 -0.151060938240E-02 -0.153305223304E-02 -0.155577738053E-02 |
3995 | + -0.157878837581E-02 -0.160208881254E-02 -0.162568233360E-02 -0.164957262462E-02 |
3996 | + -0.167376341905E-02 -0.169825849540E-02 -0.172306168210E-02 -0.174817685571E-02 |
3997 | + -0.177360793793E-02 -0.179935890471E-02 -0.182543377914E-02 -0.185183663442E-02 |
3998 | + -0.187857159765E-02 -0.190564284529E-02 -0.193305460649E-02 -0.196081116681E-02 |
3999 | + -0.198891686110E-02 -0.201737608151E-02 -0.204619327567E-02 -0.207537294460E-02 |
4000 | + -0.210491964952E-02 -0.213483800646E-02 -0.216513268980E-02 -0.219580843389E-02 |
4001 | + -0.222687003166E-02 -0.225832233589E-02 -0.229017026197E-02 -0.232241878590E-02 |
4002 | + -0.235507294657E-02 -0.238813784596E-02 -0.242161865126E-02 -0.245552059364E-02 |
4003 | + -0.248984896921E-02 -0.252460914425E-02 -0.255980654798E-02 -0.259544668067E-02 |
4004 | + -0.263153511248E-02 -0.266807747986E-02 -0.270507949465E-02 -0.274254693828E-02 |
4005 | + -0.278048566374E-02 -0.281890160054E-02 -0.285780075085E-02 -0.289718919271E-02 |
4006 | + -0.293707308036E-02 -0.297745864603E-02 -0.301835220049E-02 -0.305976013253E-02 |
4007 | + -0.310168891261E-02 -0.314414509310E-02 -0.318713530681E-02 -0.323066627127E-02 |
4008 | + -0.327474478879E-02 -0.331937774578E-02 -0.336457211763E-02 -0.341033496529E-02 |
4009 | + -0.345667343898E-02 -0.350359478007E-02 -0.355110631966E-02 -0.359921548145E-02 |
4010 | + -0.364792978309E-02 -0.369725683598E-02 -0.374720434733E-02 -0.379778012281E-02 |
4011 | + -0.384899206375E-02 -0.390084817209E-02 -0.395335655179E-02 -0.400652540639E-02 |
4012 | + -0.406036304381E-02 -0.411487787704E-02 -0.417007842325E-02 -0.422597330795E-02 |
4013 | + -0.428257126561E-02 -0.433988113901E-02 -0.439791188309E-02 -0.445667256572E-02 |
4014 | + -0.451617236864E-02 -0.457642058816E-02 -0.463742663840E-02 -0.469920005260E-02 |
4015 | + -0.476175048225E-02 -0.482508770102E-02 -0.488922160617E-02 -0.495416221868E-02 |
4016 | + -0.501991968523E-02 -0.508650428109E-02 -0.515392641063E-02 -0.522219660830E-02 |
4017 | + -0.529132554178E-02 -0.536132401262E-02 -0.543220295856E-02 -0.550397345475E-02 |
4018 | + -0.557664671513E-02 -0.565023409580E-02 -0.572474709487E-02 -0.580019735488E-02 |
4019 | + -0.587659666606E-02 -0.595395696545E-02 -0.603229034113E-02 -0.611160903342E-02 |
4020 | + -0.619192543528E-02 -0.627325209739E-02 -0.635560172752E-02 -0.643898719207E-02 |
4021 | + -0.652342152155E-02 -0.660891790876E-02 -0.669548971258E-02 -0.678315046118E-02 |
4022 | + -0.687191385112E-02 -0.696179375249E-02 -0.705280420957E-02 -0.714495944286E-02 |
4023 | + -0.723827385261E-02 -0.733276201933E-02 -0.742843870724E-02 -0.752531886677E-02 |
4024 | + -0.762341763553E-02 -0.772275034225E-02 -0.782333250835E-02 -0.792517985007E-02 |
4025 | + -0.802830828179E-02 -0.813273391813E-02 -0.823847307625E-02 -0.834554227819E-02 |
4026 | + -0.845395825439E-02 -0.856373794583E-02 -0.867489850587E-02 -0.878745730443E-02 |
4027 | + -0.890143192960E-02 -0.901684019035E-02 -0.913370012038E-02 -0.925202997978E-02 |
4028 | + -0.937184825856E-02 -0.949317367915E-02 -0.961602519960E-02 -0.974042201633E-02 |
4029 | + -0.986638356739E-02 -0.999392953552E-02 -0.101230798505E-01 -0.102538546932E-01 |
4030 | + -0.103862744986E-01 -0.105203599580E-01 -0.106561320239E-01 -0.107936119118E-01 |
4031 | + -0.109328211039E-01 -0.110737813534E-01 -0.112165146865E-01 -0.113610434064E-01 |
4032 | + -0.115073900977E-01 -0.116555776284E-01 -0.118056291541E-01 -0.119575681221E-01 |
4033 | + -0.121114182747E-01 -0.122672036526E-01 -0.124249485988E-01 -0.125846777631E-01 |
4034 | + -0.127464161050E-01 -0.129101888979E-01 -0.130760217336E-01 -0.132439405254E-01 |
4035 | + -0.134139715126E-01 -0.135861412653E-01 -0.137604766867E-01 -0.139370050196E-01 |
4036 | + -0.141157538490E-01 -0.142967511066E-01 -0.144800250762E-01 -0.146656043970E-01 |
4037 | + -0.148535180687E-01 -0.150437954557E-01 -0.152364662917E-01 -0.154315606851E-01 |
4038 | + -0.156291091222E-01 -0.158291424736E-01 -0.160316919980E-01 -0.162367893472E-01 |
4039 | + -0.164444665716E-01 -0.166547561246E-01 -0.168676908680E-01 -0.170833040770E-01 |
4040 | + -0.173016294453E-01 -0.175227010909E-01 -0.177465535609E-01 -0.179732218369E-01 |
4041 | + -0.182027413410E-01 -0.184351479405E-01 -0.186704779543E-01 -0.189087681585E-01 |
4042 | + -0.191500557914E-01 -0.193943785603E-01 -0.196417746466E-01 -0.198922827123E-01 |
4043 | + -0.201459419062E-01 -0.204027918690E-01 -0.206628727408E-01 -0.209262251666E-01 |
4044 | + -0.211928903026E-01 -0.214629098235E-01 -0.217363259277E-01 -0.220131813450E-01 |
4045 | + -0.222935193430E-01 -0.225773837335E-01 -0.228648188798E-01 -0.231558697034E-01 |
4046 | + -0.234505816912E-01 -0.237490009025E-01 -0.240511739760E-01 -0.243571481378E-01 |
4047 | + -0.246669712081E-01 -0.249806916087E-01 -0.252983583713E-01 -0.256200211442E-01 |
4048 | + -0.259457302009E-01 -0.262755364476E-01 -0.266094914309E-01 -0.269476473466E-01 |
4049 | + -0.272900570471E-01 -0.276367740504E-01 -0.279878525477E-01 -0.283433474127E-01 |
4050 | + -0.287033142096E-01 -0.290678092021E-01 -0.294368893620E-01 -0.298106123784E-01 |
4051 | + -0.301890366666E-01 -0.305722213773E-01 -0.309602264055E-01 -0.313531124008E-01 |
4052 | + -0.317509407757E-01 -0.321537737164E-01 -0.325616741917E-01 -0.329747059631E-01 |
4053 | + -0.333929335954E-01 -0.338164224657E-01 -0.342452387746E-01 -0.346794495561E-01 |
4054 | + -0.351191226886E-01 -0.355643269047E-01 -0.360151318030E-01 -0.364716078582E-01 |
4055 | + -0.369338264326E-01 -0.374018597873E-01 -0.378757810933E-01 -0.383556644432E-01 |
4056 | + -0.388415848627E-01 -0.393336183227E-01 -0.398318417505E-01 -0.403363330428E-01 |
4057 | + -0.408471710774E-01 -0.413644357256E-01 -0.418882078650E-01 -0.424185693919E-01 |
4058 | + -0.429556032346E-01 -0.434993933658E-01 -0.440500248167E-01 -0.446075836893E-01 |
4059 | + -0.451721571710E-01 -0.457438335476E-01 -0.463227022174E-01 -0.469088537054E-01 |
4060 | + -0.475023796773E-01 -0.481033729543E-01 -0.487119275273E-01 -0.493281385719E-01 |
4061 | + -0.499521024637E-01 -0.505839167927E-01 -0.512236803796E-01 -0.518714932908E-01 |
4062 | + -0.525274568542E-01 -0.531916736753E-01 -0.538642476538E-01 -0.545452839991E-01 |
4063 | + -0.552348892476E-01 -0.559331712794E-01 -0.566402393351E-01 -0.573562040333E-01 |
4064 | + -0.580811773879E-01 -0.588152728261E-01 -0.595586052059E-01 -0.603112908345E-01 |
4065 | + -0.610734474870E-01 -0.618451944242E-01 -0.626266524125E-01 -0.634179437422E-01 |
4066 | + -0.642191922474E-01 -0.650305233253E-01 -0.658520639562E-01 -0.666839427236E-01 |
4067 | + -0.675262898348E-01 -0.683792371411E-01 -0.692429181594E-01 -0.701174680925E-01 |
4068 | + -0.710030238516E-01 -0.718997240773E-01 -0.728077091620E-01 -0.737271212719E-01 |
4069 | + -0.746581043702E-01 -0.756008042395E-01 -0.765553685052E-01 -0.775219466590E-01 |
4070 | + -0.785006900830E-01 -0.794917520732E-01 -0.804952878649E-01 -0.815114546564E-01 |
4071 | + -0.825404116352E-01 -0.835823200026E-01 -0.846373430000E-01 -0.857056459349E-01 |
4072 | + -0.867873962071E-01 -0.878827633359E-01 -0.889919189872E-01 -0.901150370009E-01 |
4073 | + -0.912522934190E-01 -0.924038665135E-01 -0.935699368157E-01 -0.947506871447E-01 |
4074 | + -0.959463026370E-01 -0.971569707764E-01 -0.983828814243E-01 -0.996242268501E-01 |
4075 | + -0.100881201762 -0.102154003341 -0.103442831266 -0.104747887757 |
4076 | + -0.106069377596 -0.107407508169 -0.108762489496 -0.110134534266 |
4077 | + -0.111523857870 -0.112930678438 -0.114355216875 -0.115797696895 |
4078 | + -0.117258345058 -0.118737390808 -0.120235066511 -0.121751607491 |
4079 | + -0.123287252070 -0.124842241607 -0.126416820539 -0.128011236417 |
4080 | + -0.129625739953 -0.131260585056 -0.132916028877 -0.134592331850 |
4081 | + -0.136289757737 -0.138008573670 -0.139749050195 -0.141511461321 |
4082 | + -0.143296084559 -0.145103200976 -0.146933095237 -0.148786055652 |
4083 | + -0.150662374229 -0.152562346719 -0.154486272668 -0.156434455467 |
4084 | + -0.158407202404 -0.160404824712 -0.162427637628 -0.164475960444 |
4085 | + -0.166550116560 -0.168650433540 -0.170777243170 -0.172930881512 |
4086 | + -0.175111688963 -0.177320010316 -0.179556194816 -0.181820596220 |
4087 | + -0.184113572863 -0.186435487718 -0.188786708455 -0.191167607514 |
4088 | + -0.193578562163 -0.196019954566 -0.198492171854 -0.200995606188 |
4089 | + -0.203530654832 -0.206097720225 -0.208697210048 -0.211329537301 |
4090 | + -0.213995120374 -0.216694383128 -0.219427754963 -0.222195670903 |
4091 | + -0.224998571674 -0.227836903780 -0.230711119590 -0.233621677419 |
4092 | + -0.236569041612 -0.239553682630 -0.242576077140 -0.245636708102 |
4093 | + -0.248736064857 -0.251874643224 -0.255052945593 -0.258271481015 |
4094 | + -0.261530765306 -0.264831321141 -0.268173678157 -0.271558373054 |
4095 | + -0.274985949700 -0.278456959238 -0.281971960190 -0.285531518572 |
4096 | + -0.289136208003 -0.292786609821 -0.296483313199 -0.300226915260 |
4097 | + -0.304018021203 -0.307857244423 -0.311745206638 -0.315682538015 |
4098 | + -0.319669877300 -0.323707871956 -0.327797178291 -0.331938461602 |
4099 | + -0.336132396313 -0.340379666122 -0.344680964143 -0.349036993060 |
4100 | + -0.353448465277 -0.357916103076 -0.362440638776 -0.367022814894 |
4101 | + -0.371663384312 -0.376363110447 -0.381122767425 -0.385943140255 |
4102 | + -0.390825025013 -0.395769229022 -0.400776571049 -0.405847881487 |
4103 | + -0.410984002564 -0.416185788534 -0.421454105891 -0.426789833574 |
4104 | + -0.432193863189 -0.437667099224 -0.443210459276 -0.448824874287 |
4105 | + -0.454511288773 -0.460270661071 -0.466103963587 -0.472012183046 |
4106 | + -0.477996320756 -0.484057392872 -0.490196430670 -0.496414480825 |
4107 | + -0.502712605700 -0.509091883635 -0.515553409252 -0.522098293762 |
4108 | + -0.528727665281 -0.535442669156 -0.542244468293 -0.549134243505 |
4109 | + -0.556113193856 -0.563182537024 -0.570343509669 -0.577597367811 |
4110 | + -0.584945387217 -0.592388863802 -0.599929114041 -0.607567475384 |
4111 | + -0.615305306690 -0.623143988675 -0.631084924364 -0.639129539560 |
4112 | + -0.647279283329 -0.655535628489 -0.663900072128 -0.672374136119 |
4113 | + -0.680959367663 -0.689657339842 -0.698469652187 -0.707397931265 |
4114 | + -0.716443831281 -0.725609034700 -0.734895252882 -0.744304226741 |
4115 | + -0.753837727420 -0.763497556990 -0.773285549162 -0.783203570028 |
4116 | + -0.793253518819 -0.803437328691 -0.813756967525 -0.824214438764 |
4117 | + -0.834811782265 -0.845551075180 -0.856434432865 -0.867464009815 |
4118 | + -0.878642000631 -0.889970641011 -0.901452208776 -0.913089024927 |
4119 | + -0.924883454731 -0.936837908845 -0.948954844477 -0.961236766571 |
4120 | + -0.973686229046 -0.986305836060 -0.999098243319 -1.01206615943 |
4121 | + -1.02521234728 -1.03853962550 -1.05205086991 -1.06574901507 |
4122 | + -1.07963705584 -1.09371804903 -1.10799511505 -1.12247143963 |
4123 | + -1.13715027564 -1.15203494491 -1.16712884011 -1.18243542675 |
4124 | + -1.19795824513 -1.21370091251 -1.22966712518 -1.24586066070 |
4125 | + -1.26228538022 -1.27894523077 -1.29584424774 -1.31298655736 |
4126 | + -1.33037637928 -1.34801802927 -1.36591592189 -1.38407457340 |
4127 | + -1.40249860462 -1.42119274396 -1.44016183048 -1.45941081716 |
4128 | + -1.47894477410 -1.49876889194 -1.51888848536 -1.53930899664 |
4129 | + -1.56003599940 -1.58107520235 -1.60243245323 -1.62411374287 |
4130 | + -1.64612520928 -1.66847314195 -1.69116398623 -1.71420434781 |
4131 | + -1.73760099741 -1.76136087545 -1.78549109705 -1.80999895693 |
4132 | + -1.83489193468 -1.86017769997 -1.88586411799 -1.91195925505 |
4133 | + -1.93847138425 -1.96540899136 -1.99278078075 -2.02059568159 |
4134 | + -2.04886285410 -2.07759169597 -2.10679184890 -2.13647320537 |
4135 | + -2.16664591544 -2.19732039378 -2.22850732681 -2.26021767994 |
4136 | + -2.29246270505 -2.32525394800 -2.35860325636 -2.39252278717 |
4137 | + -2.42702501497 -2.46212273977 -2.49782909535 -2.53415755743 |
4138 | + -2.57112195219 -2.60873646467 -2.64701564744 -2.68597442919 |
4139 | + -2.72562812354 -2.76599243779 -2.80708348181 -2.84891777686 |
4140 | + -2.89151226458 -2.93488431585 -2.97905173969 -3.02403279220 |
4141 | + -3.06984618532 -3.11651109565 -3.16404717314 -3.21247454964 |
4142 | + -3.26181384737 -3.31208618720 -3.36331319673 -3.41551701821 |
4143 | + -3.46872031616 -3.52294628471 -3.57821865466 -3.63456170020 |
4144 | + -3.69200024513 -3.75055966881 -3.81026591149 -3.87114547925 |
4145 | + -3.93322544825 -3.99653346845 -4.06109776666 -4.12694714885 |
4146 | + -4.19411100170 -4.26261929334 -4.33250257322 -4.40379197100 |
4147 | + -4.47651919457 -4.55071652687 -4.62641682179 -4.70365349879 |
4148 | + -4.78246053642 -4.86287246459 -4.94492435553 -5.02865181354 |
4149 | + -5.11409096334 -5.20127843717 -5.29025136051 -5.38104733656 |
4150 | + -5.47370442940 -5.56826114602 -5.66475641720 -5.76322957738 |
4151 | + -5.86372034375 -5.96626879460 -6.07091534726 -6.17770073588 |
4152 | + -6.28666598936 -6.39785240976 -6.51130155164 -6.62705520293 |
4153 | + -6.74515536764 -6.86564425127 -6.98856424948 -7.11395794080 |
4154 | + -7.24186808425 -7.37233762281 -7.50540969370 -7.64112764658 |
4155 | + -7.77953507092 -7.92067583371 -8.06459412901 -8.21133454068 |
4156 | + -8.36094211997 -8.51346247950 -8.66894190539 -8.82742748915 |
4157 | + -8.98896728108 -9.15361046658 -9.32140756668 -9.49241066360 |
4158 | + -9.66667365155 -9.84425251142 -10.0252056246 -10.2095939263 |
4159 | + -10.3974823175 -10.5889348994 -10.7840293936 -10.9828626984 |
4160 | + -11.1853196453 -11.3921745678 -11.6014146806 -11.8102642499 |
4161 | + -12.0221168165 -12.2393026908 -12.4612848983 -12.6884521500 |
4162 | + -12.9209454725 -13.1589193608 -13.4025296562 -13.6519202652 |
4163 | + -13.9072279100 -14.1685803710 -14.4360957615 -14.7098813807 |
4164 | + -14.9900323702 -15.2766301735 -15.5697408098 -15.8694129709 |
4165 | + -16.1756759491 -16.4885373999 -16.8079809489 -17.1339636438 |
4166 | + -17.4664132738 -17.8052255636 -18.1502612474 -18.5013430814 |
4167 | + -18.8582527990 -19.2207280440 -19.5884593430 -19.9610871550 |
4168 | + -20.3381990609 -20.7193271547 -21.1039457167 -21.4914692423 |
4169 | + -21.8812509020 -22.2725815555 -22.6646893867 -23.0567402679 |
4170 | + -23.4478389742 -23.8370313261 -24.2233073996 -24.6056058837 |
4171 | + -24.9828196743 -25.3538028593 -25.7173790806 -26.0723516897 |
4172 | + -26.4175138431 -26.7516675473 -27.0736188969 -27.3822418944 |
4173 | + -27.6764275575 -27.9551168402 -28.2174096239 -28.4624161308 |
4174 | + -28.6893783236 -28.8977228152 -29.0870050447 -29.2569811613 |
4175 | + -29.4076063318 -29.5390590615 -29.6517549196 -29.7463586359 |
4176 | + -29.8237911770 -29.8852306873 -29.9321054028 -29.9660762971 |
4177 | + -29.9890067262 -30.0029158517 -30.0099116235 -30.0121007544 |
4178 | + -30.0114611539 -30.0097026191 -30.0080225717 -30.0069049966 |
4179 | + -30.0060710840 -30.0053029068 -30.0046205298 -30.0040312326 |
4180 | + -30.0035039851 -30.0030426788 -30.0026365663 -30.0022805302 |
4181 | + -30.0019688109 -30.0016964272 -30.0014588623 -30.0012520615 |
4182 | + -30.0010723889 -30.0007919083 -30.0005824716 -30.0004266961 |
4183 | + -30.0003112940 -30.0002261473 -30.0001635825 -30.0001178034 |
4184 | + -30.0000844500 -30.0000602557 -30.0000427842 -30.0000302250 |
4185 | + -30.0000212399 -30.0000148431 -30.0000103117 -30.0000071190 |
4186 | + -30.0000048815 -30.0000033227 -30.0000022433 -30.0000015006 |
4187 | + -30.0000009936 -30.0000006497 -30.0000004188 -30.0000002651 |
4188 | + -30.0000001639 -30.0000000983 -30.0000000563 -30.0000000300 |
4189 | + -30.0000000140 -30.0000000045 -29.9999999993 -29.9999999966 |
4190 | + -29.9999999955 -29.9999999953 -29.9999999956 -29.9999999961 |
4191 | + -29.9999999966 -29.9999999972 -29.9999999977 -29.9999999982 |
4192 | + -29.9999999985 -29.9999999989 -29.9999999991 -29.9999999993 |
4193 | + -29.9999999995 -29.9999999996 -29.9999999997 -29.9999999998 |
4194 | + -29.9999999998 -29.9999999999 -29.9999999999 -29.9999999999 |
4195 | + -29.9999999999 -30.0000000000 -30.0000000000 -30.0000000000 |
4196 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4197 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4198 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4199 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4200 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4201 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4202 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4203 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4204 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4205 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4206 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4207 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4208 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4209 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4210 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4211 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4212 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4213 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4214 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4215 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4216 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4217 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4218 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4219 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4220 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4221 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4222 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4223 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4224 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4225 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4226 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4227 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4228 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4229 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4230 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4231 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4232 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4233 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4234 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4235 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4236 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4237 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4238 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4239 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4240 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4241 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4242 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4243 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4244 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4245 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4246 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4247 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4248 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4249 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4250 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4251 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4252 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4253 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4254 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4255 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4256 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4257 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4258 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4259 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4260 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4261 | + Down Pseudopotential follows (l on next line) |
4262 | + 1 |
4263 | + -0.786726987868E-05 -0.158336314041E-04 -0.238999287762E-04 -0.320680913533E-04 |
4264 | + -0.403385375993E-04 -0.487133963666E-04 -0.571933630364E-04 -0.657800985343E-04 |
4265 | + -0.744748102476E-04 -0.832788937899E-04 -0.921937186901E-04 -0.101220677731E-03 |
4266 | + -0.110361182966E-03 -0.119616661227E-03 -0.128988558068E-03 -0.138478340352E-03 |
4267 | + -0.148087488755E-03 -0.157817504536E-03 -0.167669910693E-03 -0.177646243857E-03 |
4268 | + -0.187748063028E-03 -0.197976948170E-03 -0.208334497833E-03 -0.218822328139E-03 |
4269 | + -0.229442079013E-03 -0.240195411154E-03 -0.251084001479E-03 -0.262109555631E-03 |
4270 | + -0.273273793914E-03 -0.284578459976E-03 -0.296025320787E-03 -0.307616166434E-03 |
4271 | + -0.319352807822E-03 -0.331237076059E-03 -0.343270831077E-03 -0.355455952178E-03 |
4272 | + -0.367794342520E-03 -0.380287930522E-03 -0.392938670449E-03 -0.405748535632E-03 |
4273 | + -0.418719528758E-03 -0.431853676924E-03 -0.445153032842E-03 -0.458619675656E-03 |
4274 | + -0.472255704380E-03 -0.486063254911E-03 -0.500044485317E-03 -0.514201575315E-03 |
4275 | + -0.528536739129E-03 -0.543052218464E-03 -0.557750281272E-03 -0.572633220160E-03 |
4276 | + -0.587703364445E-03 -0.602963069219E-03 -0.618414714668E-03 -0.634060720818E-03 |
4277 | + -0.649903527853E-03 -0.665945612864E-03 -0.682189483749E-03 -0.698637675451E-03 |
4278 | + -0.715292760847E-03 -0.732157342024E-03 -0.749234052993E-03 -0.766525561953E-03 |
4279 | + -0.784034572967E-03 -0.801763818385E-03 -0.819716070163E-03 -0.837894136405E-03 |
4280 | + -0.856300852166E-03 -0.874939094857E-03 -0.893811779500E-03 -0.912921854350E-03 |
4281 | + -0.932272302646E-03 -0.951866148270E-03 -0.971706457279E-03 -0.991796325901E-03 |
4282 | + -0.101213889145E-02 -0.103273733778E-02 -0.105359488061E-02 -0.107471477662E-02 |
4283 | + -0.109610032984E-02 -0.111775488111E-02 -0.113968181171E-02 -0.116188454855E-02 |
4284 | + -0.118436656387E-02 -0.120713136650E-02 -0.123018251438E-02 -0.125352361184E-02 |
4285 | + -0.127715830262E-02 -0.130109028205E-02 -0.132532328834E-02 -0.134986110872E-02 |
4286 | + -0.137470757737E-02 -0.139986657444E-02 -0.142534203426E-02 -0.145113793551E-02 |
4287 | + -0.147725830883E-02 -0.150370723689E-02 -0.153048885025E-02 -0.155760733591E-02 |
4288 | + -0.158506693080E-02 -0.161287192251E-02 -0.164102665927E-02 -0.166953553994E-02 |
4289 | + -0.169840301733E-02 -0.172763360284E-02 -0.175723186358E-02 -0.178720242570E-02 |
4290 | + -0.181754996965E-02 -0.184827923930E-02 -0.187939503688E-02 -0.191090222138E-02 |
4291 | + -0.194280571745E-02 -0.197511051106E-02 -0.200782164925E-02 -0.204094424185E-02 |
4292 | + -0.207448346545E-02 -0.210844456117E-02 -0.214283283485E-02 -0.217765365978E-02 |
4293 | + -0.221291247608E-02 -0.224861479443E-02 -0.228476619280E-02 -0.232137231903E-02 |
4294 | + -0.235843889447E-02 -0.239597170995E-02 -0.243397662988E-02 -0.247245959258E-02 |
4295 | + -0.251142661225E-02 -0.255088377594E-02 -0.259083724983E-02 -0.263129327730E-02 |
4296 | + -0.267225817775E-02 -0.271373835479E-02 -0.275574028687E-02 -0.279827053830E-02 |
4297 | + -0.284133575623E-02 -0.288494266590E-02 -0.292909808371E-02 -0.297380890900E-02 |
4298 | + -0.301908212662E-02 -0.306492481102E-02 -0.311134412561E-02 -0.315834732454E-02 |
4299 | + -0.320594174977E-02 -0.325413483908E-02 -0.330293412379E-02 -0.335234722726E-02 |
4300 | + -0.340238187107E-02 -0.345304587413E-02 -0.350434715105E-02 -0.355629371915E-02 |
4301 | + -0.360889369526E-02 -0.366215529637E-02 -0.371608684688E-02 -0.377069677277E-02 |
4302 | + -0.382599360753E-02 -0.388198599001E-02 -0.393868267019E-02 -0.399609250803E-02 |
4303 | + -0.405422447136E-02 -0.411308764570E-02 -0.417269122798E-02 -0.423304453034E-02 |
4304 | + -0.429415698470E-02 -0.435603813908E-02 -0.441869766175E-02 -0.448214534580E-02 |
4305 | + -0.454639110288E-02 -0.461144497211E-02 -0.467731711911E-02 -0.474401783481E-02 |
4306 | + -0.481155754316E-02 -0.487994679670E-02 -0.494919628094E-02 -0.501931681700E-02 |
4307 | + -0.509031936114E-02 -0.516221500701E-02 -0.523501498935E-02 -0.530873068297E-02 |
4308 | + -0.538337360614E-02 -0.545895542163E-02 -0.553548794000E-02 -0.561298311935E-02 |
4309 | + -0.569145306729E-02 -0.577091004734E-02 -0.585136647267E-02 -0.593283491538E-02 |
4310 | + -0.601532810637E-02 -0.609885893296E-02 -0.618344044900E-02 -0.626908587034E-02 |
4311 | + -0.635580857788E-02 -0.644362212370E-02 -0.653254022846E-02 -0.662257678578E-02 |
4312 | + -0.671374586374E-02 -0.680606170801E-02 -0.689953874356E-02 -0.699419157546E-02 |
4313 | + -0.709003499379E-02 -0.718708397520E-02 -0.728535368272E-02 -0.738485947144E-02 |
4314 | + -0.748561688982E-02 -0.758764168048E-02 -0.769094978641E-02 -0.779555734893E-02 |
4315 | + -0.790148071287E-02 -0.800873642987E-02 -0.811734125839E-02 -0.822731216809E-02 |
4316 | + -0.833866634263E-02 -0.845142118104E-02 -0.856559430122E-02 -0.868120354425E-02 |
4317 | + -0.879826697305E-02 -0.891680287901E-02 -0.903682978492E-02 -0.915836644425E-02 |
4318 | + -0.928143184752E-02 -0.940604522469E-02 -0.953222604599E-02 -0.965999402772E-02 |
4319 | + -0.978936913468E-02 -0.992037158122E-02 -0.100530218369E-01 -0.101873406291E-01 |
4320 | + -0.103233489455E-01 -0.104610680372E-01 -0.106005194232E-01 -0.107417248941E-01 |
4321 | + -0.108847065126E-01 -0.110294866201E-01 -0.111760878394E-01 -0.113245330772E-01 |
4322 | + -0.114748455279E-01 -0.116270486786E-01 -0.117811663119E-01 -0.119372225086E-01 |
4323 | + -0.120952416529E-01 -0.122552484359E-01 -0.124172678591E-01 -0.125813252387E-01 |
4324 | + -0.127474462085E-01 -0.129156567261E-01 -0.130859830747E-01 -0.132584518677E-01 |
4325 | + -0.134330900549E-01 -0.136099249232E-01 -0.137889841038E-01 -0.139702955757E-01 |
4326 | + -0.141538876685E-01 -0.143397890697E-01 -0.145280288272E-01 -0.147186363530E-01 |
4327 | + -0.149116414313E-01 -0.151070742191E-01 -0.153049652533E-01 -0.155053454558E-01 |
4328 | + -0.157082461358E-01 -0.159136989976E-01 -0.161217361440E-01 -0.163323900812E-01 |
4329 | + -0.165456937250E-01 -0.167616804045E-01 -0.169803838685E-01 -0.172018382903E-01 |
4330 | + -0.174260782727E-01 -0.176531388543E-01 -0.178830555140E-01 -0.181158641771E-01 |
4331 | + -0.183516012208E-01 -0.185903034801E-01 -0.188320082532E-01 -0.190767533070E-01 |
4332 | + -0.193245768841E-01 -0.195755177082E-01 -0.198296149894E-01 -0.200869084317E-01 |
4333 | + -0.203474382383E-01 -0.206112451178E-01 -0.208783702913E-01 -0.211488554983E-01 |
4334 | + -0.214227430034E-01 -0.217000756026E-01 -0.219808966303E-01 -0.222652499661E-01 |
4335 | + -0.225531800416E-01 -0.228447318474E-01 -0.231399509396E-01 -0.234388834475E-01 |
4336 | + -0.237415760811E-01 -0.240480761373E-01 -0.243584315086E-01 -0.246726906896E-01 |
4337 | + -0.249909027845E-01 -0.253131175162E-01 -0.256393852321E-01 -0.259697569133E-01 |
4338 | + -0.263042841826E-01 -0.266430193115E-01 -0.269860152291E-01 -0.273333255307E-01 |
4339 | + -0.276850044858E-01 -0.280411070461E-01 -0.284016888548E-01 -0.287668062552E-01 |
4340 | + -0.291365162992E-01 -0.295108767561E-01 -0.298899461225E-01 -0.302737836304E-01 |
4341 | + -0.306624492569E-01 -0.310560037340E-01 -0.314545085570E-01 -0.318580259953E-01 |
4342 | + -0.322666191016E-01 -0.326803517212E-01 -0.330992885033E-01 -0.335234949098E-01 |
4343 | + -0.339530372265E-01 -0.343879825726E-01 -0.348283989119E-01 -0.352743550633E-01 |
4344 | + -0.357259207109E-01 -0.361831664160E-01 -0.366461636272E-01 -0.371149846918E-01 |
4345 | + -0.375897028676E-01 -0.380703923337E-01 -0.385571282023E-01 -0.390499865307E-01 |
4346 | + -0.395490443328E-01 -0.400543795915E-01 -0.405660712706E-01 -0.410841993272E-01 |
4347 | + -0.416088447247E-01 -0.421400894443E-01 -0.426780164991E-01 -0.432227099465E-01 |
4348 | + -0.437742549009E-01 -0.443327375480E-01 -0.448982451573E-01 -0.454708660964E-01 |
4349 | + -0.460506898448E-01 -0.466378070072E-01 -0.472323093285E-01 -0.478342897078E-01 |
4350 | + -0.484438422127E-01 -0.490610620945E-01 -0.496860458026E-01 -0.503188909999E-01 |
4351 | + -0.509596965780E-01 -0.516085626726E-01 -0.522655906793E-01 -0.529308832691E-01 |
4352 | + -0.536045444051E-01 -0.542866793580E-01 -0.549773947230E-01 -0.556767984367E-01 |
4353 | + -0.563849997934E-01 -0.571021094624E-01 -0.578282395057E-01 -0.585635033950E-01 |
4354 | + -0.593080160296E-01 -0.600618937546E-01 -0.608252543789E-01 -0.615982171935E-01 |
4355 | + -0.623809029905E-01 -0.631734340817E-01 -0.639759343180E-01 -0.647885291083E-01 |
4356 | + -0.656113454397E-01 -0.664445118972E-01 -0.672881586834E-01 -0.681424176394E-01 |
4357 | + -0.690074222652E-01 -0.698833077405E-01 -0.707702109462E-01 -0.716682704853E-01 |
4358 | + -0.725776267051E-01 -0.734984217188E-01 -0.744307994279E-01 -0.753749055446E-01 |
4359 | + -0.763308876150E-01 -0.772988950416E-01 -0.782790791069E-01 -0.792715929975E-01 |
4360 | + -0.802765918275E-01 -0.812942326630E-01 -0.823246745469E-01 -0.833680785235E-01 |
4361 | + -0.844246076635E-01 -0.854944270905E-01 -0.865777040056E-01 -0.876746077145E-01 |
4362 | + -0.887853096537E-01 -0.899099834173E-01 -0.910488047840E-01 -0.922019517454E-01 |
4363 | + -0.933696045327E-01 -0.945519456461E-01 -0.957491598827E-01 -0.969614343654E-01 |
4364 | + -0.981889585728E-01 -0.994319243683E-01 -0.100690526030 -0.101964960283 |
4365 | + -0.103255426327 -0.104562125870 -0.105885263159 -0.107225045013 |
4366 | + -0.108581680854 -0.109955382740 -0.111346365400 -0.112754846265 |
4367 | + -0.114181045504 -0.115625186058 -0.117087493677 -0.118568196949 |
4368 | + -0.120067527344 -0.121585719246 -0.123123009988 -0.124679639895 |
4369 | + -0.126255852316 -0.127851893665 -0.129468013459 -0.131104464359 |
4370 | + -0.132761502205 -0.134439386062 -0.136138378257 -0.137858744421 |
4371 | + -0.139600753531 -0.141364677952 -0.143150793478 -0.144959379382 |
4372 | + -0.146790718451 -0.148645097035 -0.150522805094 -0.152424136239 |
4373 | + -0.154349387781 -0.156298860778 -0.158272860081 -0.160271694382 |
4374 | + -0.162295676263 -0.164345122247 -0.166420352845 -0.168521692608 |
4375 | + -0.170649470176 -0.172804018335 -0.174985674062 -0.177194778585 |
4376 | + -0.179431677434 -0.181696720493 -0.183990262059 -0.186312660897 |
4377 | + -0.188664280296 -0.191045488124 -0.193456656892 -0.195898163807 |
4378 | + -0.198370390835 -0.200873724759 -0.203408557242 -0.205975284889 |
4379 | + -0.208574309309 -0.211206037177 -0.213870880301 -0.216569255687 |
4380 | + -0.219301585601 -0.222068297643 -0.224869824808 -0.227706605557 |
4381 | + -0.230579083890 -0.233487709410 -0.236432937398 -0.239415228888 |
4382 | + -0.242435050734 -0.245492875687 -0.248589182473 -0.251724455864 |
4383 | + -0.254899186761 -0.258113872263 -0.261369015759 -0.264665126995 |
4384 | + -0.268002722164 -0.271382323987 -0.274804461791 -0.278269671602 |
4385 | + -0.281778496222 -0.285331485322 -0.288929195529 -0.292572190509 |
4386 | + -0.296261041067 -0.299996325230 -0.303778628344 -0.307608543167 |
4387 | + -0.311486669963 -0.315413616600 -0.319389998647 -0.323416439471 |
4388 | + -0.327493570341 -0.331622030528 -0.335802467406 -0.340035536559 |
4389 | + -0.344321901886 -0.348662235708 -0.353057218876 -0.357507540882 |
4390 | + -0.362013899971 -0.366577003253 -0.371197566820 -0.375876315858 |
4391 | + -0.380613984768 -0.385411317285 -0.390269066600 -0.395187995479 |
4392 | + -0.400168876392 -0.405212491635 -0.410319633463 -0.415491104213 |
4393 | + -0.420727716442 -0.426030293056 -0.431399667445 -0.436836683624 |
4394 | + -0.442342196367 -0.447917071353 -0.453562185302 -0.459278426128 |
4395 | + -0.465066693080 -0.470927896893 -0.476862959938 -0.482872816377 |
4396 | + -0.488958412319 -0.495120705975 -0.501360667820 -0.507679280753 |
4397 | + -0.514077540265 -0.520556454604 -0.527117044943 -0.533760345557 |
4398 | + -0.540487403989 -0.547299281235 -0.554197051920 -0.561181804481 |
4399 | + -0.568254641350 -0.575416679144 -0.582669048855 -0.590012896042 |
4400 | + -0.597449381028 -0.604979679101 -0.612604980713 -0.620326491686 |
4401 | + -0.628145433422 -0.636063043114 -0.644080573960 -0.652199295382 |
4402 | + -0.660420493246 -0.668745470088 -0.677175545343 -0.685712055576 |
4403 | + -0.694356354720 -0.703109814309 -0.711973823731 -0.720949790466 |
4404 | + -0.730039140342 -0.739243317789 -0.748563786097 -0.758002027682 |
4405 | + -0.767559544350 -0.777237857572 -0.787038508760 -0.796963059547 |
4406 | + -0.807013092074 -0.817190209278 -0.827496035191 -0.837932215238 |
4407 | + -0.848500416544 -0.859202328242 -0.870039661792 -0.881014151299 |
4408 | + -0.892127553843 -0.903381649810 -0.914778243232 -0.926319162128 |
4409 | + -0.938006258858 -0.949841410476 -0.961826519097 -0.973963512262 |
4410 | + -0.986254343317 -0.998700991797 -1.01130546381 -1.02406979244 |
4411 | + -1.03699603815 -1.05008628918 -1.06334266201 -1.07676730172 |
4412 | + -1.09036238248 -1.10413010797 -1.11807271183 -1.13219245815 |
4413 | + -1.14649164188 -1.16097258937 -1.17563765882 -1.19048924079 |
4414 | + -1.20552975870 -1.22076166936 -1.23618746347 -1.25180966620 |
4415 | + -1.26763083770 -1.28365357365 -1.29988050589 -1.31631430294 |
4416 | + -1.33295767061 -1.34981335263 -1.36688413124 -1.38417282784 |
4417 | + -1.40168230361 -1.41941546018 -1.43737524033 -1.45556462861 |
4418 | + -1.47398665211 -1.49264438111 -1.51154092987 -1.53067945733 |
4419 | + -1.55006316788 -1.56969531216 -1.58957918782 -1.60971814036 |
4420 | + -1.63011556394 -1.65077490224 -1.67169964932 -1.69289335048 |
4421 | + -1.71435960322 -1.73610205810 -1.75812441974 -1.78043044773 |
4422 | + -1.80302395767 -1.82590882212 -1.84908897170 -1.87256839606 |
4423 | + -1.89635114505 -1.92044132971 -1.94484312351 -1.96956076342 |
4424 | + -1.99459855110 -2.01996085413 -2.04565210721 -2.07167681344 |
4425 | + -2.09803954555 -2.12474494729 -2.15179773470 -2.17920269753 |
4426 | + -2.20696470062 -2.23508868531 -2.26357967093 -2.29244275629 |
4427 | + -2.32168312121 -2.35130602804 -2.38131682331 -2.41172093930 |
4428 | + -2.44252389574 -2.47373130148 -2.50534885624 -2.53738235233 |
4429 | + -2.56983767651 -2.60272081176 -2.63603783923 -2.66979494005 |
4430 | + -2.70399839735 -2.73865459822 -2.77377003571 -2.80935131090 |
4431 | + -2.84540513495 -2.88193833129 -2.91895783772 -2.95647070865 |
4432 | + -2.99448411726 -3.03300535784 -3.07204184804 -3.11160113119 |
4433 | + -3.15169087868 -3.19231889232 -3.23349310675 -3.27522159191 |
4434 | + -3.31751255544 -3.36037434521 -3.40381545179 -3.44784451097 |
4435 | + -3.49247030628 -3.53770177150 -3.58354799326 -3.63001821347 |
4436 | + -3.67712183197 -3.72486840895 -3.77326766751 -3.82232949613 |
4437 | + -3.87206395109 -3.92248125895 -3.97359181887 -4.02540620495 |
4438 | + -4.07793516848 -4.13118964014 -4.18518073209 -4.23991973998 |
4439 | + -4.29541814487 -4.35168761496 -4.40874000730 -4.46658736924 |
4440 | + -4.52524193977 -4.58471615069 -4.64502262748 -4.70617419008 |
4441 | + -4.76818385331 -4.83106482712 -4.89483051643 -4.95949452074 |
4442 | + -5.02507063336 -5.09157284027 -5.15901531855 -5.22741243438 |
4443 | + -5.29677874055 -5.36712897347 -5.43847804961 -5.51084106131 |
4444 | + -5.58423327202 -5.65867011078 -5.73416716597 -5.81074017827 |
4445 | + -5.88840503279 -5.96717775028 -6.04707447730 -6.12811147550 |
4446 | + -6.21030510965 -6.29367183458 -6.37822818085 -6.46399073910 |
4447 | + -6.55097614295 -6.63920105049 -6.72868212411 -6.81943600870 |
4448 | + -6.91147930804 -7.00482855941 -7.09950020610 -7.19551056795 |
4449 | + -7.29287580964 -7.39161190669 -7.49173460907 -7.59325940222 |
4450 | + -7.69620146543 -7.80057562742 -7.90639631901 -8.01367752275 |
4451 | + -8.12243271931 -8.23267483065 -8.34441615960 -8.45766832601 |
4452 | + -8.57244219906 -8.68874782577 -8.80659435555 -8.92598996058 |
4453 | + -9.04694175207 -9.16945569209 -9.29353650104 -9.41918756057 |
4454 | + -9.54641081190 -9.67520664950 -9.80557381009 -9.93750925686 |
4455 | + -10.0710080591 -10.2060632670 -10.3426657822 -10.4808042232 |
4456 | + -10.6204647875 -10.7616311084 -10.9042841091 -11.0484018527 |
4457 | + -11.1939593889 -11.3409285989 -11.4892780376 -11.6389727745 |
4458 | + -11.7899742343 -11.9422400377 -12.0957238430 -12.2503751910 |
4459 | + -12.4061393529 -12.5629571835 -12.7207649812 -12.8794943563 |
4460 | + -13.0390721098 -13.1994201243 -13.3604552701 -13.5220893281 |
4461 | + -13.6842289332 -13.8467755397 -14.0096254135 -14.1726696535 |
4462 | + -14.3357942460 -14.4988801559 -14.6618034591 -14.8244355200 |
4463 | + -14.9866432189 -15.1482892329 -15.3092323756 -15.4693279995 |
4464 | + -15.6284284640 -15.7863836724 -15.9430416970 -16.0982492953 |
4465 | + -16.2518537434 -16.4036985526 -16.5536384383 -16.7015454972 |
4466 | + -16.8470786609 -16.9907860453 -17.1304291968 -17.2630082265 |
4467 | + -17.3916950955 -17.5186022815 -17.6429800079 -17.7650106218 |
4468 | + -17.8846367581 -18.0018241640 -18.1165513928 -18.2287984911 |
4469 | + -18.3385538778 -18.4458148854 -18.5505895102 -18.6528979269 |
4470 | + -18.7527740015 -18.8502668082 -18.9454421711 -19.0383842437 |
4471 | + -19.1291971409 -19.2180066292 -19.3049618876 -19.3902373357 |
4472 | + -19.4740345486 -19.5565842523 -19.6381483910 -19.7190222998 |
4473 | + -19.7995369524 -19.8800612771 -19.9610045438 -20.0428187832 |
4474 | + -20.1260012146 -20.2110966222 -20.2986996275 -20.3894567566 |
4475 | + -20.4840681812 -20.5832890169 -20.6879299683 -20.7988571108 |
4476 | + -20.9169905638 -21.0433017254 -21.1788087493 -21.3245698477 |
4477 | + -21.4816739744 -21.6512284780 -21.8343431398 -22.0321104415 |
4478 | + -22.2455796747 -22.4757334352 -22.7234333871 -22.9894274945 |
4479 | + -23.2742354596 -23.5781112300 -23.9010755557 -24.2426861525 |
4480 | + -24.6020748277 -24.9779155742 -25.3682866811 -25.7706674995 |
4481 | + -26.1818737878 -26.5980375239 -27.0146020196 -27.4263499290 |
4482 | + -27.8274705686 -28.2116764077 -28.5723789514 -28.9029350281 |
4483 | + -29.1969752129 -29.4488270662 -29.6540467726 -29.8100771572 |
4484 | + -29.9170421718 -29.9787342448 -30.0037403026 -30.0069047125 |
4485 | + -30.0060710840 -30.0053029068 -30.0046205298 -30.0040312326 |
4486 | + -30.0035039851 -30.0030426788 -30.0026365663 -30.0022805302 |
4487 | + -30.0019688109 -30.0016964272 -30.0014588623 -30.0012520615 |
4488 | + -30.0010723889 -30.0007919083 -30.0005824716 -30.0004266961 |
4489 | + -30.0003112940 -30.0002261473 -30.0001635825 -30.0001178034 |
4490 | + -30.0000844500 -30.0000602557 -30.0000427842 -30.0000302250 |
4491 | + -30.0000212399 -30.0000148431 -30.0000103117 -30.0000071190 |
4492 | + -30.0000048815 -30.0000033227 -30.0000022433 -30.0000015006 |
4493 | + -30.0000009936 -30.0000006497 -30.0000004188 -30.0000002651 |
4494 | + -30.0000001639 -30.0000000983 -30.0000000563 -30.0000000300 |
4495 | + -30.0000000140 -30.0000000045 -29.9999999993 -29.9999999966 |
4496 | + -29.9999999955 -29.9999999953 -29.9999999956 -29.9999999961 |
4497 | + -29.9999999966 -29.9999999972 -29.9999999977 -29.9999999982 |
4498 | + -29.9999999985 -29.9999999989 -29.9999999991 -29.9999999993 |
4499 | + -29.9999999995 -29.9999999996 -29.9999999997 -29.9999999998 |
4500 | + -29.9999999998 -29.9999999999 -29.9999999999 -29.9999999999 |
4501 | + -29.9999999999 -30.0000000000 -30.0000000000 -30.0000000000 |
4502 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4503 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4504 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4505 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4506 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4507 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4508 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4509 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4510 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4511 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4512 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4513 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4514 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4515 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4516 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4517 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4518 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4519 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4520 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4521 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4522 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4523 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4524 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4525 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4526 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4527 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4528 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4529 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4530 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4531 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4532 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4533 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4534 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4535 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4536 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4537 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4538 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4539 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4540 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4541 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4542 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4543 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4544 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4545 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4546 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4547 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4548 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4549 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4550 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4551 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4552 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4553 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4554 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4555 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4556 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4557 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4558 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4559 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4560 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4561 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4562 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4563 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4564 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4565 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4566 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4567 | + Down Pseudopotential follows (l on next line) |
4568 | + 2 |
4569 | + -0.140097856392E-04 -0.281959262620E-04 -0.425602379214E-04 -0.571056340534E-04 |
4570 | + -0.718335295773E-04 -0.867470623356E-04 -0.101847949390E-03 -0.117138886199E-03 |
4571 | + -0.132622127695E-03 -0.148300130212E-03 -0.164175337344E-03 -0.180250229448E-03 |
4572 | + -0.196527319830E-03 -0.213009150428E-03 -0.229698295930E-03 -0.246597366531E-03 |
4573 | + -0.263709000627E-03 -0.281035871752E-03 -0.298580689931E-03 -0.316346193748E-03 |
4574 | + -0.334335159278E-03 -0.352550398867E-03 -0.370994758950E-03 -0.389671119228E-03 |
4575 | + -0.408582399102E-03 -0.427731554839E-03 -0.447121575220E-03 -0.466755494254E-03 |
4576 | + -0.486636377319E-03 -0.506767330058E-03 -0.527151498565E-03 -0.547792069399E-03 |
4577 | + -0.568692267504E-03 -0.589855355812E-03 -0.611284644090E-03 -0.632983479711E-03 |
4578 | + -0.654955252370E-03 -0.677203395722E-03 -0.699731388200E-03 -0.722542746476E-03 |
4579 | + -0.745641035992E-03 -0.769029866255E-03 -0.792712892292E-03 -0.816693815716E-03 |
4580 | + -0.840976378419E-03 -0.865564379841E-03 -0.890461662517E-03 -0.915672111820E-03 |
4581 | + -0.941199669082E-03 -0.967048324845E-03 -0.993222117891E-03 -0.101972513393E-02 |
4582 | + -0.104656151795E-02 -0.107373546353E-02 -0.110125121249E-02 -0.112911306989E-02 |
4583 | + -0.115732538467E-02 -0.118589256668E-02 -0.121481908089E-02 -0.124410944393E-02 |
4584 | + -0.127376823529E-02 -0.130380008892E-02 -0.133420969624E-02 -0.136500180874E-02 |
4585 | + -0.139618123998E-02 -0.142775285835E-02 -0.145972159869E-02 -0.149209245922E-02 |
4586 | + -0.152487049264E-02 -0.155806082192E-02 -0.159166863586E-02 -0.162569918512E-02 |
4587 | + -0.166015778429E-02 -0.169504981794E-02 -0.173038074248E-02 -0.176615607459E-02 |
4588 | + -0.180238140248E-02 -0.183906239170E-02 -0.187620477091E-02 -0.191381434132E-02 |
4589 | + -0.195189698351E-02 -0.199045864727E-02 -0.202950535567E-02 -0.206904321060E-02 |
4590 | + -0.210907839295E-02 -0.214961715427E-02 -0.219066582972E-02 -0.223223083578E-02 |
4591 | + -0.227431866371E-02 -0.231693589218E-02 -0.236008917901E-02 -0.240378526776E-02 |
4592 | + -0.244803098613E-02 -0.249283324544E-02 -0.253819904934E-02 -0.258413548438E-02 |
4593 | + -0.263064972822E-02 -0.267774905012E-02 -0.272544080730E-02 -0.277373245401E-02 |
4594 | + -0.282263153552E-02 -0.287214568940E-02 -0.292228265597E-02 -0.297305026887E-02 |
4595 | + -0.302445645887E-02 -0.307650925910E-02 -0.312921680267E-02 -0.318258732663E-02 |
4596 | + -0.323662916769E-02 -0.329135077203E-02 -0.334676069071E-02 -0.340286757874E-02 |
4597 | + -0.345968020452E-02 -0.351720744612E-02 -0.357545829164E-02 -0.363444184154E-02 |
4598 | + -0.369416731323E-02 -0.375464403951E-02 -0.381588146931E-02 -0.387788917118E-02 |
4599 | + -0.394067683322E-02 -0.400425426757E-02 -0.406863140774E-02 -0.413381831190E-02 |
4600 | + -0.419982516719E-02 -0.426666228642E-02 -0.433434011288E-02 -0.440286922132E-02 |
4601 | + -0.447226032072E-02 -0.454252425195E-02 -0.461367199482E-02 -0.468571466686E-02 |
4602 | + -0.475866352296E-02 -0.483252996429E-02 -0.490732552972E-02 -0.498306190762E-02 |
4603 | + -0.505975093368E-02 -0.513740458692E-02 -0.521603500361E-02 -0.529565446988E-02 |
4604 | + -0.537627542513E-02 -0.545791046697E-02 -0.554057235143E-02 -0.562427399565E-02 |
4605 | + -0.570902847577E-02 -0.579484903592E-02 -0.588174908680E-02 -0.596974220508E-02 |
4606 | + -0.605884214054E-02 -0.614906281612E-02 -0.624041832726E-02 -0.633292294983E-02 |
4607 | + -0.642659113792E-02 -0.652143752553E-02 -0.661747693476E-02 -0.671472437103E-02 |
4608 | + -0.681319503003E-02 -0.691290429661E-02 -0.701386775159E-02 -0.711610117172E-02 |
4609 | + -0.721962052859E-02 -0.732444199960E-02 -0.743058196276E-02 -0.753805700162E-02 |
4610 | + -0.764688391095E-02 -0.775707969426E-02 -0.786866156908E-02 -0.798164697271E-02 |
4611 | + -0.809605355718E-02 -0.821189919934E-02 -0.832920200113E-02 -0.844798028960E-02 |
4612 | + -0.856825262596E-02 -0.869003780231E-02 -0.881335484739E-02 -0.893822303048E-02 |
4613 | + -0.906466186229E-02 -0.919269109848E-02 -0.932233074477E-02 -0.945360105732E-02 |
4614 | + -0.958652254740E-02 -0.972111598392E-02 -0.985740239814E-02 -0.999540308482E-02 |
4615 | + -0.101351396057E-01 -0.102766337973E-01 -0.104199077662E-01 -0.105649839000E-01 |
4616 | + -0.107118848682E-01 -0.108606336222E-01 -0.110112534062E-01 -0.111637677546E-01 |
4617 | + -0.113182004968E-01 -0.114745757647E-01 -0.116329179918E-01 -0.117932519194E-01 |
4618 | + -0.119556025997E-01 -0.121199954007E-01 -0.122864560095E-01 -0.124550104349E-01 |
4619 | + -0.126256850144E-01 -0.127985064171E-01 -0.129735016456E-01 -0.131506980436E-01 |
4620 | + -0.133301232988E-01 -0.135118054459E-01 -0.136957728744E-01 -0.138820543289E-01 |
4621 | + -0.140706789159E-01 -0.142616761093E-01 -0.144550757524E-01 -0.146509080640E-01 |
4622 | + -0.148492036440E-01 -0.150499934761E-01 -0.152533089339E-01 -0.154591817871E-01 |
4623 | + -0.156676442026E-01 -0.158787287529E-01 -0.160924684218E-01 -0.163088966056E-01 |
4624 | + -0.165280471217E-01 -0.167499542137E-01 -0.169746525541E-01 -0.172021772528E-01 |
4625 | + -0.174325638617E-01 -0.176658483785E-01 -0.179020672545E-01 -0.181412573998E-01 |
4626 | + -0.183834561887E-01 -0.186287014645E-01 -0.188770315476E-01 -0.191284852409E-01 |
4627 | + -0.193831018338E-01 -0.196409211108E-01 -0.199019833572E-01 -0.201663293647E-01 |
4628 | + -0.204340004373E-01 -0.207050383997E-01 -0.209794856026E-01 -0.212573849284E-01 |
4629 | + -0.215387797999E-01 -0.218237141855E-01 -0.221122326073E-01 -0.224043801469E-01 |
4630 | + -0.227002024526E-01 -0.229997457481E-01 -0.233030568375E-01 -0.236101831135E-01 |
4631 | + -0.239211725663E-01 -0.242360737880E-01 -0.245549359829E-01 -0.248778089746E-01 |
4632 | + -0.252047432118E-01 -0.255357897797E-01 -0.258710004054E-01 -0.262104274653E-01 |
4633 | + -0.265541239969E-01 -0.269021437033E-01 -0.272545409631E-01 -0.276113708404E-01 |
4634 | + -0.279726890898E-01 -0.283385521687E-01 -0.287090172444E-01 -0.290841422027E-01 |
4635 | + -0.294639856584E-01 -0.298486069628E-01 -0.302380662140E-01 -0.306324242665E-01 |
4636 | + -0.310317427396E-01 -0.314360840280E-01 -0.318455113115E-01 -0.322600885640E-01 |
4637 | + -0.326798805645E-01 -0.331049529070E-01 -0.335353720102E-01 -0.339712051283E-01 |
4638 | + -0.344125203616E-01 -0.348593866674E-01 -0.353118738694E-01 -0.357700526705E-01 |
4639 | + -0.362339946627E-01 -0.367037723380E-01 -0.371794591011E-01 -0.376611292796E-01 |
4640 | + -0.381488581360E-01 -0.386427218796E-01 -0.391427976782E-01 -0.396491636705E-01 |
4641 | + -0.401618989779E-01 -0.406810837173E-01 -0.412067990128E-01 -0.417391270095E-01 |
4642 | + -0.422781508857E-01 -0.428239548655E-01 -0.433766242333E-01 -0.439362453457E-01 |
4643 | + -0.445029056450E-01 -0.450766936750E-01 -0.456576990917E-01 -0.462460126794E-01 |
4644 | + -0.468417263650E-01 -0.474449332309E-01 -0.480557275304E-01 -0.486742047030E-01 |
4645 | + -0.493004613884E-01 -0.499345954416E-01 -0.505767059489E-01 -0.512268932430E-01 |
4646 | + -0.518852589185E-01 -0.525519058478E-01 -0.532269381979E-01 -0.539104614455E-01 |
4647 | + -0.546025823942E-01 -0.553034091916E-01 -0.560130513448E-01 -0.567316197393E-01 |
4648 | + -0.574592266549E-01 -0.581959857835E-01 -0.589420122479E-01 -0.596974226186E-01 |
4649 | + -0.604623349323E-01 -0.612368687107E-01 -0.620211449790E-01 -0.628152862848E-01 |
4650 | + -0.636194167169E-01 -0.644336619256E-01 -0.652581491413E-01 -0.660930071950E-01 |
4651 | + -0.669383665383E-01 -0.677943592639E-01 -0.686611191259E-01 -0.695387815611E-01 |
4652 | + -0.704274837097E-01 -0.713273644375E-01 -0.722385643568E-01 -0.731612258487E-01 |
4653 | + -0.740954930856E-01 -0.750415120530E-01 -0.759994305735E-01 -0.769693983288E-01 |
4654 | + -0.779515668834E-01 -0.789460897088E-01 -0.799531222067E-01 -0.809728217337E-01 |
4655 | + -0.820053476265E-01 -0.830508612252E-01 -0.841095259001E-01 -0.851815070768E-01 |
4656 | + -0.862669722613E-01 -0.873660910672E-01 -0.884790352418E-01 -0.896059786926E-01 |
4657 | + -0.907470975151E-01 -0.919025700201E-01 -0.930725767613E-01 -0.942573005638E-01 |
4658 | + -0.954569265528E-01 -0.966716421821E-01 -0.979016372638E-01 -0.991471039979E-01 |
4659 | + -0.100408237002 -0.101685233343 -0.102978292565 -0.104287616725 |
4660 | + -0.105613410419 -0.106955880819 -0.108315237703 -0.109691693487 |
4661 | + -0.111085463260 -0.112496764818 -0.113925818696 -0.115372848202 |
4662 | + -0.116838079455 -0.118321741420 -0.119824065939 -0.121345287775 |
4663 | + -0.122885644640 -0.124445377240 -0.126024729308 -0.127623947645 |
4664 | + -0.129243282154 -0.130882985884 -0.132543315068 -0.134224529162 |
4665 | + -0.135926890887 -0.137650666269 -0.139396124679 -0.141163538881 |
4666 | + -0.142953185069 -0.144765342910 -0.146600295594 -0.148458329871 |
4667 | + -0.150339736099 -0.152244808290 -0.154173844155 -0.156127145153 |
4668 | + -0.158105016532 -0.160107767385 -0.162135710691 -0.164189163368 |
4669 | + -0.166268446324 -0.168373884501 -0.170505806933 -0.172664546793 |
4670 | + -0.174850441447 -0.177063832504 -0.179305065876 -0.181574491823 |
4671 | + -0.183872465016 -0.186199344588 -0.188555494192 -0.190941282055 |
4672 | + -0.193357081041 -0.195803268705 -0.198280227352 -0.200788344101 |
4673 | + -0.203328010940 -0.205899624794 -0.208503587579 -0.211140306272 |
4674 | + -0.213810192972 -0.216513664963 -0.219251144784 -0.222023060289 |
4675 | + -0.224829844719 -0.227671936767 -0.230549780649 -0.233463826171 |
4676 | + -0.236414528802 -0.239402349743 -0.242427756002 -0.245491220464 |
4677 | + -0.248593221969 -0.251734245383 -0.254914781675 -0.258135327998 |
4678 | + -0.261396387762 -0.264698470713 -0.268042093018 -0.271427777339 |
4679 | + -0.274856052922 -0.278327455674 -0.281842528251 -0.285401820141 |
4680 | + -0.289005887751 -0.292655294495 -0.296350610881 -0.300092414601 |
4681 | + -0.303881290623 -0.307717831280 -0.311602636367 -0.315536313230 |
4682 | + -0.319519476867 -0.323552750020 -0.327636763277 -0.331772155165 |
4683 | + -0.335959572257 -0.340199669270 -0.344493109169 -0.348840563269 |
4684 | + -0.353242711344 -0.357700241733 -0.362213851445 -0.366784246271 |
4685 | + -0.371412140899 -0.376098259018 -0.380843333439 -0.385648106208 |
4686 | + -0.390513328720 -0.395439761842 -0.400428176031 -0.405479351454 |
4687 | + -0.410594078113 -0.415773155967 -0.421017395060 -0.426327615650 |
4688 | + -0.431704648334 -0.437149334183 -0.442662524874 -0.448245082823 |
4689 | + -0.453897881319 -0.459621804670 -0.465417748333 -0.471286619061 |
4690 | + -0.477229335046 -0.483246826061 -0.489340033611 -0.495509911080 |
4691 | + -0.501757423879 -0.508083549605 -0.514489278189 -0.520975612060 |
4692 | + -0.527543566296 -0.534194168789 -0.540928460410 -0.547747495168 |
4693 | + -0.554652340384 -0.561644076854 -0.568723799026 -0.575892615170 |
4694 | + -0.583151647555 -0.590502032628 -0.597944921194 -0.605481478601 |
4695 | + -0.613112884922 -0.620840335145 -0.628665039364 -0.636588222969 |
4696 | + -0.644611126843 -0.652735007563 -0.660961137595 -0.669290805499 |
4697 | + -0.677725316138 -0.686265990881 -0.694914167820 -0.703671201981 |
4698 | + -0.712538465541 -0.721517348046 -0.730609256640 -0.739815616284 |
4699 | + -0.749137869988 -0.758577479043 -0.768135923253 -0.777814701177 |
4700 | + -0.787615330366 -0.797539347612 -0.807588309192 -0.817763791119 |
4701 | + -0.828067389400 -0.838500720290 -0.849065420556 -0.859763147739 |
4702 | + -0.870595580426 -0.881564418518 -0.892671383510 -0.903918218768 |
4703 | + -0.915306689813 -0.926838584608 -0.938515713849 -0.950339911262 |
4704 | + -0.962313033899 -0.974436962444 -0.986713601519 -0.999144879999 |
4705 | + -1.01173275132 -1.02447919382 -1.03738621102 -1.05045583202 |
4706 | + -1.06369011177 -1.07709113143 -1.09066099875 -1.10440184836 |
4707 | + -1.11831584215 -1.13240516963 -1.14667204832 -1.16111872405 |
4708 | + -1.17574747140 -1.19056059404 -1.20556042514 -1.22074932774 |
4709 | + -1.23612969515 -1.25170395138 -1.26747455149 -1.28344398205 |
4710 | + -1.29961476157 -1.31598944086 -1.33257060353 -1.34936086640 |
4711 | + -1.36636287992 -1.38357932869 -1.40101293183 -1.41866644353 |
4712 | + -1.43654265344 -1.45464438722 -1.47297450699 -1.49153591181 |
4713 | + -1.51033153822 -1.52936436073 -1.54863739230 -1.56815368494 |
4714 | + -1.58791633018 -1.60792845961 -1.62819324549 -1.64871390123 |
4715 | + -1.66949368200 -1.69053588532 -1.71184385157 -1.73342096469 |
4716 | + -1.75527065267 -1.77739638825 -1.79980168949 -1.82249012045 |
4717 | + -1.84546529176 -1.86873086133 -1.89229053500 -1.91614806721 |
4718 | + -1.94030726167 -1.96477197208 -1.98954610282 -2.01463360968 |
4719 | + -2.04003850057 -2.06576483630 -2.09181673130 -2.11819835439 |
4720 | + -2.14491392959 -2.17196773688 -2.19936411304 -2.22710745243 |
4721 | + -2.25520220787 -2.28365289145 -2.31246407544 -2.34164039311 |
4722 | + -2.37118653967 -2.40110727316 -2.43140741540 -2.46209185289 |
4723 | + -2.49316553782 -2.52463348898 -2.55650079282 -2.58877260443 |
4724 | + -2.62145414856 -2.65455072067 -2.68806768803 -2.72201049075 |
4725 | + -2.75638464292 -2.79119573374 -2.82644942863 -2.86215147043 |
4726 | + -2.89830768056 -2.93492396027 -2.97200629181 -3.00956073973 |
4727 | + -3.04759345215 -3.08611066202 -3.12511868851 -3.16462393830 |
4728 | + -3.20463290697 -3.24515218042 -3.28618843625 -3.32774844527 |
4729 | + -3.36983907289 -3.41246728070 -3.45564012799 -3.49936477325 |
4730 | + -3.54364847583 -3.58849859752 -3.63392260419 -3.67992806748 |
4731 | + -3.72652266650 -3.77371418957 -3.82151053597 -3.86991971777 |
4732 | + -3.91894986162 -3.96860921064 -4.01890612632 -4.06984909042 |
4733 | + -4.12144670695 -4.17370770414 -4.22664093650 -4.28025538686 |
4734 | + -4.33456016846 -4.38956452707 -4.44527784318 -4.50170963416 |
4735 | + -4.55886955649 -4.61676740805 -4.67541313036 -4.73481681096 |
4736 | + -4.79498868571 -4.85593914122 -4.91767871723 -4.98021810908 |
4737 | + -5.04356817017 -5.10773991447 -5.17274451901 -5.23859332648 |
4738 | + -5.30529784778 -5.37286976458 -5.44132093197 -5.51066338106 |
4739 | + -5.58090932163 -5.65207114476 -5.72416142551 -5.79719292554 |
4740 | + -5.87117859577 -5.94613157906 -6.02206521282 -6.09899303162 |
4741 | + -6.17692876983 -6.25588636415 -6.33587995617 -6.41692389487 |
4742 | + -6.49903273905 -6.58222125974 -6.66650444248 -6.75189748964 |
4743 | + -6.83841582248 -6.92607508328 -7.01489113724 -7.10488007434 |
4744 | + -7.19605821096 -7.28844209145 -7.38204848945 -7.47689440906 |
4745 | + -7.57299708580 -7.67037398730 -7.76904281379 -7.86902149827 |
4746 | + -7.97032820643 -8.07298133619 -8.17699951691 -8.28240160820 |
4747 | + -8.38920669835 -8.49743410226 -8.60710335889 -8.71823422818 |
4748 | + -8.83084668746 -8.94496092711 -9.06059734569 -9.17777654431 |
4749 | + -9.29651932020 -9.41684665950 -9.53877972918 -9.66233986795 |
4750 | + -9.78754857627 -9.91442750515 -10.0429984439 -10.1732833067 |
4751 | + -10.3053041175 -10.4390829942 -10.5746421304 -10.7120037766 |
4752 | + -10.8511902190 -10.9922237566 -11.1351266764 -11.2799212272 |
4753 | + -11.4266295902 -11.5752738480 -11.7258759511 -11.8784576819 |
4754 | + -12.0330406154 -12.1896460784 -12.3482951041 -12.5090083844 |
4755 | + -12.6718062191 -12.8367084608 -13.0037344570 -13.1729029870 |
4756 | + -13.3442321965 -13.5177395259 -13.6934416362 -13.8713543283 |
4757 | + -14.0514924583 -14.2338698480 -14.4184991889 -14.6053919419 |
4758 | + -14.7945582299 -14.9860067254 -15.1797445311 -15.3757770542 |
4759 | + -15.5741078742 -15.7747386035 -15.9776687403 -16.1828955157 |
4760 | + -16.3904137312 -16.6002155899 -16.8122905198 -17.0266249881 |
4761 | + -17.2432023084 -17.4620024391 -17.6830017746 -17.9061729270 |
4762 | + -18.1314845009 -18.3589008597 -18.5883818846 -18.8198827259 |
4763 | + -19.0533535476 -19.2887392652 -19.5259792779 -19.7650071954 |
4764 | + -20.0057505605 -20.2481305680 -20.4920617822 -20.7374518527 |
4765 | + -20.9842012313 -21.2322028915 -21.4813420515 -21.7314959047 |
4766 | + -21.9825333587 -22.2343147854 -22.4866917863 -22.7395069756 |
4767 | + -22.9925937839 -23.2457762882 -23.4988690703 -23.7516771105 |
4768 | + -24.0039957191 -24.2556105132 -24.5062974431 -24.7558228753 |
4769 | + -25.0039437369 -25.2504077302 -25.4949536218 -25.7373116138 |
4770 | + -25.9772038034 -26.2143447360 -26.4484420730 -26.6791971819 |
4771 | + -26.9063070769 -27.1294602789 -27.3483519672 -27.5626903829 |
4772 | + -27.7719665532 -27.9765569609 -28.1740481625 -28.3612623456 |
4773 | + -28.5411910965 -28.7157646026 -28.8840494793 -29.0460438002 |
4774 | + -29.2015059739 -29.3502183357 -29.4919776604 -29.6265847183 |
4775 | + -29.7538520630 -29.8736055161 -29.9856868833 -30.0899564464 |
4776 | + -30.1862954484 -30.2746085609 -30.3548263321 -30.4269076066 |
4777 | + -30.4908419022 -30.5466517209 -30.5943947724 -30.6341660697 |
4778 | + -30.6660998777 -30.6903714661 -30.7071986147 -30.7168428591 |
4779 | + -30.7196104031 -30.7158526445 -30.7059662756 -30.6903928831 |
4780 | + -30.6696179872 -30.6441694381 -30.6146150967 -30.5815596972 |
4781 | + -30.5456407748 -30.5075235671 -30.4678947167 -30.4274546204 |
4782 | + -30.3869082529 -30.3469542200 -30.3082718212 -30.2715058102 |
4783 | + -30.2372485058 -30.2060189331 -30.1782384624 -30.1542028008 |
4784 | + -30.1340478716 -30.1177179503 -30.1049026076 -30.0950341320 |
4785 | + -30.0871613879 -30.0801780141 -30.0738500694 -30.0680896888 |
4786 | + -30.0628188469 -30.0580018355 -30.0535686536 -30.0494667609 |
4787 | + -30.0456405375 -30.0420387803 -30.0386144876 -30.0353269058 |
4788 | + -30.0321436171 -30.0290429129 -30.0260161581 -30.0230697709 |
4789 | + -30.0202262970 -30.0175239775 -30.0150137190 -30.0127546360 |
4790 | + -30.0107981094 -30.0091915038 -30.0079147003 -30.0069051317 |
4791 | + -30.0060710840 -30.0053029068 -30.0046205298 -30.0040312326 |
4792 | + -30.0035039851 -30.0030426788 -30.0026365663 -30.0022805302 |
4793 | + -30.0019688109 -30.0016964272 -30.0014588623 -30.0012520615 |
4794 | + -30.0010723889 -30.0007919083 -30.0005824716 -30.0004266961 |
4795 | + -30.0003112940 -30.0002261473 -30.0001635825 -30.0001178034 |
4796 | + -30.0000844500 -30.0000602557 -30.0000427842 -30.0000302250 |
4797 | + -30.0000212399 -30.0000148431 -30.0000103117 -30.0000071190 |
4798 | + -30.0000048815 -30.0000033227 -30.0000022433 -30.0000015006 |
4799 | + -30.0000009936 -30.0000006497 -30.0000004188 -30.0000002651 |
4800 | + -30.0000001639 -30.0000000983 -30.0000000563 -30.0000000300 |
4801 | + -30.0000000140 -30.0000000045 -29.9999999993 -29.9999999966 |
4802 | + -29.9999999955 -29.9999999953 -29.9999999956 -29.9999999961 |
4803 | + -29.9999999966 -29.9999999972 -29.9999999977 -29.9999999982 |
4804 | + -29.9999999985 -29.9999999989 -29.9999999991 -29.9999999993 |
4805 | + -29.9999999995 -29.9999999996 -29.9999999997 -29.9999999998 |
4806 | + -29.9999999998 -29.9999999999 -29.9999999999 -29.9999999999 |
4807 | + -29.9999999999 -30.0000000000 -30.0000000000 -30.0000000000 |
4808 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4809 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4810 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4811 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4812 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4813 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4814 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4815 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4816 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4817 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4818 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4819 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4820 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4821 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4822 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4823 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4824 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4825 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4826 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4827 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4828 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4829 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4830 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4831 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4832 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4833 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4834 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4835 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4836 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4837 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4838 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4839 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4840 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4841 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4842 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4843 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4844 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4845 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4846 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4847 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4848 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4849 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4850 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4851 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4852 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4853 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4854 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4855 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4856 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4857 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4858 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4859 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4860 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4861 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4862 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4863 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4864 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4865 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4866 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4867 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4868 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4869 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4870 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4871 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4872 | + -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000 |
4873 | + Down Pseudopotential follows (l on next line) |
4874 | + 3 |
4875 | + -0.107149210866E-04 -0.215647528627E-04 -0.325507900762E-04 -0.436754183009E-04 |
4876 | + -0.549395179543E-04 -0.663456856534E-04 -0.778950904275E-04 -0.895898728082E-04 |
4877 | + -0.101431725821E-03 -0.113422536828E-03 -0.125564173289E-03 -0.137858532184E-03 |
4878 | + -0.150307536104E-03 -0.162913128839E-03 -0.175677279408E-03 -0.188601984719E-03 |
4879 | + -0.201689262162E-03 -0.214941156460E-03 -0.228359740913E-03 -0.241947109373E-03 |
4880 | + -0.255705385072E-03 -0.269636719304E-03 -0.283743289134E-03 -0.298027296475E-03 |
4881 | + -0.312490974413E-03 -0.327136584268E-03 -0.341966411135E-03 -0.356982776480E-03 |
4882 | + -0.372188024182E-03 -0.387584529304E-03 -0.403174698174E-03 -0.418960968280E-03 |
4883 | + -0.434945806071E-03 -0.451131706442E-03 -0.467521201466E-03 -0.484116851038E-03 |
4884 | + -0.500921247470E-03 -0.517937017003E-03 -0.535166820502E-03 -0.552613346785E-03 |
4885 | + -0.570279323029E-03 -0.588167509931E-03 -0.606280703030E-03 -0.624621733644E-03 |
4886 | + -0.643193462417E-03 -0.661998796463E-03 -0.681040674760E-03 -0.700322067764E-03 |
4887 | + -0.719845990381E-03 -0.739615495070E-03 -0.759633670736E-03 -0.779903641263E-03 |
4888 | + -0.800428577704E-03 -0.821211687472E-03 -0.842256213797E-03 -0.863565450605E-03 |
4889 | + -0.885142722970E-03 -0.906991404004E-03 -0.929114908900E-03 -0.951516691304E-03 |
4890 | + -0.974200254355E-03 -0.997169142100E-03 -0.102042694236E-02 -0.104397728915E-02 |
4891 | + -0.106782386447E-02 -0.109197039095E-02 -0.111642064325E-02 -0.114117844479E-02 |
4892 | + -0.116624765874E-02 -0.119163220352E-02 -0.121733604829E-02 -0.124336320869E-02 |
4893 | + -0.126971774876E-02 -0.129640378678E-02 -0.132342549699E-02 -0.135078709771E-02 |
4894 | + -0.137849286250E-02 -0.140654712570E-02 -0.143495426805E-02 -0.146371872584E-02 |
4895 | + -0.149284499760E-02 -0.152233763364E-02 -0.155220124000E-02 -0.158244048368E-02 |
4896 | + -0.161306009267E-02 -0.164406484728E-02 -0.167545959298E-02 -0.170724923781E-02 |
4897 | + -0.173943874559E-02 -0.177203314838E-02 -0.180503753791E-02 -0.183845707193E-02 |
4898 | + -0.187229697243E-02 -0.190656252480E-02 -0.194125908630E-02 -0.197639207639E-02 |
4899 | + -0.201196698467E-02 -0.204798937111E-02 -0.208446486213E-02 -0.212139915942E-02 |
4900 | + -0.215879803364E-02 -0.219666732544E-02 -0.223501295559E-02 -0.227384091531E-02 |
4901 | + -0.231315726979E-02 -0.235296816308E-02 -0.239327981549E-02 -0.243409852716E-02 |
4902 | + -0.247543067358E-02 -0.251728271499E-02 -0.255966119158E-02 -0.260257272215E-02 |
4903 | + -0.264602401331E-02 -0.269002185538E-02 -0.273457312248E-02 -0.277968477448E-02 |
4904 | + -0.282536386127E-02 -0.287161752087E-02 -0.291845297985E-02 -0.296587755640E-02 |
4905 | + -0.301389865999E-02 -0.306252379544E-02 -0.311176055996E-02 -0.316161664597E-02 |
4906 | + -0.321209984516E-02 -0.326321804474E-02 -0.331497923188E-02 -0.336739149433E-02 |
4907 | + -0.342046302276E-02 -0.347420210810E-02 -0.352861714809E-02 -0.358371664578E-02 |
4908 | + -0.363950920862E-02 -0.369600355709E-02 -0.375320851562E-02 -0.381113302404E-02 |
4909 | + -0.386978613488E-02 -0.392917700901E-02 -0.398931492910E-02 -0.405020929181E-02 |
4910 | + -0.411186961069E-02 -0.417430552071E-02 -0.423752677801E-02 -0.430154326207E-02 |
4911 | + -0.436636497321E-02 -0.443200204100E-02 -0.449846472245E-02 -0.456576340083E-02 |
4912 | + -0.463390859238E-02 -0.470291094583E-02 -0.477278124120E-02 -0.484353039724E-02 |
4913 | + -0.491516946873E-02 -0.498770964757E-02 -0.506116227046E-02 -0.513553881359E-02 |
4914 | + -0.521085089902E-02 -0.528711029305E-02 -0.536432891239E-02 -0.544251882361E-02 |
4915 | + -0.552169224146E-02 -0.560186153925E-02 -0.568303924301E-02 -0.576523803590E-02 |
4916 | + -0.584847076323E-02 -0.593275042936E-02 -0.601809020237E-02 -0.610450341919E-02 |
4917 | + -0.619200357988E-02 -0.628060435712E-02 -0.637031959577E-02 -0.646116331228E-02 |
4918 | + -0.655314970302E-02 -0.664629314035E-02 -0.674060817769E-02 -0.683610955269E-02 |
4919 | + -0.693281218743E-02 -0.703073119123E-02 -0.712988186505E-02 -0.723027970106E-02 |
4920 | + -0.733194038664E-02 -0.743487980616E-02 -0.753911404486E-02 -0.764465938928E-02 |
4921 | + -0.775153232993E-02 -0.785974956837E-02 -0.796932801160E-02 -0.808028478209E-02 |
4922 | + -0.819263721838E-02 -0.830640287333E-02 -0.842159952506E-02 -0.853824517309E-02 |
4923 | + -0.865635804216E-02 -0.877595658914E-02 -0.889705950116E-02 -0.901968570078E-02 |
4924 | + -0.914385434827E-02 -0.926958484556E-02 -0.939689683873E-02 -0.952581021961E-02 |
4925 | + -0.965634513158E-02 -0.978852197191E-02 -0.992236139241E-02 -0.100578843060E-01 |
4926 | + -0.101951118890E-01 -0.103340655824E-01 -0.104747670995E-01 -0.106172384244E-01 |
4927 | + -0.107615018182E-01 -0.109075798233E-01 -0.110554952642E-01 -0.112052712528E-01 |
4928 | + -0.113569311926E-01 -0.115104987804E-01 -0.116659980111E-01 -0.118234531832E-01 |
4929 | + -0.119828888980E-01 -0.121443300677E-01 -0.123078019192E-01 -0.124733299942E-01 |
4930 | + -0.126409401571E-01 -0.128106585979E-01 -0.129825118347E-01 -0.131565267203E-01 |
4931 | + -0.133327304455E-01 -0.135111505418E-01 -0.136918148878E-01 -0.138747517132E-01 |
4932 | + -0.140599896025E-01 -0.142475574989E-01 -0.144374847103E-01 -0.146298009143E-01 |
4933 | + -0.148245361598E-01 -0.150217208748E-01 -0.152213858704E-01 -0.154235623447E-01 |
4934 | + -0.156282818876E-01 -0.158355764875E-01 -0.160454785352E-01 -0.162580208276E-01 |
4935 | + -0.164732365755E-01 -0.166911594066E-01 -0.169118233722E-01 -0.171352629517E-01 |
4936 | + -0.173615130576E-01 -0.175906090427E-01 -0.178225867036E-01 -0.180574822871E-01 |
4937 | + -0.182953324970E-01 -0.185361744975E-01 -0.187800459209E-01 -0.190269848732E-01 |
4938 | + -0.192770299384E-01 -0.195302201876E-01 -0.197865951827E-01 -0.200461949818E-01 |
4939 | + -0.203090601492E-01 -0.205752317581E-01 -0.208447513981E-01 -0.211176611833E-01 |
4940 | + -0.213940037560E-01 -0.216738222957E-01 -0.219571605251E-01 -0.222440627163E-01 |
4941 | + -0.225345736990E-01 -0.228287388663E-01 -0.231266041823E-01 -0.234282161898E-01 |
4942 | + -0.237336220161E-01 -0.240428693821E-01 -0.243560066089E-01 -0.246730826249E-01 |
4943 | + -0.249941469743E-01 -0.253192498247E-01 -0.256484419745E-01 -0.259817748607E-01 |
4944 | + -0.263193005680E-01 -0.266610718362E-01 -0.270071420679E-01 -0.273575653379E-01 |
4945 | + -0.277123964013E-01 -0.280716907013E-01 -0.284355043793E-01 -0.288038942824E-01 |
4946 | + -0.291769179731E-01 -0.295546337376E-01 -0.299371005954E-01 -0.303243783085E-01 |
4947 | + -0.307165273905E-01 -0.311136091165E-01 -0.315156855319E-01 -0.319228194627E-01 |
4948 | + -0.323350745256E-01 -0.327525151367E-01 -0.331752065234E-01 -0.336032147329E-01 |
4949 | + -0.340366066429E-01 -0.344754499734E-01 -0.349198132954E-01 -0.353697660424E-01 |
4950 | + -0.358253785222E-01 -0.362867219261E-01 -0.367538683409E-01 -0.372268907607E-01 |
4951 | + -0.377058630979E-01 -0.381908601939E-01 -0.386819578319E-01 -0.391792327486E-01 |
4952 | + -0.396827626459E-01 -0.401926262026E-01 -0.407089030880E-01 -0.412316739731E-01 |
4953 | + -0.417610205435E-01 -0.422970255129E-01 -0.428397726347E-01 -0.433893467167E-01 |
4954 | + -0.439458336331E-01 -0.445093203379E-01 -0.450798948798E-01 -0.456576464143E-01 |
4955 | + -0.462426652188E-01 -0.468350427063E-01 -0.474348714396E-01 -0.480422451459E-01 |
4956 | + -0.486572587314E-01 -0.492800082964E-01 -0.499105911497E-01 -0.505491058244E-01 |
4957 | + -0.511956520931E-01 -0.518503309834E-01 -0.525132447937E-01 -0.531844971096E-01 |
4958 | + -0.538641928192E-01 -0.545524381306E-01 -0.552493405877E-01 -0.559550090872E-01 |
4959 | + -0.566695538958E-01 -0.573930866672E-01 -0.581257204596E-01 -0.588675697539E-01 |
4960 | + -0.596187504704E-01 -0.603793799884E-01 -0.611495771633E-01 -0.619294623457E-01 |
4961 | + -0.627191574007E-01 -0.635187857257E-01 -0.643284722710E-01 -0.651483435587E-01 |
4962 | + -0.659785277021E-01 -0.668191544269E-01 -0.676703550901E-01 -0.685322627015E-01 |
4963 | + -0.694050119442E-01 -0.702887391955E-01 -0.711835825486E-01 -0.720896818337E-01 |
4964 | + -0.730071786402E-01 -0.739362163388E-01 -0.748769401038E-01 -0.758294969360E-01 |
4965 | + -0.767940356855E-01 -0.777707070747E-01 -0.787596637228E-01 -0.797610601685E-01 |
4966 | + -0.807750528950E-01 -0.818018003543E-01 -0.828414629915E-01 -0.838942032706E-01 |
4967 | + -0.849601856992E-01 -0.860395768552E-01 -0.871325454115E-01 -0.882392621636E-01 |
4968 | + -0.893599000557E-01 -0.904946342079E-01 -0.916436419435E-01 -0.928071028167E-01 |
4969 | + -0.939851986412E-01 -0.951781135176E-01 -0.963860338634E-01 -0.976091484411E-01 |
4970 | + -0.988476483886E-01 -0.100101727248 -0.101371580998 -0.102657408082 |
4971 | + -0.103959409440 -0.105277788541 -0.106612751414 -0.107964506680 |
4972 | + -0.109333265586 -0.110719242036 -0.112122652626 -0.113543716677 |
4973 | + -0.114982656271 -0.116439696283 -0.117915064419 -0.119408991249 |
4974 | + -0.120921710245 -0.122453457818 -0.124004473352 -0.125574999245 |
4975 | + -0.127165280945 -0.128775566989 -0.130406109040 -0.132057161930 |
4976 | + -0.133728983698 -0.135421835629 -0.137135982298 -0.138871691609 |
4977 | + -0.140629234837 -0.142408886671 -0.144210925260 -0.146035632250 |
4978 | + -0.147883292834 -0.149754195795 -0.151648633548 -0.153566902193 |
4979 | + -0.155509301553 -0.157476135227 -0.159467710634 -0.161484339065 |
4980 | + -0.163526335728 -0.165594019799 -0.167687714471 -0.169807747007 |
4981 | + -0.171954448791 -0.174128155375 -0.176329206540 -0.178557946340 |
4982 | + -0.180814723165 -0.183099889789 -0.185413803428 -0.187756825796 |
4983 | + -0.190129323160 -0.192531666402 -0.194964231070 -0.197427397445 |
4984 | + -0.199921550594 -0.202447080433 -0.205004381792 -0.207593854468 |
4985 | + -0.210215903297 -0.212870938212 -0.215559374310 -0.218281631915 |
4986 | + -0.221038136647 -0.223829319485 -0.226655616838 -0.229517470614 |
4987 | + -0.232415328285 -0.235349642962 -0.238320873464 -0.241329484392 |
4988 | + -0.244375946198 -0.247460735264 -0.250584333974 -0.253747230791 |
4989 | + -0.256949920333 -0.260192903451 -0.263476687308 -0.266801785461 |
4990 | + -0.270168717937 -0.273578011321 -0.277030198834 -0.280525820418 |
4991 | + -0.284065422825 -0.287649559697 -0.291278791658 -0.294953686401 |
4992 | + -0.298674818778 -0.302442770888 -0.306258132175 -0.310121499513 |
4993 | + -0.314033477308 -0.317994677587 -0.322005720101 -0.326067232416 |
4994 | + -0.330179850018 -0.334344216412 -0.338560983222 -0.342830810295 |
4995 | + -0.347154365808 -0.351532326368 -0.355965377127 -0.360454211883 |
4996 | + -0.364999533196 -0.369602052495 -0.374262490193 -0.378981575801 |
4997 | + -0.383760048046 -0.388598654982 -0.393498154117 -0.398459312528 |
4998 | + -0.403482906984 -0.408569724070 -0.413720560314 -0.418936222310 |
4999 | + -0.424217526849 -0.429565301050 -0.434980382490 -0.440463619338 |
5000 | + -0.446015870493 -0.451638005715 -0.457330905772 -0.463095462575 |
I forgot to mention that I have removed the mention to idempotency in the warning given to the user when the "force" flag is enabled and the sparsity has changed. This matches my view on the reduced importance of the idempotency issue.