Merge lp:~albertog/siesta/4.1-scf-first into lp:~nickpapior/siesta/4.1-scf-first

Proposed by Alberto Garcia
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
Reviewer Review Type Date Requested Status
Nick Papior Pending
Review via email: mp+371434@code.launchpad.net

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.

To post a comment you must log in.
Revision history for this message
Alberto Garcia (albertog) wrote :

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.

Revision history for this message
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?

Revision history for this message
Nick Papior (nickpapior) wrote :

PS. I think your changes looks extremely appropriate and well thought! Thanks!

Revision history for this message
Nick Papior (nickpapior) wrote :

Could you check r1086 on lp:~nickpapior/siesta/4.1-scf-first to see if all is good?

Revision history for this message
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://code.launchpad.net/~albertog/siesta/4.1-scf-first/+merge/371434
| You are the owner of lp:~albertog/siesta/4.1-scf-first.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'Docs/Contributors.txt'
--- Docs/Contributors.txt 2018-10-22 14:12:27 +0000
+++ Docs/Contributors.txt 2019-08-18 23:02:58 +0000
@@ -60,6 +60,7 @@
60Magnus Paulsson60Magnus Paulsson
61Oscar Paz61Oscar Paz
62Andrei Postnikov62Andrei Postnikov
63Roberto Robles
63Tristana Sondon64Tristana Sondon
64Andrew Walker65Andrew Walker
65Andrew Walkingshaw66Andrew Walkingshaw
6667
=== modified file 'Docs/siesta.tex'
--- Docs/siesta.tex 2019-08-16 10:13:21 +0000
+++ Docs/siesta.tex 2019-08-18 23:02:58 +0000
@@ -277,6 +277,7 @@
277Magnus Paulsson,277Magnus Paulsson,
278Oscar Paz,278Oscar Paz,
279Andrei Postnikov,279Andrei Postnikov,
280Roberto Robles,
280Tristana Sondon,281Tristana Sondon,
281Andrew Walker,282Andrew Walker,
282Andrew Walkingshaw,283Andrew Walkingshaw,
@@ -4103,23 +4104,41 @@
4103 \fdfindex*{DM.MixSCF1}[|see SCF.Mix.First]4104 \fdfindex*{DM.MixSCF1}[|see SCF.Mix.First]
4104 \fdfdepend{SCF.Mix!First.Force}%4105 \fdfdepend{SCF.Mix!First.Force}%
41054106
4106 Whether the first SCF should be mixed or it uses the output as input4107 This flag is used to decide whether mixing (of the DM or H) should
4107 in the next SCF step. It is generally advised to set this to true,4108 be done in the first SCF step. If mixing is not performed the output
4108 at least when restarting calculations.4109 DM or H generated in the first SCF step is used as input in the next
41094110 SCF step. When mixing the DM, this ``reset'' has the effect of
4110 The general logic of mixing on the first method is determined by the4111 avoiding potentially undesirable memory effects: for example, a DM
4111 read matrices. If the sparsity pattern has changed between the read4112 read from file which corresponds to a different structure might not
4112 matrix and the current matrix \siesta\ will default to \emph{not}4113 satisfy the correct symmetry, and mixing will not fix it. On the
4113 mix in the first step, regardless of this flag. To ensure mixing is4114 other hand, when reusing a DM for a restart of an interrupted
4114 done in the first step \fdf{SCF.Mix!First.Force} should be set to4115 calculation, a full reset might not be advised.
4115 \fdftrue.4116
4117 The value of this flag is one of the ingredients used by \siesta\ to
4118 decide what to do. If \fdftrue (the default), mixing will be
4119 performed in all cases, except when a DM has been read from file and
4120 the sparsity pattern of the DM on file is different from the current
4121 one. To ensure that a first-step mixing is done even in this case,
4122 \fdf{SCF.Mix!First.Force} should be set to \fdftrue.
4123
4124 If the flag is \fdffalse, no mixing in the first step will be
4125 performed, except if overridden by \fdf{SCF.Mix!First.Force}.
4116 4126
4127 Note that the default value for this flag has changed from the old
4128 (pre-version 4) setting in \siesta\. The new setting is most
4129 appropriate for the case of restarting calculations. On the other
4130 hand, it means that mixing in the first scf step will also be
4131 performed for the standard case in which the initial DM is built as
4132 a (diagonal) superposition of atomic orbital occupation values. In
4133 some cases (e.g. spin-orbit calculations) better results might be
4134 obtained by avoiding this mixing.
4135
4117\end{fdflogicalT}4136\end{fdflogicalT}
41184137
4119\begin{fdflogicalF}{SCF.Mix!First.Force}4138\begin{fdflogicalF}{SCF.Mix!First.Force}
41204139
4121 Force the mixing of the first step, regardless of what \siesta\ may4140 Force the mixing (of DM or H) in the first SCF step, regardless of
4122 heuristically decide.4141 what \siesta\ may heuristically decide.
41234142
4124 This overrules \fdf{SCF.Mix!First}.4143 This overrules \fdf{SCF.Mix!First}.
4125 4144
@@ -10915,6 +10934,12 @@
10915 in a \tbtrans\ calculation to achieve a converged transmission10934 in a \tbtrans\ calculation to achieve a converged transmission
10916 function.10935 function.
1091710936
10937 \item%
10938 Energies from \tsiesta\ are \emph{not} to be trusted since the open
10939 boundaries complicates the energy calculation. Therefore you cannot
10940 compare energies between different calculations and/or different
10941 bias'.
10942
10918\end{itemize}10943\end{itemize}
1091910944
10920\subsection{Electrodes}10945\subsection{Electrodes}
@@ -12137,12 +12162,18 @@
12137 12162
12138\end{fdfentry}12163\end{fdfentry}
1213912164
12140\begin{fdfentry}{TS!Elecs!DM.Init}[string]<diagon|bulk>12165\begin{fdfentry}{TS!Elecs!DM.Init}[string]<bulk|diagon>
1214112166
12142 The density matrix elements in the electrodes may be forcefully set12167 The density matrix elements in the electrodes may be forcefully set
12143 to the bulk values by reading in the DM of the corresponding12168 to the bulk values by reading in the DM of the corresponding
12144 electrode. This may be set to \fdf*{bulk} to forcefully set the bulk12169 electrode. This is by default \fdf*{bulk} for non-bias calculation,
12145 values.12170 and otherwise defaults to \fdf*{diagon}.
12171
12172 This step is only required once since the DM will be constant in the
12173 electrode regions and thus it will be propagated through the
12174 \sysfile{TSDE} files without having to re-do this step.
12175 If this is done (by default) in the 0 bias calculation it will also
12176 be effective in the bias calculation.
1214612177
12147 \note this will automatically be set to \fdf*{diagon} for12178 \note this will automatically be set to \fdf*{diagon} for
12148 non-equilibrium calculations. If bulk density matrix elements are12179 non-equilibrium calculations. If bulk density matrix elements are
1214912180
=== modified file 'Src/Makefile'
--- Src/Makefile 2019-05-21 09:18:42 +0000
+++ Src/Makefile 2019-08-18 23:02:58 +0000
@@ -434,7 +434,8 @@
434 m_ts_cctype.o ts_init.o ts_show_regions.o m_ts_electype.o \434 m_ts_cctype.o ts_init.o ts_show_regions.o m_ts_electype.o \
435 m_ts_method.o m_ts_elec_se.o \435 m_ts_method.o m_ts_elec_se.o \
436 m_ts_debug.o m_ts_tdir.o \436 m_ts_debug.o m_ts_tdir.o \
437 m_ts_chem_pot.o m_transiesta.o m_ts_hartree.o m_ts_voltage.o437 m_ts_chem_pot.o m_transiesta.o m_ts_hartree.o m_ts_voltage.o \
438 ts_energies.o
438439
439# contour objects440# contour objects
440TS_OBJS += m_ts_contour_eq.o m_ts_contour_neq.o m_ts_io_ctype.o \441TS_OBJS += m_ts_contour_eq.o m_ts_contour_neq.o m_ts_io_ctype.o \
@@ -647,8 +648,9 @@
647compute_ebs_shift.o: m_mpi_utils.o parallel.o precision.o648compute_ebs_shift.o: m_mpi_utils.o parallel.o precision.o
648compute_energies.o: atomlist.o class_SpData1D.o class_SpData2D.o dhscf.o649compute_energies.o: atomlist.o class_SpData1D.o class_SpData2D.o dhscf.o
649compute_energies.o: files.o m_dipol.o m_energies.o m_mpi_utils.o m_ntm.o650compute_energies.o: files.o m_dipol.o m_energies.o m_mpi_utils.o m_ntm.o
650compute_energies.o: m_rhog.o m_spin.o precision.o siesta_geom.o651compute_energies.o: m_rhog.o m_spin.o m_ts_global_vars.o precision.o
651compute_energies.o: siesta_options.o sparse_matrices.o652compute_energies.o: siesta_geom.o siesta_options.o sparse_matrices.o
653compute_energies.o: ts_energies.o
652compute_max_diff.o: m_mpi_utils.o precision.o654compute_max_diff.o: m_mpi_utils.o precision.o
653compute_norm.o: m_mpi_utils.o m_spin.o precision.o sparse_matrices.o655compute_norm.o: m_mpi_utils.o m_spin.o precision.o sparse_matrices.o
654compute_pw_matrix.o: alloc.o m_planewavematrix.o m_planewavematrixvar.o656compute_pw_matrix.o: alloc.o m_planewavematrix.o m_planewavematrixvar.o
@@ -683,11 +685,11 @@
683dhscf.o: vmat.o685dhscf.o: vmat.o
684diag.o: alloc.o diag_option.o parallel.o precision.o sys.o686diag.o: alloc.o diag_option.o parallel.o precision.o sys.o
685diag2g.o: fermid.o intrinsic_missing.o parallel.o parallelsubs.o precision.o687diag2g.o: fermid.o intrinsic_missing.o parallel.o parallelsubs.o precision.o
686diag2g.o: sys.o688diag2g.o: sys.o writewave.o
687diag2k.o: fermid.o parallel.o parallelsubs.o precision.o sys.o689diag2k.o: fermid.o parallel.o parallelsubs.o precision.o sys.o writewave.o
688diag3g.o: fermid.o intrinsic_missing.o parallel.o parallelsubs.o precision.o690diag3g.o: fermid.o intrinsic_missing.o parallel.o parallelsubs.o precision.o
689diag3g.o: sys.o691diag3g.o: sys.o writewave.o
690diag3k.o: fermid.o parallel.o parallelsubs.o precision.o sys.o692diag3k.o: fermid.o parallel.o parallelsubs.o precision.o sys.o writewave.o
691diag_option.o: parallel.o precision.o693diag_option.o: parallel.o precision.o
692diagg.o: alloc.o fermid.o intrinsic_missing.o m_spin.o parallel.o694diagg.o: alloc.o fermid.o intrinsic_missing.o m_spin.o parallel.o
693diagg.o: parallelsubs.o precision.o sys.o writewave.o695diagg.o: parallelsubs.o precision.o sys.o writewave.o
@@ -822,7 +824,7 @@
822m_dscfcomm.o: alloc.o parallel.o parallelsubs.o precision.o schecomm.o824m_dscfcomm.o: alloc.o parallel.o parallelsubs.o precision.o schecomm.o
823m_efield.o: atmfuncs.o m_cite.o m_ts_global_vars.o mesh.o parallel.o825m_efield.o: atmfuncs.o m_cite.o m_ts_global_vars.o mesh.o parallel.o
824m_efield.o: precision.o siesta_cml.o siesta_geom.o sys.o units.o826m_efield.o: precision.o siesta_cml.o siesta_geom.o sys.o units.o
825m_energies.o: precision.o827m_energies.o: m_ts_global_vars.o precision.o
826m_eo.o: precision.o828m_eo.o: precision.o
827m_exp_coord.o: files.o m_os.o parallel.o precision.o units.o829m_exp_coord.o: files.o m_os.o parallel.o precision.o units.o
828m_filter.o: bessph.o precision.o radfft.o sys.o830m_filter.o: bessph.o precision.o radfft.o sys.o
@@ -935,12 +937,13 @@
935m_test_io.o: precision.o937m_test_io.o: precision.o
936m_timer.o: m_io.o m_walltime.o moreParallelSubs.o parallel.o precision.o sys.o938m_timer.o: m_io.o m_walltime.o moreParallelSubs.o parallel.o precision.o sys.o
937m_transiesta.o: alloc.o class_OrbitalDistribution.o class_SpData1D.o939m_transiesta.o: alloc.o class_OrbitalDistribution.o class_SpData1D.o
938m_transiesta.o: class_SpData2D.o class_Sparsity.o files.o m_interpolate.o940m_transiesta.o: class_SpData2D.o class_Sparsity.o files.o m_energies.o
939m_transiesta.o: m_ts_charge.o m_ts_contour_eq.o m_ts_contour_neq.o941m_transiesta.o: m_interpolate.o m_ts_charge.o m_ts_contour_eq.o
940m_transiesta.o: m_ts_electype.o m_ts_fullg.o m_ts_fullk.o m_ts_gf.o942m_transiesta.o: m_ts_contour_neq.o m_ts_electype.o m_ts_fullg.o m_ts_fullk.o
941m_transiesta.o: m_ts_kpoints.o m_ts_method.o m_ts_mumpsg.o m_ts_mumpsk.o943m_transiesta.o: m_ts_gf.o m_ts_kpoints.o m_ts_method.o m_ts_mumpsg.o
942m_transiesta.o: m_ts_options.o m_ts_sparse.o m_ts_tri_common.o m_ts_tri_init.o944m_transiesta.o: m_ts_mumpsk.o m_ts_options.o m_ts_sparse.o m_ts_tri_common.o
943m_transiesta.o: m_ts_trig.o m_ts_trik.o parallel.o precision.o units.o945m_transiesta.o: m_ts_tri_init.o m_ts_trig.o m_ts_trik.o parallel.o precision.o
946m_transiesta.o: units.o
944m_trialorbitalclass.o: precision.o units.o947m_trialorbitalclass.o: precision.o units.o
945m_trimat_invert.o: class_TriMat.o intrinsic_missing.o m_pivot_array.o948m_trimat_invert.o: class_TriMat.o intrinsic_missing.o m_pivot_array.o
946m_trimat_invert.o: precision.o949m_trimat_invert.o: precision.o
@@ -1321,6 +1324,10 @@
1321timer.o: timer_tree.o1324timer.o: timer_tree.o
1322timer_tree.o: m_walltime.o1325timer_tree.o: m_walltime.o
1323transition_rate.o: alloc.o fermid.o parallel.o parallelsubs.o precision.o sys.o1326transition_rate.o: alloc.o fermid.o parallel.o parallelsubs.o precision.o sys.o
1327ts_energies.o: class_OrbitalDistribution.o class_SpData1D.o class_SpData2D.o
1328ts_energies.o: class_Sparsity.o geom_helper.o m_energies.o m_spin.o
1329ts_energies.o: m_ts_electype.o m_ts_method.o m_ts_options.o parallel.o
1330ts_energies.o: precision.o sparse_matrices.o
1324ts_init.o: m_fixed.o m_os.o m_ts_cctype.o m_ts_charge.o m_ts_electrode.o1331ts_init.o: m_fixed.o m_os.o m_ts_cctype.o m_ts_charge.o m_ts_electrode.o
1325ts_init.o: m_ts_electype.o m_ts_gf.o m_ts_global_vars.o m_ts_kpoints.o1332ts_init.o: m_ts_electype.o m_ts_gf.o m_ts_global_vars.o m_ts_kpoints.o
1326ts_init.o: m_ts_method.o m_ts_options.o parallel.o siesta_options.o1333ts_init.o: m_ts_method.o m_ts_options.o parallel.o siesta_options.o
@@ -1346,7 +1353,7 @@
1346write_subs.o: m_steps.o m_stress.o m_ts_global_vars.o parallel.o precision.o1353write_subs.o: m_steps.o m_stress.o m_ts_global_vars.o parallel.o precision.o
1347write_subs.o: siesta_cml.o siesta_geom.o siesta_options.o units.o zmatrix.o1354write_subs.o: siesta_cml.o siesta_geom.o siesta_options.o units.o zmatrix.o
1348writewave.o: alloc.o atmfuncs.o atomlist.o densematrix.o diag.o diag_option.o1355writewave.o: alloc.o atmfuncs.o atomlist.o densematrix.o diag.o diag_option.o
1349writewave.o: get_kpoints_scale.o kpoint_grid.o m_spin.o parallel.o1356writewave.o: get_kpoints_scale.o kpoint_grid.o m_spin.o m_spin.o parallel.o
1350writewave.o: parallelsubs.o precision.o siesta_geom.o sys.o units.o1357writewave.o: parallelsubs.o precision.o siesta_geom.o sys.o units.o
1351xml.o: precision.o1358xml.o: precision.o
1352zm_broyden_optim.o: m_broyddj_nocomm.o parallel.o precision.o sys.o units.o1359zm_broyden_optim.o: m_broyddj_nocomm.o parallel.o precision.o sys.o units.o
@@ -1506,6 +1513,7 @@
1506t_spin.o: m_spin.o1513t_spin.o: m_spin.o
1507timer_options.o: timer.o1514timer_options.o: timer.o
1508trialorbitalclass.o: m_trialorbitalclass.o1515trialorbitalclass.o: m_trialorbitalclass.o
1516ts_energies_m.o: ts_energies.o
1509version_info.o: version.o1517version_info.o: version.o
1510write_subs_energies.o: write_subs.o1518write_subs_energies.o: write_subs.o
1511write_subs_positions.o: write_subs.o1519write_subs_positions.o: write_subs.o
15121520
=== modified file 'Src/alloc.F90'
--- Src/alloc.F90 2017-10-10 19:27:53 +0000
+++ Src/alloc.F90 2019-08-18 23:02:58 +0000
@@ -45,7 +45,7 @@
45! Notice that, if the restore call is skipped, the new defaults will45! Notice that, if the restore call is skipped, the new defaults will
46! stay in effect until a new call to alloc_dafault is made.46! stay in effect until a new call to alloc_dafault is made.
47! ==================================================================47! ==================================================================
48! SUBROUTINE alloc_report( level, unit, file, printNow, threshold )48! SUBROUTINE alloc_report( level, unit, file, printNow, threshold, shutdown )
49! Sets the output file for the allocation report49! Sets the output file for the allocation report
50! INPUT (optional):50! INPUT (optional):
51! integer :: level : Level (detail) of report51! integer :: level : Level (detail) of report
@@ -53,7 +53,8 @@
53! character*(*):: file : Output file name53! character*(*):: file : Output file name
54! logical :: printNow : If present & true => print report now54! logical :: printNow : If present & true => print report now
55! real(dp) :: threshold : Memory threshold (in bytes) to print55! real(dp) :: threshold : Memory threshold (in bytes) to print
56! the memory use of any given array 56! the memory use of any given array
57! logical :: shutdown : If present & true then close output unit.
57! BEHAVIOR:58! BEHAVIOR:
58! The detail/extent of the report increses with the value of level:59! The detail/extent of the report increses with the value of level:
59! level=0 : no report at all (the default)60! level=0 : no report at all (the default)
@@ -73,6 +74,13 @@
73! reports are written consecutively in the same file, each with a 74! reports are written consecutively in the same file, each with a
74! time stamp header.75! time stamp header.
75! If threshold is not present, threshold=0 is assumed.76! If threshold is not present, threshold=0 is assumed.
77! When performing library invocations of this module in say
78! external methods it is vital to close units before exiting the
79! library to ensure that no dangling files are kept open.
80! To ensure the file is closed before return one can use
81! the shutdown=.true. argument to forcefully close (and free)
82! the unit used to report. If not present or .false. the unit
83! will be kept open.
76! In parallel execution, the report sections that involve every84! In parallel execution, the report sections that involve every
77! reallocation (levels 1, 3, and 4) are written only by node 0.85! reallocation (levels 1, 3, and 4) are written only by node 0.
78! The section that is written upon request (level 2) is written86! The section that is written upon request (level 2) is written
7987
=== modified file 'Src/atmfuncs.f'
--- Src/atmfuncs.f 2016-04-29 07:31:13 +0000
+++ Src/atmfuncs.f 2019-08-18 23:02:58 +0000
@@ -23,11 +23,6 @@
2323
24 implicit none 24 implicit none
25!25!
26 type(species_info), pointer :: spp
27 type(rad_func), pointer :: op
28 type(rad_func), pointer :: pp
29 type(rad_func), pointer :: func
30!
31 character(len=79) message26 character(len=79) message
32 integer, parameter :: max_l = 527 integer, parameter :: max_l = 5
33 integer, parameter :: max_ilm = (max_l+1)*(max_l+1)28 integer, parameter :: max_ilm = (max_l+1)*(max_l+1)
@@ -47,10 +42,8 @@
4742
48 public :: orb_gindex, kbproj_gindex, vna_gindex, ldau_gindex43 public :: orb_gindex, kbproj_gindex, vna_gindex, ldau_gindex
49 private44 private
50 !45
51 contains46 contains
52!
53!
5447
55 subroutine chk(name,is)48 subroutine chk(name,is)
56 character(len=*), intent(in) :: name49 character(len=*), intent(in) :: name
@@ -290,9 +283,10 @@
290C IO = 0 => Local pseudopotential283C IO = 0 => Local pseudopotential
291C************************OUTPUT*****************************************284C************************OUTPUT*****************************************
292C INTEGER LOFIO : Quantum number L of orbital or KB projector285C INTEGER LOFIO : Quantum number L of orbital or KB projector
286 type(species_info), pointer :: spp
293287
294 call chk('lofio',is)288 call chk('lofio',is)
295 289
296 spp => species(is)290 spp => species(is)
297 if (io.gt.0) then291 if (io.gt.0) then
298 if (io.gt.spp%norbs) call die("lofio: No such orbital")292 if (io.gt.spp%norbs) call die("lofio: No such orbital")
@@ -320,6 +314,7 @@
320C IO = 0 => Local pseudopotential314C IO = 0 => Local pseudopotential
321C************************OUTPUT*****************************************315C************************OUTPUT*****************************************
322C INTEGER MOFIO : Quantum number m of orbital or KB projector316C INTEGER MOFIO : Quantum number m of orbital or KB projector
317 type(species_info), pointer :: spp
323318
324 call chk('mofio',is)319 call chk('mofio',is)
325 320
@@ -348,6 +343,7 @@
348C IO > 0 => Basis orbitals343C IO > 0 => Basis orbitals
349C************************OUTPUT*****************************************344C************************OUTPUT*****************************************
350C INTEGER ZETAFIO : Zeta number of orbital345C INTEGER ZETAFIO : Zeta number of orbital
346 type(species_info), pointer :: spp
351347
352 call chk('mofio',is)348 call chk('mofio',is)
353349
@@ -372,6 +368,7 @@
372C Returns cutoff radius of Kleynman-Bylander projectors and368C Returns cutoff radius of Kleynman-Bylander projectors and
373C atomic basis orbitals.369C atomic basis orbitals.
374C Distances in Bohr370C Distances in Bohr
371 type(species_info), pointer :: spp
375372
376 call chk('rcut',is)373 call chk('rcut',is)
377 374
@@ -379,12 +376,10 @@
379 if (io.gt.0) then376 if (io.gt.0) then
380 if (io.gt.spp%norbs) call die("rcut: No such orbital")377 if (io.gt.spp%norbs) call die("rcut: No such orbital")
381378
382 op => spp%orbnl(spp%orb_index(io))379 rcut = spp%orbnl(spp%orb_index(io))%cutoff
383 rcut = op%cutoff
384 else if (io.lt.0) then380 else if (io.lt.0) then
385 if (-io.gt.spp%nprojs) call die("rcut: No such projector")381 if (-io.gt.spp%nprojs) call die("rcut: No such projector")
386 pp => spp%pjnl(spp%pj_index(-io))382 rcut = spp%pjnl(spp%pj_index(-io))%cutoff
387 rcut = pp%cutoff
388 else383 else
389 rcut = spp%vna%cutoff384 rcut = spp%vna%cutoff
390 endif385 endif
@@ -424,6 +419,7 @@
424 data (sym_label(i),i=17,25)419 data (sym_label(i),i=17,25)
425 . / 'gxy(x2-y2)', 'gzy(3x2-y2)', 'gz2xy', 'gz3y', 'gz4',420 . / 'gxy(x2-y2)', 'gzy(3x2-y2)', 'gz2xy', 'gz3y', 'gz4',
426 . 'gz3x', 'gz2(x2-y2)', 'gzx(x2-3y2)', 'gx4+y4' /421 . 'gz3x', 'gz2(x2-y2)', 'gzx(x2-3y2)', 'gx4+y4' /
422 type(species_info), pointer :: spp
427423
428 call chk('rcut',is)424 call chk('rcut',is)
429 425
@@ -461,12 +457,12 @@
461 ! io>0 => basis orbitals457 ! io>0 => basis orbitals
462458
463C If true, the orbital IO is a perturbative polarization orbital459C If true, the orbital IO is a perturbative polarization orbital
460 type(species_info), pointer :: spp
464461
465 spp => species(is)462 spp => species(is)
466 if ( (io .gt. species(is)%norbs) .or.463 if ( (io .gt. species(is)%norbs) .or.
467 $ (io .le. 0)) call die("pol: Wrong io")464 $ (io .le. 0)) call die("pol: Wrong io")
468465
469 spp => species(is)
470 pol = spp%orbnl_ispol(spp%orb_index(io))466 pol = spp%orbnl_ispol(spp%orb_index(io))
471 467
472 end function pol468 end function pol
@@ -483,6 +479,7 @@
483C Sum_lm( epsKB_l * <Psi|Phi_lm> * <Phi_lm|Psi'> )479C Sum_lm( epsKB_l * <Psi|Phi_lm> * <Phi_lm|Psi'> )
484C where Phi_lm is returned by subroutine PHIATM.480C where Phi_lm is returned by subroutine PHIATM.
485C Energy in Rydbergs.481C Energy in Rydbergs.
482 type(species_info), pointer :: spp
486483
487 integer ik484 integer ik
488485
@@ -504,13 +501,14 @@
504C Returns local part of neutral-atom Kleynman-Bylander pseudopotential.501C Returns local part of neutral-atom Kleynman-Bylander pseudopotential.
505C Distances in Bohr, Energies in Rydbergs502C Distances in Bohr, Energies in Rydbergs
506C 2) Returns exactly zero when |R| > RCUT(IS,0)503C 2) Returns exactly zero when |R| > RCUT(IS,0)
504 type(rad_func), pointer :: func
507505
508 real(dp) rmod, dvdr506 real(dp) rmod, dvdr
509507
510 call chk('vna_sub',is)508 call chk('vna_sub',is)
511509
512 v=0.0_dp510 v = 0.0_dp
513 grv(1:3)=0.0_dp511 grv(1:3) = 0.0_dp
514512
515 if (floating(is)) return513 if (floating(is)) return
516514
@@ -520,7 +518,7 @@
520 if (rmod .gt. func%cutoff) return518 if (rmod .gt. func%cutoff) return
521519
522 call rad_get(func,rmod,v,dvdr)520 call rad_get(func,rmod,v,dvdr)
523 rmod=rmod+tiny20521 rmod = rmod + tiny20
524 grv(1:3) = dvdr * r(1:3)/rmod522 grv(1:3) = dvdr * r(1:3)/rmod
525 523
526 end subroutine vna_sub524 end subroutine vna_sub
@@ -535,13 +533,14 @@
535C Distances in Bohr, Energies in Rydbergs533C Distances in Bohr, Energies in Rydbergs
536C Density in electrons/Bohr**3534C Density in electrons/Bohr**3
537C 2) Returns exactly zero when |R| > Rchloc535C 2) Returns exactly zero when |R| > Rchloc
536 type(rad_func), pointer :: func
538537
539 real(dp) :: rmod, dchdr538 real(dp) :: rmod, dchdr
540539
541 call chk('psch',is)540 call chk('psch',is)
542541
543 ch=0.0_dp 542 ch = 0.0_dp
544 grch(1:3)=0.0_dp 543 grch(1:3) = 0.0_dp
545544
546 if (floating(is)) return545 if (floating(is)) return
547546
@@ -550,7 +549,7 @@
550 if (rmod .gt. func%cutoff) return549 if (rmod .gt. func%cutoff) return
551550
552 call rad_get(func,rmod,ch,dchdr)551 call rad_get(func,rmod,ch,dchdr)
553 rmod=rmod+tiny20552 rmod = rmod + tiny20
554 grch(1:3) = dchdr * r(1:3)/rmod553 grch(1:3) = dchdr * r(1:3)/rmod
555554
556 end subroutine psch555 end subroutine psch
@@ -565,19 +564,20 @@
565C in the xc potential.564C in the xc potential.
566C Distances in Bohr, Energies in Rydbergs, Density in electrons/Bohr**3565C Distances in Bohr, Energies in Rydbergs, Density in electrons/Bohr**3
567C 2) Returns exactly zero when |R| > Rcore566C 2) Returns exactly zero when |R| > Rcore
567 type(rad_func), pointer :: func
568568
569 real(dp) rmod, dchdr569 real(dp) rmod, dchdr
570570
571 call chk('chcore_sub',is)571 call chk('chcore_sub',is)
572572
573 ch=0.0_dp573 ch = 0.0_dp
574 grch(1:3)=0.0_dp574 grch(1:3) = 0.0_dp
575575
576 if (floating(is)) return576 if (floating(is)) return
577577
578 func => species(is)%core578 func => species(is)%core
579 rmod = sqrt(sum(r*r))579 rmod = sqrt(sum(r*r))
580 rmod=rmod+tiny20 ! Moved here. JMS, Dec.2012580 rmod = rmod + tiny20 ! Moved here. JMS, Dec.2012
581 if (rmod .gt. func%cutoff) return581 if (rmod .gt. func%cutoff) return
582582
583 call rad_get(func,rmod,ch,dchdr)583 call rad_get(func,rmod,ch,dchdr)
@@ -611,6 +611,8 @@
611C 5) Prints a message and stops when no data exits for IS and/or IO611C 5) Prints a message and stops when no data exits for IS and/or IO
612C 6) Returns exactly zero when |R| > RCUT(IS,IO)612C 6) Returns exactly zero when |R| > RCUT(IS,IO)
613C 7) PHIATM with IO = 0 is strictly equivalent to VNA_SUB613C 7) PHIATM with IO = 0 is strictly equivalent to VNA_SUB
614 type(species_info), pointer :: spp
615 type(rad_func), pointer :: func
614616
615 real(dp) rmod, phir, dphidr617 real(dp) rmod, phir, dphidr
616 real(dp) rly(max_ilm), grly(3,max_ilm)618 real(dp) rly(max_ilm), grly(3,max_ilm)
@@ -652,6 +654,7 @@
652 ilm = l*l + l + m + 1654 ilm = l*l + l + m + 1
653 call rlylm( l, r, rly, grly )655 call rlylm( l, r, rly, grly )
654 phi = phir * rly(ilm)656 phi = phir * rly(ilm)
657!GCC$ unroll 3
655 do i = 1,3658 do i = 1,3
656 grphi(i)=dphidr*rly(ilm)*r(i)/rmod+phir*grly(i,ilm)659 grphi(i)=dphidr*rly(ilm)*r(i)/rmod+phir*grly(i,ilm)
657 enddo660 enddo
@@ -687,6 +690,8 @@
687C where epsKB_l is returned by function EPSKB690C where epsKB_l is returned by function EPSKB
688C 6) Returns exactly zero when |R| > RCUT(IS,IO)691C 6) Returns exactly zero when |R| > RCUT(IS,IO)
689C 7) RPHIATM with ITYPE = 0 is strictly equivalent to VNA_SUB692C 7) RPHIATM with ITYPE = 0 is strictly equivalent to VNA_SUB
693 type(species_info), pointer :: spp
694 type(rad_func), pointer :: func
690695
691 real(dp) rmod, phir696 real(dp) rmod, phir
692 integer l, m, ik697 integer l, m, ik
@@ -734,16 +739,17 @@
734 end subroutine rphiatm739 end subroutine rphiatm
735740
736741
737 subroutine all_phi( is, it, r, nphi, phi, grphi )742 subroutine all_phi( is, it, r, maxnphi, nphi, phi, grphi )
738 integer, intent(in) :: is ! Species index743 integer, intent(in) :: is ! Species index
739 integer, intent(in) :: it ! Orbital-type switch:744 integer, intent(in) :: it ! Orbital-type switch:
740 ! IT > 0 => Basis orbitals745 ! IT > 0 => Basis orbitals
741 ! IT < 0 => KB projectors746 ! IT < 0 => KB projectors
742 real(dp), intent(in) :: r(3) ! Point vector, relative to atom747 real(dp), intent(in) :: r(3) ! Point vector, relative to atom
748 integer, intent(in) :: maxnphi ! Maximum number of phi's
743 integer, intent(out) :: nphi ! Number of phi's749 integer, intent(out) :: nphi ! Number of phi's
744 real(dp), intent(out) :: phi(:) ! Basis orbital, KB projector, or750 real(dp), intent(out) :: phi(maxnphi) ! Basis orbital, KB projector, or
745 ! local pseudopotential751 ! local pseudopotential
746 real(dp), optional, intent(out) :: grphi(:,:) ! Gradient of phi752 real(dp), optional, intent(out) :: grphi(3,maxnphi) ! Gradient of phi
747753
748C Returns Kleynman-Bylander local pseudopotential, nonlocal projectors,754C Returns Kleynman-Bylander local pseudopotential, nonlocal projectors,
749C and atomic basis orbitals (and their gradients).755C and atomic basis orbitals (and their gradients).
@@ -763,16 +769,15 @@
763C 6) Returns exactly zero when |R| > RCUT(IS,IO)769C 6) Returns exactly zero when |R| > RCUT(IS,IO)
764C 8) If arrays phi or grphi are too small, returns with the required770C 8) If arrays phi or grphi are too small, returns with the required
765C value of nphi771C value of nphi
772 type(species_info), pointer :: spp
766773
767 integer i, jlm, l, lmax, m, maxlm, n774 integer i, jlm, l, lmax, m, maxlm
768 double precision rmod, phir, dphidr775 double precision rmod, phir, dphidr
769 real(dp) rly(max_ilm), grly(3,max_ilm)776 real(dp) rly(max_ilm), grly(3,max_ilm)
770777
771 integer, parameter :: maxphi=100778 integer :: ilm(maxnphi)
772779 double precision :: rmax(maxnphi)
773 integer :: ilm(maxphi)780 logical :: within(maxnphi)
774 double precision :: rmax(maxphi)
775 logical :: within(maxphi)
776781
777 call chk('all_phi',is)782 call chk('all_phi',is)
778 spp => species(is)783 spp => species(is)
@@ -786,37 +791,24 @@
786 call die("all_phi: Please use phiatm to get Vna...")791 call die("all_phi: Please use phiatm to get Vna...")
787 endif792 endif
788 793
789 if (nphi.gt.maxphi) call die('all_phi: maxphi too small')794 if (nphi.gt.maxnphi) call die('all_phi: maxphi too small')
790795
791 if (it.gt.0) then796 if (it.gt.0) then
792 do i = 1, nphi797 do i = 1, nphi
793 l = spp%orb_l(i)798 l = spp%orb_l(i)
794 m = spp%orb_m(i)799 m = spp%orb_m(i)
795 ilm(i) = l*(l+1)+m+1800 ilm(i) = l*(l+1)+m+1
796 op => spp%orbnl(spp%orb_index(i))801 rmax(i) = spp%orbnl(spp%orb_index(i))%cutoff
797 rmax(i) = op%cutoff
798 enddo802 enddo
799 else803 else
800 do i = 1, nphi804 do i = 1, nphi
801 pp => spp%pjnl(spp%pj_index(i))805 rmax(i) = spp%pjnl(spp%pj_index(i))%cutoff
802 rmax(i) = pp%cutoff
803 l = spp%pj_l(i)806 l = spp%pj_l(i)
804 m = spp%pj_m(i)807 m = spp%pj_m(i)
805 ilm(i) = l*(l+1)+m+1808 ilm(i) = l*(l+1)+m+1
806 enddo809 enddo
807 endif810 endif
808811
809! Check size of output arrays
810 if (present(grphi)) then
811 if (size(grphi,1).ne.3)
812 . call die('all_phi: incorrect first dimension of grphi')
813 n = min( size(phi), size(grphi,2) )
814 else
815 n = size(phi)
816 endif
817! Return if the caller did not provide arrays large enough...
818 if (n.lt.nphi) return
819
820! Initialize orbital values812! Initialize orbital values
821 phi(1:nphi) = 0._dp813 phi(1:nphi) = 0._dp
822 if (present(grphi)) grphi(:,1:nphi) = 0._dp814 if (present(grphi)) grphi(:,1:nphi) = 0._dp
@@ -841,14 +833,11 @@
841 if (.not.within(i)) cycle i_loop833 if (.not.within(i)) cycle i_loop
842 834
843! Find radial part835! Find radial part
844
845 if (it.gt.0) then836 if (it.gt.0) then
846 func => spp%orbnl(spp%orb_index(i))837 call rad_get(spp%orbnl(spp%orb_index(i)),rmod,phir,dphidr)
847 else 838 else
848 func => spp%pjnl(spp%pj_index(i))839 call rad_get(spp%pjnl(spp%pj_index(i)),rmod,phir,dphidr)
849 endif840 end if
850
851 call rad_get(func,rmod,phir,dphidr)
852841
853! Multiply radial and angular parts842! Multiply radial and angular parts
854 jlm = ilm(i)843 jlm = ilm(i)
@@ -875,6 +864,7 @@
875C due to the overlap of the two 'local pseudopotential charge densities'864C due to the overlap of the two 'local pseudopotential charge densities'
876C Distances in Bohr, Energies in Rydbergs865C Distances in Bohr, Energies in Rydbergs
877C 2) Returns exactly zero when |R| > Rchloc866C 2) Returns exactly zero when |R| > Rchloc
867 type(rad_func), pointer :: func
878868
879 integer ismx, ismn, indx869 integer ismx, ismn, indx
880 real(dp) r_local870 real(dp) r_local
@@ -910,6 +900,7 @@
910 integer, intent(in) :: l ! Angular momentum of the basis funcs900 integer, intent(in) :: l ! Angular momentum of the basis funcs
911C Returns the number of different basis functions901C Returns the number of different basis functions
912C with the same angular momentum and for a given species902C with the same angular momentum and for a given species
903 type(species_info), pointer :: spp
913904
914 integer i905 integer i
915906
@@ -930,7 +921,8 @@
930921
931C Returns the number of different KB projectors922C Returns the number of different KB projectors
932C with the same angular momentum and for a given species923C with the same angular momentum and for a given species
933 924 type(species_info), pointer :: spp
925
934 integer i926 integer i
935927
936 call chk('nkbl_func',is)928 call chk('nkbl_func',is)
937929
=== modified file 'Src/bands.F'
--- Src/bands.F 2018-10-17 13:04:40 +0000
+++ Src/bands.F 2019-08-18 23:02:58 +0000
@@ -296,7 +296,8 @@
296 end subroutine initbands296 end subroutine initbands
297297
298298
299 subroutine bands( no_s, nspin, maxspn, no_u, no_l, maxnh, maxk,299 subroutine bands( no_s, spin,
300 . no_u, no_l,maxnh, maxk,
300 . numh, listhptr, listh, H, S, ef, xij, indxuo,301 . numh, listhptr, listh, H, S, ef, xij, indxuo,
301 . writeb, nk, kpoint, ek, occtol, getPSI )302 . writeb, nk, kpoint, ek, occtol, getPSI )
302303
@@ -305,40 +306,39 @@
305C Written by J.Soler, August 1997 and August 1998.306C Written by J.Soler, August 1997 and August 1998.
306C Initialisation moved into a separate routine, JDG Jan 2000.307C Initialisation moved into a separate routine, JDG Jan 2000.
307C WFS options by A. Garcia, April 2012308C WFS options by A. Garcia, April 2012
309C Cleaned for tSpin by N. Papior, August 2019
308310
309C **************************** INPUT **********************************311C **************************** INPUT **********************************
310C integer no_s : Number of basis orbitals in supercell312C integer no_s : Number of basis orbitals in supercell
311C integer nspin : Number of spin components313C type(tSpin) spin : Containing all spin-information
312C integer maxspn : Maximum number of spin components
313C nspin /= maxspn for spin-orbit
314C integer maxnh : Maximum number of orbitals interacting314C integer maxnh : Maximum number of orbitals interacting
315C with any orbital315C with any orbital
316C integer maxk : Last dimension of kpoint and ek316C integer maxk : Last dimension of kpoint and ek
317C integer numh(no_l) : Number of nonzero elements of each row317C integer numh(no_l) : Number of nonzero elements of each row
318C of hamiltonian matrix318C of hamiltonian matrix
319C integer listhptr(no_l) : Pointer to start of each row of the319C integer listhptr(no_l) : Pointer to start of each row of the
320C hamiltonian matrix320C hamiltonian matrix
321C integer listh(maxlh) : Nonzero hamiltonian-matrix element321C integer listh(maxlh) : Nonzero hamiltonian-matrix element
322C column indexes for each matrix row322C column indexes for each matrix row
323C real*8 H(maxnh,nspin) : Hamiltonian in sparse form323C real*8 H(maxnh,spin%H) : Hamiltonian in sparse form
324C real*8 S(maxnh) : Overlap in sparse form324C real*8 S(maxnh) : Overlap in sparse form
325C real*8 ef : Fermi energy325C real*8 ef : Fermi energy
326C real*8 xij(3,maxnh) : Vectors between orbital centers (sparse)326C real*8 xij(3,maxnh) : Vectors between orbital centers (sparse)
327C (not used if only gamma point)327C (not used if only gamma point)
328C integer no_u : First dimension of ek328C integer no_u : First dimension of ek
329C integer no_l : Second dimension of H and S329C integer no_l : Second dimension of H and S
330C integer indxuo(no_s) : Index of equivalent orbital in unit cell330C integer indxuo(no_s) : Index of equivalent orbital in unit cell
331C Unit cell orbitals must be the first in331C Unit cell orbitals must be the first in
332C orbital lists, i.e. indxuo.le.no_l, with332C orbital lists, i.e. indxuo.le.no_l, with
333C no_l the number of orbitals in unit cell333C no_l the number of orbitals in unit cell
334C real*8 ef : Fermi energy334C real*8 ef : Fermi energy
335C logical writeb : This routine must write bands?335C logical writeb : This routine must write bands?
336C integer no_u : Total number of orbitals in unit cell336C integer no_u : Total number of orbitals in unit cell
337C integer nk : Number of band k points337C integer nk : Number of band k points
338C real*8 kpoint(3,maxk) : k point vectors338C real*8 kpoint(3,maxk) : k point vectors
339C real*8 occtol : Occupancy threshold for DM build339C real*8 occtol : Occupancy threshold for DM build
340C *************************** OUTPUT **********************************340C *************************** OUTPUT **********************************
341C real*8 ek(no_u,maxspn,maxk) : Eigenvalues341C real*8 ek(no_u,spin%spinor,maxk) : Eigenvalues
342C *************************** UNITS ***********************************342C *************************** UNITS ***********************************
343C Lengths in atomic units (Bohr).343C Lengths in atomic units (Bohr).
344C k vectors in reciprocal atomic units.344C k vectors in reciprocal atomic units.
@@ -366,7 +366,7 @@
366 use atmfuncs, only : symfio, cnfigfio, labelfis, nofis366 use atmfuncs, only : symfio, cnfigfio, labelfis, nofis
367 use writewave, only : wfs_filename367 use writewave, only : wfs_filename
368368
369 use m_spin, only: NoMagn, SPpol, NonCol, SpOrb369 use t_spin, only: tSpin
370370
371 use m_diag_option, only: ParallelOverK, Serial371 use m_diag_option, only: ParallelOverK, Serial
372 use m_diag, only: diag_init372 use m_diag, only: diag_init
@@ -374,13 +374,13 @@
374374
375 implicit none375 implicit none
376376
377 integer :: nspin377 type(tSpin), intent(in) :: spin
378 integer :: maxk, maxnh, maxspn, no_u, no_l, nk, no_s,378 integer :: maxk, maxnh, no_u, no_l, nk, no_s,
379 . indxuo(no_s), listh(maxnh), numh(no_l),379 . indxuo(no_s), listh(maxnh), numh(no_l),
380 . listhptr(*), nuo380 . listhptr(*)
381 logical :: writeb381 logical :: writeb
382 real(dp) :: ef, ek(no_u,maxspn,maxk),382 real(dp) :: ef, ek(no_u,spin%spinor,maxk),
383 . H(maxnh,nspin), kpoint(3,maxk),383 . H(maxnh,spin%H), kpoint(3,maxk),
384 . S(maxnh), xij(3,maxnh), occtol384 . S(maxnh), xij(3,maxnh), occtol
385 logical, intent(in) :: getPSI385 logical, intent(in) :: getPSI
386386
@@ -394,7 +394,6 @@
394 logical, parameter :: fixspin = .false.394 logical, parameter :: fixspin = .false.
395395
396 integer :: ik, il, io, ispin, iu, iu_wfs, iuo, naux, nhs, j396 integer :: ik, il, io, ispin, iu, iu_wfs, iuo, naux, nhs, j
397
398 logical :: SaveParallelOverK397 logical :: SaveParallelOverK
399 398
400 real(dp)399 real(dp)
@@ -405,17 +404,10 @@
405 real(dp), dimension(:), pointer :: aux => null()404 real(dp), dimension(:), pointer :: aux => null()
406405
407 parameter ( eV = 1.d0 / 13.60580d0 )406 parameter ( eV = 1.d0 / 13.60580d0 )
407
408 save Dnew, Enew, e1, e2, qk, qtot, temp, wk408 save Dnew, Enew, e1, e2, qk, qtot, temp, wk
409
410 data Dnew, Enew, e1, e2, qk, qtot, temp, wk /8*0.d0/409 data Dnew, Enew, e1, e2, qk, qtot, temp, wk /8*0.d0/
411410
412C Get number of local orbitals
413#ifdef MPI
414 call GetNodeOrbs(no_u,Node,Nodes,nuo)
415#else
416 nuo = no_u
417#endif
418
419C Start time counter411C Start time counter
420 call timer( 'bands', 1 )412 call timer( 'bands', 1 )
421413
@@ -430,12 +422,13 @@
430 endif422 endif
431423
432C Allocate local arrays - only aux is relevant here424C Allocate local arrays - only aux is relevant here
433 if ( nspin >=4 ) then425
434 nhs = 2 * (2*no_u) * (2*no_l)426 if ( spin%Grid == 4 ) then
427 nhs = 2 * (2*no_u) * (2*no_l)
435 else428 else
436 nhs = 2 * no_u*no_l429 nhs = 2 * no_u*no_l
437 endif430 endif
438 naux = 2*no_u*5431 naux = 2*no_u*5
439 call allocDenseMatrix(nhs, nhs, nhs)432 call allocDenseMatrix(nhs, nhs, nhs)
440 call re_alloc( aux, 1, naux, 'aux', 'bands' )433 call re_alloc( aux, 1, naux, 'aux', 'bands' )
441434
@@ -448,7 +441,7 @@
448 rewind (iu_wfs)441 rewind (iu_wfs)
449442
450 write(iu_wfs) nk, .false. ! nk, Gamma, same file-format in WFS as for Gamma-point443 write(iu_wfs) nk, .false. ! nk, Gamma, same file-format in WFS as for Gamma-point
451 write(iu_wfs) nspin444 write(iu_wfs) spin%Grid
452 write(iu_wfs) no_u445 write(iu_wfs) no_u
453 write(iu_wfs) (iaorb(j),labelfis(isa(iaorb(j))),446 write(iu_wfs) (iaorb(j),labelfis(isa(iaorb(j))),
454 . iphorb(j), cnfigfio(isa(iaorb(j)),iphorb(j)),447 . iphorb(j), cnfigfio(isa(iaorb(j)),iphorb(j)),
@@ -458,7 +451,7 @@
458 endif451 endif
459452
460C Find the band energies453C Find the band energies
461 if (NoMagn .or. SPpol) then454 if ( spin%Grid < 4 ) then
462C fixspin and qs are not used in diagk, since getD=.false. ...455C fixspin and qs are not used in diagk, since getD=.false. ...
463 qs(1) = 0.0_dp456 qs(1) = 0.0_dp
464 qs(2) = 0.0_dp457 qs(2) = 0.0_dp
@@ -475,7 +468,7 @@
475 call diag_init()468 call diag_init()
476 end if469 end if
477470
478 call diagk( nspin, no_l, no_s, maxspn, 471 call diagk( spin%H, no_l, no_s, spin%spinor,
479 . maxnh, maxnh, 472 . maxnh, maxnh,
480 . no_u, numh, listhptr, listh, numh, listhptr,473 . no_u, numh, listhptr, listh, numh, listhptr,
481 . listh, H, S, getD, getPSI, fixspin, qtot, qs, temp,474 . listh, H, S, getD, getPSI, fixspin, qtot, qs, temp,
@@ -487,29 +480,17 @@
487 ParallelOverK = SaveParallelOverK480 ParallelOverK = SaveParallelOverK
488 if ( ParallelOverK ) Serial = .true.481 if ( ParallelOverK ) Serial = .true.
489482
490 elseif ( NonCol ) then483 elseif ( spin%NCol ) then
491 if (getPSI) then
492 if (node==0) then
493 write(6,*) "No WFS for non-colinear spin, yet..."
494 endif
495 RETURN
496 endif
497 call diag2k(no_l, no_s, maxnh, maxnh, no_u,484 call diag2k(no_l, no_s, maxnh, maxnh, no_u,
498 . numh, listhptr, listh, numh, listhptr,485 . numh, listhptr, listh, numh, listhptr,
499 . listh, H, S, getD, qtot, temp, e1, e2,486 . listh, H, S, getD, getPSI, qtot, temp, e1, e2,
500 . xij, indxuo, nk, kpoint, wk,487 . xij, indxuo, nk, kpoint, wk,
501 . ek, qk, Dnew, Enew, ef, Entropy,488 . ek, qk, Dnew, Enew, ef, Entropy,
502 . Haux, Saux, psi, Haux, Saux, aux,489 . Haux, Saux, psi, Haux, Saux, aux,
503 . no_u, occtol, 1, no_u )490 . no_u, occtol, 1, no_u )
504491
505 elseif ( SpOrb ) then492 elseif ( spin%SO ) then
506 if (getPSI) then493 call diag3k(no_l, no_s, maxnh, maxnh, no_u, numh,
507 if (node==0) then
508 write(6,*) "No WFS for spin-orbit, yet..."
509 endif
510 return
511 end if
512 call diag3k(nuo, no_s, maxnh, maxnh, no_u, numh,
513 . listhptr, listh, numh, listhptr, listh,494 . listhptr, listh, numh, listhptr, listh,
514 . H, S, getD, getPSI, qtot, temp, e1, e2, xij,495 . H, S, getD, getPSI, qtot, temp, e1, e2, xij,
515 . indxuo, nk, kpoint, wk, ek, qk, Dnew,496 . indxuo, nk, kpoint, wk, ek, qk, Dnew,
@@ -517,7 +498,7 @@
517 . Haux, Saux, psi, Haux, Saux, aux,498 . Haux, Saux, psi, Haux, Saux, aux,
518 . no_u, occtol, 1, no_u )499 . no_u, occtol, 1, no_u )
519 else500 else
520 call die( 'bands: ERROR: incorrect value of nspin')501 call die( 'bands: ERROR: incorrect value of spin%H')
521 endif502 endif
522503
523C Write bands504C Write bands
@@ -540,7 +521,7 @@
540 . path = path + sqrt( (kpoint(1,ik)-kpoint(1,ik-1))**2 +521 . path = path + sqrt( (kpoint(1,ik)-kpoint(1,ik-1))**2 +
541 . (kpoint(2,ik)-kpoint(2,ik-1))**2 +522 . (kpoint(2,ik)-kpoint(2,ik-1))**2 +
542 . (kpoint(3,ik)-kpoint(3,ik-1))**2 )523 . (kpoint(3,ik)-kpoint(3,ik-1))**2 )
543 do ispin = 1,maxspn524 do ispin = 1, spin%spinor
544 do io = 1, no_u525 do io = 1, no_u
545 emax = max( emax, ek(io,ispin,ik) )526 emax = max( emax, ek(io,ispin,ik) )
546 emin = min( emin, ek(io,ispin,ik) )527 emin = min( emin, ek(io,ispin,ik) )
@@ -552,13 +533,14 @@
552 write(iu,*) emin/eV, emax/eV533 write(iu,*) emin/eV, emax/eV
553534
554C Write eigenvalues535C Write eigenvalues
555 if ( nspin <= 2 ) then536 if ( spin%Grid == 4 ) then
556 write(iu,*) no_u, maxspn, nk537 write(iu,*) 2*no_u, 1, nk ! A single spin channel, double number of bands
557 else if ( nspin <= 8 ) then538 else
558 write(iu,*) 2*no_u, 1, nk539 write(iu,*) no_u, spin%spinor, nk
559 else540 endif
560 call die( 'bands: ERROR: incorrect value of nspin' )541
561 end if542 ! For non-collinear calculations, the ek array will contain the first no_u
543 ! bands in ek(:,1,ik), and the next no_u bands in ek(:,2,ik)
562 path = 0.d0544 path = 0.d0
563 do ik = 1,nk545 do ik = 1,nk
564 if (nlines .ge. 0) then546 if (nlines .ge. 0) then
@@ -568,11 +550,11 @@
568 . (kpoint(3,ik)-kpoint(3,ik-1))**2 )550 . (kpoint(3,ik)-kpoint(3,ik-1))**2 )
569 write(iu,'(f10.6,10f12.4,/,(10x,10f12.4))')551 write(iu,'(f10.6,10f12.4,/,(10x,10f12.4))')
570 . path, ((ek(io,ispin,ik)/eV,io=1,no_u),552 . path, ((ek(io,ispin,ik)/eV,io=1,no_u),
571 . ispin=1,maxspn)553 . ispin=1,spin%spinor)
572 else554 else
573 write(iu,'(3f9.5,8f12.4,/,(27x,8f12.4))')555 write(iu,'(3f9.5,8f12.4,/,(27x,8f12.4))')
574 . kpoint(1,ik), kpoint(2,ik), kpoint(3,ik),556 . kpoint(1,ik), kpoint(2,ik), kpoint(3,ik),
575 . ((ek(io,ispin,ik)/eV,io=1,no_u),ispin=1,maxspn)557 . ((ek(io,ispin,ik)/eV,io=1,no_u),ispin=1,spin%spinor)
576 endif558 endif
577 enddo559 enddo
578560
579561
=== modified file 'Src/compute_dm.F'
--- Src/compute_dm.F 2018-11-02 09:03:25 +0000
+++ Src/compute_dm.F 2019-08-18 23:02:58 +0000
@@ -24,7 +24,7 @@
24 & qtot, Qtots, no_l24 & qtot, Qtots, no_l
25 use sys, only: die, bye25 use sys, only: die, bye
26 use Kpoint_grid26 use Kpoint_grid
27 use m_energies, only: Ebs, Ecorrec, Entropy, DE_NEGF27 use m_energies, only: Ebs, Ecorrec, Entropy
28 use m_energies, only: Ef, Efs28 use m_energies, only: Ef, Efs
29 use m_rmaxh29 use m_rmaxh
30 use m_eo30 use m_eo
@@ -231,7 +231,7 @@
231 call transiesta(iscf,spin%H, block_dist, sparse_pattern,231 call transiesta(iscf,spin%H, block_dist, sparse_pattern,
232 & no_u == no_s, ucell, nsc, isc_off, no_u, na_u,232 & no_u == no_s, ucell, nsc, isc_off, no_u, na_u,
233 & lasto, xa, maxnh,233 & lasto, xa, maxnh,
234 & H, S, Dscf, Escf, Ef, Qtot, .false., DE_NEGF )234 & H, S, Dscf, Escf, Ef, Qtot, .false.)
235235
236 Ecorrec = 0._dp236 Ecorrec = 0._dp
237 Entropy = 0.0_dp237 Entropy = 0.0_dp
238238
=== modified file 'Src/compute_energies.F90'
--- Src/compute_energies.F90 2017-12-21 15:49:49 +0000
+++ Src/compute_energies.F90 2019-08-18 23:02:58 +0000
@@ -55,6 +55,8 @@
55#ifdef MPI55#ifdef MPI
56 use m_mpi_utils, only: globalize_sum56 use m_mpi_utils, only: globalize_sum
57#endif57#endif
58 use m_ts_global_vars, only: TSrun
59 use ts_energies_m, only: ts_compute_energies
5860
59 integer, intent(in) :: iscf61 integer, intent(in) :: iscf
6062
@@ -85,6 +87,10 @@
85 ! E0 = Ena + Ekin + Enl + Eso - Eions87 ! E0 = Ena + Ekin + Enl + Eso - Eions
8688
87 call update_DEna()89 call update_DEna()
90 ! Also call transiesta
91 if ( TSrun ) then
92 call ts_compute_energies()
93 end if
88 call update_Etot()94 call update_Etot()
8995
9096
@@ -94,9 +100,13 @@
94100
95 if (mix_charge) then ! possibly add mixH here101 if (mix_charge) then ! possibly add mixH here
96 EHarrs = 0.0_dp102 EHarrs = 0.0_dp
103 NEGF_Eharrs = 0._dp
97 else104 else
98 call compute_DEharr()105 call compute_DEharr()
99 Eharrs = Etot + DEharr106 Eharrs = Etot + DEharr
107 if ( TSrun ) then
108 NEGF_Eharrs = NEGF_Etot + NEGF_DEharr
109 end if
100 endif110 endif
101111
102! Possible correction to Etot if mixing the DM. This is purely112! Possible correction to Etot if mixing the DM. This is purely
@@ -218,6 +228,8 @@
218 use class_dSpData1D, only : val228 use class_dSpData1D, only : val
219 use class_dSpData2D, only : val229 use class_dSpData2D, only : val
220 use sparse_matrices, only: H_kin_1D, H_vkb_1D, H_so_2D230 use sparse_matrices, only: H_kin_1D, H_vkb_1D, H_so_2D
231 use ts_energies_m, only: ts_compute_energies
232 use m_ts_global_vars, only: TSrun
221233
222 type(filesOut_t) :: filesOut ! blank output file names234 type(filesOut_t) :: filesOut ! blank output file names
223 real(dp), pointer :: H_vkb(:), H_kin(:), H_so(:,:)235 real(dp), pointer :: H_vkb(:), H_kin(:), H_so(:,:)
@@ -281,7 +293,12 @@
281 Eso = buffer1293 Eso = buffer1
282#endif294#endif
283 end if295 end if
284 296
297 ! Also call transiesta
298 if ( TSrun ) then
299 call ts_compute_energies()
300 end if
301
285 ! E0 = Ena + Ekin + Enl + Eso - Eions302 ! E0 = Ena + Ekin + Enl + Eso - Eions
286303
287 ! Clarify: Ecorrec (from O(N))304 ! Clarify: Ecorrec (from O(N))
288305
=== modified file 'Src/delk.F90'
--- Src/delk.F90 2016-03-01 14:24:48 +0000
+++ Src/delk.F90 2019-08-18 23:02:58 +0000
@@ -386,7 +386,7 @@
386 r2sp = sum(dxsp**2)386 r2sp = sum(dxsp**2)
387 if ( r2sp < r2cut(is) ) then387 if ( r2sp < r2cut(is) ) then
388!$OMP critical388!$OMP critical
389 call all_phi( is, +1, dxsp, nphiloc, phia(:,isp) )389 call all_phi( is, +1, dxsp, maxoa, nphiloc, phia(:,isp) )
390!$OMP end critical390!$OMP end critical
391 else391 else
392 phia(:,isp) = 0.0_dp392 phia(:,isp) = 0.0_dp
393393
=== modified file 'Src/dfscf.f'
--- Src/dfscf.f 2018-04-22 00:13:43 +0000
+++ Src/dfscf.f 2019-08-18 23:02:58 +0000
@@ -303,7 +303,7 @@
303 dxsp(1:3,isp) = xdop(1:3,iop)+xdsp(1:3,isp)-dxa(1:3,ia)303 dxsp(1:3,isp) = xdop(1:3,iop)+xdsp(1:3,isp)-dxa(1:3,ia)
304 r2sp = dxsp(1,isp)**2 + dxsp(2,isp)**2 + dxsp(3,isp)**2304 r2sp = dxsp(1,isp)**2 + dxsp(2,isp)**2 + dxsp(3,isp)**2
305 if (r2sp.lt.r2cut(is)) then305 if (r2sp.lt.r2cut(is)) then
306 call all_phi( is,+1, dxsp(:,isp), nphiloc,306 call all_phi( is,+1, dxsp(:,isp), maxoa, nphiloc,
307 . phia(:,isp), grada(:,:,isp))307 . phia(:,isp), grada(:,:,isp))
308 else308 else
309 phia(:,isp) = 0.0_dp309 phia(:,isp) = 0.0_dp
310310
=== modified file 'Src/dhscf.F'
--- Src/dhscf.F 2019-06-27 10:49:55 +0000
+++ Src/dhscf.F 2019-08-18 23:02:58 +0000
@@ -948,7 +948,7 @@
948 call de_alloc( DRho_par, 'DRho_par','dhscf' )948 call de_alloc( DRho_par, 'DRho_par','dhscf' )
949949
950 if ( debug_dhscf ) then950 if ( debug_dhscf ) then
951 write(*,debug_fmt) Node,'DRho',951 write(*,debug_fmt) Node,'Rho',
952 & (sqrt(sum(DRho(:,ispin)**2)),ispin=1,nspin)952 & (sqrt(sum(DRho(:,ispin)**2)),ispin=1,nspin)
953 end if953 end if
954954
@@ -1141,6 +1141,11 @@
1141 enddo1141 enddo
1142!$OMP end parallel do1142!$OMP end parallel do
11431143
1144 if ( debug_dhscf ) then
1145 write(*,debug_fmt) Node,'DRho',
1146 & (sqrt(sum(DRho(:,ispin)**2)),ispin=1,nspin)
1147 end if
1148
1144C ----------------------------------------------------------------------1149C ----------------------------------------------------------------------
1145C Save electron density difference1150C Save electron density difference
1146C ----------------------------------------------------------------------1151C ----------------------------------------------------------------------
11471152
=== modified file 'Src/diag2g.F'
--- Src/diag2g.F 2018-06-25 11:33:42 +0000
+++ Src/diag2g.F 2019-08-18 23:02:58 +0000
@@ -7,7 +7,7 @@
7!7!
8 subroutine diag2g( nuo, no, maxnh, maxnd, maxo,8 subroutine diag2g( nuo, no, maxnh, maxnd, maxo,
9 . numh, listhptr, listh, numd, listdptr,9 . numh, listhptr, listh, numd, listdptr,
10 . listd, H, S, getD, qtot, temp, e1, e2,10 . listd, H, S, getD, getPSI, qtot, temp, e1, e2,
11 . eo, qo, Dnew, Enew, ef, Entropy, 11 . eo, qo, Dnew, Enew, ef, Entropy,
12 . Haux, Saux, psi, caux, 12 . Haux, Saux, psi, caux,
13 . nuotot, occtol, iscf, neigwanted)13 . nuotot, occtol, iscf, neigwanted)
@@ -19,6 +19,8 @@
19 use sys19 use sys
20 use parallel, only : Node, Nodes, BlockSize20 use parallel, only : Node, Nodes, BlockSize
21 use parallelsubs, only : LocalToGlobalOrb,GlobalToLocalOrb21 use parallelsubs, only : LocalToGlobalOrb,GlobalToLocalOrb
22 use writewave, only : writew
23 use iso_c_binding, only : c_loc, c_f_pointer
22 use m_fermid, only : fermid, stepf24 use m_fermid, only : fermid, stepf
23 use intrinsic_missing, only: MODP25 use intrinsic_missing, only: MODP
2426
@@ -100,16 +102,19 @@
100 real(dp) Entropy, eo(maxo*2), H(maxnh,4), qo(maxo*2)102 real(dp) Entropy, eo(maxo*2), H(maxnh,4), qo(maxo*2)
101 real(dp) qtot, S(maxnh), temp, occtol103 real(dp) qtot, S(maxnh), temp, occtol
102 104
103 complex(dp), dimension(2,nuotot,2*nuo) :: psi105 complex(dp), dimension(2,nuotot,2*nuo), target :: psi
104 complex(dp), dimension(2,nuotot,2,nuo) :: Haux, Saux106 complex(dp), dimension(2,nuotot,2,nuo) :: Haux, Saux
105 complex(dp), dimension(2,nuotot) :: caux107 complex(dp), dimension(2,nuotot), target :: caux
106 logical getD108 logical getD, getPSI
107 109
108! Internal variables .............................................110! Internal variables .............................................
109111
112 real(dp), pointer :: psi_real_1d(:)
113 real(dp), pointer :: aux(:)
114
110 integer BNode, BTest, ie, ierror, iie, iio115 integer BNode, BTest, ie, ierror, iie, iio
111 integer ind, io, j, jo, nd, iuo, juo116 integer ind, io, j, jo, nd, iuo, juo
112 real(dp) ee, pipj, qe, t117 real(dp) ee, pipj, qe, t, k(3)
113 complex(dp) :: cicj, D11, D22, D12, D21118 complex(dp) :: cicj, D11, D22, D12, D21
114#ifdef MPI119#ifdef MPI
115 integer MPIerror120 integer MPIerror
@@ -201,6 +206,14 @@
201 call cdiag(Haux,Saux,2*nuotot,2*nuo,2*nuotot,eo,psi,206 call cdiag(Haux,Saux,2*nuotot,2*nuo,2*nuotot,eo,psi,
202 . 2*neigwanted,iscf,ierror, 2*BlockSize)207 . 2*neigwanted,iscf,ierror, 2*BlockSize)
203 endif208 endif
209
210 if (getPSI) then
211 k(1:3) = 0.0d0
212 call c_f_pointer( c_loc(psi), psi_real_1d, [size(psi)*2] )
213 call writew(nuotot,nuo,1,k,1,
214 & eo,psi_real_1d,gamma=.true.,
215 $ non_coll=.true., blocksize=2*BlockSize)
216 endif
204 217
205! Check if we are done218! Check if we are done
206 if (.not.getD) goto 1001219 if (.not.getD) goto 1001
207220
=== modified file 'Src/diag2k.F'
--- Src/diag2k.F 2018-04-14 23:14:53 +0000
+++ Src/diag2k.F 2019-08-18 23:02:58 +0000
@@ -7,7 +7,7 @@
7!7!
8 subroutine diag2k( nuo, no, maxnh, maxnd, maxo,8 subroutine diag2k( nuo, no, maxnh, maxnd, maxo,
9 . numh, listhptr, listh, numd, listdptr, 9 . numh, listhptr, listh, numd, listdptr,
10 . listd, H, S, getD, qtot, temp, e1, e2,10 . listd, H, S, getD, getPsi, qtot, temp, e1, e2,
11 . xij, indxuo, nk, kpoint, wk,11 . xij, indxuo, nk, kpoint, wk,
12 . eo, qo, Dnew, Enew, ef, Entropy,12 . eo, qo, Dnew, Enew, ef, Entropy,
13 . Haux, Saux, psi, Dk, Ek, caux, 13 . Haux, Saux, psi, Dk, Ek, caux,
@@ -20,7 +20,9 @@
20 use sys20 use sys
21 use parallel, only : Node, Nodes, BlockSize21 use parallel, only : Node, Nodes, BlockSize
22 use parallelsubs, only : LocalToGlobalOrb22 use parallelsubs, only : LocalToGlobalOrb
23 use writewave, only : writew
23 use m_fermid, only : fermid, stepf24 use m_fermid, only : fermid, stepf
25 use iso_c_binding, only : c_loc, c_f_pointer
24#ifdef MPI26#ifdef MPI
25 use mpi_siesta27 use mpi_siesta
26#endif28#endif
@@ -79,8 +81,8 @@
79C integer iscf : SCF cycle number81C integer iscf : SCF cycle number
80C integer neigwanted : Number of eigenvalues wanted82C integer neigwanted : Number of eigenvalues wanted
81C *************************** OUTPUT **********************************83C *************************** OUTPUT **********************************
82C real*8 eo(maxo*4,nk) : Eigenvalues84C real*8 eo(maxo*2,nk) : Eigenvalues
83C real*8 qo(maxo*4,nk) : Occupations of eigenstates85C real*8 qo(maxo*2,nk) : Occupations of eigenstates
84C real*8 Dnew(maxnd,4) : Output Density Matrix86C real*8 Dnew(maxnd,4) : Output Density Matrix
85C real*8 Enew(maxnd,4) : Output Energy-Density Matrix87C real*8 Enew(maxnd,4) : Output Energy-Density Matrix
86C real*8 ef : Fermi energy88C real*8 ef : Fermi energy
@@ -116,11 +118,15 @@
116 integer :: neigwanted118 integer :: neigwanted
117119
118 complex(dp), dimension(2,nuotot,2,nuo) :: Haux, Saux, Dk, Ek120 complex(dp), dimension(2,nuotot,2,nuo) :: Haux, Saux, Dk, Ek
119 complex(dp), dimension(2,nuotot,2*nuo) :: psi121 complex(dp), dimension(2,nuotot,2*nuo), target :: psi
120 complex(dp), dimension(2,nuotot) :: caux122 complex(dp), dimension(2,nuotot), target :: caux
121 logical getD123 logical, intent(in) :: getD, getPsi
122 124
123! Internal variables .............................................125! Internal variables .............................................
126
127 ! For interface compliance using c_f_pointer
128 real(dp), pointer :: aux(:)
129 real(dp), pointer :: psi_real(:)
124 130
125 integer BNode, BTest, ie, ierror, iie, ik, ind, io, iio131 integer BNode, BTest, ie, ierror, iie, ik, ind, io, iio
126 integer iuo, j, jo, juo, neigneeded132 integer iuo, j, jo, juo, neigneeded
@@ -170,6 +176,9 @@
170!176!
171! 1. Hermiticity imposes H_{i,j}^{is,js}=H_{j,i}^{js,is}^*177! 1. Hermiticity imposes H_{i,j}^{is,js}=H_{j,i}^{js,is}^*
172178
179 ! Jump point for bands and wfs output only
180 if (getPSI .and. (.not. GetD)) goto 10
181
173! Find eigenvalues at every k point182! Find eigenvalues at every k point
174 do ik = 1,nk183 do ik = 1,nk
175 184
@@ -214,10 +223,10 @@
214 endif223 endif
215 enddo224 enddo
216 225
217!-----------------------------------------------------------------------226 ! Check if we are done (i.e.: pure bands only)
218! Check if we are done227 if (.not.getD .and. .not. getPSI) then
219!-----------------------------------------------------------------------228 RETURN
220 if (.not.getD) goto 1001229 end if
221!-----------------------------------------------------------------------230!-----------------------------------------------------------------------
222 231
223! Find new Fermi energy and occupation weights232! Find new Fermi energy and occupation weights
@@ -240,16 +249,23 @@
240 Dnew(:,:) = 0.0_dp249 Dnew(:,:) = 0.0_dp
241 Enew(:,:) = 0.0_dp250 Enew(:,:) = 0.0_dp
242 251
243! Find maximum eigenvector that is required for this k point 252 10 continue ! ---- Start here for (getPsi and (not getDM))
253
244 do ik = 1,nk254 do ik = 1,nk
245 neigneeded = 0255 ! Find maximum eigenvector index that is required for this k point
246 ie = 2*nuotot256 if (getPSI) then
247 do while (ie.gt.0.and.neigneeded.eq.0)257 ! We do not have info about occupation
248 qe = qo(ie,ik)258 neigneeded = neigwanted
249 if (abs(qe).gt.occtol) neigneeded = ie259 else
250 ie = ie - 1260 neigneeded = 0
251 enddo261 ie = 2*nuotot ! for mixed spins
252 262 do while (ie.gt.0.and.neigneeded.eq.0)
263 qe = qo(ie,ik)
264 if (abs(qe).gt.occtol) neigneeded = ie
265 ie = ie - 1
266 enddo
267 endif
268
253! Find eigenvectors 269! Find eigenvectors
254 Saux = dcmplx(0.0_dp,0.0_dp)270 Saux = dcmplx(0.0_dp,0.0_dp)
255 Haux = dcmplx(0.0_dp,0.0_dp)271 Haux = dcmplx(0.0_dp,0.0_dp)
@@ -310,8 +326,25 @@
310 call cdiag(Haux,Saux,2*nuotot,2*nuo,2*nuotot,caux,psi,326 call cdiag(Haux,Saux,2*nuotot,2*nuo,2*nuotot,caux,psi,
311 . neigneeded,iscf,ierror,2*BlockSize)327 . neigneeded,iscf,ierror,2*BlockSize)
312 endif328 endif
313 329
314!----------------------------------------------------------------------- 330
331 if (getPSI) then
332 if (.not. getD) then
333 ! Fill in the missing eigenvalue information
334 ! This is useful if we are requesting WFS in a "bands" setting
335 call c_f_pointer(c_loc(caux),aux,[2*nuotot])
336 call kludge_copy(2*nuotot,eo(1,ik),aux)
337 endif
338 call c_f_pointer(c_loc(psi),psi_real,[2*size(psi)])
339 call writew(nuotot,nuo,ik,kpoint(1,ik),1, ! last '1' is 'spin-block number'
340 . eo(1,ik), ! energies
341 . psi_real,gamma=.false.,non_coll=.true.,
342 $ blocksize=2*BlockSize)
343 endif
344
345 if (.not. getD) CYCLE ! process new k-point
346
347!-----------------------------------------------------------------------
315! Store the products of eigenvectors in matrices Dk and Ek348! Store the products of eigenvectors in matrices Dk and Ek
316! WARNING: Dk and Ek may be EQUIVALENCE'd to Haux and Saux349! WARNING: Dk and Ek may be EQUIVALENCE'd to Haux and Saux
317!----------------------------------------------------------------------- 350!-----------------------------------------------------------------------
@@ -445,13 +478,22 @@
445478
446 enddo479 enddo
447 enddo480 enddo
448 enddo481 enddo ! over k-points
449482
450 1001 continue
451
452#ifdef DEBUG483#ifdef DEBUG
453 call write_debug( ' POS diag2k' )484 call write_debug( ' POS diag2k' )
454#endif485#endif
486
487 CONTAINS
488 ! Work around shape of aux array
489 subroutine kludge_copy(n,a,b)
490 integer, intent(in) :: n
491 real(dp), intent(out) :: a(n)
492 real(dp), intent(in) :: b(n)
493!$OMP parallel workshare default(shared)
494 a(1:n) = b(1:n)
495!$OMP end parallel workshare
496 end subroutine kludge_copy
455497
456 end subroutine diag2k498 end subroutine diag2k
457 499
458500
=== modified file 'Src/diag3g.F'
--- Src/diag3g.F 2018-06-25 11:33:42 +0000
+++ Src/diag3g.F 2019-08-18 23:02:58 +0000
@@ -5,7 +5,7 @@
5! or http://www.gnu.org/copyleft/gpl.txt.5! or http://www.gnu.org/copyleft/gpl.txt.
6! See Docs/Contributors.txt for a list of contributors.6! See Docs/Contributors.txt for a list of contributors.
7!7!
8 subroutine diag3g( nuo, no, maxuo, maxnh, maxnd, maxo,8 subroutine diag3g( nuo, no, maxnh, maxnd, maxo,
9 . numh, listhptr, listh, numd, listdptr,9 . numh, listhptr, listh, numd, listdptr,
10 . listd, H, S, getD, getPSI, qtot, temp, e1, e2,10 . listd, H, S, getD, getPSI, qtot, temp, e1, e2,
11 . eo, qo, Dnew, Enew, ef, Entropy,11 . eo, qo, Dnew, Enew, ef, Entropy,
@@ -16,8 +16,10 @@
16 use sys16 use sys
17 use parallel, only : Node, Nodes, BlockSize17 use parallel, only : Node, Nodes, BlockSize
18 use parallelsubs, only : LocalToGlobalOrb,GlobalToLocalOrb18 use parallelsubs, only : LocalToGlobalOrb,GlobalToLocalOrb
19 use writewave, only : writew
19 use m_fermid, only : fermid, stepf20 use m_fermid, only : fermid, stepf
20 use intrinsic_missing, only: MODP21 use intrinsic_missing, only: MODP
22 use iso_c_binding, only : c_loc, c_f_pointer
21#ifdef MPI23#ifdef MPI
22 use mpi_siesta24 use mpi_siesta
23#endif25#endif
@@ -33,7 +35,6 @@
33C **************************** INPUT **********************************35C **************************** INPUT **********************************
34C integer nuo : Number of basis orbitals on local node36C integer nuo : Number of basis orbitals on local node
35C integer no : Number of basis orbitals37C integer no : Number of basis orbitals
36C integer maxuo : Maximum number of basis orbitals
37C integer maxnh : Maximum number of orbitals interacting 38C integer maxnh : Maximum number of orbitals interacting
38C integer maxnd : First dimension of Dnew and Enew39C integer maxnd : First dimension of Dnew and Enew
39C integer maxo : First dimension of eo and qo40C integer maxo : First dimension of eo and qo
@@ -86,7 +87,7 @@
86! Indices is and js are for spin components 87! Indices is and js are for spin components
87! Indices iuo and juo are for orbital components:88! Indices iuo and juo are for orbital components:
88! *********************************************************************89! *********************************************************************
89 integer maxo, maxuo, maxnd, maxnh90 integer maxo, maxnd, maxnh
90 integer no, nuo, nuotot, iscf, neigwanted91 integer no, nuo, nuotot, iscf, neigwanted
91 92
92 integer listh(maxnh), numh(nuo), listhptr(nuo)93 integer listh(maxnh), numh(nuo), listhptr(nuo)
@@ -96,7 +97,8 @@
96 real(dp) Entropy, eo(maxo*2), H(maxnh,8), qo(maxo*2)97 real(dp) Entropy, eo(maxo*2), H(maxnh,8), qo(maxo*2)
97 real(dp) qtot, S(maxnh), temp, occtol98 real(dp) qtot, S(maxnh), temp, occtol
98 99
99 complex(dp), dimension(2,nuotot,2*nuo) :: psi100 complex(dp), dimension(2,nuotot,2*nuo), target :: psi
101 real(dp), pointer :: psi_real_1d(:)
100 complex(dp), dimension(2,nuotot,2,nuo) :: Haux, Saux102 complex(dp), dimension(2,nuotot,2,nuo) :: Haux, Saux
101 complex(dp), dimension(2,nuotot) :: caux103 complex(dp), dimension(2,nuotot) :: caux
102 logical getD, getPSI104 logical getD, getPSI
@@ -105,7 +107,7 @@
105 107
106 integer BNode, BTest, ie, ierror, iie, iio108 integer BNode, BTest, ie, ierror, iie, iio
107 integer ind, io, j, jo, nd, iuo, juo109 integer ind, io, j, jo, nd, iuo, juo
108 real(dp) ee, qe, t110 real(dp) ee, qe, t, k(3)
109 complex(dp) D11, D22, D12, D21111 complex(dp) D11, D22, D12, D21
110#ifdef MPI112#ifdef MPI
111 integer MPIerror113 integer MPIerror
@@ -193,7 +195,20 @@
193 call cdiag(Haux,Saux,2*nuotot,2*nuo,2*nuotot,eo,psi,195 call cdiag(Haux,Saux,2*nuotot,2*nuo,2*nuotot,eo,psi,
194 . 2*neigwanted,iscf,ierror,2*BlockSize)196 . 2*neigwanted,iscf,ierror,2*BlockSize)
195 endif197 endif
196 198
199 if (getPSI) then
200 k(1:3) = 0.0d0
201
202 ! We do not have info about occupation
203 ! In the current implementation, neigneeded
204 ! is ALWAYS nuotot.
205 ! This is because writewave expects the full spectrum
206 call c_f_pointer( c_loc(psi), psi_real_1d, [size(psi)*2] )
207 call writew(nuotot,nuo,1,k,1,
208 & eo,psi_real_1d,gamma=.true.,
209 $ non_coll=.true.,blocksize=2*BlockSize)
210 endif
211
197! Check if we are done212! Check if we are done
198 if (.not.getD) return213 if (.not.getD) return
199 214
200215
=== modified file 'Src/diag3k.F'
--- Src/diag3k.F 2017-08-06 11:17:47 +0000
+++ Src/diag3k.F 2019-08-18 23:02:58 +0000
@@ -18,7 +18,9 @@
18 use sys18 use sys
19 use parallel, only : Node, Nodes, BlockSize19 use parallel, only : Node, Nodes, BlockSize
20 use parallelsubs, only : LocalToGlobalOrb20 use parallelsubs, only : LocalToGlobalOrb
21 use writewave, only : writew
21 use m_fermid, only : fermid, stepf22 use m_fermid, only : fermid, stepf
23 use iso_c_binding, only : c_f_pointer, c_loc
22#ifdef MPI24#ifdef MPI
23 use mpi_siesta25 use mpi_siesta
24#endif26#endif
@@ -114,12 +116,14 @@
114 integer :: neigwanted116 integer :: neigwanted
115 117
116 complex(dp), dimension(2,nuotot,2,nuo) :: Haux, Saux, Dk, Ek118 complex(dp), dimension(2,nuotot,2,nuo) :: Haux, Saux, Dk, Ek
117 complex(dp), dimension(2,nuotot,2*nuo) :: psi119 complex(dp), dimension(2,nuotot,2*nuo), target :: psi
118 complex(dp), dimension(2,nuotot) :: caux120 complex(dp), dimension(2,nuotot), target :: caux
119 logical getD, getPSI121 logical, intent(in) :: getD, getPSI
120 122
121! TEMPOS, INTERNAL VARIABLES etc.123
122 124 real(dp), pointer :: aux(:)
125 real(dp), pointer :: psi_real(:)
126
123 integer BNode, BTest, ie, ierror, iie, ik, ind, io, iio127 integer BNode, BTest, ie, ierror, iie, ik, ind, io, iio
124 integer iuo, j, jo, juo, neigneeded128 integer iuo, j, jo, juo, neigneeded
125 real(dp) ee, qe, t129 real(dp) ee, qe, t
@@ -175,6 +179,9 @@
175!179!
176!180!
177181
182 ! Jump point for bands and wfs output only
183 if (getPSI .and. (.not. GetD)) goto 10
184
178! Find eigenvalues at every k point185! Find eigenvalues at every k point
179186
180 do ik = 1,nk187 do ik = 1,nk
@@ -214,11 +221,11 @@
214 call die('Terminating due to failed diagonalisation')221 call die('Terminating due to failed diagonalisation')
215 endif222 endif
216 enddo223 enddo
217 224
218!-----------------------------------------------------------------------225 ! Check if we are done (i.e.: pure bands only)
219! Check if we are done226 if (.not.getD .and. .not. getPSI) then
220!-----------------------------------------------------------------------227 RETURN
221 if (.not.getD) return228 end if
222!-----------------------------------------------------------------------229!-----------------------------------------------------------------------
223 230
224! Find new Fermi energy and occupation weights231! Find new Fermi energy and occupation weights
@@ -240,16 +247,23 @@
240! New density and energy-density matrices of unit-cell orbitals247! New density and energy-density matrices of unit-cell orbitals
241 Dnew(:,:) = 0.0_dp248 Dnew(:,:) = 0.0_dp
242 Enew(:,:) = 0.0_dp249 Enew(:,:) = 0.0_dp
250
251 10 continue ! ---- Start here for (getPsi and (not getDM))
243 252
244! Find maximum eigenvector that is required for this k point
245 do ik = 1,nk253 do ik = 1,nk
246 neigneeded = 0254 ! Find maximum eigenvector index that is required for this k point
247 ie = 2*nuotot ! for mixed spins255 if (getPSI) then
248 do while (ie.gt.0.and.neigneeded.eq.0)256 ! We do not have info about occupation
249 qe = qo(ie,ik)257 neigneeded = neigwanted
250 if (abs(qe).gt.occtol) neigneeded = ie258 else
251 ie = ie - 1259 neigneeded = 0
252 enddo260 ie = 2*nuotot ! for mixed spins
261 do while (ie.gt.0.and.neigneeded.eq.0)
262 qe = qo(ie,ik)
263 if (abs(qe).gt.occtol) neigneeded = ie
264 ie = ie - 1
265 enddo
266 endif
253 267
254! Find eigenvectors 268! Find eigenvectors
255 Saux = dcmplx(0.0_dp,0.0_dp)269 Saux = dcmplx(0.0_dp,0.0_dp)
@@ -314,6 +328,22 @@
314 . neigneeded,iscf,ierror, 2*BlockSize)328 . neigneeded,iscf,ierror, 2*BlockSize)
315 endif329 endif
316 330
331 if (getPSI) then
332 if (.not. getD) then
333 ! Fill in the missing eigenvalue information
334 ! This is useful if we are requesting WFS in a "bands" setting
335 call c_f_pointer(c_loc(caux),aux,[2*nuotot])
336 call kludge_copy(2*nuotot,eo(1,ik),aux)
337 endif
338 call c_f_pointer(c_loc(psi),psi_real,[2*size(psi)])
339 call writew(nuotot,nuo,ik,kpoint(1,ik),1, ! last '1' is 'spin-block number'
340 . eo(1,ik), ! energies
341 . psi_real,gamma=.false.,non_coll=.true.,
342 $ blocksize=2*BlockSize)
343 endif
344
345 if (.not. getD) CYCLE ! process new k-point
346
317!***********************************************************************347!***********************************************************************
318! BUILD NEW DENSITY MATRIX348! BUILD NEW DENSITY MATRIX
319!***********************************************************************349!***********************************************************************
@@ -429,8 +459,18 @@
429 enddo459 enddo
430 enddo460 enddo
431 461
432!*********************************************************************** 462 CONTAINS
433 return463 ! Work around shape of aux array
464 subroutine kludge_copy(n,a,b)
465 integer, intent(in) :: n
466 real(dp), intent(out) :: a(n)
467 real(dp), intent(in) :: b(n)
468!$OMP parallel workshare default(shared)
469 a(1:n) = b(1:n)
470!$OMP end parallel workshare
471 end subroutine kludge_copy
472
434 end subroutine diag3k473 end subroutine diag3k
435!*********************************************************************** 474!***********************************************************************
475
436 476
437477
=== modified file 'Src/diagg.F'
--- Src/diagg.F 2018-06-25 11:33:42 +0000
+++ Src/diagg.F 2019-08-18 23:02:58 +0000
@@ -91,7 +91,7 @@
91 use m_spin, only : spinor_dim, e_spin_dim91 use m_spin, only : spinor_dim, e_spin_dim
92 use alloc92 use alloc
93 use intrinsic_missing, only: MODP93 use intrinsic_missing, only: MODP
9494 use iso_c_binding, only : c_f_pointer, c_loc
95#ifdef MPI95#ifdef MPI
96 use mpi_siesta96 use mpi_siesta
97#endif97#endif
@@ -117,10 +117,9 @@
117 & qo(maxo,spinor_dim), qtot, qs(spinor_dim), S(maxnh), temp, 117 & qo(maxo,spinor_dim), qtot, qs(spinor_dim), S(maxnh), temp,
118 & efs(spinor_dim), occtol118 & efs(spinor_dim), occtol
119 119
120 real(dp)120 real(dp) Haux(nuotot,nuo), Saux(nuotot,nuo)
121 & Haux(nuotot,nuo), Saux(nuotot,nuo), 121 real(dp), target :: psi(nuotot,maxuo,spinor_dim)
122 & psi(nuotot,maxuo,spinor_dim) 122 real(dp), pointer :: psi_real_1d(:)
123
124 real(dp), dimension(1), parameter :: wk = (/ 1.0_dp /)123 real(dp), dimension(1), parameter :: wk = (/ 1.0_dp /)
125 integer, parameter :: nk = 1124 integer, parameter :: nk = 1
126125
@@ -203,8 +202,11 @@
203 do ix = 1,3202 do ix = 1,3
204 k(ix) = 0.0d0203 k(ix) = 0.0d0
205 enddo204 enddo
205 call c_f_pointer(c_loc(psi(:,:,ispin)),psi_real_1d,
206 $ [size(psi,1)*size(psi,2)])
206 call writew(nuotot,nuo,1,k,ispin,207 call writew(nuotot,nuo,1,k,ispin,
207 & eo(1,ispin),psi(1,1,ispin),.true.)208 & eo(1,ispin),psi_real_1d,gamma=.true.,
209 $ non_coll=.false.,blocksize=BlockSize)
208 endif210 endif
209211
210 enddo212 enddo
211213
=== modified file 'Src/diagk.F'
--- Src/diagk.F 2017-08-06 09:35:09 +0000
+++ Src/diagk.F 2019-08-18 23:02:58 +0000
@@ -101,6 +101,7 @@
101 use writewave, only : writew101 use writewave, only : writew
102 use m_fermid, only : fermid, fermispin, stepf102 use m_fermid, only : fermid, fermispin, stepf
103 use m_spin, only : spinor_dim, e_spin_dim103 use m_spin, only : spinor_dim, e_spin_dim
104 use iso_c_binding, only : c_loc, c_f_pointer
104#ifdef MPI105#ifdef MPI
105 use mpi_siesta106 use mpi_siesta
106#endif107#endif
@@ -143,6 +144,7 @@
143 real(dp) :: qp1, qp2, eqp1, eqp2144 real(dp) :: qp1, qp2, eqp1, eqp2
144145
145 real(dp), pointer :: lpsi(:,:)146 real(dp), pointer :: lpsi(:,:)
147 real(dp), pointer :: psi_real_1d(:)
146148
147 logical, allocatable :: done_juo(:)149 logical, allocatable :: done_juo(:)
148C ....................150C ....................
@@ -347,8 +349,10 @@
347 ! This is useful if we are requesting WFS in a "bands" setting349 ! This is useful if we are requesting WFS in a "bands" setting
348 call kludge_copy(nuotot,eo(1,ispin,ik),aux)350 call kludge_copy(nuotot,eo(1,ispin,ik),aux)
349 endif351 endif
352 call c_f_pointer(c_loc(psi),psi_real_1d,[size(psi)])
350 call writew(nuotot,nuo,ik,kpoint(1,ik),ispin,353 call writew(nuotot,nuo,ik,kpoint(1,ik),ispin,
351 . aux,psi,.false.)354 . aux,psi_real_1d,gamma=.false.,non_coll=.false.,
355 $ blocksize=BlockSize)
352 endif356 endif
353357
354 if (getD) then358 if (getD) then
355359
=== modified file 'Src/diagon.F'
--- Src/diagon.F 2018-11-02 09:03:25 +0000
+++ Src/diagon.F 2019-08-18 23:02:58 +0000
@@ -266,7 +266,7 @@
266 if (gamma) then266 if (gamma) then
267 call diag2g( nuo, no, maxnh, maxnd, maxo, numh,267 call diag2g( nuo, no, maxnh, maxnd, maxo, numh,
268 . listhptr, listh, numd, listdptr, listd,268 . listhptr, listh, numd, listdptr, listd,
269 . H, S, getD, qtot, temp, e1, e2, eo, qo, 269 . H, S, getD, getPSI, qtot, temp, e1, e2, eo, qo,
270 . Dnew, Enew, ef, Entropy,270 . Dnew, Enew, ef, Entropy,
271 . Haux, Saux, psi, aux,271 . Haux, Saux, psi, aux,
272 . nuotot, occtol, iscf, neigwanted )272 . nuotot, occtol, iscf, neigwanted )
@@ -281,7 +281,7 @@
281 else281 else
282 call diag2k( nuo, no, maxnh, maxnd, maxo, numh,282 call diag2k( nuo, no, maxnh, maxnd, maxo, numh,
283 . listhptr, listh, numd, listdptr, listd,283 . listhptr, listh, numd, listdptr, listd,
284 . H, S, getD, qtot, temp, e1, e2, xij,284 . H, S, getD, getPsi, qtot, temp, e1, e2, xij,
285 . indxuo, nk, kpoint, wk, eo, qo, Dnew,285 . indxuo, nk, kpoint, wk, eo, qo, Dnew,
286 . Enew, ef, Entropy, 286 . Enew, ef, Entropy,
287 . Haux, Saux, psi, Haux, Saux, aux,287 . Haux, Saux, psi, Haux, Saux, aux,
@@ -289,7 +289,7 @@
289 endif289 endif
290 elseif ( spin%SO ) then290 elseif ( spin%SO ) then
291 if (gamma) then291 if (gamma) then
292 call diag3g( nuo, no, maxuo, maxnh, maxnd, maxo, numh,292 call diag3g( nuo, no, maxnh, maxnd, maxo, numh,
293 . listhptr, listh, numd, listdptr, listd,293 . listhptr, listh, numd, listdptr, listd,
294 . H, S, getD, getPSI, qtot, temp, e1, e2, eo, qo,294 . H, S, getD, getPSI, qtot, temp, e1, e2, eo, qo,
295 . Dnew, Enew, ef, Entropy, 295 . Dnew, Enew, ef, Entropy,
296296
=== modified file 'Src/ioeig.f'
--- Src/ioeig.f 2018-05-08 11:36:55 +0000
+++ Src/ioeig.f 2019-08-18 23:02:58 +0000
@@ -19,10 +19,10 @@
1919
20 implicit none20 implicit none
2121
22 integer, intent(in) :: no22 integer, intent(in) :: no ! no_u: number of orbitals in unit cell
23 integer, intent(in) :: nspin23 integer, intent(in) :: nspin ! 'nspin_grid': 1, 2, or 4
24 integer, intent(in) :: nk24 integer, intent(in) :: nk
25 integer, intent(in) :: maxo25 integer, intent(in) :: maxo ! no_u again
26 integer, intent(in) :: nspinor26 integer, intent(in) :: nspinor
27 integer, intent(in) :: maxk27 integer, intent(in) :: maxk
28 real(dp), intent(in) :: ef28 real(dp), intent(in) :: ef
@@ -45,11 +45,17 @@
4545
46 write(iu,"(e17.9)") ef/eV46 write(iu,"(e17.9)") ef/eV
47 if ( nspin > nspinor ) then47 if ( nspin > nspinor ) then
48 write(iu,"(tr1,i10,i2,tr1,i10)") no*2, 1, nk48 ! NC/SOC case: a single block of wavefunctions (without spin tag)
49 ! nspin (4) will be used here to signal NC/SOC to utilities such as
50 ! Eig2DOS
51 write(iu,"(tr1,i10,i2,tr1,i10)") no*2, nspin, nk
49 else52 else
50 write(iu,"(tr1,i10,i2,tr1,i10)") no, min(nspin,2), nk53 write(iu,"(tr1,i10,i2,tr1,i10)") no, min(nspin,2), nk
51 end if54 end if
52 do ik = 1,nk55 do ik = 1,nk
56 ! This statement will correctly print eo in the NC/SOC case,
57 ! as the eigenvalues take up two complete 'io' columns,
58 ! and nspinor = 2.
53 write(iu,"(i10,10(tr1,e17.9),/,(tr10,10(tr1,e17.9)))")59 write(iu,"(i10,10(tr1,e17.9),/,(tr10,10(tr1,e17.9)))")
54 . ik, ((eo(io,is,ik)/eV,io=1,no),is=1,nspinor)60 . ik, ((eo(io,is,ik)/eV,io=1,no),is=1,nspinor)
55 enddo61 enddo
@@ -83,7 +89,7 @@
83 if ( is == 1 .and. nspinor > 1 ) then89 if ( is == 1 .and. nspinor > 1 ) then
84 call cmlAddProperty(xf=mainXML, value="up", 90 call cmlAddProperty(xf=mainXML, value="up",
85 . dictRef="siesta:spin")91 . dictRef="siesta:spin")
86 else if ( nspinor > 1 ) then92 else if ( nspinor > 1) then
87 call cmlAddProperty(xf=mainXML, value="down", 93 call cmlAddProperty(xf=mainXML, value="down",
88 . dictRef="siesta:spin")94 . dictRef="siesta:spin")
89 end if95 end if
9096
=== modified file 'Src/iosockets.F90'
--- Src/iosockets.F90 2018-11-27 11:01:23 +0000
+++ Src/iosockets.F90 2019-08-18 23:02:58 +0000
@@ -181,6 +181,8 @@
181 if (IOnode) then181 if (IOnode) then
182 if (leqi(master,"i-pi") .and. trim(header)=="POSDATA") then 182 if (leqi(master,"i-pi") .and. trim(header)=="POSDATA") then
183 call readbuffer(socket, c, 9)183 call readbuffer(socket, c, 9)
184 ! Please see below for the cell array
185 ! If this is to be used, it should *ALSO* be transposed!
184 call readbuffer(socket, aux, 9) ! not used in siesta186 call readbuffer(socket, aux, 9) ! not used in siesta
185 master_xunit = ipi_xunit187 master_xunit = ipi_xunit
186 master_eunit = ipi_eunit188 master_eunit = ipi_eunit
@@ -201,7 +203,15 @@
201 MPI_Comm_World, MPIerror)203 MPI_Comm_World, MPIerror)
202 call MPI_Bcast(c,9, MPI_Double_Precision,0, MPI_Comm_World, MPIerror)204 call MPI_Bcast(c,9, MPI_Double_Precision,0, MPI_Comm_World, MPIerror)
203#endif205#endif
204 cell = RESHAPE( c, (/3,3/) )206 ! I-Pi assumes row-major order of *only* the cell parameters
207 ! So we need to transpose the cell
208 ! This is a very bad practice since the same is happening in
209 ! ASE I-pi implementation.
210 ! The cell is transposed when transfering, but not the coordinates.
211 ! Essentially one could leave out *any* transposes in all implementations
212 ! and it would work! However, this is now a legacy implementation
213 ! that should not be changed, neither in I-pi, nor ASE.
214 cell = TRANSPOSE( RESHAPE( c, (/3,3/) ) )
205215
206! Read and check number of atoms216! Read and check number of atoms
207 if (ionode) then217 if (ionode) then
208218
=== modified file 'Src/m_energies.F90'
--- Src/m_energies.F90 2018-07-03 13:43:29 +0000
+++ Src/m_energies.F90 2019-08-18 23:02:58 +0000
@@ -47,7 +47,18 @@
47 real(dp):: Eldau 47 real(dp):: Eldau
48 real(dp):: DEldau48 real(dp):: DEldau
4949
50 real(dp) :: DE_NEGF ! NEGF total energy contribution = - e * \sum_i N_i \mu_i50 real(dp) :: NEGF_DE ! NEGF total energy contribution = - e * \sum_i N_i \mu_i
51 ! Generally we should only calculate energies in the regions where we are updating elements
52 ! As such we need a specific energy for the NEGF part
53 ! Their meaning is directly transferable to the above listed energies (in the updating regions)
54 real(dp) :: NEGF_Ebs
55 real(dp) :: NEGF_Ekin
56 real(dp) :: NEGF_Enl
57 real(dp) :: NEGF_Eso
58 real(dp) :: NEGF_DEharr
59 real(dp) :: NEGF_Eharrs
60 real(dp) :: NEGF_Etot
61 real(dp) :: NEGF_FreeE
5162
52contains63contains
5364
@@ -85,7 +96,17 @@
85 Eso = 0._dp96 Eso = 0._dp
86 Eldau = 0._dp 97 Eldau = 0._dp
87 DEldau = 0._dp98 DEldau = 0._dp
88 DE_NEGF = 0._dp99
100 ! NEGF part
101 NEGF_DE = 0._dp
102 NEGF_Ebs = 0._dp
103 NEGF_Ekin = 0._dp
104 NEGF_Enl = 0._dp
105 NEGF_Eso = 0._dp
106 NEGF_DEharr = 0._dp
107 NEGF_Eharrs = 0._dp
108 NEGF_Etot = 0._dp
109 NEGF_FreeE = 0._dp
89110
90 end subroutine init_Energies111 end subroutine init_Energies
91112
@@ -102,27 +123,36 @@
102 subroutine update_E0()123 subroutine update_E0()
103124
104 E0 = Ena + Ekin + Enl + Eso - Eions125 E0 = Ena + Ekin + Enl + Eso - Eions
105 126
106 end subroutine update_E0127 end subroutine update_E0
107 128
108 subroutine update_Etot()129 subroutine update_Etot()
130 use m_ts_global_vars, only: TSrun
109 131
110 ! DUext (external electric field) -- should it be in or out?132 ! DUext (external electric field) -- should it be in or out?
111 Etot = Ena + Ekin + Enl + Eso - Eions + &133 Etot = Ena + Ekin + Enl + Eso - Eions + &
112 DEna + DUscf + DUext + Exc + &134 DEna + DUscf + DUext + Exc + &
113 Ecorrec + Emad + Emm + Emeta + Eldau135 Ecorrec + Emad + Emm + Emeta + Eldau
114 ! Commented out the NEGF contribution to the total energy
115 ! We know it is wrong, but we estimate it. See output
116 ! Etot = Etot + DE_NEGF
117136
137 if ( TSrun ) then
138 NEGF_Etot = Ena + NEGF_Ekin + NEGF_Enl + NEGF_Eso - Eions + &
139 DEna + DUscf + DUext + Exc + Ecorrec + Emad + Emm + Emeta + &
140 Eldau + NEGF_DE
141 end if
142
118 end subroutine update_Etot143 end subroutine update_Etot
119144
120 !> @param kBT the temperature in energy145 !> @param kBT the temperature in energy
121 subroutine update_FreeE( kBT )146 subroutine update_FreeE( kBT )
147 use m_ts_global_vars, only: TSrun
122 real(dp), intent(in) :: kBT148 real(dp), intent(in) :: kBT
123149
124 FreeE = Etot - kBT * Entropy150 FreeE = Etot - kBT * Entropy
125151
152 if ( TSrun ) then
153 NEGF_FreeE = NEGF_Etot - kBT * Entropy
154 end if
155
126 end subroutine update_FreeE156 end subroutine update_FreeE
127157
128 !> @param kBT the temperature in energy158 !> @param kBT the temperature in energy
129159
=== modified file 'Src/m_io_yaml.F90'
--- Src/m_io_yaml.F90 2018-05-30 08:58:52 +0000
+++ Src/m_io_yaml.F90 2019-08-18 23:02:58 +0000
@@ -174,7 +174,6 @@
174 write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "DEna", DEna174 write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "DEna", DEna
175 write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "DUscf", DUscf175 write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "DUscf", DUscf
176 write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "DUext", DUext176 write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "DUext", DUext
177 write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "Enegf", DE_NEGF
178 write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "Exc", Exc177 write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "Exc", Exc
179 write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "Ecorrec", Ecorrec178 write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "Ecorrec", Ecorrec
180 write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "Emadel", Emad179 write(unit=yaml_fd, fmt='(2X,A,":",1X,E24.8)') "Emadel", Emad
181180
=== modified file 'Src/m_mixing.F90'
--- Src/m_mixing.F90 2019-06-20 10:46:56 +0000
+++ Src/m_mixing.F90 2019-08-18 23:02:58 +0000
@@ -423,25 +423,46 @@
423423
424 ! Do options so that a pulay option may refer to424 ! Do options so that a pulay option may refer to
425 ! the actual names of the constants425 ! the actual names of the constants
426
426 if ( m%m == MIX_PULAY ) then427 if ( m%m == MIX_PULAY ) then
427428 if ( leqi(opt,'weight.linear') &
428 ! The linear mixing weight429 .or. leqi(opt,'w.linear') ) then
429 if ( leqi(opt,'weight.linear') &430
430 .or. leqi(opt,'w.linear') ) then431 m%rv(1) = fdf_breals(pline,1)
431 432 if ( m%rv(1) <= 0._dp .or. 1._dp < m%rv(1) ) then
432 m%rv(1) = fdf_breals(pline,1)433 call die("m_mixing: Mixing weight should be 0 < weight <= 1")
433434 end if
434 else if ( leqi(opt,'svd.cond') ) then435
435436 else if ( leqi(opt,'svd.cond') ) then
436 ! This is only applicable to the Pulay437 m%rv(I_SVD_COND) = fdf_bvalues(pline,1)
437 ! mixing scheme...438 end if
438 439
439 m%rv(I_SVD_COND) = fdf_bvalues(pline,1)440 else if ( m%m == MIX_BROYDEN ) then
440 441
441 end if442 ! The linear mixing weight
442443 if ( leqi(opt,'weight.linear') &
444 .or. leqi(opt,'w.linear') ) then
445
446 m%rv(1) = fdf_breals(pline,1)
447 if ( m%rv(1) <= 0._dp .or. 1._dp < m%rv(1) ) then
448 call die("m_mixing: Linear mixing weight should be 0 < weight <= 1")
449 end if
450
451 else if ( leqi(opt,'weight.prime') &
452 .or. leqi(opt,'w.prime') ) then
453
454 m%rv(2) = fdf_breals(pline,1)
455 if ( m%rv(2) < 0._dp .or. 1._dp < m%rv(2) ) then
456 call die("m_mixing: Prime weight should be 0 <= weight <= 1")
457 end if
458
459 else if ( leqi(opt,'svd.cond') ) then
460
461 m%rv(I_SVD_COND) = fdf_bvalues(pline,1)
462
463 end if
464
443 end if465 end if
444
445 466
446 ! Generic options for all advanced methods...467 ! Generic options for all advanced methods...
447 if ( leqi(opt,'next.p') ) then468 if ( leqi(opt,'next.p') ) then
@@ -473,6 +494,10 @@
473 type(tMixer), intent(inout) :: mix494 type(tMixer), intent(inout) :: mix
474 integer :: n495 integer :: n
475496
497 if ( mix%w <= 0._dp .or. 1._dp < mix%w ) then
498 call die("m_mixing: Mixing weight should be: 0 < weight <= 1")
499 end if
500
476 ! Correct amount of history in the mixing.501 ! Correct amount of history in the mixing.
477 if ( 0 < mix%restart .and. &502 if ( 0 < mix%restart .and. &
478 mix%restart < mix%n_hist ) then503 mix%restart < mix%n_hist ) then
@@ -518,7 +543,7 @@
518 543
519 ! allocate temporary array544 ! allocate temporary array
520 mix%n_hist = max(2, mix%n_hist)545 mix%n_hist = max(2, mix%n_hist)
521 n = 1 + mix%n_hist546 n = 2 + mix%n_hist
522 allocate(mix%rv(I_SVD_COND:n))547 allocate(mix%rv(I_SVD_COND:n))
523 mix%rv(1:n) = mix%w548 mix%rv(1:n) = mix%w
524549
@@ -702,7 +727,7 @@
702 type(tMixer), intent(in), target :: mixers(:)727 type(tMixer), intent(in), target :: mixers(:)
703728
704 type(tMixer), pointer :: m729 type(tMixer), pointer :: m
705 character(len=50) :: fmt730 character(len=64) :: fmt
706731
707 logical :: bool732 logical :: bool
708 integer :: i733 integer :: i
@@ -795,9 +820,13 @@
795 write(*,'(2a,t50,''= '',i0)') trim(fmt), &820 write(*,'(2a,t50,''= '',i0)') trim(fmt), &
796 ' History steps',m%n_hist821 ' History steps',m%n_hist
797 write(*,'(2a,t50,''= '',f12.6)') trim(fmt), &822 write(*,'(2a,t50,''= '',f12.6)') trim(fmt), &
798 ' Jacobian weight',m%w823 ' Linear mixing weight',m%rv(1)
799 write(*,'(2a,t50,''= '',f12.6)') trim(fmt), &824 write(*,'(2a,t50,''= '',f12.6)') trim(fmt), &
800 ' Weight prime',m%rv(1)825 ' Inverse Jacobian weight',m%w
826 write(*,'(2a,t50,''= '',f12.6)') trim(fmt), &
827 ' Weight prime',m%rv(2)
828 write(*,'(2a,t50,''= '',e10.4)') trim(fmt), &
829 ' SVD condition',m%rv(I_SVD_COND)
801 if ( m%rv(I_P_NEXT) > 0._dp ) then830 if ( m%rv(I_P_NEXT) > 0._dp ) then
802 write(*,'(2a,t50,''= '',f6.4)') trim(fmt), &831 write(*,'(2a,t50,''= '',f6.4)') trim(fmt), &
803 ' Step mixer parameter',m%rv(I_P_NEXT)832 ' Step mixer parameter',m%rv(I_P_NEXT)
@@ -921,8 +950,11 @@
921 ! For Broyden this is the inverse Jacobian950 ! For Broyden this is the inverse Jacobian
922 write(*,'(t3,a,f6.4)') 'weight ', m%w951 write(*,'(t3,a,f6.4)') 'weight ', m%w
923 select case ( m%m )952 select case ( m%m )
924 case ( MIX_PULAY, MIX_BROYDEN )953 case ( MIX_PULAY )
925 write(*,'(t3,a,f6.4)') 'weight.linear ', m%rv(1)954 write(*,'(t3,a,f6.4)') 'weight.linear ', m%rv(1)
955 case ( MIX_BROYDEN )
956 write(*,'(t3,a,f6.4)') 'weight.linear ', m%rv(1)
957 write(*,'(t3,a,f6.4)') 'weight.prime ', m%rv(2)
926 end select958 end select
927 959
928 if ( m%n_hist > 0 ) then960 if ( m%n_hist > 0 ) then
@@ -1685,7 +1717,7 @@
1685 ! This is the modified Broyden algorithm...1717 ! This is the modified Broyden algorithm...
16861718
1687 ! Retrieve the previous weights1719 ! Retrieve the previous weights
1688 w => mix%rv(2:1+nh)1720 w => mix%rv(3:2+nh)
1689 select case ( mix%v )1721 select case ( mix%v )
1690 case ( 2 ) ! Unity Broyden1722 case ( 2 ) ! Unity Broyden
1691 1723
@@ -1779,9 +1811,9 @@
17791811
1780 ! Add the diagonal term1812 ! Add the diagonal term
1781 ! This should also prevent it from being1813 ! This should also prevent it from being
1782 ! singular (unless mix%w == 0)1814 ! singular (unless mix%rv(2) == 0)
1783 do i = 1 , nh1815 do i = 1 , nh
1784 A(i,i) = mix%rv(1) ** 2 + A(i,i)1816 A(i,i) = mix%rv(2) ** 2 + A(i,i)
1785 end do1817 end do
17861818
1787 ! Calculate the inverse1819 ! Calculate the inverse
@@ -2006,7 +2038,7 @@
2006 2038
2007 end if2039 end if
20082040
2009 ! Get the linear mixing term...2041 ! Get the inverse Jacobian term...
2010 G = mix%w2042 G = mix%w
20112043
2012 ! if debugging print out the different variables2044 ! if debugging print out the different variables
@@ -2242,7 +2274,7 @@
22422274
2243 ! Update weights (if necessary)2275 ! Update weights (if necessary)
2244 if ( nh > 1 ) then2276 if ( nh > 1 ) then
2245 do i = 2 , nh2277 do i = 3 , nh + 1
2246 mix%rv(i) = mix%rv(i+1)2278 mix%rv(i) = mix%rv(i+1)
2247 end do2279 end do
2248 end if2280 end if
22492281
=== modified file 'Src/m_new_dm.F90'
--- Src/m_new_dm.F90 2019-08-16 10:13:21 +0000
+++ Src/m_new_dm.F90 2019-08-18 23:02:58 +0000
@@ -335,7 +335,7 @@
335 ! Determine how the mixing of the first step should be performed335 ! Determine how the mixing of the first step should be performed
336 !336 !
337 ! The idea is that one will allow mixing on the first SCF step337 ! The idea is that one will allow mixing on the first SCF step
338 ! only for atomicly filled orbitals. This will in most cases338 ! only for atomically filled orbitals. This will in most cases
339 ! be a good initial choice, while in certain systems (spin-orbit)339 ! be a good initial choice, while in certain systems (spin-orbit)
340 ! it may not be so good.340 ! it may not be so good.
341 ! Subsequently for any MD steps beyond the initial step, we will not341 ! Subsequently for any MD steps beyond the initial step, we will not
@@ -352,8 +352,8 @@
352 mix_scf_first = .true.352 mix_scf_first = .true.
353 if ( IONode .and. init_method < 0 ) then353 if ( IONode .and. init_method < 0 ) then
354 ! Warn the user about this354 ! Warn the user about this
355 write(*,"(a)") "Mixing first iteration is *forced* although the sparsity pattern has changed..."355 write(*,"(a)") "Mixing first scf iteration is *forced* although the sparsity pattern has changed..."
356 write(*,"(a)") "Mixing non-compatible matrices may result in non-idempotency problems."356 write(*,"(a)") "Mixing non-compatible matrices might result in problems."
357 write(*,"(a)") "Please use a linear mixer for the first few steps to remove history effects."357 write(*,"(a)") "Please use a linear mixer for the first few steps to remove history effects."
358 end if358 end if
359 else if ( mix_scf_first .and. init_method < 0 ) then359 else if ( mix_scf_first .and. init_method < 0 ) then
360360
=== modified file 'Src/m_spin.F90'
--- Src/m_spin.F90 2019-01-13 16:11:47 +0000
+++ Src/m_spin.F90 2019-08-18 23:02:58 +0000
@@ -355,6 +355,8 @@
355 write(*,'(a)') repeat('#',60)355 write(*,'(a)') repeat('#',60)
356 write(*,'(a,t16,a,t60,a)') '#','Spin-orbit coupling is in beta','#'356 write(*,'(a,t16,a,t60,a)') '#','Spin-orbit coupling is in beta','#'
357 write(*,'(a,t13,a,t60,a)') '#','Several options may not be compatible','#'357 write(*,'(a,t13,a,t60,a)') '#','Several options may not be compatible','#'
358 call message("WARNING","This spin-orbit implementation uses a local approximation.")
359 call message("WARNING","You are strongly advised to use the newer version.")
358 write(*,'(a)') repeat('#',60)360 write(*,'(a)') repeat('#',60)
359 end if361 end if
360362
361363
=== modified file 'Src/m_transiesta.F90'
--- Src/m_transiesta.F90 2019-02-13 17:39:22 +0000
+++ Src/m_transiesta.F90 2019-08-18 23:02:58 +0000
@@ -48,7 +48,7 @@
48 sp_dist, sparse_pattern, &48 sp_dist, sparse_pattern, &
49 no_aux_cell, ucell, nsc, isc_off, no_u, na_u, lasto, xa, n_nzs, &49 no_aux_cell, ucell, nsc, isc_off, no_u, na_u, lasto, xa, n_nzs, &
50 H, S, DM, EDM, Ef, &50 H, S, DM, EDM, Ef, &
51 Qtot, Fermi_correct, DE_NEGF)51 Qtot, Fermi_correct)
5252
53 use units, only : eV53 use units, only : eV
54 use alloc, only : re_alloc, de_alloc54 use alloc, only : re_alloc, de_alloc
@@ -75,6 +75,8 @@
75 use m_ts_gf, only : read_Green75 use m_ts_gf, only : read_Green
76 use m_interpolate76 use m_interpolate
7777
78 use m_energies, only: NEGF_DE
79
78! ********************80! ********************
79! * INPUT variables *81! * INPUT variables *
80! ********************82! ********************
@@ -94,7 +96,6 @@
94 real(dp), intent(in) :: Qtot96 real(dp), intent(in) :: Qtot
95 real(dp), intent(inout) :: Ef97 real(dp), intent(inout) :: Ef
96 logical, intent(in) :: Fermi_correct98 logical, intent(in) :: Fermi_correct
97 real(dp), intent(inout) :: DE_NEGF
9899
99! ******************** IO descriptors ************************100! ******************** IO descriptors ************************
100 integer, allocatable :: uGF(:)101 integer, allocatable :: uGF(:)
@@ -127,7 +128,7 @@
127 ! Note that this will *only* be updated in case V /= 0.128 ! Note that this will *only* be updated in case V /= 0.
128 ! This energy corresponds to the non-equilibrium energies:129 ! This energy corresponds to the non-equilibrium energies:
129 ! e \sum_i N_i * \mu_i130 ! e \sum_i N_i * \mu_i
130 DE_NEGF = 0._dp131 NEGF_DE = 0._dp
131132
132 if ( TSiscf == 1 ) then133 if ( TSiscf == 1 ) then
133 ! We need to initialize TRANSIESTA134 ! We need to initialize TRANSIESTA
@@ -256,14 +257,14 @@
256 nq, uGF, nspin, na_u, lasto, &257 nq, uGF, nspin, na_u, lasto, &
257 sp_dist, sparse_pattern, &258 sp_dist, sparse_pattern, &
258 no_u, n_nzs, &259 no_u, n_nzs, &
259 H, S, DM, EDM, Ef, DE_NEGF)260 H, S, DM, EDM, Ef, NEGF_DE)
260 else261 else
261 call ts_fullk(N_Elec,Elecs, &262 call ts_fullk(N_Elec,Elecs, &
262 nq, uGF, &263 nq, uGF, &
263 ucell, nspin, na_u, lasto, &264 ucell, nspin, na_u, lasto, &
264 sp_dist, sparse_pattern, &265 sp_dist, sparse_pattern, &
265 no_u, n_nzs, &266 no_u, n_nzs, &
266 H, S, DM, EDM, Ef, DE_NEGF)267 H, S, DM, EDM, Ef, NEGF_DE)
267 end if268 end if
268 else if ( ts_method == TS_BTD ) then269 else if ( ts_method == TS_BTD ) then
269 if ( ts_Gamma ) then270 if ( ts_Gamma ) then
@@ -271,14 +272,14 @@
271 nq, uGF, nspin, na_u, lasto, &272 nq, uGF, nspin, na_u, lasto, &
272 sp_dist, sparse_pattern, &273 sp_dist, sparse_pattern, &
273 no_u, n_nzs, &274 no_u, n_nzs, &
274 H, S, DM, EDM, Ef, DE_NEGF)275 H, S, DM, EDM, Ef, NEGF_DE)
275 else276 else
276 call ts_trik(N_Elec,Elecs, &277 call ts_trik(N_Elec,Elecs, &
277 nq, uGF, &278 nq, uGF, &
278 ucell, nspin, na_u, lasto, &279 ucell, nspin, na_u, lasto, &
279 sp_dist, sparse_pattern, &280 sp_dist, sparse_pattern, &
280 no_u, n_nzs, &281 no_u, n_nzs, &
281 H, S, DM, EDM, Ef, DE_NEGF)282 H, S, DM, EDM, Ef, NEGF_DE)
282 end if283 end if
283#ifdef SIESTA__MUMPS284#ifdef SIESTA__MUMPS
284 else if ( ts_method == TS_MUMPS ) then285 else if ( ts_method == TS_MUMPS ) then
@@ -287,14 +288,14 @@
287 nq, uGF, nspin, na_u, lasto, &288 nq, uGF, nspin, na_u, lasto, &
288 sp_dist, sparse_pattern, &289 sp_dist, sparse_pattern, &
289 no_u, n_nzs, &290 no_u, n_nzs, &
290 H, S, DM, EDM, Ef, DE_NEGF)291 H, S, DM, EDM, Ef, NEGF_DE)
291 else292 else
292 call ts_mumpsk(N_Elec,Elecs, &293 call ts_mumpsk(N_Elec,Elecs, &
293 nq, uGF, &294 nq, uGF, &
294 ucell, nspin, na_u, lasto, &295 ucell, nspin, na_u, lasto, &
295 sp_dist, sparse_pattern, &296 sp_dist, sparse_pattern, &
296 no_u, n_nzs, &297 no_u, n_nzs, &
297 H, S, DM, EDM, Ef, DE_NEGF)298 H, S, DM, EDM, Ef, NEGF_DE)
298 end if299 end if
299#endif300#endif
300 else301 else
301302
=== modified file 'Src/m_ts_options.F90'
--- Src/m_ts_options.F90 2019-06-11 08:38:16 +0000
+++ Src/m_ts_options.F90 2019-08-18 23:02:58 +0000
@@ -375,7 +375,7 @@
375375
376 ! Whether we should always set the DM to bulk376 ! Whether we should always set the DM to bulk
377 ! values (by reading in from electrode DM)377 ! values (by reading in from electrode DM)
378 if ( TS_scf_mode == 1 ) then378 if ( TS_scf_mode == 1 .or. .not. IsVolt ) then
379 chars = 'bulk'379 chars = 'bulk'
380 else380 else
381 chars = 'diagon'381 chars = 'diagon'
382382
=== modified file 'Src/mixer.F'
--- Src/mixer.F 2018-11-27 11:01:23 +0000
+++ Src/mixer.F 2019-08-18 23:02:58 +0000
@@ -30,7 +30,8 @@
30 use m_mixing_scf, only: scf_mix30 use m_mixing_scf, only: scf_mix
31 use m_mixing, only: mixing31 use m_mixing, only: mixing
32 32
33 use m_spin, only: h_spin_dim, SpOrb33 use m_spin, only: spin
34
34 use parallel, only: IONode35 use parallel, only: IONode
3536
36 implicit none37 implicit none
@@ -42,6 +43,7 @@
4243
43 real(dp) :: dtmp44 real(dp) :: dtmp
44 integer :: iiscf, i, is45 integer :: iiscf, i, is
46 integer :: nspin_mix
4547
46 external :: mulliken48 external :: mulliken
47!-------------------------------------------------------------------- BEGIN49!-------------------------------------------------------------------- BEGIN
@@ -52,15 +54,17 @@
52 ! Mix Hamiltonian54 ! Mix Hamiltonian
53 Xin => Hold55 Xin => Hold
54 Xout => H56 Xout => H
57 nspin_mix = spin%H
55 else58 else
56 ! Mix density matrix59 ! Mix density matrix
57 Xin => Dold60 Xin => Dold
58 Xout => Dscf61 Xout => Dscf
62 nspin_mix = spin%DM
59 end if63 end if
6064
6165
62 ! Create residual function to minimize66 ! Create residual function to minimize
63 allocate(F(maxnh,h_spin_dim))67 allocate(F(maxnh,nspin_mix))
6468
65!$OMP parallel default(shared), private(dtmp,i)69!$OMP parallel default(shared), private(dtmp,i)
6670
@@ -103,15 +107,15 @@
103 ! Upon exit Xout contains the mixed quantity107 ! Upon exit Xout contains the mixed quantity
104 select case ( mix_spin )108 select case ( mix_spin )
105 case ( MIX_SPIN_ALL )109 case ( MIX_SPIN_ALL )
106 call mixing( scf_mix, maxnh, h_spin_dim, Xin, F, Xout)110 call mixing( scf_mix, maxnh, nspin_mix, Xin, F, Xout)
107 case ( MIX_SPIN_SPINOR )111 case ( MIX_SPIN_SPINOR )
108 call mixing( scf_mix, maxnh, h_spin_dim, Xin, F, Xout,112 call mixing( scf_mix, maxnh, nspin_mix, Xin, F, Xout,
109 & nsub=2)113 & nsub=2)
110 case ( MIX_SPIN_SUM )114 case ( MIX_SPIN_SUM )
111 call mixing( scf_mix, maxnh, h_spin_dim, Xin, F, Xout,115 call mixing( scf_mix, maxnh, nspin_mix, Xin, F, Xout,
112 & nsub=1)116 & nsub=1)
113 case ( MIX_SPIN_SUM_DIFF )117 case ( MIX_SPIN_SUM_DIFF )
114 call mixing( scf_mix, maxnh, h_spin_dim, Xin, F, Xout,118 call mixing( scf_mix, maxnh, nspin_mix, Xin, F, Xout,
115 & nsub=2)119 & nsub=2)
116 end select120 end select
117121
@@ -148,31 +152,23 @@
148 ! Correctly handle mixed quantity152 ! Correctly handle mixed quantity
149 ! move over mixed quantity to "input"153 ! move over mixed quantity to "input"
150 if ( mix_scf_first ) then154 if ( mix_scf_first ) then
151 155
152 ! always allow mixing156 ! always allow mixing
153!$OMP do157 ! I.e. we do nothing
154 do is = 1 , size(Xin, 2)158
155 do i = 1 , size(Xin, 1)
156 Xin(i,is) = Xout(i,is)
157 end do
158 end do
159!$OMP end do nowait
160
161 else if ( iscf == 1 ) then159 else if ( iscf == 1 ) then
162 160
163 ! We are not allowed to mix the first SCF161 ! We are not allowed to mix the first SCF
164 ! Remember that Xout contains the MIXED162 ! Remember that Xout contains the MIXED
165 ! quantity and F is the current residual163 ! quantity and F is the current residual
166 ! hence:164 ! hence for no mixing we re-create Xout:
167 ! Xout = Xin + F165 ! Xout = Xin + F
168!$OMP do166!$OMP do
169 do is = 1 , size(Xin, 2)167 do is = 1 , nspin_mix
170 do i = 1 , size(Xin, 1)168 do i = 1 , size(Xin, 1)
171 Xin(i,is) = Xin(i,is) + F(i,is)169 Xout(i,is) = Xin(i,is) + F(i,is)
172 ! we require that Xin == Xout:170 end do
173 Xout(i,is) = Xin(i,is)171 end do
174 end do
175 end do
176!$OMP end do nowait172!$OMP end do nowait
177173
178 end if174 end if
@@ -188,7 +184,7 @@
188184
189 if (muldeb .and. (.not. MixH) ) then 185 if (muldeb .and. (.not. MixH) ) then
190 if (IONode) write (6,"(/a)") 'Using DM after mixing:'186 if (IONode) write (6,"(/a)") 'Using DM after mixing:'
191 if ( SpOrb .and. orbmoms) then187 if ( spin%SO .and. orbmoms) then
192 call moments( 1, na_u, no_u, maxnh, numh, listhptr,188 call moments( 1, na_u, no_u, maxnh, numh, listhptr,
193 . listh, S, Dscf, isa, lasto, iaorb, iphorb,189 . listh, S, Dscf, isa, lasto, iaorb, iphorb,
194 . indxuo )190 . indxuo )
195191
=== modified file 'Src/print_spin.F90'
--- Src/print_spin.F90 2018-04-11 09:52:01 +0000
+++ Src/print_spin.F90 2019-08-18 23:02:58 +0000
@@ -2,10 +2,10 @@
2 !2 !
3 ! Prints spin in output and CML files3 ! Prints spin in output and CML files
4 !4 !
5 use m_spin, only: nspin5 use m_spin, only: spin
6 use atomlist, only: no_l6 use atomlist, only: no_l
7 use sparse_matrices, only: listhptr, numh7 use sparse_matrices, only: listhptr, numh
8 use sparse_matrices, only: S, Dscf8 use sparse_matrices, only: S, Dscf ! Dscf could have 1, 2, 4, or 8 components
9 use siesta_cml9 use siesta_cml
10 use parallel, only: IOnode10 use parallel, only: IOnode
11 use precision, only: dp11 use precision, only: dp
@@ -15,58 +15,73 @@
1515
16 implicit none16 implicit none
17 17
18 real(dp), intent(out) :: qspin(4)18 real(dp), intent(out) :: qspin(spin%Grid)
1919
20 integer :: ispin, io, j, ind20 integer :: ispin, io, j, ind
21 real(dp) :: qaux21 real(dp) :: qaux
22 real(dp) :: Stot ! Total spin magnitude22 real(dp) :: Stot ! Total spin magnitude
23 real(dp) :: Svec(3) ! Total spin vector23 real(dp) :: Svec(3) ! Total spin vector
24#ifdef MPI24#ifdef MPI
25 real(dp) :: qtmp(4)25 real(dp) :: qtmp(spin%Grid)
26#endif26#endif
2727
28 if (nspin .ge. 2) then28 qspin(:) = 0.0_dp
29 do ispin = 1,nspin29
30 qspin(ispin) = 0.0_dp30 if ( spin%Grid < 2 ) return
31 do io = 1,no_l31
32 do j = 1,numh(io)32 if ( spin%SO ) then
33 ind = listhptr(io)+j33
34 qspin(ispin) = qspin(ispin) + Dscf(ind,ispin) * S(ind)34 do io = 1,no_l
35 enddo35 do j = 1,numh(io)
36 enddo36 ind = listhptr(io)+j
37 enddo37 ! In the SOC case, hermitify Dscf
3838 qspin(1:2) = qspin(1:2) + dscf(ind,1:2) * S(ind)
39#ifdef MPI39 qspin(3) = qspin(3) + 0.5_dp*(dscf(ind,3)+dscf(ind,7)) * S(ind)
40 ! Global reduction of spin components40 qspin(4) = qspin(4) + 0.5_dp*(dscf(ind,4)+dscf(ind,8)) * S(ind)
41 call globalize_sum(qspin(1:nspin),qtmp(1:nspin))41 end do
42 qspin(1:nspin) = qtmp(1:nspin)42 end do
43#endif43
4444 else
45 if (nspin .eq. 2) then45
4646 do io = 1,no_l
47 if (IOnode) then47 do j = 1,numh(io)
48 Svec(1) = 0.0_dp48 ind = listhptr(io)+j
49 Svec(2) = 0.0_dp49 qspin(:) = qspin(:) + Dscf(ind,:) * S(ind)
50 Svec(3) = qspin(1) - qspin(2)50 end do
51 Stot = Svec(3)51 end do
52 write(6,'(5x,a,f10.5,2f10.1,f10.5)') 'spin moment: S , {S} = ', Stot, Svec52
53 endif
54 if (cml_p) call cmlAddProperty(xf=mainXML, &
55 value=qspin(1)-qspin(2), dictref='siesta:stot', &
56 units='siestaUnits:spin')
57
58 elseif (nspin .eq. 4) then
59
60 call spnvec( nspin, qspin, qaux, Stot, Svec )
61 if (IONode) then
62 write(6,'(5x,a,4f10.5)') 'spin moment: S , {S} = ', Stot, Svec
63 if (cml_p) then
64 call cmlAddProperty(xf=mainXML, value=Stot, &
65 dictref='siesta:stot', units='siestaUnits:spin')
66 call cmlAddProperty(xf=mainXML, value=Svec, &
67 dictref='siesta:svec', units='siestaUnits:spin')
68 endif !cml_p
69 endif
70 endif
71 endif53 endif
54#ifdef MPI
55 ! Global reduction of spin components
56 call globalize_sum(qspin(1:spin%Grid),qtmp(1:spin%Grid))
57 qspin(1:spin%Grid) = qtmp(1:spin%Grid)
58#endif
59
60 ! We are left with printing out to stdout
61 if ( .not. IONode ) return
62
63 if ( spin%Grid == 2) then
64
65 Svec(1) = 0.0_dp
66 Svec(2) = 0.0_dp
67 Svec(3) = qspin(1) - qspin(2)
68 Stot = Svec(3)
69 write(6,'(5x,a,f10.5,2f10.1,f10.5)') 'spin moment: S , {S} = ', Stot, Svec
70 if (cml_p) call cmlAddProperty(xf=mainXML, &
71 value=qspin(1)-qspin(2), dictref='siesta:stot', &
72 units='siestaUnits:spin')
73
74 else if ( spin%Grid == 4 ) then
75
76 call spnvec( spin%Grid, qspin, qaux, Stot, Svec )
77 write(6,'(5x,a,4f10.5)') 'spin moment: S , {S} = ', Stot, Svec
78 if (cml_p) then
79 call cmlAddProperty(xf=mainXML, value=Stot, &
80 dictref='siesta:stot', units='siestaUnits:spin')
81 call cmlAddProperty(xf=mainXML, value=Svec, &
82 dictref='siesta:svec', units='siestaUnits:spin')
83 end if !cml_p
84
85 end if
86
72end subroutine print_spin87end subroutine print_spin
7388
=== modified file 'Src/read_options.F90'
--- Src/read_options.F90 2019-08-16 10:13:21 +0000
+++ Src/read_options.F90 2019-08-18 23:02:58 +0000
@@ -445,9 +445,9 @@
445445
446 ! Density Matrix Mixing (proportion of output DM in new input DM)446 ! Density Matrix Mixing (proportion of output DM in new input DM)
447 wmix = fdf_get('DM.MixingWeight',0.25_dp)447 wmix = fdf_get('DM.MixingWeight',0.25_dp)
448 if (ionode) then448!!$ if (ionode) then
449 write(6,6) 'redata: New DM Mixing Weight',wmix449!!$ write(6,6) 'redata: New DM Mixing Weight',wmix
450 endif450!!$ endif
451451
452 if (cml_p) then452 if (cml_p) then
453 call cmlAddParameter( xf=mainXML,name='DM.MixingWeight', &453 call cmlAddParameter( xf=mainXML,name='DM.MixingWeight', &
454454
=== modified file 'Src/rhoofd.F90'
--- Src/rhoofd.F90 2016-09-13 13:22:20 +0000
+++ Src/rhoofd.F90 2019-08-18 23:02:58 +0000
@@ -294,7 +294,7 @@
294 r2sp = sum(dxsp**2)294 r2sp = sum(dxsp**2)
295 if ( r2sp < r2cut(is) ) then295 if ( r2sp < r2cut(is) ) then
296!$OMP critical296!$OMP critical
297 call all_phi( is, +1, dxsp, nphiloc, phia(:,isp) )297 call all_phi( is, +1, dxsp, maxoa, nphiloc, phia(:,isp) )
298!$OMP end critical298!$OMP end critical
299 else299 else
300 phia(:,isp) = 0.0_dp300 phia(:,isp) = 0.0_dp
301301
=== modified file 'Src/rhoofdsp.f'
--- Src/rhoofdsp.f 2016-01-25 16:00:16 +0000
+++ Src/rhoofdsp.f 2019-08-18 23:02:58 +0000
@@ -306,7 +306,8 @@
306 dxsp(:) = xdsp(:,isp) + xdop(:,iop) - dxa(:,ia)306 dxsp(:) = xdsp(:,isp) + xdop(:,iop) - dxa(:,ia)
307 r2sp = sum(dxsp**2)307 r2sp = sum(dxsp**2)
308 if (r2sp.lt.r2cut(is)) then308 if (r2sp.lt.r2cut(is)) then
309 call all_phi( is, +1, dxsp, nphiloc, phia(:,isp) )309 call all_phi( is, +1, dxsp, maxoa,
310 & nphiloc, phia(:,isp) )
310 else311 else
311 phia(:,isp) = 0.0_dp312 phia(:,isp) = 0.0_dp
312 endif313 endif
313314
=== modified file 'Src/siesta_analysis.F'
--- Src/siesta_analysis.F 2018-06-25 11:33:42 +0000
+++ Src/siesta_analysis.F 2019-08-18 23:02:58 +0000
@@ -46,8 +46,7 @@
46 use m_energies46 use m_energies
47 use m_steps, only: final47 use m_steps, only: final
48 use m_ntm48 use m_ntm
49 use m_spin, only: nspin, spinor_dim, h_spin_dim49 use m_spin, only: spin
50 use m_spin, only: SpOrb, NonCol, SPpol, NoMagn
51 use m_dipol50 use m_dipol
52 use m_eo51 use m_eo
53 use m_forces, only: fa52 use m_forces, only: fa
@@ -68,15 +67,15 @@
6867
69 real(dp) :: dummy_str(3,3)68 real(dp) :: dummy_str(3,3)
70 real(dp) :: dummy_strl(3,3)69 real(dp) :: dummy_strl(3,3)
71 real(dp) :: qspin(4) ! Local70 real(dp) :: qspin(spin%Grid) ! Local
7271
73 real(dp) :: polxyz(3,nspin) ! Autom., small72 real(dp) :: polxyz(3,spin%Grid) ! Autom., small
74 real(dp) :: polR(3,nspin) ! Autom., small73 real(dp) :: polR(3,spin%Grid) ! Autom., small
75 real(dp) :: qaux74 real(dp) :: qaux
76 real(dp), pointer :: ebk(:,:,:) ! Band energies75 real(dp), pointer :: ebk(:,:,:) ! Band energies
7776
78 integer :: j, ix, ind, ik, io, ispin77 integer :: j, ix, ind, ik, io, ispin
79 integer :: wfs_band_min, wfs_band_max78 integer :: wfs_band_min, wfs_band_max, max_n_states
80 real(dp) :: g2max, current_ef79 real(dp) :: g2max, current_ef
81 type(filesOut_t) :: filesOut ! blank output file names80 type(filesOut_t) :: filesOut ! blank output file names
8281
@@ -127,7 +126,7 @@
127126
128 if (fdf_get("Read-H-from-file",.false.)) then127 if (fdf_get("Read-H-from-file",.false.)) then
129 if (SIESTA_worker) then128 if (SIESTA_worker) then
130 call read_spmatrix(maxnh, no_l, h_spin_dim, numh,129 call read_spmatrix(maxnh, no_l, spin%H, numh,
131 . listhptr, listh, H, found, userfile="H_IN")130 . listhptr, listh, H, found, userfile="H_IN")
132 if (.not. found) call die("Could not find H_IN")131 if (.not. found) call die("Could not find H_IN")
133 current_ef = ef132 current_ef = ef
@@ -137,7 +136,7 @@
137136
138#ifdef SIESTA__PEXSI137#ifdef SIESTA__PEXSI
139 if (fdf_get("PEXSI.DOS",.false.)) then138 if (fdf_get("PEXSI.DOS",.false.)) then
140 call pexsi_dos(no_u, no_l, spinor_dim,139 call pexsi_dos(no_u, no_l, spin%spinor,
141 $ maxnh, numh, listhptr, listh, H, S, qtot, ef)140 $ maxnh, numh, listhptr, listh, H, S, qtot, ef)
142 141
143 endif142 endif
@@ -263,6 +262,17 @@
263! latest DM, although this is probably too much).262! latest DM, although this is probably too much).
264! See the logic in siesta_forces.263! See the logic in siesta_forces.
265264
265! Setup the number of states depending on the used method
266! For polarized calculations we use no_u and separate spin-channels.
267! For NC/SO we have mixed spin-channels and separating makes no
268! sense.
269 if ( spin%Grid == 4 ) then
270! We are NC/SO
271 max_n_states = no_u * 2
272 else
273 max_n_states = no_u
274 end if
275
266! Find and print wavefunctions at selected k-points276! Find and print wavefunctions at selected k-points
267!** This uses H,S, and xa277!** This uses H,S, and xa
268 if (nwk.gt.0) then278 if (nwk.gt.0) then
@@ -270,7 +280,7 @@
270 if (IONode) print "(a)",280 if (IONode) print "(a)",
271 $ "Writing WFSX for selected k-points in "281 $ "Writing WFSX for selected k-points in "
272 $ // trim(wfs_filename)282 $ // trim(wfs_filename)
273 call wwave( no_s, h_spin_dim, spinor_dim, no_u, no_l, maxnh, 283 call wwave( no_s, spin, no_u, no_l, maxnh,
274 & nwk,284 & nwk,
275 & numh, listhptr, listh, H, S, Ef, xijo, indxuo,285 & numh, listhptr, listh, H, S, Ef, xijo, indxuo,
276 & gamma_wavefunctions, nwk, wfk, no_u, occtol )286 & gamma_wavefunctions, nwk, wfk, no_u, occtol )
@@ -278,19 +288,20 @@
278288
279289
280!** This uses H,S, and xa290!** This uses H,S, and xa
281 if (write_coop) then291 if ( write_coop ) then
282 ! Output the wavefunctions for the kpoints in the SCF set292 ! Output the wavefunctions for the kpoints in the SCF set
283 ! Note that we allow both a band number and an energy range293 ! Note that we allow both a band number and an energy range
284 ! The user is responsible for using appropriate values.294 ! The user is responsible for using appropriate values.
285 wfs_band_min = fdf_get("WFS.BandMin",1)295 wfs_band_min = fdf_get("WFS.BandMin",1)
286 wfs_band_max = fdf_get("WFS.BandMax",no_u)296 wfs_band_max = fdf_get("WFS.BandMax",max_n_states)
287 call setup_wfs_list(nkpnt,no_u,wfs_band_min,wfs_band_max,297 call setup_wfs_list(nkpnt,max_n_states,
298 $ wfs_band_min,wfs_band_max,
288 $ use_scf_weights=.true.,299 $ use_scf_weights=.true.,
289 $ use_energy_window=.true.)300 $ use_energy_window=.true.)
290 wfs_filename = trim(slabel)//".fullBZ.WFSX"301 wfs_filename = trim(slabel)//".fullBZ.WFSX"
291 if (IONode) print "(a)", "Writing WFSX for COOP/COHP in " 302 if (IONode) print "(a)", "Writing WFSX for COOP/COHP in "
292 $ // trim(wfs_filename)303 $ // trim(wfs_filename)
293 call wwave( no_s, h_spin_dim, spinor_dim, no_u, no_l, maxnh, 304 call wwave( no_s, spin, no_u, no_l, maxnh,
294 . nkpnt,305 . nkpnt,
295 . numh, listhptr, listh, H, S, Ef, xijo, indxuo,306 . numh, listhptr, listh, H, S, Ef, xijo, indxuo,
296 . gamma_SCF, nkpnt, kpoint, no_u, occtol)307 . gamma_SCF, nkpnt, kpoint, no_u, occtol)
@@ -299,82 +310,101 @@
299! Compute bands310! Compute bands
300!** This uses H,S, and xa311!** This uses H,S, and xa
301 nullify( ebk )312 nullify( ebk )
302 call re_alloc( ebk, 1, no_u, 1, spinor_dim, 1, maxbk,313 if ( spin%Grid == 4 ) then
303 & 'ebk', 'siesta_analysis' )314 call re_alloc( ebk, 1, no_u*2, 1, 1, 1, maxbk,
304315 & 'ebk', 'siesta_analysis' )
305 if (nbk.gt.0) then316 else
317 call re_alloc( ebk, 1, no_u, 1, spin%spinor, 1, maxbk,
318 & 'ebk', 'siesta_analysis' )
319 end if
320
321 if ( nbk > 0 ) then
306 if (IONode) print "(a)", "Computing bands..."322 if (IONode) print "(a)", "Computing bands..."
307 getPSI = fdf_get('WFS.Write.For.Bands', .false.)323 getPSI = fdf_get('WFS.Write.For.Bands', .false.)
308 if (getPSI) then324 if (getPSI) then
309 wfs_filename = trim(slabel)//".bands.WFSX"325 wfs_filename = trim(slabel)//".bands.WFSX"
310 if (IONode) print "(a)", "Writing WFSX for bands in "326 if (IONode) print "(a)", "Writing WFSX for bands in "
311 $ // trim(wfs_filename)327 $ // trim(wfs_filename)
312 wfs_band_min = fdf_get("WFS.BandMin",1)328 wfs_band_min = fdf_get("WFS.BandMin",1)
313 wfs_band_max = fdf_get("WFS.BandMax",no_u)329 wfs_band_max = fdf_get("WFS.BandMax",max_n_states)
314 call setup_wfs_list(nbk,no_u,wfs_band_min,wfs_band_max,330 call setup_wfs_list(nbk,max_n_states,
315 $ use_scf_weights=.false.,331 $ wfs_band_min,wfs_band_max,
316 $ use_energy_window=.false.)332 $ use_scf_weights=.false.,
317 endif333 $ use_energy_window=.false.)
318 call bands( no_s, h_spin_dim, spinor_dim, no_u, no_l, maxnh, 334 end if
335 call bands( no_s, spin, no_u, no_l, maxnh,
319 . maxbk,336 . maxbk,
320 . numh, listhptr, listh, H, S, Ef, xijo, indxuo,337 . numh, listhptr, listh, H, S, Ef, xijo, indxuo,
321 . .true., nbk, bk, ebk, occtol, getPSI )338 . .true., nbk, bk, ebk, occtol, getPSI )
322 if (IOnode) then339
340 if ( IOnode ) then
323 if ( writbk ) then341 if ( writbk ) then
324 write(6,'(/,a,/,a4,a12)')342 write(6,'(/,a,/,a4,tr1,a12)')
325 & 'siesta: Band k vectors (Bohr**-1):', 'ik', 'k'343 & 'siesta: Band k vectors (Bohr**-1):', 'ik', 'k'
326 do ik = 1,nbk344 do ik = 1,nbk
327 write(6,'(i4,3f12.6)') ik, (bk(ix,ik),ix=1,3)345 write(6,'(i4,3(tr1,f12.6))') ik, (bk(ix,ik),ix=1,3)
328 enddo346 end do
329 endif347 end if
330 348
331 if ( writb ) then349 if ( writb ) then
332 write(6,'(/,a,/,a4,a3,a7)')350 if ( spin%Grid == 4 ) then
333 & 'siesta: Band energies (eV):', 'ik', 'is', 'eps'351 write(6,'(/,a,/,a4,tr1,a9)')
334 do ispin = 1, spinor_dim352 & 'siesta: Band energies (eV):', 'ik', 'eps'
335 do ik = 1,nbk353 do ik = 1,nbk
336 write(6,'(i4,i3,10f7.2)')354 write(6,'(i4,10(tr1,f9.4))')
337 & ik, ispin, (ebk(io,ispin,ik)/eV,io=1,min(10,no_u))355 & ik, (ebk(io,1,ik)/eV,io=1,min(10,2*no_u))
338 if (no_u.gt.10) write(6,'(7x,10f7.2)')356 if ( 2*no_u > 10 ) write(6,'(4x,10(tr1,f9.4))')
339 & (ebk(io,ispin,ik)/eV,io=11,no_u)357 & (ebk(io,1,ik)/eV,io=11,no_u*2)
358 end do
359
360 else
361 write(6,'(/,a,/,a4,a3,tr1,a9)')
362 & 'siesta: Band energies (eV):', 'ik', 'is', 'eps'
363 do ispin = 1, spin%spinor
364 do ik = 1,nbk
365 write(6,'(i4,i3,10(tr1,f9.4))')
366 & ik, ispin, (ebk(io,ispin,ik)/eV,io=1,min(10,no_u))
367 if ( no_u > 10 ) write(6,'(7x,10(tr1,f9.4))')
368 & (ebk(io,ispin,ik)/eV,io=11,no_u)
369 enddo
340 enddo370 enddo
341 enddo371 end if
342 endif372 endif
373
343 endif374 endif
344 endif375 endif
345376
346! Print eigenvalues377! Print eigenvalues
347 if (IOnode .and. writeig) then378 if ( IOnode .and. writeig .and. no_l < 1000 .and.
348 if ((isolve.eq.SOLVE_DIAGON .or.379 & (isolve.eq.SOLVE_DIAGON .or.
349 & ((isolve.eq.SOLVE_MINIM) .and. minim_calc_eigenvalues))380 & (isolve.eq.SOLVE_MINIM .and. minim_calc_eigenvalues)) ) then
350 & .and. no_l.lt.1000) then381
351 if ( h_spin_dim <= 2 ) then382 if ( spin%Grid == 4 ) then
352 write(6,'(/,a,/,a4,a3,a7)')383 write(6,'(/,a)') 'siesta: Eigenvalues (eV):'
353 & 'siesta: Eigenvalues (eV):', 'ik', 'is', 'eps'384 do ik = 1,nkpnt
354 do ik = 1,nkpnt385 write(6,'(a,i6)') 'ik =', ik
355 do ispin = 1,spinor_dim386 write(6,'(10(tr1,f9.4))') (eo(io,1,ik)/eV,io=1,2*neigwanted)
356 write(6,'(i4,i3,10f7.2)')387 end do
388
389 else
390 write(6,'(/,a,/,a4,a3,tr1,a9)')
391 & 'siesta: Eigenvalues (eV):', 'ik', 'is', 'eps'
392 do ik = 1,nkpnt
393 do ispin = 1, spin%spinor
394 write(6,'(i4,i3,10(tr1,f9.4))')
357 & ik,ispin,(eo(io,ispin,ik)/eV,io=1,min(10,neigwanted))395 & ik,ispin,(eo(io,ispin,ik)/eV,io=1,min(10,neigwanted))
358 if (no_u.gt.10) write(6,'(7x,10f7.2)')396 if (no_u.gt.10) write(6,'(7x,10(tr1,f9.4))')
359 & (eo(io,ispin,ik)/eV,io=11,neigwanted)397 & (eo(io,ispin,ik)/eV,io=11,neigwanted)
360 enddo398 end do
361 enddo399 end do
362 else400 end if
363 write(6,'(/,a)') 'siesta: Eigenvalues (eV):'401 write(6,'(a,f15.6,a)') 'siesta: Fermi energy =', ef/eV, ' eV'
364 do ik = 1,nkpnt
365 write(6,'(a,i6)') 'ik =', ik
366 write(6,'(10f7.2)')
367 & ((eo(io,ispin,ik)/eV,io=1,neigwanted),ispin=1,2)
368 enddo
369 endif
370 write(6,'(a,f15.6,a)') 'siesta: Fermi energy =', ef/eV, ' eV'
371 endif
372 endif402 endif
373403
374 if (((isolve.eq.SOLVE_DIAGON).or.404 if (((isolve.eq.SOLVE_DIAGON).or.
375 & ((isolve.eq.SOLVE_MINIM).and.minim_calc_eigenvalues))405 & ((isolve.eq.SOLVE_MINIM).and.minim_calc_eigenvalues))
376 & .and.IOnode)406 & .and.IOnode)
377 & call ioeig(eo,ef,neigwanted,nspin,nkpnt,no_u,spinor_dim,407 & call ioeig(eo,ef,neigwanted,spin%H,nkpnt,no_u,spin%spinor,
378 & nkpnt,kpoint, kweight)408 & nkpnt,kpoint, kweight)
379409
380410
@@ -430,7 +460,7 @@
430! Calculation of the bulk polarization using the Berry phase460! Calculation of the bulk polarization using the Berry phase
431! formulas by King-Smith and Vanderbilt461! formulas by King-Smith and Vanderbilt
432 if (nkpol.gt.0 .and. .not.bornz) then462 if (nkpol.gt.0 .and. .not.bornz) then
433 if (NonCol .or. SpOrb) then463 if ( spin%NCol .or. spin%SO ) then
434 if (IOnode) then464 if (IOnode) then
435 write(6,'(/a)')465 write(6,'(/a)')
436 . 'siesta_analysis: bulk polarization implemented only for'466 . 'siesta_analysis: bulk polarization implemented only for'
@@ -439,7 +469,7 @@
439 endif469 endif
440 else470 else
441 call KSV_pol(na_u, na_s, xa_last, rmaxo, scell_last, 471 call KSV_pol(na_u, na_s, xa_last, rmaxo, scell_last,
442 & ucell_last,no_u, no_l, no_s, nspin, qspin, 472 & ucell_last,no_u, no_l, no_s, spin%Grid, qspin,
443 & maxnh, nkpol, numh, listhptr, listh, 473 & maxnh, nkpol, numh, listhptr, listh,
444 & H, S, xijo, indxuo, isa, iphorb, 474 & H, S, xijo, indxuo, isa, iphorb,
445 & iaorb, lasto, shape,475 & iaorb, lasto, shape,
@@ -449,7 +479,7 @@
449479
450! Calculation of the optical conductivity480! Calculation of the optical conductivity
451 call optical(na_u, na_s, xa_last, scell_last, ucell_last,481 call optical(na_u, na_s, xa_last, scell_last, ucell_last,
452 & no_u, no_l, no_s, nspin, qspin,482 & no_u, no_l, no_s, spin%Grid, qspin,
453 & maxnh, numh, listhptr, listh, H, S, xijo,483 & maxnh, numh, listhptr, listh, H, S, xijo,
454 $ indxuo, ebk, ef, temp,484 $ indxuo, ebk, ef, temp,
455 & isa, iphorb, iphKB, lasto, lastkb, shape )485 & isa, iphorb, iphKB, lasto, lastkb, shape )
@@ -479,7 +509,7 @@
479 g2max = g2cut509 g2max = g2cut
480 dummy_str = 0.0510 dummy_str = 0.0
481 dummy_strl = 0.0511 dummy_strl = 0.0
482 call dhscf( nspin, no_s, iaorb, iphorb, no_l,512 call dhscf( spin%Grid, no_s, iaorb, iphorb, no_l,
483 . no_u, na_u, na_s, isa, xa_last, indxua, 513 . no_u, na_u, na_s, isa, xa_last, indxua,
484 & ntm, 0, 0, 0, filesOut, 514 & ntm, 0, 0, 0, filesOut,
485 & maxnh, numh, listhptr, listh, Dscf, Datm,515 & maxnh, numh, listhptr, listh, Dscf, Datm,
486516
=== modified file 'Src/siesta_dicts.F90'
--- Src/siesta_dicts.F90 2018-09-06 10:00:24 +0000
+++ Src/siesta_dicts.F90 2019-08-18 23:02:58 +0000
@@ -316,8 +316,19 @@
316 ('E.spin_orbit'.kvp.Eso)316 ('E.spin_orbit'.kvp.Eso)
317 variables = variables // &317 variables = variables // &
318 ('E.ldau'.kvp.Eldau)318 ('E.ldau'.kvp.Eldau)
319 variables = variables // &319
320 ('E.negf'.kvp.DE_NEGF)320 variables = variables // &
321 ('E.negf.dN'.kvp.NEGF_DE)
322 variables = variables // &
323 ('E.negf.spin_orbit'.kvp.NEGF_Eso)
324 variables = variables // &
325 ('E.negf.harris'.kvp.NEGF_Eharrs)
326 variables = variables // &
327 ('E.negf.total'.kvp.NEGF_Etot)
328 variables = variables // &
329 ('E.negf.kinetic'.kvp.NEGF_Ekin)
330 variables = variables // &
331 ('E.negf.band_structure'.kvp.NEGF_Ebs)
321332
322 ! Add the number of charges to the system333 ! Add the number of charges to the system
323 variables = variables // &334 variables = variables // &
324335
=== modified file 'Src/siesta_forces.F'
--- Src/siesta_forces.F 2018-09-24 07:27:11 +0000
+++ Src/siesta_forces.F 2019-08-18 23:02:58 +0000
@@ -84,7 +84,6 @@
84 use m_pexsi, only: pexsi_finalize_scfloop84 use m_pexsi, only: pexsi_finalize_scfloop
85#endif 85#endif
8686
87 use m_energies, only: DE_NEGF
88 use m_ts_options, only : N_Elec87 use m_ts_options, only : N_Elec
89 use m_ts_method88 use m_ts_method
90 use m_ts_global_vars, only: TSmode, TSinit, TSrun89 use m_ts_global_vars, only: TSmode, TSinit, TSrun
@@ -380,7 +379,7 @@
380 call transiesta(iscf,spin%H, 379 call transiesta(iscf,spin%H,
381 & block_dist, sparse_pattern, Gamma_Scf, ucell, nsc,380 & block_dist, sparse_pattern, Gamma_Scf, ucell, nsc,
382 & isc_off, no_u, na_u, lasto, xa, maxnh, H, S,381 & isc_off, no_u, na_u, lasto, xa, maxnh, H, S,
383 & Dscf, Escf, Ef, Qtot, .true., DE_NEGF) 382 & Dscf, Escf, Ef, Qtot, .true.)
384 383
385 ! We will not have not converged as we have just384 ! We will not have not converged as we have just
386 ! changed the Fermi-level385 ! changed the Fermi-level
387386
=== modified file 'Src/spher_harm.f'
--- Src/spher_harm.f 2017-02-19 19:26:15 +0000
+++ Src/spher_harm.f 2019-08-18 23:02:58 +0000
@@ -68,12 +68,15 @@
68 PARAMETER (TINY=1.e-14_dp, ZERO=0._dp, HALF=0.5_dp, ONE=1._dp,68 PARAMETER (TINY=1.e-14_dp, ZERO=0._dp, HALF=0.5_dp, ONE=1._dp,
69 . TWO=2._dp, THREE=3._dp, SIX=6._dp)69 . TWO=2._dp, THREE=3._dp, SIX=6._dp)
7070
71 real(dp), parameter :: pi = 3.14159265358979323846264338327950_dp
72 real(dp), parameter :: pi4 = 4 * pi
73
71C Internal variables74C Internal variables
72 INTEGER75 INTEGER
73 . I, ILM, ILM0, L, LMXMX, M, MS76 . I, ILM, ILM0, L, LMXMX, M
74 REAL(DP)77 REAL(DP)
75 . C(0:MAXLP1*MAXLP1), COSM, COSMM1, COSPHI,78 . C(0:MAXLP1*MAXLP1), COSM, COSMM1, COSPHI,
76 . ZP(0:MAXLP1,0:MAXLP1), FAC, FOURPI, GY(3),79 . ZP(0:MAXLP1,0:MAXLP1), FAC, GY(3),
77 . P(0:MAXLP1,0:MAXLP1),80 . P(0:MAXLP1,0:MAXLP1),
78 . RL(-1:MAXL), RSIZE, RX, RY, RZ, RXY,81 . RL(-1:MAXL), RSIZE, RX, RY, RZ, RXY,
79 . SINM, SINMM1, SINPHI, YY82 . SINM, SINMM1, SINPHI, YY
@@ -83,11 +86,10 @@
83C Evaluate normalization constants once and for all86C Evaluate normalization constants once and for all
84 IF (LMAX.GT.LMXMX) THEN87 IF (LMAX.GT.LMXMX) THEN
85 IF (LMAX.GT.MAXL) call die('YLM: MAXL too small')88 IF (LMAX.GT.MAXL) call die('YLM: MAXL too small')
86 FOURPI=TWO**4*ATAN(ONE)
87 DO 20 L=0,LMAX89 DO 20 L=0,LMAX
88 ILM0=L*L+L90 ILM0=L*L+L
89 DO 15 M=0,L91 DO 15 M=0,L
90 FAC=(2*L+1)/FOURPI92 FAC=(2*L+1)/pi4
91 DO 10 I=L-M+1,L+M93 DO 10 I=L-M+1,L+M
92 FAC=FAC/I94 FAC=FAC/I
93 10 CONTINUE95 10 CONTINUE
@@ -202,27 +204,25 @@
202 SINM=ZERO204 SINM=ZERO
203 DO 90 M=0,LMAX205 DO 90 M=0,LMAX
204 DO 80 L=M,LMAX206 DO 80 L=M,LMAX
205 DO 75 MS = -1,1,2207 ILM=L*L+L-M
206 IF (MS.EQ.-1) THEN208 GY(1)=(-ZP(L,M))*RX *RZ *SINM - P(L,M)*M*COSM*SINPHI/RXY
207 ILM=L*L+L-M209 GY(2)=(-ZP(L,M))*RY *RZ *SINM + P(L,M)*M*COSM*COSPHI/RXY
208 YY=C(ILM)*P(L,M)*SINM210 GY(3)= ZP(L,M)*RXY*RXY*SINM
209 GY(1)=(-ZP(L,M))*RX *RZ *SINM - P(L,M)*M*COSM*SINPHI/RXY211 YY=C(ILM)*P(L,M)*SINM
210 GY(2)=(-ZP(L,M))*RY *RZ *SINM + P(L,M)*M*COSM*COSPHI/RXY212 RLY(ILM)=RL(L)*YY
211 GY(3)= ZP(L,M)*RXY*RXY*SINM213 GRLY(1,ILM)= RX*L*RL(L-1)*YY + RL(L)*GY(1)*C(ILM)/RSIZE
212 ELSE214 GRLY(2,ILM)= RY*L*RL(L-1)*YY + RL(L)*GY(2)*C(ILM)/RSIZE
213 ILM=L*L+L+M215 GRLY(3,ILM)= RZ*L*RL(L-1)*YY + RL(L)*GY(3)*C(ILM)/RSIZE
214 YY=C(ILM)*P(L,M)*COSM216
215 GY(1)=(-ZP(L,M))*RX *RZ *COSM + P(L,M)*M*SINM*SINPHI/RXY217 ILM=L*L+L+M
216 GY(2)=(-ZP(L,M))*RY *RZ *COSM - P(L,M)*M*SINM*COSPHI/RXY218 GY(1)=(-ZP(L,M))*RX *RZ *COSM + P(L,M)*M*SINM*SINPHI/RXY
217 GY(3)= ZP(L,M)*RXY*RXY*COSM219 GY(2)=(-ZP(L,M))*RY *RZ *COSM - P(L,M)*M*SINM*COSPHI/RXY
218 ENDIF220 GY(3)= ZP(L,M)*RXY*RXY*COSM
219 GY(1)= GY(1)*C(ILM)/RSIZE221 YY=C(ILM)*P(L,M)*COSM
220 GY(2)= GY(2)*C(ILM)/RSIZE222 RLY(ILM)=RL(L)*YY
221 GY(3)= GY(3)*C(ILM)/RSIZE223 GRLY(1,ILM)= RX*L*RL(L-1)*YY + RL(L)*GY(1)*C(ILM)/RSIZE
222 RLY(ILM)=RL(L)*YY224 GRLY(2,ILM)= RY*L*RL(L-1)*YY + RL(L)*GY(2)*C(ILM)/RSIZE
223 GRLY(1,ILM)= RX*L*RL(L-1)*YY + RL(L)*GY(1)225 GRLY(3,ILM)= RZ*L*RL(L-1)*YY + RL(L)*GY(3)*C(ILM)/RSIZE
224 GRLY(2,ILM)= RY*L*RL(L-1)*YY + RL(L)*GY(2)
225 GRLY(3,ILM)= RZ*L*RL(L-1)*YY + RL(L)*GY(3)
226 75 CONTINUE226 75 CONTINUE
227 80 CONTINUE227 80 CONTINUE
228 COSMM1=COSM228 COSMM1=COSM
229229
=== added file 'Src/ts_energies.F90'
--- Src/ts_energies.F90 1970-01-01 00:00:00 +0000
+++ Src/ts_energies.F90 2019-08-18 23:02:58 +0000
@@ -0,0 +1,206 @@
1!
2! Copyright (C) 1996-2016 The SIESTA group
3! This file is distributed under the terms of the
4! GNU General Public License: see COPYING in the top directory
5! or http://www.gnu.org/copyleft/gpl.txt.
6! See Docs/Contributors.txt for a list of contributors.
7!
8! This code segment has been fully created by:
9! Nick Papior Andersen, 2019, nickpapior@gmail.com
10! Please conctact the author, prior to re-using this code.
11
12! Module for calculating energy contributions for the transiesta
13! calculations.
14! Effectively many of the energy contributions stem from Hamiltonian
15! and/or DM elements.
16! However, in TranSiesta we only update/use a subset of the full
17! matrices. As such the energies should only be calculated
18! on the used elements rather than the full.
19!
20! There are many more elements that need to be split, while currently
21! we only calculate a subset of what is actually needed.
22! The main problem in calculating NEGF energies is:
23! 1. the open-boundary problem, and
24! 2. how to handle real-space energies such as Exc from dhscf.
25module ts_energies_m
26
27 implicit none
28
29contains
30
31 subroutine ts_compute_energies()
32
33 use precision, only: dp
34 use m_ts_options, only: N_Elec, Elecs
35 use m_spin, only: spin
36
37 use sparse_matrices, only: dit => block_dist
38 use sparse_matrices, only: n_nzs => maxnh
39 use sparse_matrices, only: Dold, Dscf, H
40 use sparse_matrices, only: H_kin_1D, H_vkb_1D, H_so_2D
41 use sparse_matrices, only: sp => sparse_pattern
42
43 use m_ts_method
44 use parallel, only : Node
45#ifdef MPI
46 use mpi_siesta
47#endif
48 use class_OrbitalDistribution
49 use class_Sparsity
50 use class_dSpData1D
51 use class_dSpData2D
52
53 use geom_helper, only : UCORB
54 use m_ts_electype, only: Elec
55 use m_energies, only: NEGF_Ebs, NEGF_Ekin, NEGF_Eso, NEGF_Etot, NEGF_Enl
56 use m_energies, only: NEGF_DEharr
57
58! **********************
59! * LOCAL variables *
60! **********************
61 integer, pointer :: l_ncol(:), l_ptr(:), l_col(:)
62 integer :: no_lo, no_u, lio, io, ind, jo, ir, jr, r, ispin
63 real(dp), pointer :: H_vkb(:), H_kin(:), H_so(:,:)
64 real(dp) :: Etmp(5,0:1+1+N_Elec*2)
65#ifdef MPI
66 real(dp) :: tmp(5,0:1+1+N_Elec*2)
67 integer :: MPIerror
68#endif
69
70 H_vkb => val(H_vkb_1D)
71 H_kin => val(H_kin_1D)
72 if ( spin%SO ) then
73 H_so => val(H_so_2D)
74 end if
75
76 ! Retrieve information about the sparsity pattern
77 call attach(sp, &
78 n_col=l_ncol,list_ptr=l_ptr,list_col=l_col, &
79 nrows=no_lo,nrows_g=no_u)
80
81 ! Initialize energies
82 Etmp(:,:) = 0._dp
83
84!$OMP parallel do default(shared), &
85!$OMP&private(lio,io,ir,ind,jo,jr,r,ispin), &
86!$OMP&reduction(+:Etmp)
87 do lio = 1 , no_lo
88
89 ! obtain the global index of the orbital.
90 io = index_local_to_global(dit,lio,Node)
91 ir = orb_type(io)
92
93 ! Loop number of entries in the row... (index frame)
94 do ind = l_ptr(lio) + 1 , l_ptr(lio) + l_ncol(lio)
95
96 ! as the local sparsity pattern is a super-cell pattern,
97 ! we need to check the unit-cell orbital
98 ! The unit-cell column index
99 jo = UCORB(l_col(ind),no_u)
100 jr = orb_type(jo)
101
102 if ( all((/ir,jr/) == TYP_BUFFER) ) then
103 r = 1 ! buffer
104 else if ( any((/ir,jr/) == TYP_BUFFER) ) then
105 r = 0 ! other
106 else if ( all((/ir,jr/) == TYP_DEVICE) ) then
107 r = 2 ! device
108 else if ( any((/ir,jr/) == TYP_DEVICE) ) then
109 r = 4+(ir+jr-1)*2 ! device/electrode
110 else if ( ir == jr ) then
111 r = 3+(ir-1)*2 ! electrode/electrode
112 else
113 r = 0 ! other
114 end if
115
116 ! Ebs
117 if ( spin%SO ) then
118 Etmp(1,r) = Etmp(1,r) + H(ind,1) * Dscf(ind,1) &
119 + H(ind,2) * Dscf(ind,2) &
120 + H(ind,3) * Dscf(ind,7) &
121 + H(ind,4) * Dscf(ind,8) &
122 - H(ind,5) * Dscf(ind,5) &
123 - H(ind,6) * Dscf(ind,6) &
124 + H(ind,7) * Dscf(ind,3) &
125 + H(ind,8) * Dscf(ind,4)
126 else if ( spin%NCol ) then
127 Etmp(1,r) = Etmp(1,r) + H(ind,1) * Dscf(ind,1) &
128 + H(ind,2) * Dscf(ind,2) &
129 + (H(ind,3) * Dscf(ind,3) &
130 + H(ind,4) * Dscf(ind,4) ) * 2
131 else
132 Etmp(1,r) = Etmp(1,r) + sum(H(ind,:) * Dscf(ind,:) )
133 end if
134
135 do ispin = 1, spin%spinor
136 ! Ekin
137 Etmp(2,r) = Etmp(2,r) + H_kin(ind) * Dscf(ind,ispin)
138 ! Enl
139 Etmp(3,r) = Etmp(3,r) + H_vkb(ind) * Dscf(ind,ispin)
140 end do
141
142 ! Eso
143 if ( spin%SO ) then
144 Etmp(4,r) = Etmp(4,r) + H_so(ind,1)*Dscf(ind,7) + H_so(ind,2)*Dscf(ind,8) &
145 + H_so(ind,5)*Dscf(ind,3) + H_so(ind,6)*Dscf(ind,4) &
146 - H_so(ind,3)*Dscf(ind,5) - H_so(ind,4)*Dscf(ind,6)
147
148 end if
149
150 ! DEharr
151 if ( spin%SO ) then
152 Etmp(5,r) = Etmp(5,r) + H(ind,1) * ( Dscf(ind,1) - Dold(ind,1) ) &
153 + H(ind,2) * ( Dscf(ind,2) - Dold(ind,2) ) &
154 + H(ind,3) * ( Dscf(ind,7) - Dold(ind,7) ) &
155 + H(ind,4) * ( Dscf(ind,8) - Dold(ind,8) ) &
156 - H(ind,5) * ( Dscf(ind,5) - Dold(ind,5) ) &
157 - H(ind,6) * ( Dscf(ind,6) - Dold(ind,6) ) &
158 + H(ind,7) * ( Dscf(ind,3) - Dold(ind,3) ) &
159 + H(ind,8) * ( Dscf(ind,4) - Dold(ind,4) )
160 else if ( spin%NCol ) then
161 Etmp(5,r) = Etmp(5,r) + H(ind,1) * ( Dscf(ind,1) - Dold(ind,1) ) &
162 + H(ind,2) * ( Dscf(ind,2) - Dold(ind,2) ) &
163 + 2.0_dp * H(ind,3) * ( Dscf(ind,3) - Dold(ind,3) ) &
164 + 2.0_dp * H(ind,4) * ( Dscf(ind,4) - Dold(ind,4) )
165 else
166 do ispin = 1, spin%spinor
167 Etmp(5,r) = Etmp(5,r) + H(ind,ispin) * (Dscf(ind,ispin) - Dold(ind,ispin))
168 end do
169 end if
170
171 end do
172 end do
173!$OMP end parallel do
174
175 ! Now add the *other* contributions
176 do ir = 1, N_Elec
177 if ( Elecs(ir)%DM_update >= 1 ) then
178 ! add cross-terms
179 r = 4 + (TYP_DEVICE+ir - 1) * 2
180 Etmp(:,2) = Etmp(:,2) + Etmp(:,r)
181 end if
182 if ( Elecs(ir)%DM_update == 2 ) then
183 r = 3 + (ir - 1) * 2
184 ! add diagonal electrode terms
185 Etmp(:,2) = Etmp(:,2) + Etmp(:,r)
186 end if
187 end do
188
189#ifdef MPI
190 call MPI_AllReduce(Etmp(1,2),tmp(1,2),size(Etmp, 1), &
191 MPI_Double_Precision,MPI_SUM, MPI_Comm_World,MPIerror)
192 Etmp(:,2) = tmp(:,2)
193#endif
194
195 ! Copy data over
196 NEGF_Ebs = Etmp(1,2)
197 NEGF_Ekin = Etmp(2,2)
198 NEGF_Enl = Etmp(3,2)
199 NEGF_Eso = Etmp(4,2)
200 NEGF_DEharr = Etmp(5,2)
201
202 end subroutine ts_compute_energies
203
204end module ts_energies_m
205
206
0207
=== modified file 'Src/vmat.F90'
--- Src/vmat.F90 2016-06-22 08:57:57 +0000
+++ Src/vmat.F90 2019-08-18 23:02:58 +0000
@@ -339,7 +339,7 @@
339 r2sp = sum(dxsp**2)339 r2sp = sum(dxsp**2)
340 if ( r2sp < r2cut(is) ) then340 if ( r2sp < r2cut(is) ) then
341!$OMP critical341!$OMP critical
342 call all_phi( is, +1, dxsp, nphiloc, phia(:,isp) )342 call all_phi( is, +1, dxsp, maxoa, nphiloc, phia(:,isp) )
343!$OMP end critical343!$OMP end critical
344 else344 else
345 phia(:,isp) = 0.0_dp345 phia(:,isp) = 0.0_dp
346346
=== modified file 'Src/vmatsp.f'
--- Src/vmatsp.f 2016-01-25 16:00:16 +0000
+++ Src/vmatsp.f 2019-08-18 23:02:58 +0000
@@ -309,7 +309,8 @@
309 enddo309 enddo
310 r2sp = sum(dxsp**2)310 r2sp = sum(dxsp**2)
311 if (r2sp.lt.r2cut(is)) then311 if (r2sp.lt.r2cut(is)) then
312 call all_phi( is, +1, dxsp, nphiloc, phia(:,isp) )312 call all_phi( is, +1, dxsp, maxoa,
313 & nphiloc, phia(:,isp) )
313 else314 else
314 phia(:,isp) = 0.0_dp315 phia(:,isp) = 0.0_dp
315 endif316 endif
316317
=== modified file 'Src/write_subs.F'
--- Src/write_subs.F 2017-11-23 14:17:27 +0000
+++ Src/write_subs.F 2019-08-18 23:02:58 +0000
@@ -296,7 +296,7 @@
296 use units296 use units
297 use m_energies 297 use m_energies
298 use m_spin298 use m_spin
299 use m_ts_global_vars, only: TSinit, TSrun299 use m_ts_global_vars, only: TSrun
300 implicit none300 implicit none
301301
302 integer :: iscf302 integer :: iscf
@@ -304,16 +304,10 @@
304 real(dp), intent(in) :: dHmax ! Max. change in H elements304 real(dp), intent(in) :: dHmax ! Max. change in H elements
305305
306 character(len=64) :: fmt306 character(len=64) :: fmt
307 character(len=6) :: scf_name
308307
309 logical :: first_scf_step308 logical :: first_scf_step
310 integer :: i309 integer :: i
311310
312 scf_name = 'scf'
313 if ( TSrun ) then
314 scf_name = 'ts-scf'
315 end if
316
317 first_scf_step = (iscf == 1)311 first_scf_step = (iscf == 1)
318 ! Only print out full decomposition at very beginning and end.312 ! Only print out full decomposition at very beginning and end.
319 if ((istp==1.and.first_scf_step).or.final) then313 if ((istp==1.and.first_scf_step).or.final) then
@@ -329,7 +323,6 @@
329 . 'siesta: DEna =', DEna/eV,323 . 'siesta: DEna =', DEna/eV,
330 . 'siesta: DUscf =', DUscf/eV,324 . 'siesta: DUscf =', DUscf/eV,
331 . 'siesta: DUext =', DUext/eV,325 . 'siesta: DUext =', DUext/eV,
332 . 'siesta: Enegf =', DE_NEGF/eV,
333 . 'siesta: Exc =', Exc/eV,326 . 'siesta: Exc =', Exc/eV,
334 . 'siesta: eta*DQ =', Ecorrec/eV,327 . 'siesta: eta*DQ =', Ecorrec/eV,
335 . 'siesta: Emadel =', Emad/eV,328 . 'siesta: Emadel =', Emad/eV,
@@ -339,6 +332,18 @@
339 . 'siesta: Eharris =', (Eharrs+Ekinion)/eV,332 . 'siesta: Eharris =', (Eharrs+Ekinion)/eV,
340 . 'siesta: Etot =', (Etot+Ekinion)/eV,333 . 'siesta: Etot =', (Etot+Ekinion)/eV,
341 . 'siesta: FreeEng =', (FreeE+Ekinion)/eV334 . 'siesta: FreeEng =', (FreeE+Ekinion)/eV
335 if ( TSrun ) then
336 write(6,'(a,f17.6)')
337 . 'transiesta: E-dN =', NEGF_DE/eV,
338 . 'transiesta: Band Stru =', NEGF_Ebs/eV,
339 . 'transiesta: Kinetic =', NEGF_Ekin/eV,
340 . 'transiesta: Ion-elec =', (Enascf+NEGF_Enl+DUscf-
341 . Uscf-Uatm)/eV,
342 . 'transiesta: Eso =', NEGF_Eso/eV,
343 . 'transiesta: Eharris =', (NEGF_Eharrs+Ekinion)/eV,
344 . 'transiesta: Etot =', (NEGF_Etot+Ekinion)/eV,
345 . 'transiesta: FreeEng =', (NEGF_FreeE+Ekinion)/eV
346 end if
342 if (cml_p) then347 if (cml_p) then
343 call cmlStartPropertyList(mainXML,348 call cmlStartPropertyList(mainXML,
344 . title='Energy Decomposition')349 . title='Energy Decomposition')
@@ -372,9 +377,6 @@
372 call cmlAddProperty(xf=mainXML, value=DUext/eV, 377 call cmlAddProperty(xf=mainXML, value=DUext/eV,
373 . units='siestaUnits:eV', 378 . units='siestaUnits:eV',
374 . dictref='siesta:DUext', fmt='r6')379 . dictref='siesta:DUext', fmt='r6')
375 call cmlAddProperty(xf=mainXML, value=DE_NEGF/eV,
376 . units='siestaUnits:eV',
377 . dictref='siesta:Enegf', fmt='r6')
378 call cmlAddProperty(xf=mainXML, value=Exc/eV, 380 call cmlAddProperty(xf=mainXML, value=Exc/eV,
379 . units='siestaUnits:eV', 381 . units='siestaUnits:eV',
380 . dictref='siesta:Exc', fmt='r6')382 . dictref='siesta:Exc', fmt='r6')
@@ -402,6 +404,29 @@
402 call cmlAddProperty(xf=mainXML, value=(FreeE+Ekinion)/eV, 404 call cmlAddProperty(xf=mainXML, value=(FreeE+Ekinion)/eV,
403 . units='siestaUnits:eV', 405 . units='siestaUnits:eV',
404 . dictref='siesta:FreeEK', fmt='r6')406 . dictref='siesta:FreeEK', fmt='r6')
407
408 if ( TSrun ) then
409 ! NEGF energies
410 call cmlAddProperty(xf=mainXML, value=NEGF_DE/eV,
411 . units='siestaUnits:eV',
412 . dictref='siesta:EdN-GF', fmt='r6')
413 call cmlAddProperty(xf=mainXML, value=NEGF_Ebs/eV,
414 . units='siestaUnits:eV',
415 . dictref='siesta:Ebs-GF', fmt='r6')
416 call cmlAddProperty(xf=mainXML, value=NEGF_Ekin/eV,
417 . units='siestaUnits:eV',
418 . dictref='siesta:Ekin-GF', fmt='r6')
419 call cmlAddProperty(xf=mainXML,
420 . value=(NEGF_Eharrs+Ekinion)/eV,
421 . units='siestaUnits:eV',
422 . dictref='siesta:EharrsK-GF', fmt='r6')
423 call cmlAddProperty(xf=mainXML, value=(NEGF_Etot+Ekinion)/eV,
424 . units='siestaUnits:eV',
425 . dictref='siesta:EtotK-GF', fmt='r6')
426 call cmlAddProperty(xf=mainXML, value=(NEGF_FreeE+Ekinion)/eV,
427 . units='siestaUnits:eV',
428 . dictref='siesta:FreeEK-GF', fmt='r6')
429 end if
405 call cmlEndPropertyList(mainXML)430 call cmlEndPropertyList(mainXML)
406 endif431 endif
407 endif432 endif
@@ -414,6 +439,11 @@
414 call cmlAddProperty(xf=mainXML, value=Eharrs/eV, 439 call cmlAddProperty(xf=mainXML, value=Eharrs/eV,
415 . units="siestaUnits:eV", 440 . units="siestaUnits:eV",
416 . dictRef="siesta:Eharrs", fmt="r7")441 . dictRef="siesta:Eharrs", fmt="r7")
442 if ( TSrun ) then
443 call cmlAddProperty(xf=mainXML, value=NEGF_Eharrs/eV,
444 . units="siestaUnits:eV",
445 . dictRef="siesta:Eharrs-GF", fmt="r7")
446 end if
417 if ( .not. harrisfun ) then447 if ( .not. harrisfun ) then
418 ! store dDmax and dHmax448 ! store dDmax and dHmax
419 call cmlAddProperty(xf=mainXML, value=dDmax, 449 call cmlAddProperty(xf=mainXML, value=dDmax,
@@ -438,6 +468,14 @@
438 call cmlAddProperty(xf=mainXML, value=FreeE/eV, 468 call cmlAddProperty(xf=mainXML, value=FreeE/eV,
439 . units="siestaUnits:eV", 469 . units="siestaUnits:eV",
440 . dictRef="siesta:FreeE", fmt="r7")470 . dictRef="siesta:FreeE", fmt="r7")
471 if ( TSrun ) then
472 call cmlAddProperty(xf=mainXML, value=NEGF_Etot/eV,
473 . units="siestaUnits:eV",
474 . dictRef="siesta:Etot-GF", fmt="r7")
475 call cmlAddProperty(xf=mainXML, value=NEGF_FreeE/eV,
476 . units="siestaUnits:eV",
477 . dictRef="siesta:FreeE-GF", fmt="r7")
478 end if
441 if ( fixspin ) then479 if ( fixspin ) then
442 call cmlAddProperty(xf=mainXML, value=Efs(1)/eV, 480 call cmlAddProperty(xf=mainXML, value=Efs(1)/eV,
443 . units="siestaUnits:eV", 481 . units="siestaUnits:eV",
@@ -455,25 +493,49 @@
455 end if493 end if
456 endif494 endif
457495
458 if ( fixspin ) then496 if ( TSrun ) then
459 if ( (iscf == 1) .or. muldeb ) then497 if ( fixspin ) then
460 write(6,'(/,a12,3a16,4a10)')498 if ( (iscf == 1) .or. muldeb ) then
461 . 'iscf', 'Eharris(eV)', 'E_KS(eV)', 'FreeEng(eV)', 499 write(6,'(/,a12,3a16,4a10)')
462 . 'dDmax', 'Ef_up', 'Ef_dn(eV)','dHmax(eV)'500 . 'iscf', 'Eharris(eV)', 'E_KS(eV)', 'FreeEng(eV)',
463 end if501 . 'dDmax', 'Ef_up', 'Ef_dn(eV)','dHmax(eV)'
464 write(6,'(a8,i4,3f16.6,4f10.6)')502 end if
465 . trim(scf_name)//': ',iscf, Eharrs/eV, Etot/eV, FreeE/eV, 503 write(6,'(a8,i4,3f16.6,4f10.6)')
466 . dDmax, Efs(1:2)/eV, dHmax/eV504 . 'ts-scf: ',iscf, NEGF_Eharrs/eV, NEGF_Etot/eV,
467 else ! fixspin505 . NEGF_FreeE/eV,
468 if ( (iscf == 1) .or. muldeb ) then506 & dDmax, Efs(1:2)/eV, dHmax/eV
469 write(6,'(/,a12,3a16,3a10)')507 else ! fixspin
470 . 'iscf', 'Eharris(eV)', 'E_KS(eV)', 'FreeEng(eV)', 508 if ( (iscf == 1) .or. muldeb ) then
471 . 'dDmax','Ef(eV)','dHmax(eV)'509 write(6,'(/,a12,3a16,3a10)')
472 end if510 . 'iscf', 'Eharris(eV)', 'E_KS(eV)','FreeEng(eV)',
473 write(6,'(a8,i4,3f16.6,3f10.6)')511 . 'dDmax','Ef(eV)','dHmax(eV)'
474 . trim(scf_name)//': ',iscf, Eharrs/eV, Etot/eV, FreeE/eV, 512 end if
475 . dDmax, Ef /eV, dHmax/eV513 write(6,'(a8,i4,3f16.6,3f10.6)')
476 end if ! fixspin514 . 'ts-scf: ',iscf, NEGF_Eharrs/eV, NEGF_Etot/eV,
515 . NEGF_FreeE/eV,
516 & dDmax, Ef /eV, dHmax/eV
517 end if ! fixspin
518 else ! not NEGF
519 if ( fixspin ) then
520 if ( (iscf == 1) .or. muldeb ) then
521 write(6,'(/,a12,3a16,4a10)')
522 . 'iscf', 'Eharris(eV)', 'E_KS(eV)', 'FreeEng(eV)',
523 . 'dDmax', 'Ef_up', 'Ef_dn(eV)','dHmax(eV)'
524 end if
525 write(6,'(a8,i4,3f16.6,4f10.6)')
526 . 'scf: ',iscf, Eharrs/eV, Etot/eV,
527 & FreeE/eV,dDmax, Efs(1:2)/eV, dHmax/eV
528 else ! fixspin
529 if ( (iscf == 1) .or. muldeb ) then
530 write(6,'(/,a12,3a16,3a10)')
531 . 'iscf', 'Eharris(eV)', 'E_KS(eV)', 'FreeEng(eV)',
532 . 'dDmax','Ef(eV)','dHmax(eV)'
533 end if
534 write(6,'(a8,i4,3f16.6,3f10.6)')
535 . 'scf: ',iscf, Eharrs/eV, Etot/eV,
536 & FreeE/eV,dDmax, Ef /eV, dHmax/eV
537 end if ! fixspin
538 end if
477 539
478 elseif ((isolve==SOLVE_ORDERN) .or. (isolve==SOLVE_MINIM)) then540 elseif ((isolve==SOLVE_ORDERN) .or. (isolve==SOLVE_MINIM)) then
479 541
@@ -503,12 +565,21 @@
503 . 'siesta: ', 'Eldau =', Eldau/eV,565 . 'siesta: ', 'Eldau =', Eldau/eV,
504 . 'siesta: ', 'Eso =', Eso/eV,566 . 'siesta: ', 'Eso =', Eso/eV,
505 . 'siesta: ', 'Ext. field =', DUext/eV,567 . 'siesta: ', 'Ext. field =', DUext/eV,
506 . 'siesta: ', 'Enegf =', DE_NEGF/eV,
507 . 'siesta: ', 'Exch.-corr. =', Exc/eV,568 . 'siesta: ', 'Exch.-corr. =', Exc/eV,
508 . 'siesta: ', 'Ion-electron =', (Enascf+Enl+DUscf-Uscf-Uatm)/eV,569 . 'siesta: ', 'Ion-electron =', (Enascf+Enl+DUscf-Uscf-Uatm)/eV,
509 . 'siesta: ', 'Ion-ion =', (Ena+Uatm-Enaatm-Eions)/eV,570 . 'siesta: ', 'Ion-ion =', (Ena+Uatm-Enaatm-Eions)/eV,
510 . 'siesta: ', 'Ekinion =', Ekinion/eV,571 . 'siesta: ', 'Ekinion =', Ekinion/eV,
511 . 'siesta: ', 'Total =', (Etot+Ekinion)/eV572 . 'siesta: ', 'Total =', (Etot+Ekinion)/eV
573 if ( TSrun ) then
574 write(6,'(a,a15,f15.6)')
575 . 'transiesta: ', 'E-dN =', NEGF_DE/eV,
576 . 'transiesta: ','Band Stru =', NEGF_Ebs/eV,
577 . 'transiesta: ', 'Kinetic =', NEGF_Ekin/eV,
578 . 'transiesta: ', 'Ion-elec =', (Enascf+NEGF_Enl+DUscf-
579 . Uscf-Uatm)/eV,
580 . 'transiesta: ', 'Eso =', NEGF_Eso/eV,
581 . 'transiesta: ', 'Total =', (NEGF_Etot+Ekinion)/eV
582 end if
512 if ( fixspin ) then583 if ( fixspin ) then
513 write(6,'(a,a15,f15.6)')584 write(6,'(a,a15,f15.6)')
514 . 'siesta: ', 'Fermi_up =', Efs(1)/eV,585 . 'siesta: ', 'Fermi_up =', Efs(1)/eV,
@@ -537,9 +608,6 @@
537 call cmlAddProperty(xf=mainXML, value=DUext/eV, 608 call cmlAddProperty(xf=mainXML, value=DUext/eV,
538 . units='siestaUnits:eV', 609 . units='siestaUnits:eV',
539 . dictref='siesta:DUext', fmt='r7')610 . dictref='siesta:DUext', fmt='r7')
540 call cmlAddProperty(xf=mainXML, value=DE_NEGF/eV,
541 . units='siestaUnits:eV',
542 . dictref='siesta:Enegf', fmt='r7')
543 call cmlAddProperty(xf=mainXML, value=Exc/eV, 611 call cmlAddProperty(xf=mainXML, value=Exc/eV,
544 . units='siestaUnits:eV', 612 . units='siestaUnits:eV',
545 . dictref='siesta:Exc', fmt='r7')613 . dictref='siesta:Exc', fmt='r7')
@@ -557,6 +625,26 @@
557 call cmlAddProperty(xf=mainXML, value=(Etot+Ekinion)/eV,625 call cmlAddProperty(xf=mainXML, value=(Etot+Ekinion)/eV,
558 . units='siestaUnits:eV', 626 . units='siestaUnits:eV',
559 . dictref='siesta:Etot', fmt='r7')627 . dictref='siesta:Etot', fmt='r7')
628
629 if ( TSrun ) then
630 ! NEGF energies
631 call cmlAddProperty(xf=mainXML, value=NEGF_DE/eV,
632 . units='siestaUnits:eV',
633 . dictref='siesta:EdN-GF', fmt='r7')
634 call cmlAddProperty(xf=mainXML, value=NEGF_Ebs/eV,
635 . units='siestaUnits:eV',
636 . dictref='siesta:Ebs-GF', fmt='r7')
637 call cmlAddProperty(xf=mainXML, value=NEGF_Ekin/eV,
638 . units='siestaUnits:eV',
639 . dictref='siesta:Ekin-GF', fmt='r7')
640 call cmlAddProperty(xf=mainXML,
641 . value=(Enascf+NEGF_Enl+DUscf-Uscf-Uatm)/eV,
642 . units='siestaUnits:eV',
643 . dictref='siesta:I-e-GF', fmt='r7')
644 call cmlAddProperty(xf=mainXML, value=(NEGF_Etot+Ekinion)/eV,
645 . units='siestaUnits:eV',
646 . dictref='siesta:Etot-GF', fmt='r7')
647 end if
560 call cmlEndPropertyList(mainXML)648 call cmlEndPropertyList(mainXML)
561 endif !cml_p649 endif !cml_p
562 endif !final650 endif !final
563651
=== modified file 'Src/writewave.F'
--- Src/writewave.F 2018-10-17 13:04:40 +0000
+++ Src/writewave.F 2019-08-18 23:02:58 +0000
@@ -40,15 +40,23 @@
40 USE alloc, only: re_alloc40 USE alloc, only: re_alloc
41 USE sys, only: die41 USE sys, only: die
42 USE atomlist, only: no_u42 USE atomlist, only: no_u
43 USE m_spin, only: spin
4344
44 implicit none45 implicit none
4546
47 integer :: max_n_states
48
46 ! Find number of k-points for wavefunction printout49 ! Find number of k-points for wavefunction printout
4750
48 nullify(wfk)51 nullify(wfk)
4952
50 nwk = 053 nwk = 0
51 call initwave( no_u, nwk, wfk )54 if ( spin%Grid == 4 ) then
55 max_n_states = 2 * no_u
56 else
57 max_n_states = no_u
58 end if
59 call initwave( max_n_states, nwk, wfk )
5260
53 if (nwk .eq. 0) then61 if (nwk .eq. 0) then
54 gamma_wavefunctions = .true.62 gamma_wavefunctions = .true.
@@ -96,7 +104,7 @@
96 call die("WFS.BandMin < 1")104 call die("WFS.BandMin < 1")
97 endif105 endif
98 if (wfs_band_max > norb) then106 if (wfs_band_max > norb) then
99 call die("WFS.BandMax > number of orbitals")107 call die("WFS.BandMax > maximum number of states")
100 endif108 endif
101 if (wfs_band_max < wfs_band_min) then109 if (wfs_band_max < wfs_band_min) then
102 call message("WARNING","WFS.BandMax < WFS.BandMin." //110 call message("WARNING","WFS.BandMax < WFS.BandMin." //
@@ -126,7 +134,7 @@
126C Based on initband routine by J.Soler134C Based on initband routine by J.Soler
127C Written by P. Ordejon, June 2003135C Written by P. Ordejon, June 2003
128C **************************** INPUT **********************************136C **************************** INPUT **********************************
129C integer norb : Number of orbitals137C integer norb : Number of orbitals (actually max number of bands)
130C *************************** OUTPUT **********************************138C *************************** OUTPUT **********************************
131C integer nk : Number k points to compute wavefunctions139C integer nk : Number k points to compute wavefunctions
132C real*8 kpoint(3,maxk) : k point vectors140C real*8 kpoint(3,maxk) : k point vectors
@@ -383,7 +391,7 @@
383391
384 end subroutine initwave392 end subroutine initwave
385393
386 subroutine wwave( no, nspin, maxspn, maxo, maxuo, maxnh, 394 subroutine wwave( no, spin, maxo, maxuo, maxnh,
387 . maxk,395 . maxk,
388 . numh, listhptr, listh, H, S, ef, xij, indxuo,396 . numh, listhptr, listh, H, S, ef, xij, indxuo,
389 . gamma, nk, kpoint, nuotot, occtol)397 . gamma, nk, kpoint, nuotot, occtol)
@@ -391,10 +399,10 @@
391C Finds wavefunctions at selected k-points.399C Finds wavefunctions at selected k-points.
392C Written by P. Ordejon, June 2003400C Written by P. Ordejon, June 2003
393C from routine 'bands' written by J.M.Soler401C from routine 'bands' written by J.M.Soler
402C Changed to use tSpin, N. Papior, August 2019
394C **************************** INPUT **********************************403C **************************** INPUT **********************************
395C integer no : Number of basis orbitals404C integer no : Number of basis orbitals
396C integer nspin = h_spin_dim : Number of spin components of H, D405C tSpin spin : Contains spin information
397C integer maxspn = spinor_dim : Second dimension of ek
398C integer maxo : First dimension of ek406C integer maxo : First dimension of ek
399C integer maxuo : Second dimension of H and S407C integer maxuo : Second dimension of H and S
400C integer maxnh : Maximum number of orbitals interacting 408C integer maxnh : Maximum number of orbitals interacting
@@ -406,7 +414,7 @@
406C hamiltonian matrix414C hamiltonian matrix
407C integer listh(maxlh) : Nonzero hamiltonian-matrix element 415C integer listh(maxlh) : Nonzero hamiltonian-matrix element
408C column indexes for each matrix row416C column indexes for each matrix row
409C real*8 H(maxnh,nspin) : Hamiltonian in sparse form417C real*8 H(maxnh,spin%H) : Hamiltonian in sparse form
410C real*8 S(maxnh) : Overlap in sparse form418C real*8 S(maxnh) : Overlap in sparse form
411C real*8 ef : Fermi energy419C real*8 ef : Fermi energy
412C real*8 xij(3,maxnh) : Vectors between orbital centers (sparse)420C real*8 xij(3,maxnh) : Vectors between orbital centers (sparse)
@@ -438,7 +446,7 @@
438 use atmfuncs, only : symfio, cnfigfio, labelfis, nofis446 use atmfuncs, only : symfio, cnfigfio, labelfis, nofis
439 use atomlist, only : iaorb, iphorb447 use atomlist, only : iaorb, iphorb
440 use siesta_geom, only : isa448 use siesta_geom, only : isa
441 use m_spin, only : NoMagn, SPpol, NonCol, SpOrb449 use t_spin, only: tSpin
442 use units, only : eV450 use units, only : eV
443451
444#ifdef MPI452#ifdef MPI
@@ -449,12 +457,12 @@
449457
450 implicit none458 implicit none
451459
460 type(tSpin), intent(in) :: spin
452 logical, intent(in) :: Gamma461 logical, intent(in) :: Gamma
453 integer maxk, maxnh, maxo, maxuo, nk, no, 462 integer maxk, maxnh, maxo, maxuo, nk, no,
454 . h_spin_dim, spinor_dim, nspin, maxspn,
455 . nuotot, indxuo(no), listh(maxnh), numh(*), 463 . nuotot, indxuo(no), listh(maxnh), numh(*),
456 . listhptr(*)464 . listhptr(*)
457 real(dp) ef, H(:,:), kpoint(3,maxk), 465 real(dp) ef, H(maxnh,spin%H), kpoint(3,maxk),
458 . S(maxnh), xij(3,maxnh), occtol466 . S(maxnh), xij(3,maxnh), occtol
459467
460 external io_assign, io_close, memory468 external io_assign, io_close, memory
@@ -480,9 +488,7 @@
480 data Dnew, Enew, e1, e2, qk, qtot, temp, wk /8*0.d0/488 data Dnew, Enew, e1, e2, qk, qtot, temp, wk /8*0.d0/
481489
482 logical :: SaveParallelOverK490 logical :: SaveParallelOverK
483491
484 h_spin_dim=size(H,dim=2)
485
486492
487C Get local number of orbitals493C Get local number of orbitals
488#ifdef MPI494#ifdef MPI
@@ -505,26 +511,17 @@
505 endif511 endif
506512
507C Check spin513C Check spin
508 if (h_spin_dim .gt. 2) then
509 if (Node.eq.0) then
510 write(6,'(/,a,/,a)')
511 . 'writewave: WARNING: wavefunctions printed is only '
512 write(6,'(/,a,/,a)')
513 . ' implemented for nspin = 1 or 2'
514 endif
515 goto 999
516 endif
517514
518C Allocate local arrays - only aux is relevant here515C Allocate local arrays - only aux is relevant here
519 if ( h_spin_dim >= 4 ) then516 if ( spin%Grid == 4 ) then
520 nhs = 2 * (2*nuotot) * (2*nuo)517 nhs = 2 * (2*nuotot) * (2*nuo)
521 else518 else
522 nhs = 2 * nuotot * nuo519 nhs = 2 * nuotot * nuo
523 endif520 endif
524 call allocDenseMatrix(nhs, nhs, nhs) 521 call allocDenseMatrix(nhs, nhs, nhs)
525522
526 allocate(ek(nuotot,maxspn,nk))523 allocate(ek(nuotot,spin%spinor,nk))
527 call memory('A','D',maxspn*nk*nuotot,'writewave')524 call memory('A','D',nuotot*spin%spinor*nk,'writewave')
528 naux = 2*nuotot*5525 naux = 2*nuotot*5
529 allocate(aux(naux))526 allocate(aux(naux))
530 call memory('A','D',naux,'writewave')527 call memory('A','D',naux,'writewave')
@@ -543,12 +540,12 @@
543 write(6,'(a)') 'writewave: Wave Functions Coefficients'540 write(6,'(a)') 'writewave: Wave Functions Coefficients'
544 write(6,*)541 write(6,*)
545 write(6,'(a26,2x,i6)') 'Number of k-points = ', nk542 write(6,'(a26,2x,i6)') 'Number of k-points = ', nk
546 write(6,'(a26,2x,i6)') 'Number of Spins = ', maxspn543 write(6,'(a26,2x,i6)') 'Number of Spins = ', spin%Grid
547 write(6,'(a26,2x,i6)') 'Number of basis orbs = ',nuotot544 write(6,'(a26,2x,i6)') 'Number of basis orbs = ',nuotot
548 write(6,*)545 write(6,*)
549 endif546 endif
550 write(iu) nk, gamma547 write(iu) nk, gamma
551 write(iu) maxspn548 write(iu) spin%Grid ! This will be 1, 2, or 4
552 write(iu) nuotot549 write(iu) nuotot
553 write(iu) (iaorb(j),labelfis(isa(iaorb(j))),550 write(iu) (iaorb(j),labelfis(isa(iaorb(j))),
554 . iphorb(j), cnfigfio(isa(iaorb(j)),iphorb(j)),551 . iphorb(j), cnfigfio(isa(iaorb(j)),iphorb(j)),
@@ -566,9 +563,9 @@
566563
567C Call appropriate diagonalization routine564C Call appropriate diagonalization routine
568565
569 if (NoMagn .or. SPpol) then566 if ( spin%Grid <= 2 ) then
570 if (gamma) then567 if (gamma) then
571 call diagg( h_spin_dim, nuo, maxuo, maxnh, maxnh, 568 call diagg( spin%H, nuo, maxuo, maxnh, maxnh,
572 . maxo, numh, listhptr, listh, numh, listhptr, 569 . maxo, numh, listhptr, listh, numh, listhptr,
573 . listh, H, S, getD, getPSI,570 . listh, H, S, getD, getPSI,
574 . fixspin, qtot, qs, temp,571 . fixspin, qtot, qs, temp,
@@ -588,7 +585,7 @@
588 call diag_init()585 call diag_init()
589 end if586 end if
590587
591 call diagk( h_spin_dim, nuo, no, maxspn, maxnh, maxnh,588 call diagk( spin%H, nuo, no, spin%spinor, maxnh, maxnh,
592 . maxo, numh, listhptr, listh, numh, listhptr, 589 . maxo, numh, listhptr, listh, numh, listhptr,
593 . listh, H, S, getD, getPSI,590 . listh, H, S, getD, getPSI,
594 . fixspin, qtot, qs, temp,591 . fixspin, qtot, qs, temp,
@@ -602,16 +599,16 @@
602 599
603 endif600 endif
604601
605 elseif (NonCol) then602 elseif ( spin%NCol) then
606 if (gamma) then603 if (gamma) then
607 call diag2g( nuo, no, maxuo, maxnh, maxnh, maxo, numh,604 call diag2g( nuo, no, maxnh, maxnh, maxo, numh,
608 . listhptr, listh, numh, listhptr, listh,605 . listhptr, listh, numh, listhptr, listh,
609 . H, S, getD, getPSI, qtot, temp, e1, e2, ek, qk,606 . H, S, getD, getPSI, qtot, temp, e1, e2, ek, qk,
610 . Dnew, Enew, ef, Entropy,607 . Dnew, Enew, ef, Entropy,
611 . Haux, Saux, psi, aux,608 . Haux, Saux, psi, aux,
612 . nuotot, occtol, 1, nuotot )609 . nuotot, occtol, 1, nuotot )
613 else610 else
614 call diag2k( nuo, no, maxuo, maxnh, maxnh, maxo, numh,611 call diag2k( nuo, no, maxnh, maxnh, maxo, numh,
615 . listhptr, listh, numh, listhptr, listh,612 . listhptr, listh, numh, listhptr, listh,
616 . H, S, getD, getPSI, qtot, temp, e1, e2, xij,613 . H, S, getD, getPSI, qtot, temp, e1, e2, xij,
617 . indxuo, nk, kpoint, wk, ek, qk, Dnew,614 . indxuo, nk, kpoint, wk, ek, qk, Dnew,
@@ -619,18 +616,18 @@
619 . Haux, Saux, psi, Haux, Saux, aux,616 . Haux, Saux, psi, Haux, Saux, aux,
620 . nuotot, occtol, 1, nuotot )617 . nuotot, occtol, 1, nuotot )
621 endif618 endif
622 elseif (SpOrb) then619 elseif ( spin%SO ) then
623 if (gamma) then620 if (gamma) then
624 call diag3g( nuo, no, maxnh, maxnh, maxo, numh,621 call diag3g( nuo, no, maxnh, maxnh, maxo, numh,
625 . listhptr, listh, numh, listhptr, listh,622 . listhptr, listh, numh, listhptr, listh,
626 . H, S, getD, qtot, temp, e1, e2, ek, qk,623 . H, S, getD, getPSI, qtot, temp, e1, e2, ek, qk,
627 . Dnew, Enew, ef, Entropy,624 . Dnew, Enew, ef, Entropy,
628 . Haux, Saux, psi, aux,625 . Haux, Saux, psi, aux,
629 . nuotot, occtol, 1, nuotot )626 . nuotot, occtol, 1, nuotot )
630 else627 else
631 call diag3k( nuo, no, maxuo, maxnh, maxnh, maxo, numh,628 call diag3k( nuo, no, maxnh, maxnh, maxo, numh,
632 . listhptr, listh, numh, listhptr, listh,629 . listhptr, listh, numh, listhptr, listh,
633 . H, S, getD, qtot, temp, e1, e2, xij,630 . H, S, getD, getPsi, qtot, temp, e1, e2, xij,
634 . indxuo, nk, kpoint, wk, ek, qk, Dnew,631 . indxuo, nk, kpoint, wk, ek, qk, Dnew,
635 . Enew, ef, Entropy,632 . Enew, ef, Entropy,
636 . Haux, Saux, psi, Haux, Saux, aux,633 . Haux, Saux, psi, Haux, Saux, aux,
@@ -653,15 +650,16 @@
653 end subroutine wwave650 end subroutine wwave
654651
655652
656 subroutine writew(nuotot,nuo,ik,k,ispin,eo,psi,gamma)653 subroutine writew(nuotot,nuo,ik,k,ispin,eo,psi,
654 $ gamma,non_coll,blocksize)
657655
658 use precision656 use precision
659 use sys657 use sys
660 use parallel, only : Node, Nodes658 use parallel, only : Node, Nodes
659 use parallel, only : Module_Blocksize=>BlockSize
661 use parallelsubs, only : GlobalToLocalOrb, WhichNodeOrb660 use parallelsubs, only : GlobalToLocalOrb, WhichNodeOrb
662 use units, only : eV661 use units, only : eV
663 use kpoint_grid, only : kweight662 use kpoint_grid, only : kweight
664
665#ifdef MPI663#ifdef MPI
666 use mpi_siesta664 use mpi_siesta
667#endif665#endif
@@ -673,16 +671,17 @@
673#endif671#endif
674672
675 integer, intent(in) :: nuotot, nuo, ispin, ik673 integer, intent(in) :: nuotot, nuo, ispin, ik
676 real(dp), intent(in) :: eo(*), psi(*), k(3)674 logical, intent(in) :: non_coll, gamma
675 real(dp), intent(in) :: eo(*), k(3)
676 real(dp), intent(in) :: psi(:)
677 integer, intent(in) :: blocksize
677678
678 logical gamma
679679
680C Internal variables .............................................680C Internal variables .............................................
681 integer BNode, iie, iw, indwf, j, ind, iu681 integer BNode, iie, iw, indwf, j, ind, iu
682682 integer :: blocksize_saved
683 integer number_of_wfns683 integer number_of_wfns
684 integer, allocatable :: ind_wfn(:)684 integer, allocatable :: ind_wfn(:)
685
686 real(dp) :: kpoint_weight685 real(dp) :: kpoint_weight
687 real(SP), dimension(:,:), allocatable :: aux !! NOTE SP686 real(SP), dimension(:,:), allocatable :: aux !! NOTE SP
688687
@@ -692,12 +691,17 @@
692691
693C Allocate auxiliary arrays692C Allocate auxiliary arrays
694693
695 if (gamma) then694 if (non_coll) then
696 allocate(aux(1,nuotot))695 allocate(aux(4,nuotot))
697 call memory('A','D',nuotot,'writewave')696 call memory('A','D',4*nuotot,'writewave')
698 else697 else
699 allocate(aux(2,nuotot))698 if (gamma) then
700 call memory('A','D',2*nuotot,'writewave')699 allocate(aux(1,nuotot))
700 call memory('A','D',nuotot,'writewave')
701 else
702 allocate(aux(2,nuotot))
703 call memory('A','D',2*nuotot,'writewave')
704 endif
701 endif705 endif
702706
703C Find file name, and open for Node 0707C Find file name, and open for Node 0
@@ -733,7 +737,11 @@
733 if (wwf) then737 if (wwf) then
734 write(6,*)738 write(6,*)
735 write(6,'(a22,2x,i6,2x,3f10.6)') 'k-point = ',ik, k(1:3)739 write(6,'(a22,2x,i6,2x,3f10.6)') 'k-point = ',ik, k(1:3)
736 write(6,'(a22,2x,i6)') 'Spin component = ',ispin740 if (non_coll) then
741 write(6,'(a22,2x,i6)') 'Spin component (non-collinear)= ',0
742 else
743 write(6,'(a22,2x,i6)') 'Spin component = ',ispin
744 endif
737 write(6,'(a22,2x,i6)') 'Num. wavefunctions = ',nwflist(ik)745 write(6,'(a22,2x,i6)') 'Num. wavefunctions = ',nwflist(ik)
738 write(6,'(a)') 'Use readwfsx utility to print '746 write(6,'(a)') 'Use readwfsx utility to print '
739 $ // "wavefunction coefficients from WFSX file"747 $ // "wavefunction coefficients from WFSX file"
@@ -748,14 +756,26 @@
748 write(iu) nwflist(ik)756 write(iu) nwflist(ik)
749 endif757 endif
750758
751C Loop over wavefunctions that should be printed759 ! Loop over wavefunctions that should be stored
752760
761 ! The effective blocksize to use is passed as an argument.
762 ! Module_blocksize is the variable in the 'parallel' module that
763 ! holds the value that all the helper functions (WhichNodeOrb,
764 ! GetNodeOrb, etc) see. Hence, we must temporarily set
765 ! Module_blocksize to the passed blocksize.
766
767 ! Examples: non-collinear calculations need a wf blocksize double
768 ! the 'orbital' one
769
770 blocksize_saved = Module_blocksize
771 Module_blocksize = blocksize
772
753 if (Node .eq. 0 .and. debug) then773 if (Node .eq. 0 .and. debug) then
754 print *, " -*- Will print ", nwflist(ik), " wfns."774 print *, " -*- Will print ", nwflist(ik), " wfns."
755 print *, " -*- ", iwf(ik,1:nwflist(ik))775 print *, " -*- ", iwf(ik,1:nwflist(ik))
756 endif776 endif
757 do iw = 1,nwflist(ik)777 do iw = 1,nwflist(ik)
758 indwf = iwf(ik,iw)778 indwf = iwf(ik,iw)
759779
760 ! Determine which node handles this wavefunction780 ! Determine which node handles this wavefunction
761 ! Note that the distribution is block cyclic,781 ! Note that the distribution is block cyclic,
@@ -770,30 +790,44 @@
770790
771 if (Node.eq.BNode) then791 if (Node.eq.BNode) then
772792
773C Determine the index of the wavefunction in the local node793 ! Determine the index of the wavefunction in the local node
774
775 call GlobalToLocalOrb( indwf, BNode, Nodes, iie)794 call GlobalToLocalOrb( indwf, BNode, Nodes, iie)
776795
777C Save wavefunction in aux array796 ! Save wavefunction in aux array
778797
779C psi has different structure in diagk and diagg, so the indexing798 ! Despite being passed as a one-dimensional array, psi has
780C must be handled differently799 ! different underlying structures for different cases, so the
781800 ! indexing must be handled differently
782 if (gamma) then801
783 do j = 1,nuotot802 if (.not. non_coll) then
784 ind = j + (iie-1)*nuotot 803 if (gamma) then
785 aux(1,j) = real(psi(ind),kind=sp)804 ! Real functions
786 enddo805 do j = 1,nuotot
787 else806 ind = j + (iie-1)*nuotot
788 do j = 1,nuotot807 aux(1,j) = real(psi(ind),kind=sp)
789 ind = 1+(j-1)*2+(iie-1)*2*nuotot808 enddo
790 aux(1,j) = real(psi(ind),kind=sp)809 else
791 aux(2,j) = real(psi(ind+1),kind=sp)810 ! Complex functions: two reals per orbital coefficient
792 enddo811 do j = 1,nuotot
793 endif812 ind = 1+(j-1)*2+(iie-1)*2*nuotot
794813 aux(1,j) = real(psi(ind),kind=sp)
795 endif814 aux(2,j) = real(psi(ind+1),kind=sp)
796815 enddo
816 endif
817 else ! non-collinear case, including SOC
818 ! Each 'orbital' coefficient is actually four reals: complex up/down
819 ! (spinor)
820 do j = 1,nuotot
821 ind = 1 + (j-1)*4 + (iie-1)*4*nuotot
822 aux(1,j) = real(psi(ind),kind=sp)
823 aux(2,j) = real(psi(ind+1),kind=sp)
824 aux(3,j) = real(psi(ind+2),kind=sp)
825 aux(4,j) = real(psi(ind+3),kind=sp)
826 enddo
827 endif ! non-coll or not
828
829 endif ! Node == BNode
830
797#ifdef MPI831#ifdef MPI
798C Pass the wf to the master node832C Pass the wf to the master node
799 if (BNode.ne.0) then833 if (BNode.ne.0) then
@@ -815,19 +849,22 @@
815C eigenvector is now stored in aux in Node 0, and can be printed849C eigenvector is now stored in aux in Node 0, and can be printed
816850
817 if (Node .eq. 0) then851 if (Node .eq. 0) then
818 write(iu) indwf852 write(iu) indwf
819 write(iu) eo(indwf)/eV853 write(iu) eo(indwf)/eV
820 write(iu) (aux(1:,j), j=1,nuotot)854 write(iu) (aux(1:,j), j=1,nuotot)
821 endif855 endif
822856
823 enddo857 enddo
824858
825C Close output file859C Close output file
826860
827 if (Node .eq. 0) then861 if (Node .eq. 0) then
828 call io_close(iu)862 call io_close(iu)
829 endif863 endif
830864
865 ! Restore blocksize value in module
866 Module_blocksize = blocksize_saved
867
831C Deallocate auxiliary arrays868C Deallocate auxiliary arrays
832869
833 call memory('D','D',size(aux),'writewave')870 call memory('D','D',size(aux),'writewave')
834871
=== added file 'Tests/Pseudos/Bi.psf'
--- Tests/Pseudos/Bi.psf 1970-01-01 00:00:00 +0000
+++ Tests/Pseudos/Bi.psf 2019-08-18 23:02:58 +0000
@@ -0,0 +1,3061 @@
1 Bi pb rel pcec
2 ATM3.3 12-FEB-13 Troullier-Martins
3 6s 2.00r r= 1.98/6p 3.00r r= 1.98/5d10.00r r= 1.48/5f 0.00r r= 2.47/
4 4 3 1216 0.298644840562E-04 0.125000000000E-01 15.0000000000
5 Radial grid follows
6 0.375648965487E-06 0.756023013283E-06 0.114118157761E-05 0.153118484027E-05
7 0.192609374007E-05 0.232596998233E-05 0.273087604852E-05 0.314087520605E-05
8 0.355603151811E-05 0.397640985372E-05 0.440207589786E-05 0.483309616171E-05
9 0.526953799306E-05 0.571146958683E-05 0.615895999574E-05 0.661207914108E-05
10 0.707089782362E-05 0.753548773473E-05 0.800592146753E-05 0.848227252823E-05
11 0.896461534767E-05 0.945302529289E-05 0.994757867894E-05 0.104483527808E-04
12 0.109554258454E-04 0.114688771040E-04 0.119887867844E-04 0.125152361234E-04
13 0.130483073800E-04 0.135880838476E-04 0.141346498673E-04 0.146880908412E-04
14 0.152484932455E-04 0.158159446444E-04 0.163905337031E-04 0.169723502025E-04
15 0.175614850526E-04 0.181580303068E-04 0.187620791765E-04 0.193737260458E-04
16 0.199930664855E-04 0.206201972689E-04 0.212552163865E-04 0.218982230613E-04
17 0.225493177644E-04 0.232086022306E-04 0.238761794746E-04 0.245521538066E-04
18 0.252366308489E-04 0.259297175526E-04 0.266315222138E-04 0.273421544909E-04
19 0.280617254217E-04 0.287903474405E-04 0.295281343961E-04 0.302752015692E-04
20 0.310316656905E-04 0.317976449591E-04 0.325732590608E-04 0.333586291869E-04
21 0.341538780531E-04 0.349591299186E-04 0.357745106057E-04 0.366001475192E-04
22 0.374361696666E-04 0.382827076782E-04 0.391398938270E-04 0.400078620503E-04
23 0.408867479698E-04 0.417766889133E-04 0.426778239358E-04 0.435902938416E-04
24 0.445142412058E-04 0.454498103971E-04 0.463971476002E-04 0.473564008384E-04
25 0.483277199970E-04 0.493112568465E-04 0.503071650667E-04 0.513156002701E-04
26 0.523367200269E-04 0.533706838890E-04 0.544176534155E-04 0.554777921974E-04
27 0.565512658836E-04 0.576382422066E-04 0.587388910086E-04 0.598533842682E-04
28 0.609818961272E-04 0.621246029180E-04 0.632816831908E-04 0.644533177417E-04
29 0.656396896410E-04 0.668409842618E-04 0.680573893087E-04 0.692890948476E-04
30 0.705362933350E-04 0.717991796480E-04 0.730779511154E-04 0.743728075476E-04
31 0.756839512688E-04 0.770115871477E-04 0.783559226302E-04 0.797171677714E-04
32 0.810955352687E-04 0.824912404947E-04 0.839045015313E-04 0.853355392033E-04
33 0.867845771134E-04 0.882518416766E-04 0.897375621560E-04 0.912419706984E-04
34 0.927653023708E-04 0.943077951968E-04 0.958696901941E-04 0.974512314119E-04
35 0.990526659693E-04 0.100674244094E-03 0.102316219160E-03 0.103978847730E-03
36 0.105662389593E-03 0.107367107805E-03 0.109093268733E-03 0.110841142093E-03
37 0.112611000993E-03 0.114403121978E-03 0.116217785069E-03 0.118055273812E-03
38 0.119915875318E-03 0.121799880310E-03 0.123707583168E-03 0.125639281974E-03
39 0.127595278559E-03 0.129575878553E-03 0.131581391427E-03 0.133612130549E-03
40 0.135668413223E-03 0.137750560750E-03 0.139858898469E-03 0.141993755811E-03
41 0.144155466353E-03 0.146344367867E-03 0.148560802372E-03 0.150805116190E-03
42 0.153077660002E-03 0.155378788896E-03 0.157708862428E-03 0.160068244677E-03
43 0.162457304301E-03 0.164876414596E-03 0.167325953553E-03 0.169806303917E-03
44 0.172317853247E-03 0.174860993980E-03 0.177436123484E-03 0.180043644130E-03
45 0.182683963349E-03 0.185357493695E-03 0.188064652912E-03 0.190805864001E-03
46 0.193581555280E-03 0.196392160458E-03 0.199238118697E-03 0.202119874683E-03
47 0.205037878698E-03 0.207992586685E-03 0.210984460323E-03 0.214013967098E-03
48 0.217081580378E-03 0.220187779482E-03 0.223333049762E-03 0.226517882671E-03
49 0.229742775847E-03 0.233008233185E-03 0.236314764920E-03 0.239662887705E-03
50 0.243053124689E-03 0.246486005606E-03 0.249962066848E-03 0.253481851558E-03
51 0.257045909710E-03 0.260654798195E-03 0.264309080908E-03 0.268009328839E-03
52 0.271756120160E-03 0.275550040314E-03 0.279391682109E-03 0.283281645808E-03
53 0.287220539228E-03 0.291208977828E-03 0.295247584809E-03 0.299336991212E-03
54 0.303477836016E-03 0.307670766236E-03 0.311916437025E-03 0.316215511778E-03
55 0.320568662235E-03 0.324976568584E-03 0.329439919569E-03 0.333959412598E-03
56 0.338535753852E-03 0.343169658392E-03 0.347861850275E-03 0.352613062667E-03
57 0.357424037954E-03 0.362295527861E-03 0.367228293567E-03 0.372223105827E-03
58 0.377280745092E-03 0.382402001627E-03 0.387587675638E-03 0.392838577400E-03
59 0.398155527374E-03 0.403539356347E-03 0.408990905551E-03 0.414511026802E-03
60 0.420100582631E-03 0.425760446418E-03 0.431491502526E-03 0.437294646446E-03
61 0.443170784931E-03 0.449120836139E-03 0.455145729778E-03 0.461246407249E-03
62 0.467423821797E-03 0.473678938654E-03 0.480012735195E-03 0.486426201089E-03
63 0.492920338453E-03 0.499496162009E-03 0.506154699243E-03 0.512896990565E-03
64 0.519724089472E-03 0.526637062711E-03 0.533636990449E-03 0.540724966439E-03
65 0.547902098192E-03 0.555169507149E-03 0.562528328857E-03 0.569979713147E-03
66 0.577524824313E-03 0.585164841295E-03 0.592900957860E-03 0.600734382792E-03
67 0.608666340081E-03 0.616698069109E-03 0.624830824852E-03 0.633065878069E-03
68 0.641404515504E-03 0.649848040086E-03 0.658397771132E-03 0.667055044556E-03
69 0.675821213075E-03 0.684697646419E-03 0.693685731550E-03 0.702786872874E-03
70 0.712002492463E-03 0.721334030277E-03 0.730782944387E-03 0.740350711205E-03
71 0.750038825715E-03 0.759848801703E-03 0.769782171999E-03 0.779840488712E-03
72 0.790025323474E-03 0.800338267687E-03 0.810780932768E-03 0.821354950407E-03
73 0.832061972814E-03 0.842903672983E-03 0.853881744952E-03 0.864997904068E-03
74 0.876253887253E-03 0.887651453276E-03 0.899192383032E-03 0.910878479813E-03
75 0.922711569596E-03 0.934693501326E-03 0.946826147203E-03 0.959111402979E-03
76 0.971551188249E-03 0.984147446755E-03 0.996902146688E-03 0.100981728100E-02
77 0.102289486770E-02 0.103613695019E-02 0.104954559757E-02 0.106312290497E-02
78 0.107687099388E-02 0.109079201246E-02 0.110488813589E-02 0.111916156673E-02
79 0.113361453523E-02 0.114824929969E-02 0.116306814683E-02 0.117807339212E-02
80 0.119326738016E-02 0.120865248504E-02 0.122423111072E-02 0.124000569139E-02
81 0.125597869185E-02 0.127215260793E-02 0.128852996683E-02 0.130511332754E-02
82 0.132190528125E-02 0.133890845174E-02 0.135612549578E-02 0.137355910358E-02
83 0.139121199916E-02 0.140908694084E-02 0.142718672161E-02 0.144551416959E-02
84 0.146407214849E-02 0.148286355803E-02 0.150189133440E-02 0.152115845074E-02
85 0.154066791756E-02 0.156042278327E-02 0.158042613459E-02 0.160068109711E-02
86 0.162119083569E-02 0.164195855502E-02 0.166298750010E-02 0.168428095675E-02
87 0.170584225211E-02 0.172767475518E-02 0.174978187733E-02 0.177216707284E-02
88 0.179483383946E-02 0.181778571889E-02 0.184102629744E-02 0.186455920647E-02
89 0.188838812306E-02 0.191251677052E-02 0.193694891900E-02 0.196168838608E-02
90 0.198673903735E-02 0.201210478702E-02 0.203778959855E-02 0.206379748523E-02
91 0.209013251085E-02 0.211679879032E-02 0.214380049029E-02 0.217114182983E-02
92 0.219882708109E-02 0.222686056994E-02 0.225524667668E-02 0.228398983668E-02
93 0.231309454112E-02 0.234256533768E-02 0.237240683123E-02 0.240262368455E-02
94 0.243322061911E-02 0.246420241572E-02 0.249557391535E-02 0.252734001988E-02
95 0.255950569281E-02 0.259207596010E-02 0.262505591092E-02 0.265845069845E-02
96 0.269226554070E-02 0.272650572131E-02 0.276117659036E-02 0.279628356527E-02
97 0.283183213155E-02 0.286782784376E-02 0.290427632628E-02 0.294118327428E-02
98 0.297855445453E-02 0.301639570636E-02 0.305471294255E-02 0.309351215023E-02
99 0.313279939187E-02 0.317258080617E-02 0.321286260907E-02 0.325365109467E-02
100 0.329495263626E-02 0.333677368729E-02 0.337912078238E-02 0.342200053836E-02
101 0.346541965526E-02 0.350938491743E-02 0.355390319452E-02 0.359898144260E-02
102 0.364462670523E-02 0.369084611459E-02 0.373764689256E-02 0.378503635184E-02
103 0.383302189713E-02 0.388161102629E-02 0.393081133144E-02 0.398063050026E-02
104 0.403107631707E-02 0.408215666415E-02 0.413387952290E-02 0.418625297511E-02
105 0.423928520426E-02 0.429298449674E-02 0.434735924316E-02 0.440241793970E-02
106 0.445816918938E-02 0.451462170345E-02 0.457178430274E-02 0.462966591901E-02
107 0.468827559639E-02 0.474762249275E-02 0.480771588117E-02 0.486856515137E-02
108 0.493017981117E-02 0.499256948797E-02 0.505574393031E-02 0.511971300930E-02
109 0.518448672026E-02 0.525007518420E-02 0.531648864945E-02 0.538373749326E-02
110 0.545183222339E-02 0.552078347979E-02 0.559060203622E-02 0.566129880198E-02
111 0.573288482358E-02 0.580537128649E-02 0.587876951686E-02 0.595309098331E-02
112 0.602834729873E-02 0.610455022206E-02 0.618171166017E-02 0.625984366969E-02
113 0.633895845891E-02 0.641906838967E-02 0.650018597931E-02 0.658232390262E-02
114 0.666549499382E-02 0.674971224856E-02 0.683498882595E-02 0.692133805065E-02
115 0.700877341488E-02 0.709730858060E-02 0.718695738162E-02 0.727773382573E-02
116 0.736965209695E-02 0.746272655769E-02 0.755697175102E-02 0.765240240295E-02
117 0.774903342471E-02 0.784687991510E-02 0.794595716282E-02 0.804628064890E-02
118 0.814786604909E-02 0.825072923632E-02 0.835488628316E-02 0.846035346436E-02
119 0.856714725940E-02 0.867528435500E-02 0.878478164783E-02 0.889565624705E-02
120 0.900792547704E-02 0.912160688010E-02 0.923671821918E-02 0.935327748066E-02
121 0.947130287716E-02 0.959081285039E-02 0.971182607403E-02 0.983436145664E-02
122 0.995843814462E-02 0.100840755252E-01 0.102112932295E-01 0.103401111355E-01
123 0.104705493713E-01 0.106026283182E-01 0.107363686136E-01 0.108717911549E-01
124 0.110089171021E-01 0.111477678813E-01 0.112883651884E-01 0.114307309919E-01
125 0.115748875367E-01 0.117208573476E-01 0.118686632327E-01 0.120183282870E-01
126 0.121698758960E-01 0.123233297391E-01 0.124787137940E-01 0.126360523398E-01
127 0.127953699607E-01 0.129566915507E-01 0.131200423165E-01 0.132854477819E-01
128 0.134529337920E-01 0.136225265167E-01 0.137942524554E-01 0.139681384404E-01
129 0.141442116418E-01 0.143224995715E-01 0.145030300873E-01 0.146858313974E-01
130 0.148709320649E-01 0.150583610122E-01 0.152481475255E-01 0.154403212592E-01
131 0.156349122409E-01 0.158319508758E-01 0.160314679516E-01 0.162334946434E-01
132 0.164380625180E-01 0.166452035398E-01 0.168549500749E-01 0.170673348966E-01
133 0.172823911905E-01 0.175001525595E-01 0.177206530294E-01 0.179439270538E-01
134 0.181700095197E-01 0.183989357529E-01 0.186307415236E-01 0.188654630520E-01
135 0.191031370137E-01 0.193438005459E-01 0.195874912526E-01 0.198342472111E-01
136 0.200841069775E-01 0.203371095928E-01 0.205932945893E-01 0.208527019963E-01
137 0.211153723468E-01 0.213813466836E-01 0.216506665657E-01 0.219233740749E-01
138 0.221995118222E-01 0.224791229549E-01 0.227622511626E-01 0.230489406848E-01
139 0.233392363172E-01 0.236331834192E-01 0.239308279205E-01 0.242322163288E-01
140 0.245373957366E-01 0.248464138288E-01 0.251593188901E-01 0.254761598125E-01
141 0.257969861031E-01 0.261218478916E-01 0.264507959385E-01 0.267838816424E-01
142 0.271211570486E-01 0.274626748573E-01 0.278084884311E-01 0.281586518042E-01
143 0.285132196903E-01 0.288722474915E-01 0.292357913064E-01 0.296039079395E-01
144 0.299766549099E-01 0.303540904600E-01 0.307362735649E-01 0.311232639414E-01
145 0.315151220577E-01 0.319119091422E-01 0.323136871939E-01 0.327205189914E-01
146 0.331324681028E-01 0.335495988963E-01 0.339719765491E-01 0.343996670589E-01
147 0.348327372530E-01 0.352712547995E-01 0.357152882177E-01 0.361649068888E-01
148 0.366201810665E-01 0.370811818885E-01 0.375479813869E-01 0.380206525002E-01
149 0.384992690841E-01 0.389839059236E-01 0.394746387441E-01 0.399715442236E-01
150 0.404747000046E-01 0.409841847062E-01 0.415000779364E-01 0.420224603046E-01
151 0.425514134342E-01 0.430870199750E-01 0.436293636168E-01 0.441785291017E-01
152 0.447346022381E-01 0.452976699135E-01 0.458678201084E-01 0.464451419099E-01
153 0.470297255257E-01 0.476216622981E-01 0.482210447186E-01 0.488279664418E-01
154 0.494425223005E-01 0.500648083202E-01 0.506949217345E-01 0.513329609999E-01
155 0.519790258112E-01 0.526332171175E-01 0.532956371374E-01 0.539663893754E-01
156 0.546455786380E-01 0.553333110498E-01 0.560296940703E-01 0.567348365110E-01
157 0.574488485517E-01 0.581718417582E-01 0.589039290998E-01 0.596452249665E-01
158 0.603958451873E-01 0.611559070482E-01 0.619255293104E-01 0.627048322290E-01
159 0.634939375715E-01 0.642929686373E-01 0.651020502767E-01 0.659213089102E-01
160 0.667508725488E-01 0.675908708135E-01 0.684414349555E-01 0.693026978775E-01
161 0.701747941533E-01 0.710578600499E-01 0.719520335481E-01 0.728574543643E-01
162 0.737742639724E-01 0.747026056256E-01 0.756426243794E-01 0.765944671136E-01
163 0.775582825554E-01 0.785342213031E-01 0.795224358490E-01 0.805230806036E-01
164 0.815363119199E-01 0.825622881171E-01 0.836011695063E-01 0.846531184146E-01
165 0.857182992113E-01 0.867968783331E-01 0.878890243100E-01 0.889949077922E-01
166 0.901147015762E-01 0.912485806321E-01 0.923967221306E-01 0.935593054714E-01
167 0.947365123105E-01 0.959285265887E-01 0.971355345607E-01 0.983577248240E-01
168 0.995952883483E-01 0.100848418505 0.102117311100 0.103402164398
169 0.104703179161 0.106020558675 0.107354508783 0.108705237919
170 0.110072957135 0.111457880141 0.112860223334 0.114280205834
171 0.115718049514 0.117173979041 0.118648221907 0.120141008466
172 0.121652571968 0.123183148598 0.124732977512 0.126302300874
173 0.127891363894 0.129500414866 0.131129705208 0.132779489500
174 0.134450025523 0.136141574302 0.137854400146 0.139588770687
175 0.141344956924 0.143123233264 0.144923877567 0.146747171187
176 0.148593399018 0.150462849535 0.152355814846 0.154272590729
177 0.156213476684 0.158178775980 0.160168795697 0.162183846781
178 0.164224244087 0.166290306432 0.168382356643 0.170500721605
179 0.172645732318 0.174817723945 0.177017035863 0.179244011719
180 0.181498999484 0.183782351502 0.186094424554 0.188435579904
181 0.190806183363 0.193206605343 0.195637220915 0.198098409867
182 0.200590556764 0.203114051011 0.205669286908 0.208256663716
183 0.210876585717 0.213529462281 0.216215707923 0.218935742377
184 0.221689990652 0.224478883105 0.227302855507 0.230162349109
185 0.233057810713 0.235989692740 0.238958453303 0.241964556277
186 0.245008471372 0.248090674205 0.251211646377 0.254371875547
187 0.257571855505 0.260812086257 0.264093074094 0.267415331678
188 0.270779378118 0.274185739052 0.277634946733 0.281127540106
189 0.284664064895 0.288245073689 0.291871126029 0.295542788493
190 0.299260634785 0.303025245827 0.306837209846 0.310697122470
191 0.314605586818 0.318563213595 0.322570621189 0.326628435765
192 0.330737291365 0.334897830006 0.339110701781 0.343376564959
193 0.347696086090 0.352069940109 0.356498810439 0.360983389099
194 0.365524376815 0.370122483124 0.374778426491 0.379492934417
195 0.384266743551 0.389100599812 0.393995258501 0.398951484416
196 0.403970051979 0.409051745350 0.414197358556 0.419407695608
197 0.424683570631 0.430025807994 0.435435242430 0.440912719175
198 0.446459094095 0.452075233824 0.457762015895 0.463520328878
199 0.469351072522 0.475255157892 0.481233507514 0.487287055517
200 0.493416747780 0.499623542080 0.505908408242 0.512272328288
201 0.518716296594 0.525241320043 0.531848418183 0.538538623387
202 0.545312981013 0.552172549568 0.559118400874 0.566151620234
203 0.573273306602 0.580484572758 0.587786545476 0.595180365703
204 0.602667188740 0.610248184418 0.617924537282 0.625697446779
205 0.633568127441 0.641537809079 0.649607736971 0.657779172060
206 0.666053391149 0.674431687102 0.682915369045 0.691505762570
207 0.700204209943 0.709012070315 0.717930719932 0.726961552352
208 0.736105978659 0.745365427689 0.754741346250 0.764235199349
209 0.773848470418 0.783582661552 0.793439293738 0.803419907093
210 0.813526061110 0.823759334896 0.834121327420 0.844613657765
211 0.855237965379 0.865995910331 0.876889173573 0.887919457198
212 0.899088484711 0.910398001296 0.921849774087 0.933445592447
213 0.945187268246 0.957076636146 0.969115553883 0.981305902564
214 0.993649586955 1.00614853578 1.01880470203 1.03162006325
215 1.04459662188 1.05773640551 1.07104146728 1.08451388612
216 1.09815576714 1.11196924189 1.12595646876 1.14011963329
217 1.15446094849 1.16898265524 1.18368702257 1.19857634807
218 1.21365295823 1.22891920880 1.24437748517 1.26003020271
219 1.27587980720 1.29192877518 1.30817961432 1.32463486385
220 1.34129709495 1.35816891111 1.37525294859 1.39255187681
221 1.41006839876 1.42780525143 1.44576520624 1.46395106948
222 1.48236568271 1.50101192327 1.51989270465 1.53901097703
223 1.55836972768 1.57797198143 1.59782080118 1.61791928835
224 1.63827058336 1.65887786615 1.67974435665 1.70087331529
225 1.72226804351 1.74393188429 1.76586822263 1.78808048615
226 1.81057214554 1.83334671519 1.85640775365 1.87975886427
227 1.90340369570 1.92734594250 1.95158934569 1.97613769335
228 2.00099482121 2.02616461325 2.05165100230 2.07745797066
229 2.10358955072 2.13004982559 2.15684292975 2.18397304967
230 2.21144442449 2.23926134667 2.26742816266 2.29594927357
231 2.32482913590 2.35407226217 2.38368322170 2.41366664124
232 2.44402720577 2.47476965919 2.50589880507 2.53741950740
233 2.56933669136 2.60165534408 2.63438051540 2.66751731870
234 2.70107093167 2.73504659715 2.76944962388 2.80428538742
235 2.83955933092 2.87527696601 2.91144387364 2.94806570496
236 2.98514818222 3.02269709962 3.06071832426 3.09921779703
237 3.13820153355 3.17767562512 3.21764623963 3.25811962258
238 3.29910209801 3.34060006953 3.38262002127 3.42516851894
239 3.46825221082 3.51187782883 3.55605218957 3.60078219536
240 3.64607483536 3.69193718664 3.73837641528 3.78539977751
241 3.83301462082 3.88122838514 3.93004860395 3.97948290551
242 4.02953901404 4.08022475091 4.13154803587 4.18351688827
243 4.23613942837 4.28942387854 4.34337856458 4.39801191703
244 4.45333247245 4.50934887480 4.56606987675 4.62350434107
245 4.68166124202 4.74054966673 4.80017881664 4.86055800892
246 4.92169667795 4.98360437676 5.04629077856 5.10976567822
247 5.17403899384 5.23912076824 5.30502117059 5.37175049796
248 5.43931917693 5.50773776526 5.57701695349 5.64716756663
249 5.71820056586 5.79012705022 5.86295825839 5.93670557037
250 6.01138050935 6.08699474343 6.16356008749 6.24108850501
251 6.31959210998 6.39908316875 6.47957410194 6.56107748643
252 6.64360605730 6.72717270979 6.81179050138 6.89747265375
253 6.98423255493 7.07208376132 7.16103999985 7.25111517012
254 7.34232334655 7.43467878061 7.52819590302 7.62288932603
255 7.71877384566 7.81586444408 7.91417629189 8.01372475051
256 8.11452537459 8.21659391444 8.31994631847 8.42459873571
257 8.53056751830 8.63786922409 8.74652061919 8.85653868060
258 8.96794059886 9.08074378075 9.19496585200 9.31062466004
259 9.42773827678 9.54632500149 9.66640336356 9.78799212549
260 9.91111028577 10.0357770819 10.1620119932 10.2898347443
261 10.4192653076 10.5503239070 10.6830310207 10.8174073843
262 10.9534739945 11.0912521120 11.2307632649 11.3720292520
263 11.5150721466 11.6599142992 11.8065783418 11.9550871910
264 12.1054640515 12.2577324201 12.4119160890 12.5680391497
265 12.7261259968 12.8862013316 13.0482901662 13.2124178274
266 13.3786099605 13.5468925332 13.7172918401 13.8898345064
267 14.0645474923 14.2414580970 14.4205939632 14.6019830812
268 14.7856537934 14.9716347988 15.1599551573 15.3506442942
269 15.5437320053 15.7392484607 15.9372242104 16.1376901885
270 16.3406777181 16.5462185166 16.7543447000 16.9650887886
271 17.1784837114 17.3945628120 17.6133598530 17.8349090221
272 18.0592449366 18.2864026495 18.5164176548 18.7493258926
273 18.9851637554 19.2239680933 19.4657762201 19.7106259186
274 19.9585554472 20.2096035454 20.4638094399 20.7212128509
275 20.9818539982 21.2457736076 21.5130129171 21.7836136832
276 22.0576181879 22.3350692450 22.6160102069 22.9004849709
277 23.1885379870 23.4802142641 23.7755593770 24.0746194741
278 24.3774412842 24.6840721237 24.9945599044 25.3089531406
279 25.6273009569 25.9496530957 26.2760599253 26.6065724474
280 26.9412423053 27.2801217917 27.6232638573 27.9707221188
281 28.3225508672 28.6788050764 29.0395404119 29.4048132394
282 29.7746806335 30.1492003866 30.5284310183 30.9124317841
283 31.3012626850 31.6949844765 32.0936586784 32.4973475845
284 32.9061142720 33.3200226114 33.7391372768 34.1635237557
285 34.5932483594 35.0283782331 35.4689813669 35.9151266059
286 36.3668836611 36.8243231206 37.2875164601 37.7565360547
287 38.2314551894 38.7123480715 39.1992898414 39.6923565847
288 40.1916253442 40.6971741316 41.2090819399 41.7274287558
289 42.2522955719 42.7837643999 43.3219182828 43.8668413082
290 44.4186186215 44.9773364390 45.5430820614 46.1159438878
291 46.6960114289 47.2833753214 47.8781273423 48.4803604225
292 49.0901686624 49.7076473457 50.3328929547 50.9660031853
293 51.6070769622 52.2562144546 52.9135170915 53.5790875777
294 54.2530299100 54.9354493933 55.6264526570 56.3261476718
295 57.0346437664 57.7520516448 58.4784834034 59.2140525488
296 59.9588740149 60.7130641818 61.4767408931 62.2500234750
297 63.0330327543 63.8258910779 64.6287223315 65.4416519592
298 66.2648069827 67.0983160219 67.9423093140 68.7969187350
299 69.6622778191 70.5385217805 71.4257875341 72.3242137170
300 73.2339407101 74.1551106601 75.0878675017 76.0323569800
301 76.9887266734 77.9571260167 78.9377063242 79.9306208136
302 80.9360246297 81.9540748691 82.9849306040 84.0287529079
303 85.0857048800 86.1559516713 87.2396605100 88.3370007278
304 89.4481437863 90.5732633040 91.7125350830 92.8661371368
305 94.0342497182 95.2170553471 96.4147388393 97.6274873352
306 98.8554903293 100.098939700 101.358029738 102.632957179
307 103.923921233 105.231123615 106.554768580 107.895062949
308 109.252216145 110.626440227 112.017949920 113.426962651
309 114.853698579 116.298380637 117.761234558 119.242488916
310 Down Pseudopotential follows (l on next line)
311 0
312 -0.344168687199E-05 -0.692679840936E-05 -0.104554786075E-04 -0.140289478131E-04
313 -0.176469065595E-04 -0.213107567387E-04 -0.250204576271E-04 -0.287769247868E-04
314 -0.325806108655E-04 -0.364321472444E-04 -0.403321296066E-04 -0.442811671561E-04
315 -0.482798785096E-04 -0.523288870839E-04 -0.564288249121E-04 -0.605803351020E-04
316 -0.647840642146E-04 -0.690406688999E-04 -0.733508169255E-04 -0.777151789328E-04
317 -0.821344370388E-04 -0.866092832973E-04 -0.911404171782E-04 -0.957285444134E-04
318 -0.100374383087E-03 -0.105078660462E-03 -0.109842108281E-03 -0.114665475116E-03
319 -0.119549512171E-03 -0.124494981798E-03 -0.129502657329E-03 -0.134573322717E-03
320 -0.139707770074E-03 -0.144906798902E-03 -0.150171224552E-03 -0.155501868603E-03
321 -0.160899563188E-03 -0.166365152228E-03 -0.171899491848E-03 -0.177503443427E-03
322 -0.183177883715E-03 -0.188923699707E-03 -0.194741789671E-03 -0.200633063791E-03
323 -0.206598437413E-03 -0.212638847878E-03 -0.218755239624E-03 -0.224948563469E-03
324 -0.231219789284E-03 -0.237569898767E-03 -0.243999884013E-03 -0.250510745727E-03
325 -0.257103505071E-03 -0.263779192527E-03 -0.270538847013E-03 -0.277383530413E-03
326 -0.284314307686E-03 -0.291332263400E-03 -0.298438495416E-03 -0.305634110901E-03
327 -0.312920236998E-03 -0.320298011876E-03 -0.327768587213E-03 -0.335333130229E-03
328 -0.342992825129E-03 -0.350748865287E-03 -0.358602464327E-03 -0.366554852417E-03
329 -0.374607266828E-03 -0.382760967092E-03 -0.391017229999E-03 -0.399377344966E-03
330 -0.407842615531E-03 -0.416414364742E-03 -0.425093936433E-03 -0.433882682943E-03
331 -0.442781975768E-03 -0.451793210712E-03 -0.460917792987E-03 -0.470157145969E-03
332 -0.479512717321E-03 -0.488985968172E-03 -0.498578376470E-03 -0.508291441805E-03
333 -0.518126684904E-03 -0.528085638490E-03 -0.538169859579E-03 -0.548380926392E-03
334 -0.558720431066E-03 -0.569189991536E-03 -0.579791242488E-03 -0.590525841147E-03
335 -0.601395464919E-03 -0.612401810050E-03 -0.623546599492E-03 -0.634831572710E-03
336 -0.646258492993E-03 -0.657829147133E-03 -0.669545340929E-03 -0.681408907375E-03
337 -0.693421699779E-03 -0.705585592158E-03 -0.717902488767E-03 -0.730374313785E-03
338 -0.743003014199E-03 -0.755790564062E-03 -0.768738961224E-03 -0.781850230270E-03
339 -0.795126417336E-03 -0.808569598877E-03 -0.822181876116E-03 -0.835965373103E-03
340 -0.849922245115E-03 -0.864054673918E-03 -0.878364867097E-03 -0.892855059288E-03
341 -0.907527515729E-03 -0.922384529582E-03 -0.937428421625E-03 -0.952661542551E-03
342 -0.968086271856E-03 -0.983705021111E-03 -0.999520230194E-03 -0.101553436936E-02
343 -0.103174994242E-02 -0.104816948220E-02 -0.106479555412E-02 -0.108163075600E-02
344 -0.109867771954E-02 -0.111593910674E-02 -0.113341761563E-02 -0.115111597786E-02
345 -0.116903695686E-02 -0.118718335562E-02 -0.120555800661E-02 -0.122416378234E-02
346 -0.124300359171E-02 -0.126208037470E-02 -0.128139711482E-02 -0.130095683031E-02
347 -0.132076257612E-02 -0.134081744734E-02 -0.136112457800E-02 -0.138168714216E-02
348 -0.140250835038E-02 -0.142359145705E-02 -0.144493975754E-02 -0.146655658590E-02
349 -0.148844532051E-02 -0.151060938240E-02 -0.153305223304E-02 -0.155577738053E-02
350 -0.157878837581E-02 -0.160208881254E-02 -0.162568233360E-02 -0.164957262462E-02
351 -0.167376341905E-02 -0.169825849540E-02 -0.172306168210E-02 -0.174817685571E-02
352 -0.177360793793E-02 -0.179935890471E-02 -0.182543377914E-02 -0.185183663442E-02
353 -0.187857159765E-02 -0.190564284529E-02 -0.193305460649E-02 -0.196081116681E-02
354 -0.198891686110E-02 -0.201737608151E-02 -0.204619327567E-02 -0.207537294460E-02
355 -0.210491964952E-02 -0.213483800646E-02 -0.216513268980E-02 -0.219580843389E-02
356 -0.222687003166E-02 -0.225832233589E-02 -0.229017026197E-02 -0.232241878590E-02
357 -0.235507294657E-02 -0.238813784596E-02 -0.242161865126E-02 -0.245552059364E-02
358 -0.248984896921E-02 -0.252460914425E-02 -0.255980654798E-02 -0.259544668067E-02
359 -0.263153511248E-02 -0.266807747986E-02 -0.270507949465E-02 -0.274254693828E-02
360 -0.278048566374E-02 -0.281890160054E-02 -0.285780075085E-02 -0.289718919271E-02
361 -0.293707308036E-02 -0.297745864603E-02 -0.301835220049E-02 -0.305976013253E-02
362 -0.310168891261E-02 -0.314414509310E-02 -0.318713530681E-02 -0.323066627127E-02
363 -0.327474478879E-02 -0.331937774578E-02 -0.336457211763E-02 -0.341033496529E-02
364 -0.345667343898E-02 -0.350359478007E-02 -0.355110631966E-02 -0.359921548145E-02
365 -0.364792978309E-02 -0.369725683598E-02 -0.374720434733E-02 -0.379778012281E-02
366 -0.384899206375E-02 -0.390084817209E-02 -0.395335655179E-02 -0.400652540639E-02
367 -0.406036304381E-02 -0.411487787704E-02 -0.417007842325E-02 -0.422597330795E-02
368 -0.428257126561E-02 -0.433988113901E-02 -0.439791188309E-02 -0.445667256572E-02
369 -0.451617236864E-02 -0.457642058816E-02 -0.463742663840E-02 -0.469920005260E-02
370 -0.476175048225E-02 -0.482508770102E-02 -0.488922160617E-02 -0.495416221868E-02
371 -0.501991968523E-02 -0.508650428109E-02 -0.515392641063E-02 -0.522219660830E-02
372 -0.529132554178E-02 -0.536132401262E-02 -0.543220295856E-02 -0.550397345475E-02
373 -0.557664671513E-02 -0.565023409580E-02 -0.572474709487E-02 -0.580019735488E-02
374 -0.587659666606E-02 -0.595395696545E-02 -0.603229034113E-02 -0.611160903342E-02
375 -0.619192543528E-02 -0.627325209739E-02 -0.635560172752E-02 -0.643898719207E-02
376 -0.652342152155E-02 -0.660891790876E-02 -0.669548971258E-02 -0.678315046118E-02
377 -0.687191385112E-02 -0.696179375249E-02 -0.705280420957E-02 -0.714495944286E-02
378 -0.723827385261E-02 -0.733276201933E-02 -0.742843870724E-02 -0.752531886677E-02
379 -0.762341763553E-02 -0.772275034225E-02 -0.782333250835E-02 -0.792517985007E-02
380 -0.802830828179E-02 -0.813273391813E-02 -0.823847307625E-02 -0.834554227819E-02
381 -0.845395825439E-02 -0.856373794583E-02 -0.867489850587E-02 -0.878745730443E-02
382 -0.890143192960E-02 -0.901684019035E-02 -0.913370012038E-02 -0.925202997978E-02
383 -0.937184825856E-02 -0.949317367915E-02 -0.961602519960E-02 -0.974042201633E-02
384 -0.986638356739E-02 -0.999392953552E-02 -0.101230798505E-01 -0.102538546932E-01
385 -0.103862744986E-01 -0.105203599580E-01 -0.106561320239E-01 -0.107936119118E-01
386 -0.109328211039E-01 -0.110737813534E-01 -0.112165146865E-01 -0.113610434064E-01
387 -0.115073900977E-01 -0.116555776284E-01 -0.118056291541E-01 -0.119575681221E-01
388 -0.121114182747E-01 -0.122672036526E-01 -0.124249485988E-01 -0.125846777631E-01
389 -0.127464161050E-01 -0.129101888979E-01 -0.130760217336E-01 -0.132439405254E-01
390 -0.134139715126E-01 -0.135861412653E-01 -0.137604766867E-01 -0.139370050196E-01
391 -0.141157538490E-01 -0.142967511066E-01 -0.144800250762E-01 -0.146656043970E-01
392 -0.148535180687E-01 -0.150437954557E-01 -0.152364662917E-01 -0.154315606851E-01
393 -0.156291091222E-01 -0.158291424736E-01 -0.160316919980E-01 -0.162367893472E-01
394 -0.164444665716E-01 -0.166547561246E-01 -0.168676908680E-01 -0.170833040770E-01
395 -0.173016294453E-01 -0.175227010909E-01 -0.177465535609E-01 -0.179732218369E-01
396 -0.182027413410E-01 -0.184351479405E-01 -0.186704779543E-01 -0.189087681585E-01
397 -0.191500557914E-01 -0.193943785603E-01 -0.196417746466E-01 -0.198922827123E-01
398 -0.201459419062E-01 -0.204027918690E-01 -0.206628727408E-01 -0.209262251666E-01
399 -0.211928903026E-01 -0.214629098235E-01 -0.217363259277E-01 -0.220131813450E-01
400 -0.222935193430E-01 -0.225773837335E-01 -0.228648188798E-01 -0.231558697034E-01
401 -0.234505816912E-01 -0.237490009025E-01 -0.240511739760E-01 -0.243571481378E-01
402 -0.246669712081E-01 -0.249806916087E-01 -0.252983583713E-01 -0.256200211442E-01
403 -0.259457302009E-01 -0.262755364476E-01 -0.266094914309E-01 -0.269476473466E-01
404 -0.272900570471E-01 -0.276367740504E-01 -0.279878525477E-01 -0.283433474127E-01
405 -0.287033142096E-01 -0.290678092021E-01 -0.294368893620E-01 -0.298106123784E-01
406 -0.301890366666E-01 -0.305722213773E-01 -0.309602264055E-01 -0.313531124008E-01
407 -0.317509407757E-01 -0.321537737164E-01 -0.325616741917E-01 -0.329747059631E-01
408 -0.333929335954E-01 -0.338164224657E-01 -0.342452387746E-01 -0.346794495561E-01
409 -0.351191226886E-01 -0.355643269047E-01 -0.360151318030E-01 -0.364716078582E-01
410 -0.369338264326E-01 -0.374018597873E-01 -0.378757810933E-01 -0.383556644432E-01
411 -0.388415848627E-01 -0.393336183227E-01 -0.398318417505E-01 -0.403363330428E-01
412 -0.408471710774E-01 -0.413644357256E-01 -0.418882078650E-01 -0.424185693919E-01
413 -0.429556032346E-01 -0.434993933658E-01 -0.440500248167E-01 -0.446075836893E-01
414 -0.451721571710E-01 -0.457438335476E-01 -0.463227022174E-01 -0.469088537054E-01
415 -0.475023796773E-01 -0.481033729543E-01 -0.487119275273E-01 -0.493281385719E-01
416 -0.499521024637E-01 -0.505839167927E-01 -0.512236803796E-01 -0.518714932908E-01
417 -0.525274568542E-01 -0.531916736753E-01 -0.538642476538E-01 -0.545452839991E-01
418 -0.552348892476E-01 -0.559331712794E-01 -0.566402393351E-01 -0.573562040333E-01
419 -0.580811773879E-01 -0.588152728261E-01 -0.595586052059E-01 -0.603112908345E-01
420 -0.610734474870E-01 -0.618451944242E-01 -0.626266524125E-01 -0.634179437422E-01
421 -0.642191922474E-01 -0.650305233253E-01 -0.658520639562E-01 -0.666839427236E-01
422 -0.675262898348E-01 -0.683792371411E-01 -0.692429181594E-01 -0.701174680925E-01
423 -0.710030238516E-01 -0.718997240773E-01 -0.728077091620E-01 -0.737271212719E-01
424 -0.746581043702E-01 -0.756008042395E-01 -0.765553685052E-01 -0.775219466590E-01
425 -0.785006900830E-01 -0.794917520732E-01 -0.804952878649E-01 -0.815114546564E-01
426 -0.825404116352E-01 -0.835823200026E-01 -0.846373430000E-01 -0.857056459349E-01
427 -0.867873962071E-01 -0.878827633359E-01 -0.889919189872E-01 -0.901150370009E-01
428 -0.912522934190E-01 -0.924038665135E-01 -0.935699368157E-01 -0.947506871447E-01
429 -0.959463026370E-01 -0.971569707764E-01 -0.983828814243E-01 -0.996242268501E-01
430 -0.100881201762 -0.102154003341 -0.103442831266 -0.104747887757
431 -0.106069377596 -0.107407508169 -0.108762489496 -0.110134534266
432 -0.111523857870 -0.112930678438 -0.114355216875 -0.115797696895
433 -0.117258345058 -0.118737390808 -0.120235066511 -0.121751607491
434 -0.123287252070 -0.124842241607 -0.126416820539 -0.128011236417
435 -0.129625739953 -0.131260585056 -0.132916028877 -0.134592331850
436 -0.136289757737 -0.138008573670 -0.139749050195 -0.141511461321
437 -0.143296084559 -0.145103200976 -0.146933095237 -0.148786055652
438 -0.150662374229 -0.152562346719 -0.154486272668 -0.156434455467
439 -0.158407202404 -0.160404824712 -0.162427637628 -0.164475960444
440 -0.166550116560 -0.168650433540 -0.170777243170 -0.172930881512
441 -0.175111688963 -0.177320010316 -0.179556194816 -0.181820596220
442 -0.184113572863 -0.186435487718 -0.188786708455 -0.191167607514
443 -0.193578562163 -0.196019954566 -0.198492171854 -0.200995606188
444 -0.203530654832 -0.206097720225 -0.208697210048 -0.211329537301
445 -0.213995120374 -0.216694383128 -0.219427754963 -0.222195670903
446 -0.224998571674 -0.227836903780 -0.230711119590 -0.233621677419
447 -0.236569041612 -0.239553682630 -0.242576077140 -0.245636708102
448 -0.248736064857 -0.251874643224 -0.255052945593 -0.258271481015
449 -0.261530765306 -0.264831321141 -0.268173678157 -0.271558373054
450 -0.274985949700 -0.278456959238 -0.281971960190 -0.285531518572
451 -0.289136208003 -0.292786609821 -0.296483313199 -0.300226915260
452 -0.304018021203 -0.307857244423 -0.311745206638 -0.315682538015
453 -0.319669877300 -0.323707871956 -0.327797178291 -0.331938461602
454 -0.336132396313 -0.340379666122 -0.344680964143 -0.349036993060
455 -0.353448465277 -0.357916103076 -0.362440638776 -0.367022814894
456 -0.371663384312 -0.376363110447 -0.381122767425 -0.385943140255
457 -0.390825025013 -0.395769229022 -0.400776571049 -0.405847881487
458 -0.410984002564 -0.416185788534 -0.421454105891 -0.426789833574
459 -0.432193863189 -0.437667099224 -0.443210459276 -0.448824874287
460 -0.454511288773 -0.460270661071 -0.466103963587 -0.472012183046
461 -0.477996320756 -0.484057392872 -0.490196430670 -0.496414480825
462 -0.502712605700 -0.509091883635 -0.515553409252 -0.522098293762
463 -0.528727665281 -0.535442669156 -0.542244468293 -0.549134243505
464 -0.556113193856 -0.563182537024 -0.570343509669 -0.577597367811
465 -0.584945387217 -0.592388863802 -0.599929114041 -0.607567475384
466 -0.615305306690 -0.623143988675 -0.631084924364 -0.639129539560
467 -0.647279283329 -0.655535628489 -0.663900072128 -0.672374136119
468 -0.680959367663 -0.689657339842 -0.698469652187 -0.707397931265
469 -0.716443831281 -0.725609034700 -0.734895252882 -0.744304226741
470 -0.753837727420 -0.763497556990 -0.773285549162 -0.783203570028
471 -0.793253518819 -0.803437328691 -0.813756967525 -0.824214438764
472 -0.834811782265 -0.845551075180 -0.856434432865 -0.867464009815
473 -0.878642000631 -0.889970641011 -0.901452208776 -0.913089024927
474 -0.924883454731 -0.936837908845 -0.948954844477 -0.961236766571
475 -0.973686229046 -0.986305836060 -0.999098243319 -1.01206615943
476 -1.02521234728 -1.03853962550 -1.05205086991 -1.06574901507
477 -1.07963705584 -1.09371804903 -1.10799511505 -1.12247143963
478 -1.13715027564 -1.15203494491 -1.16712884011 -1.18243542675
479 -1.19795824513 -1.21370091251 -1.22966712518 -1.24586066070
480 -1.26228538022 -1.27894523077 -1.29584424774 -1.31298655736
481 -1.33037637928 -1.34801802927 -1.36591592189 -1.38407457340
482 -1.40249860462 -1.42119274396 -1.44016183048 -1.45941081716
483 -1.47894477410 -1.49876889194 -1.51888848536 -1.53930899664
484 -1.56003599940 -1.58107520235 -1.60243245323 -1.62411374287
485 -1.64612520928 -1.66847314195 -1.69116398623 -1.71420434781
486 -1.73760099741 -1.76136087545 -1.78549109705 -1.80999895693
487 -1.83489193468 -1.86017769997 -1.88586411799 -1.91195925505
488 -1.93847138425 -1.96540899136 -1.99278078075 -2.02059568159
489 -2.04886285410 -2.07759169597 -2.10679184890 -2.13647320537
490 -2.16664591544 -2.19732039378 -2.22850732681 -2.26021767994
491 -2.29246270505 -2.32525394800 -2.35860325636 -2.39252278717
492 -2.42702501497 -2.46212273977 -2.49782909535 -2.53415755743
493 -2.57112195219 -2.60873646467 -2.64701564744 -2.68597442919
494 -2.72562812354 -2.76599243779 -2.80708348181 -2.84891777686
495 -2.89151226458 -2.93488431585 -2.97905173969 -3.02403279220
496 -3.06984618532 -3.11651109565 -3.16404717314 -3.21247454964
497 -3.26181384737 -3.31208618720 -3.36331319673 -3.41551701821
498 -3.46872031616 -3.52294628471 -3.57821865466 -3.63456170020
499 -3.69200024513 -3.75055966881 -3.81026591149 -3.87114547925
500 -3.93322544825 -3.99653346845 -4.06109776666 -4.12694714885
501 -4.19411100170 -4.26261929334 -4.33250257322 -4.40379197100
502 -4.47651919457 -4.55071652687 -4.62641682179 -4.70365349879
503 -4.78246053642 -4.86287246459 -4.94492435553 -5.02865181354
504 -5.11409096334 -5.20127843717 -5.29025136051 -5.38104733656
505 -5.47370442940 -5.56826114602 -5.66475641720 -5.76322957738
506 -5.86372034375 -5.96626879460 -6.07091534726 -6.17770073588
507 -6.28666598936 -6.39785240976 -6.51130155164 -6.62705520293
508 -6.74515536764 -6.86564425127 -6.98856424948 -7.11395794080
509 -7.24186808425 -7.37233762281 -7.50540969370 -7.64112764658
510 -7.77953507092 -7.92067583371 -8.06459412901 -8.21133454068
511 -8.36094211997 -8.51346247950 -8.66894190539 -8.82742748915
512 -8.98896728108 -9.15361046658 -9.32140756668 -9.49241066360
513 -9.66667365155 -9.84425251142 -10.0252056246 -10.2095939263
514 -10.3974823175 -10.5889348994 -10.7840293936 -10.9828626984
515 -11.1853196453 -11.3921745678 -11.6014146806 -11.8102642499
516 -12.0221168165 -12.2393026908 -12.4612848983 -12.6884521500
517 -12.9209454725 -13.1589193608 -13.4025296562 -13.6519202652
518 -13.9072279100 -14.1685803710 -14.4360957615 -14.7098813807
519 -14.9900323702 -15.2766301735 -15.5697408098 -15.8694129709
520 -16.1756759491 -16.4885373999 -16.8079809489 -17.1339636438
521 -17.4664132738 -17.8052255636 -18.1502612474 -18.5013430814
522 -18.8582527990 -19.2207280440 -19.5884593430 -19.9610871550
523 -20.3381990609 -20.7193271547 -21.1039457167 -21.4914692423
524 -21.8812509020 -22.2725815555 -22.6646893867 -23.0567402679
525 -23.4478389742 -23.8370313261 -24.2233073996 -24.6056058837
526 -24.9828196743 -25.3538028593 -25.7173790806 -26.0723516897
527 -26.4175138431 -26.7516675473 -27.0736188969 -27.3822418944
528 -27.6764275575 -27.9551168402 -28.2174096239 -28.4624161308
529 -28.6893783236 -28.8977228152 -29.0870050447 -29.2569811613
530 -29.4076063318 -29.5390590615 -29.6517549196 -29.7463586359
531 -29.8237911770 -29.8852306873 -29.9321054028 -29.9660762971
532 -29.9890067262 -30.0029158517 -30.0099116235 -30.0121007544
533 -30.0114611539 -30.0097026191 -30.0080225717 -30.0069049966
534 -30.0060710840 -30.0053029068 -30.0046205298 -30.0040312326
535 -30.0035039851 -30.0030426788 -30.0026365663 -30.0022805302
536 -30.0019688109 -30.0016964272 -30.0014588623 -30.0012520615
537 -30.0010723889 -30.0007919083 -30.0005824716 -30.0004266961
538 -30.0003112940 -30.0002261473 -30.0001635825 -30.0001178034
539 -30.0000844500 -30.0000602557 -30.0000427842 -30.0000302250
540 -30.0000212399 -30.0000148431 -30.0000103117 -30.0000071190
541 -30.0000048815 -30.0000033227 -30.0000022433 -30.0000015006
542 -30.0000009936 -30.0000006497 -30.0000004188 -30.0000002651
543 -30.0000001639 -30.0000000983 -30.0000000563 -30.0000000300
544 -30.0000000140 -30.0000000045 -29.9999999993 -29.9999999966
545 -29.9999999955 -29.9999999953 -29.9999999956 -29.9999999961
546 -29.9999999966 -29.9999999972 -29.9999999977 -29.9999999982
547 -29.9999999985 -29.9999999989 -29.9999999991 -29.9999999993
548 -29.9999999995 -29.9999999996 -29.9999999997 -29.9999999998
549 -29.9999999998 -29.9999999999 -29.9999999999 -29.9999999999
550 -29.9999999999 -30.0000000000 -30.0000000000 -30.0000000000
551 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
552 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
553 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
554 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
555 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
556 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
557 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
558 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
559 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
560 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
561 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
562 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
563 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
564 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
565 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
566 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
567 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
568 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
569 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
570 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
571 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
572 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
573 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
574 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
575 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
576 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
577 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
578 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
579 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
580 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
581 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
582 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
583 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
584 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
585 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
586 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
587 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
588 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
589 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
590 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
591 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
592 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
593 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
594 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
595 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
596 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
597 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
598 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
599 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
600 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
601 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
602 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
603 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
604 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
605 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
606 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
607 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
608 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
609 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
610 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
611 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
612 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
613 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
614 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
615 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
616 Down Pseudopotential follows (l on next line)
617 1
618 -0.786726987868E-05 -0.158336314041E-04 -0.238999287762E-04 -0.320680913533E-04
619 -0.403385375993E-04 -0.487133963666E-04 -0.571933630364E-04 -0.657800985343E-04
620 -0.744748102476E-04 -0.832788937899E-04 -0.921937186901E-04 -0.101220677731E-03
621 -0.110361182966E-03 -0.119616661227E-03 -0.128988558068E-03 -0.138478340352E-03
622 -0.148087488755E-03 -0.157817504536E-03 -0.167669910693E-03 -0.177646243857E-03
623 -0.187748063028E-03 -0.197976948170E-03 -0.208334497833E-03 -0.218822328139E-03
624 -0.229442079013E-03 -0.240195411154E-03 -0.251084001479E-03 -0.262109555631E-03
625 -0.273273793914E-03 -0.284578459976E-03 -0.296025320787E-03 -0.307616166434E-03
626 -0.319352807822E-03 -0.331237076059E-03 -0.343270831077E-03 -0.355455952178E-03
627 -0.367794342520E-03 -0.380287930522E-03 -0.392938670449E-03 -0.405748535632E-03
628 -0.418719528758E-03 -0.431853676924E-03 -0.445153032842E-03 -0.458619675656E-03
629 -0.472255704380E-03 -0.486063254911E-03 -0.500044485317E-03 -0.514201575315E-03
630 -0.528536739129E-03 -0.543052218464E-03 -0.557750281272E-03 -0.572633220160E-03
631 -0.587703364445E-03 -0.602963069219E-03 -0.618414714668E-03 -0.634060720818E-03
632 -0.649903527853E-03 -0.665945612864E-03 -0.682189483749E-03 -0.698637675451E-03
633 -0.715292760847E-03 -0.732157342024E-03 -0.749234052993E-03 -0.766525561953E-03
634 -0.784034572967E-03 -0.801763818385E-03 -0.819716070163E-03 -0.837894136405E-03
635 -0.856300852166E-03 -0.874939094857E-03 -0.893811779500E-03 -0.912921854350E-03
636 -0.932272302646E-03 -0.951866148270E-03 -0.971706457279E-03 -0.991796325901E-03
637 -0.101213889145E-02 -0.103273733778E-02 -0.105359488061E-02 -0.107471477662E-02
638 -0.109610032984E-02 -0.111775488111E-02 -0.113968181171E-02 -0.116188454855E-02
639 -0.118436656387E-02 -0.120713136650E-02 -0.123018251438E-02 -0.125352361184E-02
640 -0.127715830262E-02 -0.130109028205E-02 -0.132532328834E-02 -0.134986110872E-02
641 -0.137470757737E-02 -0.139986657444E-02 -0.142534203426E-02 -0.145113793551E-02
642 -0.147725830883E-02 -0.150370723689E-02 -0.153048885025E-02 -0.155760733591E-02
643 -0.158506693080E-02 -0.161287192251E-02 -0.164102665927E-02 -0.166953553994E-02
644 -0.169840301733E-02 -0.172763360284E-02 -0.175723186358E-02 -0.178720242570E-02
645 -0.181754996965E-02 -0.184827923930E-02 -0.187939503688E-02 -0.191090222138E-02
646 -0.194280571745E-02 -0.197511051106E-02 -0.200782164925E-02 -0.204094424185E-02
647 -0.207448346545E-02 -0.210844456117E-02 -0.214283283485E-02 -0.217765365978E-02
648 -0.221291247608E-02 -0.224861479443E-02 -0.228476619280E-02 -0.232137231903E-02
649 -0.235843889447E-02 -0.239597170995E-02 -0.243397662988E-02 -0.247245959258E-02
650 -0.251142661225E-02 -0.255088377594E-02 -0.259083724983E-02 -0.263129327730E-02
651 -0.267225817775E-02 -0.271373835479E-02 -0.275574028687E-02 -0.279827053830E-02
652 -0.284133575623E-02 -0.288494266590E-02 -0.292909808371E-02 -0.297380890900E-02
653 -0.301908212662E-02 -0.306492481102E-02 -0.311134412561E-02 -0.315834732454E-02
654 -0.320594174977E-02 -0.325413483908E-02 -0.330293412379E-02 -0.335234722726E-02
655 -0.340238187107E-02 -0.345304587413E-02 -0.350434715105E-02 -0.355629371915E-02
656 -0.360889369526E-02 -0.366215529637E-02 -0.371608684688E-02 -0.377069677277E-02
657 -0.382599360753E-02 -0.388198599001E-02 -0.393868267019E-02 -0.399609250803E-02
658 -0.405422447136E-02 -0.411308764570E-02 -0.417269122798E-02 -0.423304453034E-02
659 -0.429415698470E-02 -0.435603813908E-02 -0.441869766175E-02 -0.448214534580E-02
660 -0.454639110288E-02 -0.461144497211E-02 -0.467731711911E-02 -0.474401783481E-02
661 -0.481155754316E-02 -0.487994679670E-02 -0.494919628094E-02 -0.501931681700E-02
662 -0.509031936114E-02 -0.516221500701E-02 -0.523501498935E-02 -0.530873068297E-02
663 -0.538337360614E-02 -0.545895542163E-02 -0.553548794000E-02 -0.561298311935E-02
664 -0.569145306729E-02 -0.577091004734E-02 -0.585136647267E-02 -0.593283491538E-02
665 -0.601532810637E-02 -0.609885893296E-02 -0.618344044900E-02 -0.626908587034E-02
666 -0.635580857788E-02 -0.644362212370E-02 -0.653254022846E-02 -0.662257678578E-02
667 -0.671374586374E-02 -0.680606170801E-02 -0.689953874356E-02 -0.699419157546E-02
668 -0.709003499379E-02 -0.718708397520E-02 -0.728535368272E-02 -0.738485947144E-02
669 -0.748561688982E-02 -0.758764168048E-02 -0.769094978641E-02 -0.779555734893E-02
670 -0.790148071287E-02 -0.800873642987E-02 -0.811734125839E-02 -0.822731216809E-02
671 -0.833866634263E-02 -0.845142118104E-02 -0.856559430122E-02 -0.868120354425E-02
672 -0.879826697305E-02 -0.891680287901E-02 -0.903682978492E-02 -0.915836644425E-02
673 -0.928143184752E-02 -0.940604522469E-02 -0.953222604599E-02 -0.965999402772E-02
674 -0.978936913468E-02 -0.992037158122E-02 -0.100530218369E-01 -0.101873406291E-01
675 -0.103233489455E-01 -0.104610680372E-01 -0.106005194232E-01 -0.107417248941E-01
676 -0.108847065126E-01 -0.110294866201E-01 -0.111760878394E-01 -0.113245330772E-01
677 -0.114748455279E-01 -0.116270486786E-01 -0.117811663119E-01 -0.119372225086E-01
678 -0.120952416529E-01 -0.122552484359E-01 -0.124172678591E-01 -0.125813252387E-01
679 -0.127474462085E-01 -0.129156567261E-01 -0.130859830747E-01 -0.132584518677E-01
680 -0.134330900549E-01 -0.136099249232E-01 -0.137889841038E-01 -0.139702955757E-01
681 -0.141538876685E-01 -0.143397890697E-01 -0.145280288272E-01 -0.147186363530E-01
682 -0.149116414313E-01 -0.151070742191E-01 -0.153049652533E-01 -0.155053454558E-01
683 -0.157082461358E-01 -0.159136989976E-01 -0.161217361440E-01 -0.163323900812E-01
684 -0.165456937250E-01 -0.167616804045E-01 -0.169803838685E-01 -0.172018382903E-01
685 -0.174260782727E-01 -0.176531388543E-01 -0.178830555140E-01 -0.181158641771E-01
686 -0.183516012208E-01 -0.185903034801E-01 -0.188320082532E-01 -0.190767533070E-01
687 -0.193245768841E-01 -0.195755177082E-01 -0.198296149894E-01 -0.200869084317E-01
688 -0.203474382383E-01 -0.206112451178E-01 -0.208783702913E-01 -0.211488554983E-01
689 -0.214227430034E-01 -0.217000756026E-01 -0.219808966303E-01 -0.222652499661E-01
690 -0.225531800416E-01 -0.228447318474E-01 -0.231399509396E-01 -0.234388834475E-01
691 -0.237415760811E-01 -0.240480761373E-01 -0.243584315086E-01 -0.246726906896E-01
692 -0.249909027845E-01 -0.253131175162E-01 -0.256393852321E-01 -0.259697569133E-01
693 -0.263042841826E-01 -0.266430193115E-01 -0.269860152291E-01 -0.273333255307E-01
694 -0.276850044858E-01 -0.280411070461E-01 -0.284016888548E-01 -0.287668062552E-01
695 -0.291365162992E-01 -0.295108767561E-01 -0.298899461225E-01 -0.302737836304E-01
696 -0.306624492569E-01 -0.310560037340E-01 -0.314545085570E-01 -0.318580259953E-01
697 -0.322666191016E-01 -0.326803517212E-01 -0.330992885033E-01 -0.335234949098E-01
698 -0.339530372265E-01 -0.343879825726E-01 -0.348283989119E-01 -0.352743550633E-01
699 -0.357259207109E-01 -0.361831664160E-01 -0.366461636272E-01 -0.371149846918E-01
700 -0.375897028676E-01 -0.380703923337E-01 -0.385571282023E-01 -0.390499865307E-01
701 -0.395490443328E-01 -0.400543795915E-01 -0.405660712706E-01 -0.410841993272E-01
702 -0.416088447247E-01 -0.421400894443E-01 -0.426780164991E-01 -0.432227099465E-01
703 -0.437742549009E-01 -0.443327375480E-01 -0.448982451573E-01 -0.454708660964E-01
704 -0.460506898448E-01 -0.466378070072E-01 -0.472323093285E-01 -0.478342897078E-01
705 -0.484438422127E-01 -0.490610620945E-01 -0.496860458026E-01 -0.503188909999E-01
706 -0.509596965780E-01 -0.516085626726E-01 -0.522655906793E-01 -0.529308832691E-01
707 -0.536045444051E-01 -0.542866793580E-01 -0.549773947230E-01 -0.556767984367E-01
708 -0.563849997934E-01 -0.571021094624E-01 -0.578282395057E-01 -0.585635033950E-01
709 -0.593080160296E-01 -0.600618937546E-01 -0.608252543789E-01 -0.615982171935E-01
710 -0.623809029905E-01 -0.631734340817E-01 -0.639759343180E-01 -0.647885291083E-01
711 -0.656113454397E-01 -0.664445118972E-01 -0.672881586834E-01 -0.681424176394E-01
712 -0.690074222652E-01 -0.698833077405E-01 -0.707702109462E-01 -0.716682704853E-01
713 -0.725776267051E-01 -0.734984217188E-01 -0.744307994279E-01 -0.753749055446E-01
714 -0.763308876150E-01 -0.772988950416E-01 -0.782790791069E-01 -0.792715929975E-01
715 -0.802765918275E-01 -0.812942326630E-01 -0.823246745469E-01 -0.833680785235E-01
716 -0.844246076635E-01 -0.854944270905E-01 -0.865777040056E-01 -0.876746077145E-01
717 -0.887853096537E-01 -0.899099834173E-01 -0.910488047840E-01 -0.922019517454E-01
718 -0.933696045327E-01 -0.945519456461E-01 -0.957491598827E-01 -0.969614343654E-01
719 -0.981889585728E-01 -0.994319243683E-01 -0.100690526030 -0.101964960283
720 -0.103255426327 -0.104562125870 -0.105885263159 -0.107225045013
721 -0.108581680854 -0.109955382740 -0.111346365400 -0.112754846265
722 -0.114181045504 -0.115625186058 -0.117087493677 -0.118568196949
723 -0.120067527344 -0.121585719246 -0.123123009988 -0.124679639895
724 -0.126255852316 -0.127851893665 -0.129468013459 -0.131104464359
725 -0.132761502205 -0.134439386062 -0.136138378257 -0.137858744421
726 -0.139600753531 -0.141364677952 -0.143150793478 -0.144959379382
727 -0.146790718451 -0.148645097035 -0.150522805094 -0.152424136239
728 -0.154349387781 -0.156298860778 -0.158272860081 -0.160271694382
729 -0.162295676263 -0.164345122247 -0.166420352845 -0.168521692608
730 -0.170649470176 -0.172804018335 -0.174985674062 -0.177194778585
731 -0.179431677434 -0.181696720493 -0.183990262059 -0.186312660897
732 -0.188664280296 -0.191045488124 -0.193456656892 -0.195898163807
733 -0.198370390835 -0.200873724759 -0.203408557242 -0.205975284889
734 -0.208574309309 -0.211206037177 -0.213870880301 -0.216569255687
735 -0.219301585601 -0.222068297643 -0.224869824808 -0.227706605557
736 -0.230579083890 -0.233487709410 -0.236432937398 -0.239415228888
737 -0.242435050734 -0.245492875687 -0.248589182473 -0.251724455864
738 -0.254899186761 -0.258113872263 -0.261369015759 -0.264665126995
739 -0.268002722164 -0.271382323987 -0.274804461791 -0.278269671602
740 -0.281778496222 -0.285331485322 -0.288929195529 -0.292572190509
741 -0.296261041067 -0.299996325230 -0.303778628344 -0.307608543167
742 -0.311486669963 -0.315413616600 -0.319389998647 -0.323416439471
743 -0.327493570341 -0.331622030528 -0.335802467406 -0.340035536559
744 -0.344321901886 -0.348662235708 -0.353057218876 -0.357507540882
745 -0.362013899971 -0.366577003253 -0.371197566820 -0.375876315858
746 -0.380613984768 -0.385411317285 -0.390269066600 -0.395187995479
747 -0.400168876392 -0.405212491635 -0.410319633463 -0.415491104213
748 -0.420727716442 -0.426030293056 -0.431399667445 -0.436836683624
749 -0.442342196367 -0.447917071353 -0.453562185302 -0.459278426128
750 -0.465066693080 -0.470927896893 -0.476862959938 -0.482872816377
751 -0.488958412319 -0.495120705975 -0.501360667820 -0.507679280753
752 -0.514077540265 -0.520556454604 -0.527117044943 -0.533760345557
753 -0.540487403989 -0.547299281235 -0.554197051920 -0.561181804481
754 -0.568254641350 -0.575416679144 -0.582669048855 -0.590012896042
755 -0.597449381028 -0.604979679101 -0.612604980713 -0.620326491686
756 -0.628145433422 -0.636063043114 -0.644080573960 -0.652199295382
757 -0.660420493246 -0.668745470088 -0.677175545343 -0.685712055576
758 -0.694356354720 -0.703109814309 -0.711973823731 -0.720949790466
759 -0.730039140342 -0.739243317789 -0.748563786097 -0.758002027682
760 -0.767559544350 -0.777237857572 -0.787038508760 -0.796963059547
761 -0.807013092074 -0.817190209278 -0.827496035191 -0.837932215238
762 -0.848500416544 -0.859202328242 -0.870039661792 -0.881014151299
763 -0.892127553843 -0.903381649810 -0.914778243232 -0.926319162128
764 -0.938006258858 -0.949841410476 -0.961826519097 -0.973963512262
765 -0.986254343317 -0.998700991797 -1.01130546381 -1.02406979244
766 -1.03699603815 -1.05008628918 -1.06334266201 -1.07676730172
767 -1.09036238248 -1.10413010797 -1.11807271183 -1.13219245815
768 -1.14649164188 -1.16097258937 -1.17563765882 -1.19048924079
769 -1.20552975870 -1.22076166936 -1.23618746347 -1.25180966620
770 -1.26763083770 -1.28365357365 -1.29988050589 -1.31631430294
771 -1.33295767061 -1.34981335263 -1.36688413124 -1.38417282784
772 -1.40168230361 -1.41941546018 -1.43737524033 -1.45556462861
773 -1.47398665211 -1.49264438111 -1.51154092987 -1.53067945733
774 -1.55006316788 -1.56969531216 -1.58957918782 -1.60971814036
775 -1.63011556394 -1.65077490224 -1.67169964932 -1.69289335048
776 -1.71435960322 -1.73610205810 -1.75812441974 -1.78043044773
777 -1.80302395767 -1.82590882212 -1.84908897170 -1.87256839606
778 -1.89635114505 -1.92044132971 -1.94484312351 -1.96956076342
779 -1.99459855110 -2.01996085413 -2.04565210721 -2.07167681344
780 -2.09803954555 -2.12474494729 -2.15179773470 -2.17920269753
781 -2.20696470062 -2.23508868531 -2.26357967093 -2.29244275629
782 -2.32168312121 -2.35130602804 -2.38131682331 -2.41172093930
783 -2.44252389574 -2.47373130148 -2.50534885624 -2.53738235233
784 -2.56983767651 -2.60272081176 -2.63603783923 -2.66979494005
785 -2.70399839735 -2.73865459822 -2.77377003571 -2.80935131090
786 -2.84540513495 -2.88193833129 -2.91895783772 -2.95647070865
787 -2.99448411726 -3.03300535784 -3.07204184804 -3.11160113119
788 -3.15169087868 -3.19231889232 -3.23349310675 -3.27522159191
789 -3.31751255544 -3.36037434521 -3.40381545179 -3.44784451097
790 -3.49247030628 -3.53770177150 -3.58354799326 -3.63001821347
791 -3.67712183197 -3.72486840895 -3.77326766751 -3.82232949613
792 -3.87206395109 -3.92248125895 -3.97359181887 -4.02540620495
793 -4.07793516848 -4.13118964014 -4.18518073209 -4.23991973998
794 -4.29541814487 -4.35168761496 -4.40874000730 -4.46658736924
795 -4.52524193977 -4.58471615069 -4.64502262748 -4.70617419008
796 -4.76818385331 -4.83106482712 -4.89483051643 -4.95949452074
797 -5.02507063336 -5.09157284027 -5.15901531855 -5.22741243438
798 -5.29677874055 -5.36712897347 -5.43847804961 -5.51084106131
799 -5.58423327202 -5.65867011078 -5.73416716597 -5.81074017827
800 -5.88840503279 -5.96717775028 -6.04707447730 -6.12811147550
801 -6.21030510965 -6.29367183458 -6.37822818085 -6.46399073910
802 -6.55097614295 -6.63920105049 -6.72868212411 -6.81943600870
803 -6.91147930804 -7.00482855941 -7.09950020610 -7.19551056795
804 -7.29287580964 -7.39161190669 -7.49173460907 -7.59325940222
805 -7.69620146543 -7.80057562742 -7.90639631901 -8.01367752275
806 -8.12243271931 -8.23267483065 -8.34441615960 -8.45766832601
807 -8.57244219906 -8.68874782577 -8.80659435555 -8.92598996058
808 -9.04694175207 -9.16945569209 -9.29353650104 -9.41918756057
809 -9.54641081190 -9.67520664950 -9.80557381009 -9.93750925686
810 -10.0710080591 -10.2060632670 -10.3426657822 -10.4808042232
811 -10.6204647875 -10.7616311084 -10.9042841091 -11.0484018527
812 -11.1939593889 -11.3409285989 -11.4892780376 -11.6389727745
813 -11.7899742343 -11.9422400377 -12.0957238430 -12.2503751910
814 -12.4061393529 -12.5629571835 -12.7207649812 -12.8794943563
815 -13.0390721098 -13.1994201243 -13.3604552701 -13.5220893281
816 -13.6842289332 -13.8467755397 -14.0096254135 -14.1726696535
817 -14.3357942460 -14.4988801559 -14.6618034591 -14.8244355200
818 -14.9866432189 -15.1482892329 -15.3092323756 -15.4693279995
819 -15.6284284640 -15.7863836724 -15.9430416970 -16.0982492953
820 -16.2518537434 -16.4036985526 -16.5536384383 -16.7015454972
821 -16.8470786609 -16.9907860453 -17.1304291968 -17.2630082265
822 -17.3916950955 -17.5186022815 -17.6429800079 -17.7650106218
823 -17.8846367581 -18.0018241640 -18.1165513928 -18.2287984911
824 -18.3385538778 -18.4458148854 -18.5505895102 -18.6528979269
825 -18.7527740015 -18.8502668082 -18.9454421711 -19.0383842437
826 -19.1291971409 -19.2180066292 -19.3049618876 -19.3902373357
827 -19.4740345486 -19.5565842523 -19.6381483910 -19.7190222998
828 -19.7995369524 -19.8800612771 -19.9610045438 -20.0428187832
829 -20.1260012146 -20.2110966222 -20.2986996275 -20.3894567566
830 -20.4840681812 -20.5832890169 -20.6879299683 -20.7988571108
831 -20.9169905638 -21.0433017254 -21.1788087493 -21.3245698477
832 -21.4816739744 -21.6512284780 -21.8343431398 -22.0321104415
833 -22.2455796747 -22.4757334352 -22.7234333871 -22.9894274945
834 -23.2742354596 -23.5781112300 -23.9010755557 -24.2426861525
835 -24.6020748277 -24.9779155742 -25.3682866811 -25.7706674995
836 -26.1818737878 -26.5980375239 -27.0146020196 -27.4263499290
837 -27.8274705686 -28.2116764077 -28.5723789514 -28.9029350281
838 -29.1969752129 -29.4488270662 -29.6540467726 -29.8100771572
839 -29.9170421718 -29.9787342448 -30.0037403026 -30.0069047125
840 -30.0060710840 -30.0053029068 -30.0046205298 -30.0040312326
841 -30.0035039851 -30.0030426788 -30.0026365663 -30.0022805302
842 -30.0019688109 -30.0016964272 -30.0014588623 -30.0012520615
843 -30.0010723889 -30.0007919083 -30.0005824716 -30.0004266961
844 -30.0003112940 -30.0002261473 -30.0001635825 -30.0001178034
845 -30.0000844500 -30.0000602557 -30.0000427842 -30.0000302250
846 -30.0000212399 -30.0000148431 -30.0000103117 -30.0000071190
847 -30.0000048815 -30.0000033227 -30.0000022433 -30.0000015006
848 -30.0000009936 -30.0000006497 -30.0000004188 -30.0000002651
849 -30.0000001639 -30.0000000983 -30.0000000563 -30.0000000300
850 -30.0000000140 -30.0000000045 -29.9999999993 -29.9999999966
851 -29.9999999955 -29.9999999953 -29.9999999956 -29.9999999961
852 -29.9999999966 -29.9999999972 -29.9999999977 -29.9999999982
853 -29.9999999985 -29.9999999989 -29.9999999991 -29.9999999993
854 -29.9999999995 -29.9999999996 -29.9999999997 -29.9999999998
855 -29.9999999998 -29.9999999999 -29.9999999999 -29.9999999999
856 -29.9999999999 -30.0000000000 -30.0000000000 -30.0000000000
857 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
858 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
859 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
860 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
861 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
862 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
863 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
864 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
865 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
866 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
867 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
868 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
869 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
870 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
871 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
872 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
873 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
874 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
875 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
876 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
877 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
878 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
879 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
880 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
881 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
882 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
883 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
884 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
885 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
886 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
887 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
888 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
889 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
890 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
891 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
892 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
893 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
894 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
895 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
896 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
897 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
898 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
899 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
900 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
901 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
902 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
903 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
904 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
905 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
906 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
907 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
908 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
909 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
910 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
911 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
912 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
913 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
914 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
915 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
916 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
917 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
918 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
919 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
920 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
921 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
922 Down Pseudopotential follows (l on next line)
923 2
924 -0.140097856392E-04 -0.281959262620E-04 -0.425602379214E-04 -0.571056340534E-04
925 -0.718335295773E-04 -0.867470623356E-04 -0.101847949390E-03 -0.117138886199E-03
926 -0.132622127695E-03 -0.148300130212E-03 -0.164175337344E-03 -0.180250229448E-03
927 -0.196527319830E-03 -0.213009150428E-03 -0.229698295930E-03 -0.246597366531E-03
928 -0.263709000627E-03 -0.281035871752E-03 -0.298580689931E-03 -0.316346193748E-03
929 -0.334335159278E-03 -0.352550398867E-03 -0.370994758950E-03 -0.389671119228E-03
930 -0.408582399102E-03 -0.427731554839E-03 -0.447121575220E-03 -0.466755494254E-03
931 -0.486636377319E-03 -0.506767330058E-03 -0.527151498565E-03 -0.547792069399E-03
932 -0.568692267504E-03 -0.589855355812E-03 -0.611284644090E-03 -0.632983479711E-03
933 -0.654955252370E-03 -0.677203395722E-03 -0.699731388200E-03 -0.722542746476E-03
934 -0.745641035992E-03 -0.769029866255E-03 -0.792712892292E-03 -0.816693815716E-03
935 -0.840976378419E-03 -0.865564379841E-03 -0.890461662517E-03 -0.915672111820E-03
936 -0.941199669082E-03 -0.967048324845E-03 -0.993222117891E-03 -0.101972513393E-02
937 -0.104656151795E-02 -0.107373546353E-02 -0.110125121249E-02 -0.112911306989E-02
938 -0.115732538467E-02 -0.118589256668E-02 -0.121481908089E-02 -0.124410944393E-02
939 -0.127376823529E-02 -0.130380008892E-02 -0.133420969624E-02 -0.136500180874E-02
940 -0.139618123998E-02 -0.142775285835E-02 -0.145972159869E-02 -0.149209245922E-02
941 -0.152487049264E-02 -0.155806082192E-02 -0.159166863586E-02 -0.162569918512E-02
942 -0.166015778429E-02 -0.169504981794E-02 -0.173038074248E-02 -0.176615607459E-02
943 -0.180238140248E-02 -0.183906239170E-02 -0.187620477091E-02 -0.191381434132E-02
944 -0.195189698351E-02 -0.199045864727E-02 -0.202950535567E-02 -0.206904321060E-02
945 -0.210907839295E-02 -0.214961715427E-02 -0.219066582972E-02 -0.223223083578E-02
946 -0.227431866371E-02 -0.231693589218E-02 -0.236008917901E-02 -0.240378526776E-02
947 -0.244803098613E-02 -0.249283324544E-02 -0.253819904934E-02 -0.258413548438E-02
948 -0.263064972822E-02 -0.267774905012E-02 -0.272544080730E-02 -0.277373245401E-02
949 -0.282263153552E-02 -0.287214568940E-02 -0.292228265597E-02 -0.297305026887E-02
950 -0.302445645887E-02 -0.307650925910E-02 -0.312921680267E-02 -0.318258732663E-02
951 -0.323662916769E-02 -0.329135077203E-02 -0.334676069071E-02 -0.340286757874E-02
952 -0.345968020452E-02 -0.351720744612E-02 -0.357545829164E-02 -0.363444184154E-02
953 -0.369416731323E-02 -0.375464403951E-02 -0.381588146931E-02 -0.387788917118E-02
954 -0.394067683322E-02 -0.400425426757E-02 -0.406863140774E-02 -0.413381831190E-02
955 -0.419982516719E-02 -0.426666228642E-02 -0.433434011288E-02 -0.440286922132E-02
956 -0.447226032072E-02 -0.454252425195E-02 -0.461367199482E-02 -0.468571466686E-02
957 -0.475866352296E-02 -0.483252996429E-02 -0.490732552972E-02 -0.498306190762E-02
958 -0.505975093368E-02 -0.513740458692E-02 -0.521603500361E-02 -0.529565446988E-02
959 -0.537627542513E-02 -0.545791046697E-02 -0.554057235143E-02 -0.562427399565E-02
960 -0.570902847577E-02 -0.579484903592E-02 -0.588174908680E-02 -0.596974220508E-02
961 -0.605884214054E-02 -0.614906281612E-02 -0.624041832726E-02 -0.633292294983E-02
962 -0.642659113792E-02 -0.652143752553E-02 -0.661747693476E-02 -0.671472437103E-02
963 -0.681319503003E-02 -0.691290429661E-02 -0.701386775159E-02 -0.711610117172E-02
964 -0.721962052859E-02 -0.732444199960E-02 -0.743058196276E-02 -0.753805700162E-02
965 -0.764688391095E-02 -0.775707969426E-02 -0.786866156908E-02 -0.798164697271E-02
966 -0.809605355718E-02 -0.821189919934E-02 -0.832920200113E-02 -0.844798028960E-02
967 -0.856825262596E-02 -0.869003780231E-02 -0.881335484739E-02 -0.893822303048E-02
968 -0.906466186229E-02 -0.919269109848E-02 -0.932233074477E-02 -0.945360105732E-02
969 -0.958652254740E-02 -0.972111598392E-02 -0.985740239814E-02 -0.999540308482E-02
970 -0.101351396057E-01 -0.102766337973E-01 -0.104199077662E-01 -0.105649839000E-01
971 -0.107118848682E-01 -0.108606336222E-01 -0.110112534062E-01 -0.111637677546E-01
972 -0.113182004968E-01 -0.114745757647E-01 -0.116329179918E-01 -0.117932519194E-01
973 -0.119556025997E-01 -0.121199954007E-01 -0.122864560095E-01 -0.124550104349E-01
974 -0.126256850144E-01 -0.127985064171E-01 -0.129735016456E-01 -0.131506980436E-01
975 -0.133301232988E-01 -0.135118054459E-01 -0.136957728744E-01 -0.138820543289E-01
976 -0.140706789159E-01 -0.142616761093E-01 -0.144550757524E-01 -0.146509080640E-01
977 -0.148492036440E-01 -0.150499934761E-01 -0.152533089339E-01 -0.154591817871E-01
978 -0.156676442026E-01 -0.158787287529E-01 -0.160924684218E-01 -0.163088966056E-01
979 -0.165280471217E-01 -0.167499542137E-01 -0.169746525541E-01 -0.172021772528E-01
980 -0.174325638617E-01 -0.176658483785E-01 -0.179020672545E-01 -0.181412573998E-01
981 -0.183834561887E-01 -0.186287014645E-01 -0.188770315476E-01 -0.191284852409E-01
982 -0.193831018338E-01 -0.196409211108E-01 -0.199019833572E-01 -0.201663293647E-01
983 -0.204340004373E-01 -0.207050383997E-01 -0.209794856026E-01 -0.212573849284E-01
984 -0.215387797999E-01 -0.218237141855E-01 -0.221122326073E-01 -0.224043801469E-01
985 -0.227002024526E-01 -0.229997457481E-01 -0.233030568375E-01 -0.236101831135E-01
986 -0.239211725663E-01 -0.242360737880E-01 -0.245549359829E-01 -0.248778089746E-01
987 -0.252047432118E-01 -0.255357897797E-01 -0.258710004054E-01 -0.262104274653E-01
988 -0.265541239969E-01 -0.269021437033E-01 -0.272545409631E-01 -0.276113708404E-01
989 -0.279726890898E-01 -0.283385521687E-01 -0.287090172444E-01 -0.290841422027E-01
990 -0.294639856584E-01 -0.298486069628E-01 -0.302380662140E-01 -0.306324242665E-01
991 -0.310317427396E-01 -0.314360840280E-01 -0.318455113115E-01 -0.322600885640E-01
992 -0.326798805645E-01 -0.331049529070E-01 -0.335353720102E-01 -0.339712051283E-01
993 -0.344125203616E-01 -0.348593866674E-01 -0.353118738694E-01 -0.357700526705E-01
994 -0.362339946627E-01 -0.367037723380E-01 -0.371794591011E-01 -0.376611292796E-01
995 -0.381488581360E-01 -0.386427218796E-01 -0.391427976782E-01 -0.396491636705E-01
996 -0.401618989779E-01 -0.406810837173E-01 -0.412067990128E-01 -0.417391270095E-01
997 -0.422781508857E-01 -0.428239548655E-01 -0.433766242333E-01 -0.439362453457E-01
998 -0.445029056450E-01 -0.450766936750E-01 -0.456576990917E-01 -0.462460126794E-01
999 -0.468417263650E-01 -0.474449332309E-01 -0.480557275304E-01 -0.486742047030E-01
1000 -0.493004613884E-01 -0.499345954416E-01 -0.505767059489E-01 -0.512268932430E-01
1001 -0.518852589185E-01 -0.525519058478E-01 -0.532269381979E-01 -0.539104614455E-01
1002 -0.546025823942E-01 -0.553034091916E-01 -0.560130513448E-01 -0.567316197393E-01
1003 -0.574592266549E-01 -0.581959857835E-01 -0.589420122479E-01 -0.596974226186E-01
1004 -0.604623349323E-01 -0.612368687107E-01 -0.620211449790E-01 -0.628152862848E-01
1005 -0.636194167169E-01 -0.644336619256E-01 -0.652581491413E-01 -0.660930071950E-01
1006 -0.669383665383E-01 -0.677943592639E-01 -0.686611191259E-01 -0.695387815611E-01
1007 -0.704274837097E-01 -0.713273644375E-01 -0.722385643568E-01 -0.731612258487E-01
1008 -0.740954930856E-01 -0.750415120530E-01 -0.759994305735E-01 -0.769693983288E-01
1009 -0.779515668834E-01 -0.789460897088E-01 -0.799531222067E-01 -0.809728217337E-01
1010 -0.820053476265E-01 -0.830508612252E-01 -0.841095259001E-01 -0.851815070768E-01
1011 -0.862669722613E-01 -0.873660910672E-01 -0.884790352418E-01 -0.896059786926E-01
1012 -0.907470975151E-01 -0.919025700201E-01 -0.930725767613E-01 -0.942573005638E-01
1013 -0.954569265528E-01 -0.966716421821E-01 -0.979016372638E-01 -0.991471039979E-01
1014 -0.100408237002 -0.101685233343 -0.102978292565 -0.104287616725
1015 -0.105613410419 -0.106955880819 -0.108315237703 -0.109691693487
1016 -0.111085463260 -0.112496764818 -0.113925818696 -0.115372848202
1017 -0.116838079455 -0.118321741420 -0.119824065939 -0.121345287775
1018 -0.122885644640 -0.124445377240 -0.126024729308 -0.127623947645
1019 -0.129243282154 -0.130882985884 -0.132543315068 -0.134224529162
1020 -0.135926890887 -0.137650666269 -0.139396124679 -0.141163538881
1021 -0.142953185069 -0.144765342910 -0.146600295594 -0.148458329871
1022 -0.150339736099 -0.152244808290 -0.154173844155 -0.156127145153
1023 -0.158105016532 -0.160107767385 -0.162135710691 -0.164189163368
1024 -0.166268446324 -0.168373884501 -0.170505806933 -0.172664546793
1025 -0.174850441447 -0.177063832504 -0.179305065876 -0.181574491823
1026 -0.183872465016 -0.186199344588 -0.188555494192 -0.190941282055
1027 -0.193357081041 -0.195803268705 -0.198280227352 -0.200788344101
1028 -0.203328010940 -0.205899624794 -0.208503587579 -0.211140306272
1029 -0.213810192972 -0.216513664963 -0.219251144784 -0.222023060289
1030 -0.224829844719 -0.227671936767 -0.230549780649 -0.233463826171
1031 -0.236414528802 -0.239402349743 -0.242427756002 -0.245491220464
1032 -0.248593221969 -0.251734245383 -0.254914781675 -0.258135327998
1033 -0.261396387762 -0.264698470713 -0.268042093018 -0.271427777339
1034 -0.274856052922 -0.278327455674 -0.281842528251 -0.285401820141
1035 -0.289005887751 -0.292655294495 -0.296350610881 -0.300092414601
1036 -0.303881290623 -0.307717831280 -0.311602636367 -0.315536313230
1037 -0.319519476867 -0.323552750020 -0.327636763277 -0.331772155165
1038 -0.335959572257 -0.340199669270 -0.344493109169 -0.348840563269
1039 -0.353242711344 -0.357700241733 -0.362213851445 -0.366784246271
1040 -0.371412140899 -0.376098259018 -0.380843333439 -0.385648106208
1041 -0.390513328720 -0.395439761842 -0.400428176031 -0.405479351454
1042 -0.410594078113 -0.415773155967 -0.421017395060 -0.426327615650
1043 -0.431704648334 -0.437149334183 -0.442662524874 -0.448245082823
1044 -0.453897881319 -0.459621804670 -0.465417748333 -0.471286619061
1045 -0.477229335046 -0.483246826061 -0.489340033611 -0.495509911080
1046 -0.501757423879 -0.508083549605 -0.514489278189 -0.520975612060
1047 -0.527543566296 -0.534194168789 -0.540928460410 -0.547747495168
1048 -0.554652340384 -0.561644076854 -0.568723799026 -0.575892615170
1049 -0.583151647555 -0.590502032628 -0.597944921194 -0.605481478601
1050 -0.613112884922 -0.620840335145 -0.628665039364 -0.636588222969
1051 -0.644611126843 -0.652735007563 -0.660961137595 -0.669290805499
1052 -0.677725316138 -0.686265990881 -0.694914167820 -0.703671201981
1053 -0.712538465541 -0.721517348046 -0.730609256640 -0.739815616284
1054 -0.749137869988 -0.758577479043 -0.768135923253 -0.777814701177
1055 -0.787615330366 -0.797539347612 -0.807588309192 -0.817763791119
1056 -0.828067389400 -0.838500720290 -0.849065420556 -0.859763147739
1057 -0.870595580426 -0.881564418518 -0.892671383510 -0.903918218768
1058 -0.915306689813 -0.926838584608 -0.938515713849 -0.950339911262
1059 -0.962313033899 -0.974436962444 -0.986713601519 -0.999144879999
1060 -1.01173275132 -1.02447919382 -1.03738621102 -1.05045583202
1061 -1.06369011177 -1.07709113143 -1.09066099875 -1.10440184836
1062 -1.11831584215 -1.13240516963 -1.14667204832 -1.16111872405
1063 -1.17574747140 -1.19056059404 -1.20556042514 -1.22074932774
1064 -1.23612969515 -1.25170395138 -1.26747455149 -1.28344398205
1065 -1.29961476157 -1.31598944086 -1.33257060353 -1.34936086640
1066 -1.36636287992 -1.38357932869 -1.40101293183 -1.41866644353
1067 -1.43654265344 -1.45464438722 -1.47297450699 -1.49153591181
1068 -1.51033153822 -1.52936436073 -1.54863739230 -1.56815368494
1069 -1.58791633018 -1.60792845961 -1.62819324549 -1.64871390123
1070 -1.66949368200 -1.69053588532 -1.71184385157 -1.73342096469
1071 -1.75527065267 -1.77739638825 -1.79980168949 -1.82249012045
1072 -1.84546529176 -1.86873086133 -1.89229053500 -1.91614806721
1073 -1.94030726167 -1.96477197208 -1.98954610282 -2.01463360968
1074 -2.04003850057 -2.06576483630 -2.09181673130 -2.11819835439
1075 -2.14491392959 -2.17196773688 -2.19936411304 -2.22710745243
1076 -2.25520220787 -2.28365289145 -2.31246407544 -2.34164039311
1077 -2.37118653967 -2.40110727316 -2.43140741540 -2.46209185289
1078 -2.49316553782 -2.52463348898 -2.55650079282 -2.58877260443
1079 -2.62145414856 -2.65455072067 -2.68806768803 -2.72201049075
1080 -2.75638464292 -2.79119573374 -2.82644942863 -2.86215147043
1081 -2.89830768056 -2.93492396027 -2.97200629181 -3.00956073973
1082 -3.04759345215 -3.08611066202 -3.12511868851 -3.16462393830
1083 -3.20463290697 -3.24515218042 -3.28618843625 -3.32774844527
1084 -3.36983907289 -3.41246728070 -3.45564012799 -3.49936477325
1085 -3.54364847583 -3.58849859752 -3.63392260419 -3.67992806748
1086 -3.72652266650 -3.77371418957 -3.82151053597 -3.86991971777
1087 -3.91894986162 -3.96860921064 -4.01890612632 -4.06984909042
1088 -4.12144670695 -4.17370770414 -4.22664093650 -4.28025538686
1089 -4.33456016846 -4.38956452707 -4.44527784318 -4.50170963416
1090 -4.55886955649 -4.61676740805 -4.67541313036 -4.73481681096
1091 -4.79498868571 -4.85593914122 -4.91767871723 -4.98021810908
1092 -5.04356817017 -5.10773991447 -5.17274451901 -5.23859332648
1093 -5.30529784778 -5.37286976458 -5.44132093197 -5.51066338106
1094 -5.58090932163 -5.65207114476 -5.72416142551 -5.79719292554
1095 -5.87117859577 -5.94613157906 -6.02206521282 -6.09899303162
1096 -6.17692876983 -6.25588636415 -6.33587995617 -6.41692389487
1097 -6.49903273905 -6.58222125974 -6.66650444248 -6.75189748964
1098 -6.83841582248 -6.92607508328 -7.01489113724 -7.10488007434
1099 -7.19605821096 -7.28844209145 -7.38204848945 -7.47689440906
1100 -7.57299708580 -7.67037398730 -7.76904281379 -7.86902149827
1101 -7.97032820643 -8.07298133619 -8.17699951691 -8.28240160820
1102 -8.38920669835 -8.49743410226 -8.60710335889 -8.71823422818
1103 -8.83084668746 -8.94496092711 -9.06059734569 -9.17777654431
1104 -9.29651932020 -9.41684665950 -9.53877972918 -9.66233986795
1105 -9.78754857627 -9.91442750515 -10.0429984439 -10.1732833067
1106 -10.3053041175 -10.4390829942 -10.5746421304 -10.7120037766
1107 -10.8511902190 -10.9922237566 -11.1351266764 -11.2799212272
1108 -11.4266295902 -11.5752738480 -11.7258759511 -11.8784576819
1109 -12.0330406154 -12.1896460784 -12.3482951041 -12.5090083844
1110 -12.6718062191 -12.8367084608 -13.0037344570 -13.1729029870
1111 -13.3442321965 -13.5177395259 -13.6934416362 -13.8713543283
1112 -14.0514924583 -14.2338698480 -14.4184991889 -14.6053919419
1113 -14.7945582299 -14.9860067254 -15.1797445311 -15.3757770542
1114 -15.5741078742 -15.7747386035 -15.9776687403 -16.1828955157
1115 -16.3904137312 -16.6002155899 -16.8122905198 -17.0266249881
1116 -17.2432023084 -17.4620024391 -17.6830017746 -17.9061729270
1117 -18.1314845009 -18.3589008597 -18.5883818846 -18.8198827259
1118 -19.0533535476 -19.2887392652 -19.5259792779 -19.7650071954
1119 -20.0057505605 -20.2481305680 -20.4920617822 -20.7374518527
1120 -20.9842012313 -21.2322028915 -21.4813420515 -21.7314959047
1121 -21.9825333587 -22.2343147854 -22.4866917863 -22.7395069756
1122 -22.9925937839 -23.2457762882 -23.4988690703 -23.7516771105
1123 -24.0039957191 -24.2556105132 -24.5062974431 -24.7558228753
1124 -25.0039437369 -25.2504077302 -25.4949536218 -25.7373116138
1125 -25.9772038034 -26.2143447360 -26.4484420730 -26.6791971819
1126 -26.9063070769 -27.1294602789 -27.3483519672 -27.5626903829
1127 -27.7719665532 -27.9765569609 -28.1740481625 -28.3612623456
1128 -28.5411910965 -28.7157646026 -28.8840494793 -29.0460438002
1129 -29.2015059739 -29.3502183357 -29.4919776604 -29.6265847183
1130 -29.7538520630 -29.8736055161 -29.9856868833 -30.0899564464
1131 -30.1862954484 -30.2746085609 -30.3548263321 -30.4269076066
1132 -30.4908419022 -30.5466517209 -30.5943947724 -30.6341660697
1133 -30.6660998777 -30.6903714661 -30.7071986147 -30.7168428591
1134 -30.7196104031 -30.7158526445 -30.7059662756 -30.6903928831
1135 -30.6696179872 -30.6441694381 -30.6146150967 -30.5815596972
1136 -30.5456407748 -30.5075235671 -30.4678947167 -30.4274546204
1137 -30.3869082529 -30.3469542200 -30.3082718212 -30.2715058102
1138 -30.2372485058 -30.2060189331 -30.1782384624 -30.1542028008
1139 -30.1340478716 -30.1177179503 -30.1049026076 -30.0950341320
1140 -30.0871613879 -30.0801780141 -30.0738500694 -30.0680896888
1141 -30.0628188469 -30.0580018355 -30.0535686536 -30.0494667609
1142 -30.0456405375 -30.0420387803 -30.0386144876 -30.0353269058
1143 -30.0321436171 -30.0290429129 -30.0260161581 -30.0230697709
1144 -30.0202262970 -30.0175239775 -30.0150137190 -30.0127546360
1145 -30.0107981094 -30.0091915038 -30.0079147003 -30.0069051317
1146 -30.0060710840 -30.0053029068 -30.0046205298 -30.0040312326
1147 -30.0035039851 -30.0030426788 -30.0026365663 -30.0022805302
1148 -30.0019688109 -30.0016964272 -30.0014588623 -30.0012520615
1149 -30.0010723889 -30.0007919083 -30.0005824716 -30.0004266961
1150 -30.0003112940 -30.0002261473 -30.0001635825 -30.0001178034
1151 -30.0000844500 -30.0000602557 -30.0000427842 -30.0000302250
1152 -30.0000212399 -30.0000148431 -30.0000103117 -30.0000071190
1153 -30.0000048815 -30.0000033227 -30.0000022433 -30.0000015006
1154 -30.0000009936 -30.0000006497 -30.0000004188 -30.0000002651
1155 -30.0000001639 -30.0000000983 -30.0000000563 -30.0000000300
1156 -30.0000000140 -30.0000000045 -29.9999999993 -29.9999999966
1157 -29.9999999955 -29.9999999953 -29.9999999956 -29.9999999961
1158 -29.9999999966 -29.9999999972 -29.9999999977 -29.9999999982
1159 -29.9999999985 -29.9999999989 -29.9999999991 -29.9999999993
1160 -29.9999999995 -29.9999999996 -29.9999999997 -29.9999999998
1161 -29.9999999998 -29.9999999999 -29.9999999999 -29.9999999999
1162 -29.9999999999 -30.0000000000 -30.0000000000 -30.0000000000
1163 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1164 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1165 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1166 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1167 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1168 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1169 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1170 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1171 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1172 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1173 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1174 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1175 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1176 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1177 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1178 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1179 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1180 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1181 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1182 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1183 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1184 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1185 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1186 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1187 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1188 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1189 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1190 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1191 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1192 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1193 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1194 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1195 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1196 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1197 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1198 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1199 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1200 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1201 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1202 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1203 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1204 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1205 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1206 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1207 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1208 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1209 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1210 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1211 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1212 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1213 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1214 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1215 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1216 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1217 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1218 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1219 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1220 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1221 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1222 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1223 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1224 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1225 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1226 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1227 -30.0000000000 -30.0000000000 -30.0000000000 -30.0000000000
1228 Down Pseudopotential follows (l on next line)
1229 3
1230 -0.107149210866E-04 -0.215647528627E-04 -0.325507900762E-04 -0.436754183009E-04
1231 -0.549395179543E-04 -0.663456856534E-04 -0.778950904275E-04 -0.895898728082E-04
1232 -0.101431725821E-03 -0.113422536828E-03 -0.125564173289E-03 -0.137858532184E-03
1233 -0.150307536104E-03 -0.162913128839E-03 -0.175677279408E-03 -0.188601984719E-03
1234 -0.201689262162E-03 -0.214941156460E-03 -0.228359740913E-03 -0.241947109373E-03
1235 -0.255705385072E-03 -0.269636719304E-03 -0.283743289134E-03 -0.298027296475E-03
1236 -0.312490974413E-03 -0.327136584268E-03 -0.341966411135E-03 -0.356982776480E-03
1237 -0.372188024182E-03 -0.387584529304E-03 -0.403174698174E-03 -0.418960968280E-03
1238 -0.434945806071E-03 -0.451131706442E-03 -0.467521201466E-03 -0.484116851038E-03
1239 -0.500921247470E-03 -0.517937017003E-03 -0.535166820502E-03 -0.552613346785E-03
1240 -0.570279323029E-03 -0.588167509931E-03 -0.606280703030E-03 -0.624621733644E-03
1241 -0.643193462417E-03 -0.661998796463E-03 -0.681040674760E-03 -0.700322067764E-03
1242 -0.719845990381E-03 -0.739615495070E-03 -0.759633670736E-03 -0.779903641263E-03
1243 -0.800428577704E-03 -0.821211687472E-03 -0.842256213797E-03 -0.863565450605E-03
1244 -0.885142722970E-03 -0.906991404004E-03 -0.929114908900E-03 -0.951516691304E-03
1245 -0.974200254355E-03 -0.997169142100E-03 -0.102042694236E-02 -0.104397728915E-02
1246 -0.106782386447E-02 -0.109197039095E-02 -0.111642064325E-02 -0.114117844479E-02
1247 -0.116624765874E-02 -0.119163220352E-02 -0.121733604829E-02 -0.124336320869E-02
1248 -0.126971774876E-02 -0.129640378678E-02 -0.132342549699E-02 -0.135078709771E-02
1249 -0.137849286250E-02 -0.140654712570E-02 -0.143495426805E-02 -0.146371872584E-02
1250 -0.149284499760E-02 -0.152233763364E-02 -0.155220124000E-02 -0.158244048368E-02
1251 -0.161306009267E-02 -0.164406484728E-02 -0.167545959298E-02 -0.170724923781E-02
1252 -0.173943874559E-02 -0.177203314838E-02 -0.180503753791E-02 -0.183845707193E-02
1253 -0.187229697243E-02 -0.190656252480E-02 -0.194125908630E-02 -0.197639207639E-02
1254 -0.201196698467E-02 -0.204798937111E-02 -0.208446486213E-02 -0.212139915942E-02
1255 -0.215879803364E-02 -0.219666732544E-02 -0.223501295559E-02 -0.227384091531E-02
1256 -0.231315726979E-02 -0.235296816308E-02 -0.239327981549E-02 -0.243409852716E-02
1257 -0.247543067358E-02 -0.251728271499E-02 -0.255966119158E-02 -0.260257272215E-02
1258 -0.264602401331E-02 -0.269002185538E-02 -0.273457312248E-02 -0.277968477448E-02
1259 -0.282536386127E-02 -0.287161752087E-02 -0.291845297985E-02 -0.296587755640E-02
1260 -0.301389865999E-02 -0.306252379544E-02 -0.311176055996E-02 -0.316161664597E-02
1261 -0.321209984516E-02 -0.326321804474E-02 -0.331497923188E-02 -0.336739149433E-02
1262 -0.342046302276E-02 -0.347420210810E-02 -0.352861714809E-02 -0.358371664578E-02
1263 -0.363950920862E-02 -0.369600355709E-02 -0.375320851562E-02 -0.381113302404E-02
1264 -0.386978613488E-02 -0.392917700901E-02 -0.398931492910E-02 -0.405020929181E-02
1265 -0.411186961069E-02 -0.417430552071E-02 -0.423752677801E-02 -0.430154326207E-02
1266 -0.436636497321E-02 -0.443200204100E-02 -0.449846472245E-02 -0.456576340083E-02
1267 -0.463390859238E-02 -0.470291094583E-02 -0.477278124120E-02 -0.484353039724E-02
1268 -0.491516946873E-02 -0.498770964757E-02 -0.506116227046E-02 -0.513553881359E-02
1269 -0.521085089902E-02 -0.528711029305E-02 -0.536432891239E-02 -0.544251882361E-02
1270 -0.552169224146E-02 -0.560186153925E-02 -0.568303924301E-02 -0.576523803590E-02
1271 -0.584847076323E-02 -0.593275042936E-02 -0.601809020237E-02 -0.610450341919E-02
1272 -0.619200357988E-02 -0.628060435712E-02 -0.637031959577E-02 -0.646116331228E-02
1273 -0.655314970302E-02 -0.664629314035E-02 -0.674060817769E-02 -0.683610955269E-02
1274 -0.693281218743E-02 -0.703073119123E-02 -0.712988186505E-02 -0.723027970106E-02
1275 -0.733194038664E-02 -0.743487980616E-02 -0.753911404486E-02 -0.764465938928E-02
1276 -0.775153232993E-02 -0.785974956837E-02 -0.796932801160E-02 -0.808028478209E-02
1277 -0.819263721838E-02 -0.830640287333E-02 -0.842159952506E-02 -0.853824517309E-02
1278 -0.865635804216E-02 -0.877595658914E-02 -0.889705950116E-02 -0.901968570078E-02
1279 -0.914385434827E-02 -0.926958484556E-02 -0.939689683873E-02 -0.952581021961E-02
1280 -0.965634513158E-02 -0.978852197191E-02 -0.992236139241E-02 -0.100578843060E-01
1281 -0.101951118890E-01 -0.103340655824E-01 -0.104747670995E-01 -0.106172384244E-01
1282 -0.107615018182E-01 -0.109075798233E-01 -0.110554952642E-01 -0.112052712528E-01
1283 -0.113569311926E-01 -0.115104987804E-01 -0.116659980111E-01 -0.118234531832E-01
1284 -0.119828888980E-01 -0.121443300677E-01 -0.123078019192E-01 -0.124733299942E-01
1285 -0.126409401571E-01 -0.128106585979E-01 -0.129825118347E-01 -0.131565267203E-01
1286 -0.133327304455E-01 -0.135111505418E-01 -0.136918148878E-01 -0.138747517132E-01
1287 -0.140599896025E-01 -0.142475574989E-01 -0.144374847103E-01 -0.146298009143E-01
1288 -0.148245361598E-01 -0.150217208748E-01 -0.152213858704E-01 -0.154235623447E-01
1289 -0.156282818876E-01 -0.158355764875E-01 -0.160454785352E-01 -0.162580208276E-01
1290 -0.164732365755E-01 -0.166911594066E-01 -0.169118233722E-01 -0.171352629517E-01
1291 -0.173615130576E-01 -0.175906090427E-01 -0.178225867036E-01 -0.180574822871E-01
1292 -0.182953324970E-01 -0.185361744975E-01 -0.187800459209E-01 -0.190269848732E-01
1293 -0.192770299384E-01 -0.195302201876E-01 -0.197865951827E-01 -0.200461949818E-01
1294 -0.203090601492E-01 -0.205752317581E-01 -0.208447513981E-01 -0.211176611833E-01
1295 -0.213940037560E-01 -0.216738222957E-01 -0.219571605251E-01 -0.222440627163E-01
1296 -0.225345736990E-01 -0.228287388663E-01 -0.231266041823E-01 -0.234282161898E-01
1297 -0.237336220161E-01 -0.240428693821E-01 -0.243560066089E-01 -0.246730826249E-01
1298 -0.249941469743E-01 -0.253192498247E-01 -0.256484419745E-01 -0.259817748607E-01
1299 -0.263193005680E-01 -0.266610718362E-01 -0.270071420679E-01 -0.273575653379E-01
1300 -0.277123964013E-01 -0.280716907013E-01 -0.284355043793E-01 -0.288038942824E-01
1301 -0.291769179731E-01 -0.295546337376E-01 -0.299371005954E-01 -0.303243783085E-01
1302 -0.307165273905E-01 -0.311136091165E-01 -0.315156855319E-01 -0.319228194627E-01
1303 -0.323350745256E-01 -0.327525151367E-01 -0.331752065234E-01 -0.336032147329E-01
1304 -0.340366066429E-01 -0.344754499734E-01 -0.349198132954E-01 -0.353697660424E-01
1305 -0.358253785222E-01 -0.362867219261E-01 -0.367538683409E-01 -0.372268907607E-01
1306 -0.377058630979E-01 -0.381908601939E-01 -0.386819578319E-01 -0.391792327486E-01
1307 -0.396827626459E-01 -0.401926262026E-01 -0.407089030880E-01 -0.412316739731E-01
1308 -0.417610205435E-01 -0.422970255129E-01 -0.428397726347E-01 -0.433893467167E-01
1309 -0.439458336331E-01 -0.445093203379E-01 -0.450798948798E-01 -0.456576464143E-01
1310 -0.462426652188E-01 -0.468350427063E-01 -0.474348714396E-01 -0.480422451459E-01
1311 -0.486572587314E-01 -0.492800082964E-01 -0.499105911497E-01 -0.505491058244E-01
1312 -0.511956520931E-01 -0.518503309834E-01 -0.525132447937E-01 -0.531844971096E-01
1313 -0.538641928192E-01 -0.545524381306E-01 -0.552493405877E-01 -0.559550090872E-01
1314 -0.566695538958E-01 -0.573930866672E-01 -0.581257204596E-01 -0.588675697539E-01
1315 -0.596187504704E-01 -0.603793799884E-01 -0.611495771633E-01 -0.619294623457E-01
1316 -0.627191574007E-01 -0.635187857257E-01 -0.643284722710E-01 -0.651483435587E-01
1317 -0.659785277021E-01 -0.668191544269E-01 -0.676703550901E-01 -0.685322627015E-01
1318 -0.694050119442E-01 -0.702887391955E-01 -0.711835825486E-01 -0.720896818337E-01
1319 -0.730071786402E-01 -0.739362163388E-01 -0.748769401038E-01 -0.758294969360E-01
1320 -0.767940356855E-01 -0.777707070747E-01 -0.787596637228E-01 -0.797610601685E-01
1321 -0.807750528950E-01 -0.818018003543E-01 -0.828414629915E-01 -0.838942032706E-01
1322 -0.849601856992E-01 -0.860395768552E-01 -0.871325454115E-01 -0.882392621636E-01
1323 -0.893599000557E-01 -0.904946342079E-01 -0.916436419435E-01 -0.928071028167E-01
1324 -0.939851986412E-01 -0.951781135176E-01 -0.963860338634E-01 -0.976091484411E-01
1325 -0.988476483886E-01 -0.100101727248 -0.101371580998 -0.102657408082
1326 -0.103959409440 -0.105277788541 -0.106612751414 -0.107964506680
1327 -0.109333265586 -0.110719242036 -0.112122652626 -0.113543716677
1328 -0.114982656271 -0.116439696283 -0.117915064419 -0.119408991249
1329 -0.120921710245 -0.122453457818 -0.124004473352 -0.125574999245
1330 -0.127165280945 -0.128775566989 -0.130406109040 -0.132057161930
1331 -0.133728983698 -0.135421835629 -0.137135982298 -0.138871691609
1332 -0.140629234837 -0.142408886671 -0.144210925260 -0.146035632250
1333 -0.147883292834 -0.149754195795 -0.151648633548 -0.153566902193
1334 -0.155509301553 -0.157476135227 -0.159467710634 -0.161484339065
1335 -0.163526335728 -0.165594019799 -0.167687714471 -0.169807747007
1336 -0.171954448791 -0.174128155375 -0.176329206540 -0.178557946340
1337 -0.180814723165 -0.183099889789 -0.185413803428 -0.187756825796
1338 -0.190129323160 -0.192531666402 -0.194964231070 -0.197427397445
1339 -0.199921550594 -0.202447080433 -0.205004381792 -0.207593854468
1340 -0.210215903297 -0.212870938212 -0.215559374310 -0.218281631915
1341 -0.221038136647 -0.223829319485 -0.226655616838 -0.229517470614
1342 -0.232415328285 -0.235349642962 -0.238320873464 -0.241329484392
1343 -0.244375946198 -0.247460735264 -0.250584333974 -0.253747230791
1344 -0.256949920333 -0.260192903451 -0.263476687308 -0.266801785461
1345 -0.270168717937 -0.273578011321 -0.277030198834 -0.280525820418
1346 -0.284065422825 -0.287649559697 -0.291278791658 -0.294953686401
1347 -0.298674818778 -0.302442770888 -0.306258132175 -0.310121499513
1348 -0.314033477308 -0.317994677587 -0.322005720101 -0.326067232416
1349 -0.330179850018 -0.334344216412 -0.338560983222 -0.342830810295
1350 -0.347154365808 -0.351532326368 -0.355965377127 -0.360454211883
1351 -0.364999533196 -0.369602052495 -0.374262490193 -0.378981575801
1352 -0.383760048046 -0.388598654982 -0.393498154117 -0.398459312528
1353 -0.403482906984 -0.408569724070 -0.413720560314 -0.418936222310
1354 -0.424217526849 -0.429565301050 -0.434980382490 -0.440463619338
1355 -0.446015870493 -0.451638005715 -0.457330905772 -0.463095462575
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to all changes: