Merge lp:~nickpapior/siesta/4.1-ts-int into lp:siesta/4.1

Proposed by Nick Papior
Status: Merged
Approved by: Nick Papior
Approved revision: 813
Merged at revision: 833
Proposed branch: lp:~nickpapior/siesta/4.1-ts-int
Merge into: lp:siesta/4.1
Diff against target: 2824 lines (+467/-558) (has conflicts)
37 files modified
Docs/siesta.tex (+194/-150)
Docs/tex/variables.tex (+4/-0)
Src/Makefile (+65/-56)
Src/compute_dm.F (+5/-20)
Src/dhscf.F (+5/-13)
Src/final_H_f_stress.F (+1/-10)
Src/kpoint_grid.F90 (+1/-1)
Src/m_energies.F90 (+0/-7)
Src/m_ncdf_siesta.F90 (+3/-19)
Src/m_new_dm.F90 (+0/-30)
Src/m_ts_electype.F90 (+2/-3)
Src/m_ts_hartree.F90 (+1/-1)
Src/m_ts_kpoints.F90 (+31/-14)
Src/m_ts_options.F90 (+10/-3)
Src/proximity_check.F (+0/-6)
Src/read_options.F90 (+0/-6)
Src/reinit.F (+9/-4)
Src/save_density_matrix.F (+37/-74)
Src/siesta_dicts.F90 (+0/-6)
Src/siesta_forces.F (+0/-18)
Src/siesta_init.F (+0/-4)
Src/siesta_options.F90 (+0/-2)
Src/state_init.F (+3/-16)
Src/version.F90 (+5/-3)
Src/write_subs.F (+0/-16)
Util/COOP/Makefile (+8/-7)
Util/Denchar/Src/Makefile (+8/-7)
Util/Gen-basis/Makefile (+8/-7)
Util/Grimme/Makefile (+8/-7)
Util/Helpers/Makefile (+8/-7)
Util/STM/ol-stm/Src/Makefile (+8/-7)
Util/SpPivot/Makefile (+8/-7)
Util/TS/TBtrans/Makefile (+7/-6)
Util/TS/ts2ts/Makefile (+8/-7)
Util/TS/tshs2tshs/Makefile (+8/-7)
Util/VCA/Makefile (+8/-7)
version.info (+4/-0)
Text conflict in Docs/siesta.tex
Text conflict in Docs/tex/variables.tex
Text conflict in version.info
To merge this branch: bzr merge lp:~nickpapior/siesta/4.1-ts-int
Reviewer Review Type Date Requested Status
Alberto Garcia Pending
Review via email: mp+334209@code.launchpad.net

Commit message

Make transiesta an intrinsic part of siesta.

This change is merely to accomplish transiesta calculations with the siesta executable. This I think clears *many* problems with the different executables and should yield less problems in the future in regards of bug-reports because now everything is in one source (no preprocessor statements).

Description of the change

This change makes transiesta fully part of the siesta executable.

The changes are minimal because everything was prepared. The only difference is that additional transiesta options are printed and allowed for.

The main problem with this transition is that electrode calculations now have to either:
1) Set TS.HS.Save (and possibly TS.DE.Save) true to store the TSHS files.
2) Run siesta with optional flag --electrode which overwrites the internal fdf-flags as specified in 1.

I have tested the SOC_Pt2_xx example and compared 4.1 with this branch, with no differences.

I decided that this transition was appropriate for 4.1 because:
1) 4.1 already has a major difference in transiesta
2) To post-pone this transition will only confuse newcomers to the code

(My assumption is that with psml and the new N-electrode transiesta there will be at least some newcomers)

However, to make it backward compatible the transiesta executable is still enabled. When compiling this executable the *only* difference is the default values for the above mentioned flags.

Lastly, I decided that this transisito

To post a comment you must log in.
lp:~nickpapior/siesta/4.1-ts-int updated
813. By Nick Papior

Cleaned up the last details for the TS merge

Now the documentation is on par with the merging of
transiesta into siesta.
Since this superseedes the need for two executables a lot
of documentation describing the "make transiesta" stuff has
been removed.

Also, fixed a few minor details in the options of transiesta.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'Docs/siesta.tex'
2--- Docs/siesta.tex 2017-12-22 10:33:21 +0000
3+++ Docs/siesta.tex 2017-12-28 12:43:28 +0000
4@@ -202,9 +202,9 @@
5 Julian Gale (then at Imperial College, London). In 2007 Jose M. Cela
6 (Barcelona Supercomputing Center, BSC) became a core developer.
7
8-The current TranSIESTA module within SIESTA is developed by
9+The current \tsiesta\ module within SIESTA is developed by
10 Nick R. Papior (then at Technical University of Denmark) and Mads Brandbyge.
11-The original TranSIESTA module was developed by
12+The original \tsiesta\ module was developed by
13 Pablo Ordejon and Jose L. Mozos (then at ICMAB-CSIC), and Mads Brandbyge,
14 Kurt Stokbro, and Jeremy Taylor (Technical Univ. of Denmark).
15
16@@ -347,6 +347,10 @@
17 density. A new density is computed using the NEGF formalism, which closes the DFT-NEGF
18 self consistent cycle.
19
20+Starting from version 4.1, \tsiesta\ is an intrinsic part of the
21+\siesta\ code. I.e. a separate executable is not necessary
22+anymore. See Sec.~\ref{sec:transiesta} for details.
23+
24 For more details on the formalism, see the main \tsiesta\
25 reference cited below. A section has been added to this User's Guide,
26 that describes the necessary steps involved in doing transport
27@@ -414,7 +418,7 @@
28 Extensive review of applications as of summer 2003.
29
30 \item
31- ``Improvements on non-equilibrium and transport Green function techniques: The next-generation tranSIESTA'',
32+ ``Improvements on non-equilibrium and transport Green function techniques: The next-generation TranSIESTA'',
33 Nick Papior, Nicolas Lorente, Thomas Frederiksen, Alberto GarcĂ­a and
34 Mads Brandbyge, Computer Physics Communications, \textbf{212}, 8--24 (2017).
35
36@@ -433,6 +437,7 @@
37 \url{http://www.uam.es/siesta}.
38
39 \section{COMPILATION}
40+\label{sec:compilation}
41
42 \subsection{The build directory}
43
44@@ -1123,20 +1128,23 @@
45
46 \shell{siesta -out RUN.out}.
47
48-\end{fdfoptions}
49-Additionally \tsiesta\ accepts these flags:
50-\begin{fdfoptions}
51+ \option[-electrode|-elec]%
52+ \fdfdepend{TS!HS.Save,TS!DE.Save}
53+ denote this as an electrode calculation which forces the
54+ \sysfile{TSHS} and \sysfile{TSDE} files to be saved.
55
56 \option[-V]%
57- specify the bias for the current \tsiesta\ run.
58+ \fdfdepend{TS.Voltage}
59+ specify the bias for the current \tsiesta\ run.
60
61- \shell{transiesta -V 0.25:eV} or \shell{transiesta -V "0.25 eV"}
62+ \shell{siesta -V 0.25:eV} or \shell{siesta -V "0.25 eV"}
63 which sets the applied bias to $0.25\,\mathrm{eV}$.
64
65 \end{fdfoptions}
66
67
68-\section{THE FLEXIBLE DATA FORMAT (FDF)}\index{FDF}
69+\section{THE FLEXIBLE DATA FORMAT (FDF)}
70+\index{FDF}
71
72 The main input file,\index{input file}
73 which is read as the standard input (unit 5),
74@@ -10483,21 +10491,38 @@
75
76
77 \section{TRANSIESTA}
78+\label{sec:transiesta}
79+
80
81 \siesta\ includes the possibility of performing calculations of
82 electronic transport properties using the \tsiesta\ method. This
83-Section describes how to compile the code to be able to use these
84+Section describes how to use these
85 capabilities, and a reference guide to the relevant \fdflib\
86 options. We describe here only the additional options available for
87 \tsiesta\ calculations, while the rest of the Siesta functionalities
88 and variables are described in the previous sections of this User's
89 Guide.
90
91+Starting from 4.1 \tsiesta\ is intrinsic to the \siesta\ executable
92+and thus there is no need for two separate executables.
93+
94+
95+\subsection{Source code structure}
96+
97+In this implementation, the \tsiesta\ routines have been grouped in a
98+set of modules whose file names begin with \texttt{m\_ts} or
99+\texttt{ts}.
100+
101+\subsection{Compilation}
102+
103+Simply compile \siesta\ and \tsiesta\ is enabled, see
104+Sec.~\ref{sec:compilation} for details on compiling \siesta.
105+
106 \subsection{Brief description}
107
108 The \tsiesta\ method is a procedure to solve the electronic
109 structure of an open system formed by a finite structure sandwiched
110-between two semi-infinite metallic leads. A finite bias can be applied
111+between semi-infinite metallic leads. A finite bias can be applied
112 between both leads, to drive a finite current. The method is described
113 in detail in \cite{Brandbyge2002,Papior2017}. In practical terms,
114 calculations using \tsiesta\ involve the solution of the
115@@ -10525,54 +10550,16 @@
116
117 The current \tsiesta\ module has been completely rewritten by Nick
118 R. Papior and encompass a highly advanced inversion algorithm as well
119-as allowing $N$ electrode setups among just a few additional
120-features. Furthermore, the utility \tbtrans\ has also been fully
121-re-coded (by Nick R. Papior) to be a generic tight-binding code capable
122-of analyzing physics from the Greens function perspective in $N\ge1$
123-setups.
124-
125-\subsection{Source code structure}
126-
127-In this implementation, the \tsiesta\ routines have been grouped in a
128-set of modules whose file names begin with \texttt{m\_ts} or
129-\texttt{ts}. The inclusion of \tsiesta\ has also required the
130-modification of some of the \siesta\ routines. Presently, these
131-modifications are controlled by pre-processor compilation directives
132-(such as in \texttt{\#ifdef TRANSIESTA}). See the next section for
133-compilation instructions.
134-
135-\subsection{Compilation}
136-
137-The standard \siesta\ executable (obtained as described in Section
138-2) does not include the \tsiesta\ modules. In order to use the
139-\tsiesta\ capabilities, you must compile the \siesta\
140-package as indicated in this Section. In this way, the compilation is
141-done using the appropriate preprocessor flags needed to include the
142-\tsiesta\ modules in the binary file. To generate a binary of
143-\siesta\ which includes the \tsiesta\ capabilities, just
144-type:
145-
146-\begin{verbatim}
147-$ make transiesta
148-\end{verbatim}
149-
150-using the appropriate \file{arch.make} file for your system (note that
151-you do not need to make any modification on your arch.make file: you
152-can use the same one that you have used to make a standard \siesta\
153-compilation in your system). The Makefile takes care of defining the
154-appropriate preprocessor flag \texttt{-DTRANSIESTA} so that the
155-\tsiesta\ modules and modifications are compiled and incorporated into
156-the binary. Upon successful compilation, the binary file
157-\program{transiesta} will be generated, containing an executable
158-version of \siesta\ with \tsiesta\ capabilities.
159-
160-
161-\subsection{Brief explanation}
162+as allowing $N$ electrode setups among many new features. Furthermore,
163+the utility \tbtrans\ has also been fully re-coded (by Nick R. Papior)
164+to be a generic tight-binding code capable of analyzing physics from
165+the Greens function perspective in $N\ge1$ setups.
166+
167
168 \begin{itemize}
169 \item%
170 Transport calculations involve \emph{electrode} (EL) calculations,
171- and then the Scattering Region (SR) calculation. The
172+ and subsequently the Scattering Region (SR) calculation. The
173 \emph{electrode} calculations are usual \siesta\ calculations, but
174 where a file \sysfile{TSHS} is generated. These files contain the
175 information necessary for calculation of the self-energies. If any
176@@ -10603,10 +10590,16 @@
177
178 \item %
179 When performing several bias calculations, it is heavily advised to
180+<<<<<<< TREE
181 copy the \sysfile{TSDE} for the closest, previously, calculated
182 bias. In effect one starts by calculating the zero-bias case and
183 slowly increase the bias in reasonable steps (say $\sim
184 0.1\,\mathrm{V}$).
185+=======
186+ run different bias' in different directories. To drastically improve
187+ convergence (and throughput) one should copy the \sysfile{TSDE} from
188+ the closest, previously, calculated bias to the current bias.
189+>>>>>>> MERGE-SOURCE
190
191 \item %
192 The \sysfile{TSDE} may be read equivalently as the
193@@ -10629,7 +10622,7 @@
194 \item %
195 When the non-equilibrium calculation uses different electrodes one
196 may use so-called \emph{buffer} atoms behind the electrodes to act
197- as additional screening region when calculating the initial guess
198+ as additional screening regions when calculating the initial guess
199 (using \siesta) for \tsiesta. Essentially they may be used to
200 achieve a better ``bulk-like'' environment at the electrodes.
201
202@@ -10641,12 +10634,19 @@
203 contours must be \emph{well} below the lowest eigenvalue.
204
205 \item%
206+<<<<<<< TREE
207 \tsiesta\ assumes periodic boundary conditions in the
208 directions transverse to the electrodes semi-infinite
209 directions. If the semi-infinite directions are unique \tsiesta\ can
210 automatically figure out where $k$-point sampling are
211 allowed. However, for $N$ electrode calculations the user has to
212 explicitly specify the $k$-point sampling.
213+=======
214+ \tsiesta\ assumes periodic boundary conditions in directions
215+ orthogonal to the electrodes semi-infinite directions. If $N>2$
216+ \tsiesta\ does not assume anything and one is required to specify
217+ the periodicity (via $k$-points) separately.
218+>>>>>>> MERGE-SOURCE
219
220 \item%
221 The default algorithm for matrix inversion is the BTD method, before
222@@ -10654,35 +10654,48 @@
223 step \fdf{TS!Analyze}.
224
225 \item%
226+<<<<<<< TREE
227 When calculating transport properties it is \emph{very} important to
228 increase the $k$-point sampling when performing periodic system
229 calculations. It is thus important to converge the number of
230 $k$-points.
231+=======
232+ Importantly(!) the $k$-point sampling need typically be much higher
233+ in a \tbtrans\ calculation to achieve a converged transmission
234+ function.
235+>>>>>>> MERGE-SOURCE
236
237 \end{itemize}
238
239 \subsection{Electrodes}
240
241-In order to calculate the electronic structure of a system under
242-external bias, \tsiesta\ attaches the system to semi-infinite
243-electrodes which extend to their respective semi-infinite
244-directions. Examples of electrodes would include surfaces, nanowires,
245-nanotubes or even atomic chains. The electrode must be large enough
246-(in the semi-infinite direction) so that orbitals within the unit cell
247-only interact with a single nearest neighbor cell in the semi-infinite
248-direction (the size of the unit cell can thus be derived from the
249-range of support for the orbital basis functions). \tsiesta\ will warn
250-if this is not enforced. The electrodes are generated by a separate
251-transiesta run on a bulk system. The results are saved in a file with
252-extension \sysfile{TSHS} which contains a description of the electrode
253-unit cell, the position of the atoms within the unit cell, as well as
254-the Hamiltonian and overlap matrices that describe the electronic
255+To calculate the electronic structure of a system under external bias,
256+\tsiesta\ attaches the system to semi-infinite electrodes which extend
257+to their respective semi-infinite directions. Examples of electrodes
258+would include surfaces, nanowires, nanotubes or even atomic
259+chains. The electrode must be large enough (in the semi-infinite
260+direction) so that orbitals within the unit cell only interact with a
261+single nearest neighbor cell in the semi-infinite direction (the size
262+of the unit cell can thus be derived from the range of support for the
263+orbital basis functions). \tsiesta\ will stop if this is not
264+enforced. The electrodes are generated by a separate \tsiesta\ run on
265+a bulk system. The results are saved in a file with extension
266+\sysfile{TSHS} which contains a description of the electrode unit
267+cell, the position of the atoms within the unit cell, as well as the
268+Hamiltonian and overlap matrices that describe the electronic
269 structure of the lead. One can generate a variety of electrodes and
270-the typical use of transiesta would involve reusing the same electrode
271-for several setups. At runtime, the transiesta coordinates are checked
272+the typical use of \tsiesta\ would involve reusing the same electrode
273+for several setups. At runtime, the \tsiesta\ coordinates are checked
274 against the electrode coordinates and the program stops if there is a
275 mismatch to a certain precision ($10^{-4}\,\mathrm{Bohr}$).
276
277+To run an electrode calculation one should do:
278+\begin{shellexample}
279+ siesta --electrode RUN.fdf
280+\end{shellexample}
281+or define these options in the electrode fdf files:
282+\fdf{TS!HS.Save:true} and \fdf{TS!DE.Save:true} (the above
283+\code{--electrode} is a shorthand for setting the two options).
284
285 \paragraph{Principal layer interactions} %
286 \index{transiesta!electrode!principal layer}%
287@@ -10719,7 +10732,7 @@
288 calculations, only the usual \siesta\ options are relevant.
289 %
290 Note that since \tsiesta\ is a generic $N$ electrode NEGF code the
291-input options are heavily changed.
292+input options are heavily changed compared to versions prior to 4.1.
293
294 \subsubsection{Quick and dirty}
295
296@@ -10736,20 +10749,20 @@
297 ts2ts OLD.fdf > NEW.fdf
298 \end{fdfexample}
299 which translates all keys to the new, equivalent, input format. If you
300-are familiar with the old-style flags this is highly recommendable to
301-become comfortable with the new input format. Please note that some
302-defaults have changed to more conservative values in the newer
303-release.
304+are familiar with the old-style flags this is highly recommendable
305+while becoming comfortable with the new input format. Please note that
306+some defaults have changed to more conservative values in the newer
307+release.
308
309 If one does not know the old flags and wish to get a basic example of
310-an input file, a program \program{Util/TS/tselecs.sh} exists that can
311+an input file, a script \program{Util/TS/tselecs.sh} exists that can
312 create the basic input for $N$ electrodes. One may call it like:
313-\begin{fdfexample}
314+\begin{shellexample}
315 tselecs.sh -2 > TWO_ELECTRODE.fdf
316 tselecs.sh -3 > THREE_ELECTRODE.fdf
317 tselecs.sh -4 > FOUR_ELECTRODE.fdf
318 ...
319-\end{fdfexample}
320+\end{shellexample}
321 where the first call creates an input fdf for 2 electrode setups, the
322 second for a 3 electrode setup, and so on. See the help (\program{-h})
323 for the program for additional options.
324@@ -10757,11 +10770,11 @@
325 Before endeavoring on large scale calculations you are advised to run
326 an analyzation of the system at hand, you may run your system as
327 \begin{shellexample}
328- transiesta -fdf TS.Analyze RUN.fdf > analyze.out
329+ siesta -fdf TS.Analyze RUN.fdf > analyze.out
330 \end{shellexample}
331 which will analyze the sparsity pattern and print out several
332 different pivoting schemes. Please see \fdf{TS!Analyze} for additional
333-information.
334+information.
335
336
337 \subsubsection{General options}
338@@ -10820,11 +10833,11 @@
339 \fdf*{atom} line(s).
340
341 \begin{fdfexample}
342- %block TBT.Atoms.Buffer
343+ %block TS.Atoms.Buffer
344 atom [ 1 -- 5 ]
345 %endblock
346 # Or equivalently as a list
347- TBT.Atoms.Buffer [1 -- 5]
348+ TS.Atoms.Buffer [1 -- 5]
349 \end{fdfexample}
350 will remove atoms [1--5] from the calculation.
351
352@@ -10841,11 +10854,12 @@
353
354 \begin{fdfentry}{TS!SCF.Initialize}[string]<diagon|transiesta>%
355
356- Control which initial guess should be used for \tsiesta. The
357- general way is the \fdf*{diagon} solution method, however, one can
358- start immediately in a \tsiesta\ run. If you start directly with
359- \tsiesta\ please refer to these flags: \fdf{TS!Elecs!DM.Init},
360- \fdf{DM.Init.Bulk} and \fdf{TS!Fermi.Initial}.
361+ Control which initial guess should be used for \tsiesta. The general
362+ way is the \fdf*{diagon} solution method (which is preferred),
363+ however, one can start a \tsiesta\ run immediately. If you start
364+ directly with \tsiesta\ please refer to these flags:
365+ \fdf{TS!Elecs!DM.Init}, \fdf{DM.Init.Bulk} and
366+ \fdf{TS!Fermi.Initial}.
367
368 \note Setting this to \fdf*{transiesta} is highly experimental and
369 convergence may be extremely poor.
370@@ -10968,7 +10982,7 @@
371
372 Control whether the forces are calculated. If \emph{not} \tsiesta\
373 will use slightly less memory and the performance slightly
374- increased.
375+ increased, however the final forces shown are incorrect.
376
377 \end{fdflogicalT}
378
379@@ -11002,8 +11016,12 @@
380 cubic spline interpolation to much faster converge to the
381 ``correct'' Fermi level.
382
383+<<<<<<< TREE
384 This method will create a file called \file{TS\_FERMI} and works
385 best with the BTD algorithm.
386+=======
387+ This method will create a file called \file{TS\_FERMI}.
388+>>>>>>> MERGE-SOURCE
389
390 \end{fdfoptions}
391
392@@ -11012,9 +11030,9 @@
393 \begin{fdfentry}{TS!ChargeCorrection!Factor}[real]<0.75>
394
395 Should be between $0$ and $1$ to lower the charge adjustment. $0$
396- means no charge correction. $1$ means total charge
397- conservation. This will reduce the fluctuations in the SCF and
398- setting this to $1$ may result in difficulties in converging.
399+ means no charge correction. $1$ means total charge correction. This
400+ will reduce the fluctuations in the SCF and setting this to $1$ may
401+ result in difficulties in converging.
402
403 \end{fdfentry}
404
405@@ -11031,7 +11049,7 @@
406 The maximally allowed value that the Fermi level will change from a
407 charge correction using the Fermi correction method. In case the
408 Fermi level lies in between two bands a DOS of $0$ at the Fermi
409- level will make the Fermi change equal $\infty$. This is not
410+ level will make the Fermi change equal to $\infty$. This is not
411 physical and the user can thus truncate the correction.
412
413 \emph{If you know the band-gab, setting this to $1/4$ (or smaller)
414@@ -11042,15 +11060,24 @@
415
416 \begin{fdflogicalT}{TS!HS.Save}
417
418- Must be \fdftrue\ for saving the Hamiltonian. In almost no cases
419- is this useful to redefine.
420+ Must be \fdftrue\ for saving the Hamiltonian (\sysfile{TSHS}). Can only be set if
421+ \fdf{SolutionMethod} is not \fdf*{transiesta}.
422+
423+ The default is \fdffalse\ for \fdf{SolutionMethod} different from
424+ \fdf*{transiesta} and if \code{--electrode} has not been passed as a
425+ command line argument.
426
427 \end{fdflogicalT}
428
429 \begin{fdflogicalT}{TS!DE.Save}
430
431- Must be \fdftrue\ for saving the density matrix for continuation
432- runs. If \fdffalse\ the \sysfile{TSDE} file will not be created.
433+ Must be \fdftrue\ for saving the density and energy density matrix
434+ for continuation runs (\sysfile{TSDE}). Can only be set if
435+ \fdf{SolutionMethod} is not \fdf*{transiesta}.
436+
437+ The default is \fdffalse\ for \fdf{SolutionMethod} different from
438+ \fdf*{transiesta} and if \code{--electrode} has not been passed as a
439+ command line argument.
440
441 \end{fdflogicalT}
442
443@@ -11066,8 +11093,11 @@
444 \begin{fdflogicalF}{TS!SIESTA.Only}
445
446 Stop \tsiesta\ right after the initial diagonalization run in
447- \siesta. Upon exit it will also create the TSDE file which may be
448- used for initialization runs later.
449+ \siesta. Upon exit it will also create the \sysfile{TSDE} file which
450+ may be used for initialization runs later.
451+
452+ This is mainly intended for test runs where one wishes to start
453+ several calculations from the same initial density matrix.
454
455 \end{fdflogicalF}
456
457@@ -11075,9 +11105,9 @@
458 \begin{fdflogicalF}{TS!Analyze}
459
460 When using the BTD solution method (\fdf{TS!SolutionMethod}) this
461- will analyze the Hamiltonian and printout an analysis on the
462+ will analyze the Hamiltonian and printout an analysis of the
463 sparsity pattern for optimal choice of the BTD partitioning
464- algorithm.
465+ algorithm.
466
467 This yields information regarding the \fdf{TS!BTD!Pivot} flag.
468
469@@ -11088,7 +11118,7 @@
470
471 To run the analyzing step you may do:
472 \begin{shellexample}
473- transiesta -fdf TS.Analyze RUN.fdf > analyze.out
474+ siesta -fdf TS.Analyze RUN.fdf > analyze.out
475 \end{shellexample}
476 note that there is little gain on using MPI and it should complete
477 within a few minutes, no matter the number of orbitals.
478@@ -11177,7 +11207,6 @@
479 electrode(s), append \fdf*{+<elec-name>} to initialize the PCG
480 algorithm from the specified electrode.
481
482-
483 \end{fdfoptions}
484
485 Examples are
486@@ -11257,10 +11286,10 @@
487
488 Define how the correction of the Poisson equation is
489 superimposed. The default is to apply the linear correction across
490- the central region (if there are two semi-infinite aligned electrodes).
491- Otherwise this defaults to the \emph{box} solution which will
492- introduce spurious effects at the electrode boundaries. In this case
493- you are encouraged to supply a \fdf*{file}.
494+ the central region (if there are two semi-infinite aligned
495+ electrodes). Otherwise this defaults to the \emph{box} solution
496+ which will introduce spurious effects at the electrode
497+ boundaries. In this case you are encouraged to supply a \fdf*{file}.
498
499 If the input is a \fdf*{file}, it should be a NetCDF file containing
500 the grid information which acts as the boundary conditions for the
501@@ -11329,7 +11358,7 @@
502 For anything but two electrodes this defaults to \fdf*{elec-plane}
503 because the plane should be at a fixed position in the cell.
504
505- \note generally this shouldn't need to be changed.
506+ \note generally this need not be changed.
507
508 \end{fdfentry}
509
510@@ -11337,20 +11366,20 @@
511
512 Fraction of the correction that is applied.
513
514- \note this is an experimental feature and shouldn't be used.
515+ \note this is an experimental feature!
516
517 \end{fdfentry}
518
519
520 \subsubsection{Electrode description options}
521
522-As \tsiesta\ supports $N$ electrodes you need to specify all
523+As \tsiesta\ supports $N$ electrodes one needs to specify all
524 electrodes in a generic input format.
525
526 \begin{fdfentry}{TS!Elecs}[block]
527
528- Each line denote an electrode which may be queried in
529- \fdf{TS!Elec.<>} for its setup.
530+ Each line denote an electrode which is queried in \fdf{TS!Elec.<>}
531+ for its setup.
532
533 \end{fdfentry}
534
535@@ -11358,7 +11387,12 @@
536
537 Each line represents a setting for electrode \fdf*{<>}.
538 There are a few lines that \emph{must} be present, \fdf*{HS},
539- \fdf*{semi-inf-dir}, \fdf*{electrode-pos}, \fdf*{chem-pot}.
540+ \fdf*{semi-inf-dir}, \fdf*{electrode-pos}, \fdf*{chem-pot}. The
541+ remaining options are optional.
542+
543+ \note Options prefixed with \fdf*{tbt} are neglected in \tsiesta\
544+ calculations. In \tbtrans\ calculations these flags has precedence
545+ over the other options.
546
547 \begin{fdfoptions}
548
549@@ -11377,9 +11411,10 @@
550 The semi-infinite direction of the electrode with respect to the
551 electrode unit-cell.
552
553- \note this has nothing to do with the scattering region unit cell,
554- \tsiesta\ will figure out the alignment of the electrode unit-cell
555- and the scattering region unit-cell.
556+ \note this direction is \emph{not} with respect to the scattering
557+ region unit cell. It is with respect to the electrode unit
558+ cell. \tsiesta\ will figure out the alignment of the electrode
559+ unit cell and the scattering region unit-cell.
560
561 \option[chemical-potential|chem-pot|mu]%
562 \fdfindex*{TS!Elec.<>!chemical-potential}%
563@@ -11409,10 +11444,11 @@
564 \fdfindex*{TS!Elec.<>!Bulk}%
565 Logical controlling whether the Hamiltonian of the electrode
566 region in the scattering region is enforced \emph{bulk} or whether
567- the Hamiltonian is taken from the scattering region elements.
568+ the Hamiltonian is taken from the scattering region elements. If
569
570 \option[DM-update]%
571 \fdfindex*{TS!Elec.<>!DM-Update}%
572+ \fdfdepend{TS!Elec.<>!Bulk}%
573 String of values \fdf*{none}, \fdf*{cross-terms} or \fdf*{all}
574 which controls which part of the electrode density matrix elements
575 that are updated. If \fdf*{all}, both the density matrix elements
576@@ -11421,6 +11457,8 @@
577 only the coupling elements between the electrode and the
578 scattering region are updated.
579
580+ If \fdf{TS!Elec.<>!Bulk:false} this is forced to \fdf*{all}.
581+
582 \option[Gf]%
583 \fdfindex*{TS!Elec.<>!Gf}%
584 String with filename of the surface Green function data. This may
585@@ -11441,16 +11479,16 @@
586
587 \option[Eta]%
588 \fdfindex*{TS!Elec.<>!Eta}%
589+ \fdfdepend{TS!Elecs!Eta}
590 Control the imaginary part of the surface Green function for this
591- electrode. See \fdf{TS!Elecs!Eta}.
592+ electrode.
593
594 \option[Accuracy]%
595 \fdfindex*{TS!Elec.<>!Accuracy}%
596+ \fdfdepend{TS!Elecs!Accuracy}
597 Control the convergence accuracy required for the self-energy
598 calculation when using the Lopez-Sanchez, Lopez-Sanchez iterative
599 scheme.
600- %
601- See \fdf{TS!Elecs!Accuracy}.
602
603 \note advanced use \emph{only}.
604
605@@ -11467,10 +11505,10 @@
606
607 \option[Bloch]%
608 \fdfindex*{TS!Elec.<>!Bloch}%
609- $3$ integers are present on this line which each denote the number
610- of times bigger the scattering region electrode is compared to the
611- electrode, in each lattice direction. Remark that these expansion
612- coefficients are with regard to the electrode unit-cell.
613+ $3$ integers should be present on this line which each denote the
614+ number of times bigger the scattering region electrode is compared
615+ to the electrode, in each lattice direction. Remark that these
616+ expansion coefficients are with regard to the electrode unit-cell.
617 This is denoted ``Bloch'' because it is an expansion based on
618 Bloch waves.
619
620@@ -11509,7 +11547,7 @@
621 electrode $\mathbf k$ samplings are commensurate. This flag
622 controls whether this check is enforced.
623
624- \note only use if fully aware of the implications.
625+ \note only use if fully aware of the implications!
626
627 \end{fdfoptions}
628
629@@ -11595,7 +11633,7 @@
630
631 \end{fdfentry}
632
633-\begin{fdfentry}{TS!Elecs!Coord.EPS}[length]<$10^{-4}\,\mathrm{Bohr}$>
634+\begin{fdfentry}{TS!Elecs!Coord.EPS}[length]<$0.001\,\mathrm{Ang}$>
635
636 When using Bloch expansion of the self-energies one may experience
637 difficulties in obtaining perfectly aligned electrode coordinates.
638@@ -11619,8 +11657,8 @@
639
640 \begin{fdfentry}{TS!ChemPots}[block]
641
642- Each line denotes a new chemical potential which is
643- defined in the \fdf{TS!ChemPot.<>} block.
644+ Each line denotes a new chemical potential which is defined in the
645+ \fdf{TS!ChemPot.<>} block.
646
647 \end{fdfentry}
648
649@@ -11629,7 +11667,6 @@
650 Each line defines a setting for the chemical potential named
651 \fdf*{<>}.
652
653-
654 \begin{fdfoptions}
655
656 \option[chemical-shift|mu]%
657@@ -11751,15 +11788,18 @@
658 equilibrium). Fortunately the non-equilibrium contours are defined
659 from different chemical potentials Fermi functions, and as such this
660 contour is defined in the window of the minimum and maximum chemical
661-potentials.
662+potentials. Because the reference energy is the periodic Fermi level
663+it is advised to retain the average chemical potentials equal to
664+$0$. Otherwise applying different bias will shift transmission curves
665+calculated via \tbtrans\ relative to the average chemical potential.
666
667 In this section the equilibrium contours are defined, and in the next
668 section the non-equilibrium contours are defined.
669
670 \begin{fdfentry}{TS!Contours!Eq.Pole}[energy]<$2.5\,\mathrm{eV}$>
671
672- The imaginary part of the Fermi function tail when crossing the
673- Fermi level. Note that the actual number of poles may differ between
674+ The imaginary part of the line integral crossing the chemical
675+ potential. Note that the actual number of poles may differ between
676 different calculations where the electronic temperatures are
677 different.
678
679@@ -11770,7 +11810,7 @@
680
681 \begin{fdfentry}{TS!Contours!Eq.Pole.N}[integer]<8>
682
683- Manually select the \# of poles for the equilibrium contour.
684+ Manually select the number poles for the equilibrium contour.
685
686 \note this flag will only take effect if \fdf{TS!Contours!Eq.Pole}
687 is a negative energy.
688@@ -11806,7 +11846,7 @@
689
690 \option[tail]%
691 The final part of the contour \emph{must} be a tail which
692- denotes the Fermi-tail.
693+ denotes the Fermi function tail.
694
695 \end{fdfoptions}
696
697@@ -11816,8 +11856,12 @@
698 Define the integration range on the energy axis.
699 Thus \emph{a} and \emph{b} are energies.
700
701+ The parameters may also be given values \fdf*{prev}/\fdf*{next}
702+ which is the equivalent of specifying the same energy as the
703+ previous contour it is connected to.
704+
705 \note that \emph{b} may be supplied as \fdf*{inf} for \fdf*{tail}
706- parts.
707+ parts.
708
709 \option[points/delta]%
710 \fdfindex*{TS!Contour.<>!points}%
711@@ -11877,8 +11921,7 @@
712 \end{fdfentry}
713
714 These options complicate the input sequence for regular $2$ electrode
715-which is unfortunate. However, it allows highly customizable contours,
716-etc.
717+which is unfortunate. However, it allows highly customizable contours.
718
719 Using \program{tselecs.sh -only-c} yields this output:
720 \begin{fdfexample}
721@@ -11911,7 +11954,7 @@
722 These contour options refer to input options for the chemical
723 potentials as shown in Sec.~\ref{sec:ts:chem-pot}
724 (p.~\pageref{sec:ts:chem-pot}). Importantly one should note the shift
725-of the contours of corresponding to the chemical potential (the shift
726+of the contours corresponding to the chemical potential (the shift
727 corresponds to difference from the reference energy used in \tsiesta).
728
729
730@@ -11924,8 +11967,8 @@
731 \begin{fdfentry}{TS!Contours.nEq!Eta}[energy]<$0\,\mathrm{eV}$>
732
733 The imaginary part ($\eta$) of the device states. Generally this is
734- not necessary to define as the imaginary part arises from the
735- self-energies (where $\eta>0$).
736+ not necessary to define as the imaginary part naturally arises from
737+ the self-energies (where $\eta>0$).
738
739 \end{fdfentry}
740
741@@ -11979,15 +12022,15 @@
742 \subsection{Matching \texorpdfstring{\tsiesta\ }{TranSIESTA}
743 coordinates: basic rules}
744
745-Having discussed the possible input options of \tsiesta\ here
746-we just list a set of rules to construct the appropriate coordinates
747-of the scattering region. Contrary to versions pre 4.1, the order of
748+Having discussed the possible input options of \tsiesta\ here we just
749+list a set of rules to construct the appropriate coordinates of the
750+scattering region. Contrary to versions prior to 4.1, the order of
751 atoms is largely irrelevant. One may define all electrodes, then
752 subsequently the device, or vice versa. Similarly are buffer atoms not
753 restricted to be the first/last atoms.
754 %
755-However, each electrode atoms \emph{must} be defined
756-consecutively. I.e. if an electrode input option is given by:
757+However, each electrode atoms \emph{must} be consecutive in the input
758+file. I.e. if an electrode input option is given by:
759 \begin{fdfexample}
760 %block TS.Elec.<>
761 HS ../elec-<>/siesta.TSHS
762@@ -11996,8 +12039,8 @@
763 electrode-position 10
764 %endblock
765 \end{fdfexample}
766-then the atoms from $10$ to $21$ must coincide with the atoms of the
767-calculation performed in the \program{../elec-<>/}
768+then the atoms from $10$ to $10+4*3-1$ must coincide with the atoms of
769+the calculation performed in the \program{../elec-<>/}
770 subdirectory. The Bloch expansion requires a particular sequence of
771 the atoms which may be outlined as in the following loop:
772 \begin{fdfexample}
773@@ -12021,7 +12064,7 @@
774 means to create this is using the \sisl\cite{sisl} program and this command
775 line:
776 \begin{fdfexample}
777- sgeom -rx 1 -ry 3 -rz 1 ELEC.fdf DEVICE_ELEC.fdf
778+ sgeom -rz 1 -ry 3 -rx 1 ELEC.fdf DEVICE_ELEC.fdf
779 \end{fdfexample}
780 and then shift the coordinates according to the placement in the
781 device region.
782@@ -12039,7 +12082,7 @@
783 calculation.
784
785 \item[\sysfile{TSDE}]: The \tsiesta\ density matrix and energy
786- density matrix. During a transiesta run, the \sysfile{DM} values are
787+ density matrix. During a \tsiesta\ run, the \sysfile{DM} values are
788 used for the density matrix in the buffer (if used) and electrode
789 regions. The coupling terms may or may not be updated in a \tsiesta\
790 run, see \fdf{TS!Elec.<>!DM-Update}.
791@@ -12065,6 +12108,7 @@
792 Please see the separate \tbtrans\ manual
793 (\href{run:tbtrans.pdf}{tbtrans.pdf}).
794
795+
796 \section{ANALYSIS TOOLS}
797
798 There are a number of analysis tools and programs in the \texttt{Util}
799
800=== modified file 'Docs/tex/variables.tex'
801--- Docs/tex/variables.tex 2017-12-04 09:12:38 +0000
802+++ Docs/tex/variables.tex 2017-12-28 12:43:28 +0000
803@@ -6,8 +6,12 @@
804
805 \NewDocumentCommand\program{m}{\texttt{#1}}
806 \NewDocumentCommand\shell{m}{\texttt{#1}}
807+<<<<<<< TREE
808 \NewDocumentCommand\code{m}{\texttt{#1}}
809
810+=======
811+\NewDocumentCommand\code{m}{\texttt{#1}}
812+>>>>>>> MERGE-SOURCE
813
814 \NewDocumentCommand\method{m}{\textsc{#1}}
815
816
817=== modified file 'Src/Makefile'
818--- Src/Makefile 2017-11-17 20:53:23 +0000
819+++ Src/Makefile 2017-12-28 12:43:28 +0000
820@@ -19,7 +19,7 @@
821 AR ?= ar
822 RANLIB ?= ranlib
823
824-default: what siesta
825+default: siesta
826 include arch.make
827
828 # Ensure the correct implicit rules for the compilation
829@@ -56,7 +56,7 @@
830 IPO_FLAG?= -ipo
831
832
833-.PHONY: .siesta .transiesta what version
834+.PHONY: what version
835
836 what:
837 @echo
838@@ -343,16 +343,6 @@
839 ldau_specs.o: $(FDF)
840
841
842-# Create all objects
843-ALL_OBJS=$(OBJS) $(SYSOBJ) $(MAIN_OBJ)
844-
845-# All objects require the XC library (in theory)
846-# In practice they do not but it greatly simplifies the logic
847-# here.
848-# This will setup the correct compilation sequence as
849-# WXML => XC => FDF => MPI
850-$(ALL_OBJS): $(WXML) $(XC) $(COMP_LIBS)
851-
852 #
853 # Linear algebra routines
854 #
855@@ -422,29 +412,6 @@
856 @mv compinfo.o version.o
857 @echo
858
859-check-siesta:
860- @if [ -f .transiesta ]; then \
861- echo "** You were building transiesta in this directory." ;\
862- echo "** Please type 'make clean' first " ;\
863- false ;\
864- fi
865- @touch .siesta
866-
867-siesta: check-siesta what version \
868- $(MPI_INTERFACE) $(FDF) $(WXML) $(XMLPARSER) $(XC) \
869- $(COMP_LIBS) $(ALL_OBJS)
870- $(FC) -o siesta \
871- $(LDFLAGS) $(ALL_OBJS) $(FDF) $(WXML) $(XMLPARSER) \
872- $(XC) $(MPI_INTERFACE) \
873- $(COMP_LIBS) $(LIBS)
874-
875-libSiestaForces.a: $(OBJS) $(SYSOBJ)
876- $(AR) $(ARFLAGS_EXTRA) cru libSiestaForces.a $(OBJS) $(SYSOBJ)
877- @if [ ! -z "$(MPI_INTERFACE)" ] ; then \
878- $(AR) $(ARFLAGS_EXTRA) cru libSiestaForces.a MPI/*.o ; fi
879- -$(RANLIB) libSiestaForces.a
880-#
881-
882
883 #----------------------------------------------------------------------------
884 # TranSIESTA objects needed for siesta
885@@ -480,29 +447,69 @@
886 # MUMPS method
887 TS_OBJS += m_ts_mumps_init.o m_ts_mumpsg.o m_ts_mumpsk.o m_ts_mumps_scat.o
888
889+OBJS += $(TS_OBJS)
890+
891+# Create all objects
892+ALL_OBJS=$(OBJS) $(SYSOBJ) $(MAIN_OBJ)
893+
894+# All objects require the XC library (in theory)
895+# In practice they do not but it greatly simplifies the logic
896+# here.
897+# This will setup the correct compilation sequence as
898+# WXML => XC => FDF => MPI
899+$(ALL_OBJS): $(WXML) $(XC) $(COMP_LIBS)
900+
901+# Build options
902+
903+libSiestaForces.a: $(OBJS) $(SYSOBJ)
904+ $(AR) $(ARFLAGS_EXTRA) cru libSiestaForces.a $(OBJS) $(SYSOBJ)
905+ @if [ ! -z "$(MPI_INTERFACE)" ] ; then \
906+ $(AR) $(ARFLAGS_EXTRA) cru libSiestaForces.a MPI/*.o ; fi
907+ -$(RANLIB) libSiestaForces.a
908+
909+
910+check-siesta:
911+ @if [ -f .transiesta ]; then \
912+ echo "** You were building transiesta in this directory." ;\
913+ echo "** Please type 'make clean-transiesta' first " ;\
914+ false ;\
915+ fi
916+ @touch .siesta
917+
918+check-transiesta:
919+ @if [ -f .siesta ]; then \
920+ echo "** You were building siesta in this directory." ;\
921+ echo "** Please type 'make clean-transiesta' first " ;\
922+ false ;\
923+ fi
924+ @touch .transiesta
925+
926+siesta: check-siesta what version \
927+ $(MPI_INTERFACE) $(FDF) $(WXML) $(XMLPARSER) $(XC) \
928+ $(COMP_LIBS) $(ALL_OBJS)
929+ $(FC) -o siesta \
930+ $(LDFLAGS) $(ALL_OBJS) $(FDF) $(WXML) $(XMLPARSER) \
931+ $(XC) $(MPI_INTERFACE) $(COMP_LIBS) $(LIBS)
932+
933+
934+.PHONY: clean-ts clean-transiesta
935+clean-ts: clean-transiesta
936+clean-transiesta:
937+ -rm -f m_ts_options.o .siesta .transiesta
938+
939 ts: transiesta
940 transiesta: FPPFLAGS += -DTRANSIESTA
941-check-ts:
942- @if [ -f .siesta ]; then \
943- echo "** You were building plain siesta in this directory." ;\
944- echo "** Please type 'make clean' first" ;\
945- false ;\
946- fi
947- @touch .transiesta
948-
949-transiesta: check-ts what version \
950+transiesta: check-transiesta what version \
951 $(MPI_INTERFACE) $(FDF) $(WXML) $(XMLPARSER) $(XC) \
952- $(COMP_LIBS) $(ALL_OBJS) $(TS_OBJS)
953+ $(COMP_LIBS) $(ALL_OBJS)
954 $(FC) -o transiesta \
955- $(LDFLAGS) $(ALL_OBJS) $(TS_OBJS) $(FDF) $(WXML) $(XMLPARSER) \
956- $(XC) $(MPI_INTERFACE) \
957- $(COMP_LIBS) $(LIBS)
958+ $(LDFLAGS) $(ALL_OBJS) $(FDF) $(WXML) $(XMLPARSER) \
959+ $(XC) $(MPI_INTERFACE) $(COMP_LIBS) $(LIBS)
960
961
962 clean:
963 @echo "==> Cleaning object, library, and executable files"
964 rm -f siesta transiesta *.o *.a *.pcl *.pc
965- rm -f .siesta .transiesta
966 rm -f *.mod
967 rm -f compinfo.F90 tmp.F90
968 rm -f *.bck *~
969@@ -832,7 +839,7 @@
970 m_mat_invert.o: intrinsic_missing.o m_pivot_array.o precision.o
971 m_matio.o: alloc.o parallel.o
972 m_memory.o: memoryinfo.o parallel.o sys.o
973-m_mesh_node.o: intrinsic_missing.o parallel.o precision.o
974+m_mesh_node.o: intrinsic_missing.o parallel.o precision.o units.o
975 m_mixing.o: class_Data1D.o class_Fstack_Data1D.o parallel.o precision.o
976 m_mixing_scf.o: class_Fstack_Data1D.o m_mixing.o parallel.o precision.o
977 m_monitor.o: alloc.o class_OrbitalDistribution.o class_Sparsity.o geom_helper.o
978@@ -978,8 +985,9 @@
979 m_ts_io_ctype.o: parallel.o precision.o units.o
980 m_ts_iodm.o: class_OrbitalDistribution.o class_SpData2D.o class_Sparsity.o
981 m_ts_iodm.o: m_io_s.o m_os.o parallel.o precision.o
982-m_ts_kpoints.o: files.o find_kgrid.o m_ts_global_vars.o m_ts_tdir.o minvec.o
983-m_ts_kpoints.o: parallel.o precision.o siesta_cml.o siesta_options.o sys.o
984+m_ts_kpoints.o: files.o find_kgrid.o kpoint_grid.o m_ts_global_vars.o
985+m_ts_kpoints.o: m_ts_tdir.o minvec.o parallel.o precision.o siesta_cml.o
986+m_ts_kpoints.o: siesta_options.o sys.o
987 m_ts_method.o: alloc.o fdf_extra.o geom_helper.o m_region.o m_ts_electype.o
988 m_ts_mumps_init.o: class_OrbitalDistribution.o class_Sparsity.o
989 m_ts_mumps_init.o: create_Sparsity_Union.o m_ts_electype.o m_ts_method.o
990@@ -1275,10 +1283,11 @@
991 state_init.o: m_mixing.o m_mixing_scf.o m_mpi_utils.o m_new_dm.o m_os.o
992 state_init.o: m_pivot_methods.o m_rmaxh.o m_sparse.o m_sparsity_handling.o
993 state_init.o: m_spin.o m_steps.o m_supercell.o m_test_io.o m_ts_charge.o
994-state_init.o: m_ts_electype.o m_ts_global_vars.o m_ts_io.o m_ts_options.o
995-state_init.o: m_ts_sparse.o m_ts_tri_init.o normalize_dm.o overlap.o parallel.o
996-state_init.o: proximity_check.o siesta_cml.o siesta_geom.o siesta_options.o
997-state_init.o: sparse_matrices.o sys.o units.o write_subs.o zmatrix.o
998+state_init.o: m_ts_electype.o m_ts_global_vars.o m_ts_io.o m_ts_kpoints.o
999+state_init.o: m_ts_options.o m_ts_sparse.o m_ts_tri_init.o normalize_dm.o
1000+state_init.o: overlap.o parallel.o proximity_check.o siesta_cml.o siesta_geom.o
1001+state_init.o: siesta_options.o sparse_matrices.o sys.o units.o write_subs.o
1002+state_init.o: zmatrix.o
1003 struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o
1004 struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o
1005 struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o
1006
1007=== modified file 'Src/compute_dm.F'
1008--- Src/compute_dm.F 2017-08-22 15:09:30 +0000
1009+++ Src/compute_dm.F 2017-12-28 12:43:28 +0000
1010@@ -24,7 +24,7 @@
1011 & qtot, no_l
1012 use sys, only: die, bye
1013 use Kpoint_grid
1014- use m_energies, only: Ebs, Ecorrec, Ef, Entropy
1015+ use m_energies, only: Ebs, Ecorrec, Ef, Entropy, DE_NEGF
1016 use m_rmaxh
1017 use m_eo
1018 use m_spin, only: spin, qs, efs
1019@@ -48,11 +48,8 @@
1020 use m_ordern, only : ordern
1021 use m_steps, only : istp
1022 use m_normalize_dm, only : normalize_dm
1023-#ifdef TRANSIESTA
1024- use m_energies, only: DE_NEGF
1025 use m_ts_global_vars, only : TSmode, TSinit, TSrun
1026 use m_transiesta, only : transiesta
1027-#endif /* TRANSIESTA */
1028
1029 implicit none
1030
1031@@ -208,7 +205,6 @@
1032 Ecorrec = 0.0_dp
1033 Entropy = 0.0_dp
1034 PreviousCallDiagon=.false.
1035-#ifdef TRANSIESTA
1036 elseif (TSmode .and. TSinit) then
1037 call diagon(no_s, spin%spinor,
1038 & no_l, maxnh, maxnh, no_u,
1039@@ -228,7 +224,7 @@
1040
1041 Ecorrec = 0._dp
1042 Entropy = 0.0_dp
1043-#endif /* TRANSIESTA */
1044+
1045 else
1046 !call die('siesta: ERROR: wrong solution method')
1047 endif
1048@@ -258,27 +254,16 @@
1049 endif
1050
1051 ! Write orbital indexes. JMS Dec.2009
1052-
1053-#ifdef TRANSIESTA
1054- if (IOnode .and. iscf==1.and..not. TSrun) then
1055- call write_orb_indx( na_u, na_s, no_u, no_s, isa, xa,
1056- . iaorb, iphorb, indxuo, nsc, ucell )
1057- endif
1058-#else
1059 if (IOnode .and. iscf==1) then
1060 call write_orb_indx( na_u, na_s, no_u, no_s, isa, xa,
1061 . iaorb, iphorb, indxuo, nsc, ucell )
1062 endif
1063-#endif
1064
1065 ! Normalize density matrix to exact charge
1066 ! Placed here for now to avoid disturbing EHarris
1067-#ifdef TRANSIESTA
1068- if ( .not. TSrun ) call normalize_dm( first= .false. )
1069-#else
1070- call normalize_dm(first=.false.)
1071-#endif
1072-
1073+ if ( .not. TSrun ) then
1074+ call normalize_dm( first= .false. )
1075+ end if
1076
1077 call timer( 'compute_dm', 2 )
1078 #ifdef SIESTA__PEXSI
1079
1080=== modified file 'Src/dhscf.F'
1081--- Src/dhscf.F 2017-11-19 20:18:39 +0000
1082+++ Src/dhscf.F 2017-12-28 12:43:28 +0000
1083@@ -113,13 +113,12 @@
1084 use m_charge_add, only: init_charge_add
1085 use m_hartree_add, only: init_hartree_add
1086
1087-#ifdef TRANSIESTA
1088 use m_ts_global_vars,only: TSmode
1089 use m_ts_tdir, only : ts_tidx
1090 use m_ts_options, only : IsVolt, N_Elec, Elecs
1091 use m_ts_voltage, only : ts_init_voltage
1092 use m_ts_hartree, only : ts_init_hartree_fix
1093-#endif /* TRANSIESTA */
1094+
1095 implicit none
1096 integer, intent(in) :: nspin, norb, iaorb(norb), iphorb(norb),
1097 & nuo, nuotot, nua, na, isa(na),
1098@@ -146,11 +145,9 @@
1099 integer :: nXCfunc
1100 character(len=20) :: XCauth(10), XCfunc(10)
1101 #endif /* ! BSC_CELLXC */
1102-#ifdef TRANSIESTA
1103 ! Transport direction (unit-cell aligned)
1104 integer :: iE
1105 real(dp) :: ortho, field(3), field2(3)
1106-#endif
1107 !--------------------------------------------------------------------- BEGIN
1108 #ifdef DEBUG
1109 call write_debug( ' PRE dhscf_init' )
1110@@ -436,7 +433,6 @@
1111 if (frstme) then
1112 call initialize_efield()
1113
1114-#ifdef TRANSIESTA
1115 ! Check if we need to add the potential
1116 ! corresponding to the voltage-drop.
1117 if ( TSmode ) then
1118@@ -551,7 +547,6 @@
1119 ! calculation?
1120
1121 end if
1122-#endif /* TRANSIESTA */
1123
1124 end if
1125
1126@@ -727,12 +722,11 @@
1127 use m_spin, only: spin
1128 use m_spin, only: Spiral, qSpiral
1129
1130-#ifdef TRANSIESTA
1131 use m_ts_global_vars,only: TSmode, TSrun
1132 use m_ts_options, only: IsVolt
1133 use m_ts_voltage, only: ts_voltage
1134 use m_ts_hartree, only: ts_hartree_fix
1135-#endif /* TRANSIESTA */
1136+
1137 implicit none
1138
1139 integer
1140@@ -1314,11 +1308,11 @@
1141 ! Vscf is in the UNIFORM, sequential form, and only using
1142 ! the first spin index
1143
1144-#ifdef TRANSIESTA
1145 ! We require that even the SIESTA potential is "fixed"
1146+ ! NOTE, this will only do something if
1147+ ! TS.Hartree.Fix is set
1148 call ts_hartree_fix( ntm, ntml, Vaux)
1149-#endif /* TRANSIESTA */
1150-
1151+
1152 C Add contribution to stress from electrostatic energy of rhoscf-rhoatm
1153 if (istr .eq. 1) then
1154 stressl(1:3,1:3) = stressl(1:3,1:3) + DStres(1:3,1:3)
1155@@ -1396,7 +1390,6 @@
1156 DUext = DUext - ddot(3,user_specified_field,1,dipol,1)
1157 endif
1158
1159-#ifdef TRANSIESTA
1160 ! ---------------------------------------------------------------------
1161 ! Transiesta:
1162 ! add the potential corresponding to the (possible) voltage-drop.
1163@@ -1419,7 +1412,6 @@
1164 call bye('transiesta debug for Hartree potential')
1165 #endif
1166 endif
1167-#endif /* TRANSIESTA */
1168
1169 ! ----------------------------------------------------------------------
1170 ! Add potential from user defined geometries (if present)
1171
1172=== modified file 'Src/final_H_f_stress.F'
1173--- Src/final_H_f_stress.F 2017-10-10 19:27:53 +0000
1174+++ Src/final_H_f_stress.F 2017-12-28 12:43:28 +0000
1175@@ -65,7 +65,6 @@
1176 use m_ncdf_siesta
1177 #endif
1178 #endif
1179-#ifdef TRANSIESTA
1180 use siesta_options, only : idyn, ia1, write_tshs_history
1181 use sparse_matrices, only: H_2D, S_1D
1182 use files, only : label_length
1183@@ -73,7 +72,6 @@
1184 use m_ts_options, only : TS_HS_save
1185 use m_ts_kpoints, only : ts_Gamma, ts_kscell, ts_kdispl
1186 use m_ts_io, only : ts_write_TSHS,fname_TSHS, FC_index
1187-#endif /* TRANSIESTA */
1188
1189 #ifdef FINAL_CHECK_HS
1190 use m_compute_max_diff, only: compute_max_diff
1191@@ -101,10 +99,8 @@
1192 real(dp), pointer :: fatmp(:,:)
1193 real(dp) :: buffer1
1194 #endif
1195-#ifdef TRANSIESTA
1196 character(len=label_length+13) :: fname
1197 integer :: io_istep, io_ia1
1198-#endif
1199 #ifdef CDF
1200 #ifdef NCDF_4
1201 type(dict) :: dic_save
1202@@ -313,16 +309,12 @@
1203 #ifdef NCDF_4
1204 if ( write_cdf ) then
1205 dic_save = ('fa'.kv.1)//('stress'.kv.1)
1206- if ( savehs ) dic_save = dic_save //('H'.kv.1)
1207-#ifdef TRANSIESTA
1208- if ( TS_HS_save ) dic_save = dic_save //('H'.kv.1)
1209-#endif
1210+ if ( savehs .or. TS_HS_save ) dic_save = dic_save //('H'.kv.1)
1211 call cdf_save_state(trim(slabel)//'.nc',dic_save)
1212 call delete(dic_save)
1213 end if
1214 #endif
1215 #endif
1216-#ifdef TRANSIESTA
1217 if ( write_tshs_history ) then
1218 ! This is "pure" MD and we only write consecutive numbers
1219 ! Together with this you cannot also save FC
1220@@ -362,7 +354,6 @@
1221 & Ef, Qtot, Temp, 0, 0)
1222 end if
1223 endif
1224-#endif /* TRANSIESTA */
1225
1226 !----------------------------------------------------------------------- END
1227 END subroutine final_H_f_stress
1228
1229=== modified file 'Src/kpoint_grid.F90'
1230--- Src/kpoint_grid.F90 2017-10-10 19:47:15 +0000
1231+++ Src/kpoint_grid.F90 2017-12-28 12:43:28 +0000
1232@@ -17,7 +17,7 @@
1233
1234 public :: setup_kpoint_grid, scf_kgrid_first_time, gamma_scf, &
1235 nkpnt, kweight, kpoint, kscell, kdispl
1236-
1237+ public :: eff_kgrid_cutoff
1238
1239 private
1240
1241
1242=== modified file 'Src/m_energies.F90'
1243--- Src/m_energies.F90 2017-08-22 15:09:30 +0000
1244+++ Src/m_energies.F90 2017-12-28 12:43:28 +0000
1245@@ -46,9 +46,7 @@
1246 real(dp):: Eldau
1247 real(dp):: DEldau
1248
1249-#ifdef TRANSIESTA
1250 real(dp) :: DE_NEGF ! NEGF total energy contribution = - e * \sum_i N_i \mu_i
1251-#endif
1252
1253 contains
1254
1255@@ -85,10 +83,7 @@
1256 Eso = 0._dp
1257 Eldau = 0._dp
1258 DEldau = 0._dp
1259-
1260-#ifdef TRANSIESTA
1261 DE_NEGF = 0._dp
1262-#endif
1263
1264 end subroutine init_Energies
1265
1266@@ -114,9 +109,7 @@
1267 Etot = Ena + Ekin + Enl + Eso - Eions + &
1268 DEna + DUscf + DUext + Exc + &
1269 Ecorrec + Emad + Emm + Emeta + Eldau
1270-#ifdef TRANSIESTA
1271 Etot = Etot + DE_NEGF
1272-#endif
1273
1274 end subroutine update_Etot
1275
1276
1277=== modified file 'Src/m_ncdf_siesta.F90'
1278--- Src/m_ncdf_siesta.F90 2017-12-15 14:13:16 +0000
1279+++ Src/m_ncdf_siesta.F90 2017-12-28 12:43:28 +0000
1280@@ -51,17 +51,16 @@
1281 use siesta_options, only: sname, isolve
1282 use siesta_options, only: SOLVE_DIAGON, SOLVE_ORDERN
1283 use siesta_options, only: SOLVE_MINIM, SOLVE_TRANSI
1284+ use siesta_options, only: SOLVE_PEXSI
1285 use siesta_options, only: savehs
1286 use siesta_options, only: saverho, savedrho, savevh, savevna
1287 use siesta_options, only: savevt, savepsch, savetoch, saverhoxc
1288 use siesta_options, only: savebader
1289 use siesta_options, only: save_initial_charge_density
1290 use m_timestamp, only: datestring
1291-#ifdef TRANSIESTA
1292 use m_ts_electype, elec_name => name
1293 use m_ts_options, only : Volt, N_Elec, Elecs
1294 use m_ts_options, only : TS_HS_Save
1295-#endif
1296
1297 character(len=*), intent(in) :: fname
1298 logical, intent(in) :: is_md
1299@@ -71,9 +70,7 @@
1300 type(dict) :: dic, d
1301 character(len=DICT_KEY_LENGTH) :: key
1302 integer :: n_nzs, tmp, i, chks(3), iEl
1303-#ifdef TRANSIESTA
1304 integer, allocatable :: ibuf(:)
1305-#endif
1306 logical :: exists
1307 #ifdef MPI
1308 integer :: MPIerror
1309@@ -175,11 +172,7 @@
1310 call ncdf_def_var(grp,'EDM',NF90_DOUBLE,(/'nnzs ','spin_EDM'/), &
1311 compress_lvl=cdf_comp_lvl,atts=dic,chunks=chks)
1312
1313-#ifdef TRANSIESTA
1314 if ( savehs .or. TS_HS_save ) then
1315-#else
1316- if ( savehs ) then
1317-#endif
1318 ! Unit is already present in dictionary
1319 dic = dic//('info'.kv.'Hamiltonian')
1320 call ncdf_def_var(grp,'H',NF90_DOUBLE,(/'nnzs','spin'/), &
1321@@ -377,7 +370,6 @@
1322
1323 call delete(dic)
1324
1325-#ifdef TRANSIESTA
1326 if ( isolve == SOLVE_TRANSI ) then
1327
1328 ! Save all information about the transiesta method
1329@@ -423,8 +415,6 @@
1330
1331 end if
1332
1333-#endif
1334-
1335 ! Save all things necessary here
1336 dic = ('time'.kv.datestring())
1337 dic = dic//('name'.kv.trim(sname))
1338@@ -436,10 +426,10 @@
1339 dic = dic//('method'.kv.'order-n')
1340 else if ( isolve == SOLVE_MINIM ) then
1341 dic = dic//('method'.kv.'omm')
1342-#ifdef TRANSIESTA
1343 else if ( isolve == SOLVE_TRANSI ) then
1344 dic = dic//('method'.kv.'transiesta')
1345-#endif
1346+ else if ( isolve == SOLVE_PEXSI ) then
1347+ dic = dic//('method'.kv.'pexsi')
1348 end if
1349
1350 ! Attributes are collective
1351@@ -451,7 +441,6 @@
1352 call ncdf_put_var(ncdf,'Qtot',Qtot)
1353 call ncdf_put_var(ncdf,'lasto',lasto(1:na_u))
1354
1355-#ifdef TRANSIESTA
1356 if ( isolve == SOLVE_TRANSI ) then
1357
1358 ! Save all information about the transiesta method
1359@@ -479,7 +468,6 @@
1360 end do
1361
1362 end if
1363-#endif
1364
1365 ! Close the file
1366 call ncdf_close(ncdf)
1367@@ -491,11 +479,9 @@
1368 use kpoint_grid, only: kscell, kdispl
1369 use siesta_options, only: cdf_w_parallel
1370 use siesta_options, only: dDtol, dHtol, charnet, wmix, temp, g2cut
1371-#ifdef TRANSIESTA
1372 use siesta_options, only: isolve
1373 use siesta_options, only: SOLVE_DIAGON, SOLVE_ORDERN, SOLVE_TRANSI
1374 use m_ts_kpoints, only: ts_kscell, ts_kdispl
1375-#endif
1376
1377 character(len=*), intent(in) :: fname
1378
1379@@ -520,7 +506,6 @@
1380 ! I suggest that all MD settings are
1381 ! put in the MD-group
1382
1383-#ifdef TRANSIESTA
1384 if ( isolve == SOLVE_TRANSI ) then
1385 call ncdf_open_grp(ncdf,'TRANSIESTA',grp)
1386
1387@@ -528,7 +513,6 @@
1388 call ncdf_put_var(grp,'BZ_displ',ts_kdispl)
1389
1390 end if
1391-#endif
1392
1393 call ncdf_close(ncdf)
1394
1395
1396=== modified file 'Src/m_new_dm.F90'
1397--- Src/m_new_dm.F90 2017-07-01 00:59:38 +0000
1398+++ Src/m_new_dm.F90 2017-12-28 12:43:28 +0000
1399@@ -72,7 +72,6 @@
1400 use class_Pair_Geometry_dSpData2D
1401 use class_Fstack_Pair_Geometry_dSpData2D
1402
1403-#ifdef TRANSIESTA
1404 use fdf, only: fdf_get, fdf_defined
1405 use units, only : eV
1406 use m_ts_global_vars,only: TSrun
1407@@ -81,7 +80,6 @@
1408 use m_ts_options, only : N_Elec, Elecs, DM_bulk
1409 use m_ts_method
1410 use m_energies, only: Ef
1411-#endif
1412
1413 logical, intent(in) :: SC_changed ! Has auxiliary supercell changed?
1414 type(Fstack_Pair_Geometry_dSpData2D), intent(inout) :: DM_history
1415@@ -93,14 +91,12 @@
1416 integer :: DM_in_history, n_depth
1417 integer :: init_method
1418
1419-#ifdef TRANSIESTA
1420 real(dp), pointer :: DM(:,:), EDM(:,:)
1421 integer :: iElec
1422 integer :: na_a, na_dev
1423 integer, allocatable :: allowed_a(:)
1424 logical :: set_Ef
1425 real(dp) :: old_Ef, diff_Ef
1426-#endif
1427
1428 if ( IONode ) then
1429 write(*,"(a,i5)") "new_DM -- step: ", istp
1430@@ -221,7 +217,6 @@
1431
1432 end if
1433
1434-#ifdef TRANSIESTA
1435 ! In case we will immediately start a transiesta run
1436 if ( TSrun .and. DM_Init .and. (.not. TS_analyze ) ) then
1437 ! In transiesta we can always initialize
1438@@ -328,7 +323,6 @@
1439 call daxpy(iElec,diff_Ef,DM(1,1),1,EDM(1,1),1)
1440
1441 end if
1442-#endif
1443
1444
1445 ! Determine how the mixing of the first step should be performed
1446@@ -368,7 +362,6 @@
1447 use class_OrbitalDistribution
1448 use class_Sparsity
1449 use class_dSpData2D
1450-#ifdef TRANSIESTA
1451 use class_Fstack_dData1D, only: reset
1452 use m_ts_global_vars,only: ts_method_init, TSinit, TSrun
1453 use m_ts_options, only : TS_scf_mode, ts_hist_keep
1454@@ -378,7 +371,6 @@
1455
1456 use m_mixing, only: mixers_history_init
1457 use m_mixing_scf, only: scf_mixs, scf_mix
1458-#endif /* TRANSIESTA */
1459
1460 ! ********* INPUT ***************************************************
1461 ! type(tSpin) spin : spin configuration for this system
1462@@ -427,11 +419,8 @@
1463 logical, intent(in) :: anti_ferro
1464 integer, intent(out) :: init_method
1465
1466-
1467 ! *** Local variables
1468-#ifdef TRANSIESTA
1469 integer :: i
1470-#endif
1471
1472 ! Signal that we are using atomic fillings
1473 init_method = 0
1474@@ -460,7 +449,6 @@
1475 end if
1476
1477
1478-#ifdef TRANSIESTA
1479 if ( TS_scf_mode == 1 .and. TSinit ) then
1480
1481 ! if the user requests to start the transiesta SCF immediately.
1482@@ -493,10 +481,6 @@
1483
1484 end if
1485
1486-#else
1487- ! Energy-density matrix will remain associated to old EDM
1488-#endif
1489-
1490 ! print-out how the initial spin-configuration is
1491 call print_initial_spin()
1492
1493@@ -608,14 +592,12 @@
1494 use fdf, only: fdf_get
1495 use files, only : slabel
1496 use m_iodm, only : read_DM
1497-#ifdef TRANSIESTA
1498 use m_ts_iodm, only: read_TS_DM
1499 use m_energies, only: Ef ! Transiesta uses the EF obtained in a initial SIESTA run
1500 ! to place the electrodes and scattering region energy
1501 ! levels at the appropriate relative position, so it is
1502 ! stored in the TSDE file.
1503 use m_ts_global_vars,only: TSmode
1504-#endif /* TRANSIESTA */
1505
1506 use m_restruct_SpData2D, only: restructdSpData2D
1507
1508@@ -651,9 +633,7 @@
1509
1510 ! *** Local variables:
1511 logical :: DM_found
1512-#ifdef TRANSIESTA
1513 logical :: TSDE_found
1514-#endif
1515 ! The file we should read
1516 character(len=256) :: fname
1517 ! Number of spin-components read from the DM/TSDE file
1518@@ -661,9 +641,7 @@
1519
1520 ! The currently read stuff
1521 type(dSpData2D) :: DM_read
1522-#ifdef TRANSIESTA
1523 type(dSpData2D) :: EDM_read
1524-#endif
1525
1526 ! Signal the file has not been found.
1527 init_method = 0
1528@@ -671,7 +649,6 @@
1529 if ( IONode ) write(*,*) ! New line
1530
1531 DM_found = .false.
1532-#ifdef TRANSIESTA
1533 TSDE_found = .false.
1534
1535 if ( TSmode ) then
1536@@ -694,7 +671,6 @@
1537 end if
1538
1539 end if
1540-#endif
1541
1542 if ( .not. DM_found ) then
1543 if ( IONode ) write(*,'(a)',advance='no') &
1544@@ -736,12 +712,10 @@
1545
1546 end if
1547
1548-#ifdef TRANSIESTA
1549 ! In case the sparsity pattern does not conform we update
1550 ! the TSDE_found, note that DM_found is a logic containing
1551 ! information regarding the sparsity pattern
1552 if ( TSDE_found ) TSDE_found = DM_found
1553-#endif
1554
1555 ! Density matrix size checks
1556 if ( DM_found ) then
1557@@ -764,19 +738,15 @@
1558 end if
1559
1560 call restruct_Data(spin%DM, DM_read, DM_2D)
1561-#ifdef TRANSIESTA
1562 if ( TSDE_found ) then
1563 call restruct_Data(spin%EDM, EDM_read, EDM_2D)
1564 end if
1565-#endif
1566
1567 end if
1568
1569 ! Put deletes here to avoid complicating the logic
1570 call delete(DM_read)
1571-#ifdef TRANSIESTA
1572 call delete(EDM_read)
1573-#endif
1574
1575 if ( .not. DM_found ) init_method = 0
1576
1577
1578=== modified file 'Src/m_ts_electype.F90'
1579--- Src/m_ts_electype.F90 2017-11-19 20:18:39 +0000
1580+++ Src/m_ts_electype.F90 2017-12-28 12:43:28 +0000
1581@@ -663,9 +663,8 @@
1582 end if
1583 #endif
1584
1585- ! If the user will not use bulk, and haven't set DM-update,
1586- ! default to 'all'
1587- if ( .not. info(5) .and. .not. this%Bulk ) then
1588+ ! If the user will not use bulk, set DM_update to 'all'
1589+ if ( .not. this%Bulk ) then
1590 this%DM_update = 2 ! set 'all'
1591 end if
1592
1593
1594=== modified file 'Src/m_ts_hartree.F90'
1595--- Src/m_ts_hartree.F90 2017-09-28 18:23:53 +0000
1596+++ Src/m_ts_hartree.F90 2017-12-28 12:43:28 +0000
1597@@ -50,7 +50,7 @@
1598 integer, parameter, public :: TS_HA_ELEC_BOX = 3
1599
1600 ! The used method
1601- integer, public :: TS_HA = 0
1602+ integer, public :: TS_HA = TS_HA_NONE
1603
1604 ! The fraction of the actual fix
1605 real(dp), public :: Vha_frac = 1._dp
1606
1607=== modified file 'Src/m_ts_kpoints.F90'
1608--- Src/m_ts_kpoints.F90 2017-10-10 19:47:15 +0000
1609+++ Src/m_ts_kpoints.F90 2017-12-28 12:43:28 +0000
1610@@ -54,12 +54,10 @@
1611 integer, public :: ts_kscell(3,3) = 0
1612 real(dp), public :: ts_kdispl(3) = 0.0_dp
1613
1614+ logical, public :: ts_firm_displ = .false.
1615 logical, public :: ts_user_requested_mp = .false.
1616 logical, public :: ts_user_requested_cutoff = .false.
1617
1618- logical, public :: ts_spiral = .false.
1619- logical, public :: ts_firm_displ = .false.
1620-
1621 public :: setup_ts_scf_kscell, setup_ts_kpoint_grid
1622 public :: ts_write_k_points
1623
1624@@ -143,10 +141,8 @@
1625 write(*,*) 'Specifying only cutoff in Electrode AND Scattering calculations might lead to problems !!'
1626 end if
1627
1628- cutoff = fdf_physical('kgrid_cutoff',defcut,'Bohr')
1629- if (cutoff /= defcut) then
1630- ts_user_requested_cutoff = .true.
1631- endif
1632+ cutoff = fdf_get('kgrid_cutoff',defcut,'Bohr')
1633+ ts_user_requested_cutoff = (cutoff /= defcut)
1634
1635 ts_kdispl(1:3) = 0.0_dp ! Might be changed later
1636 ts_firm_displ = .false.
1637@@ -190,18 +186,39 @@
1638 subroutine setup_ts_kpoint_grid( ucell )
1639
1640 ! SIESTA Modules
1641- USE fdf, only : fdf_defined
1642+ USE precision, only : dp
1643+ USE fdf, only : fdf_get
1644 USE m_find_kgrid, only : find_kgrid
1645 USE parallel, only : IONode
1646- USE precision, only : dp
1647+ use m_ts_global_vars, only : TSmode
1648+ use kpoint_grid
1649
1650 ! Local Variables
1651- real(dp), intent(in) :: ucell(3,3)
1652-
1653- if (ts_scf_kgrid_first_time) then
1654+ real(dp), intent(in) :: ucell(3,3)
1655+
1656+ if ( .not. TSMode ) then
1657+
1658+ ! Same as SIESTA (mainly to be able to write the TSHS files).
1659+ ts_Gamma = gamma_SCF
1660+ ts_nkpnt = nkpnt
1661+ ts_eff_kgrid_cutoff = eff_kgrid_cutoff
1662+ ts_kweight => kweight
1663+ ts_kpoint => kpoint
1664+ ts_kscell = kscell
1665+ ts_kdispl = kdispl
1666+
1667+ ! Since this is not transiesta we immediately return
1668+ ! and then we also skip printing out transiesta information.
1669+ return
1670+
1671+ end if
1672+
1673+ if ( ts_scf_kgrid_first_time ) then
1674
1675 nullify(ts_kweight,ts_kpoint)
1676- ts_spiral = fdf_defined('SpinSpiral')
1677+ if ( fdf_get('SpinSpiral', .false.) ) then
1678+ call die('transiesta: Does not work with spin-spiral')
1679+ end if
1680
1681 call setup_ts_scf_kscell(ucell)
1682
1683@@ -216,7 +233,7 @@
1684 endif
1685
1686 call find_kgrid(ucell,ts_kscell,ts_kdispl,ts_firm_displ, &
1687- (.not. ts_spiral), &
1688+ .true., &
1689 ts_nkpnt,ts_kpoint,ts_kweight, ts_eff_kgrid_cutoff)
1690
1691 ts_Gamma = ts_nkpnt == 1 .and. &
1692
1693=== modified file 'Src/m_ts_options.F90'
1694--- Src/m_ts_options.F90 2017-11-19 20:18:39 +0000
1695+++ Src/m_ts_options.F90 2017-12-28 12:43:28 +0000
1696@@ -138,8 +138,13 @@
1697
1698 ! Read in general values that should be used in the electrode generation
1699 ! I.e. these FDF-parameters are used for diagon runs with transiesta
1700+#ifdef TRANSIESTA
1701 TS_HS_save = fdf_get('TS.HS.Save',.true.)
1702+ TS_DE_save = fdf_get('TS.DE.Save',.true.)
1703+#else
1704+ TS_HS_save = fdf_get('TS.HS.Save',.false.)
1705 TS_DE_save = fdf_get('TS.DE.Save',.false.)
1706+#endif
1707 onlyS = fdf_get('TS.onlyS',.false.)
1708 onlyS = fdf_get('TS.S.Save',onlyS)
1709
1710@@ -148,6 +153,10 @@
1711 ! are needed.
1712 if ( onlyS .or. .not. TSmode ) return
1713
1714+ ! When running TSmode we FORCE TS.HS.Save and TS.DE.Save
1715+ TS_HS_save = .true.
1716+ TS_DE_save = .true.
1717+
1718 ! Read in the transiesta SCF mixing options
1719 call mixers_init('TS.SCF', ts_scf_mixs )
1720 if ( .not. associated(ts_scf_mixs) ) then
1721@@ -362,7 +371,7 @@
1722 call fdf_deprecated('TS.ReUseGF','TS.Elecs.GF.ReUse')
1723
1724 ! To determine the same coordinate nature of the electrodes
1725- Elecs_xa_EPS = fdf_get('TS.Elecs.Coord.Eps',1.e-4_dp,'Bohr')
1726+ Elecs_xa_EPS = fdf_get('TS.Elecs.Coord.Eps',0.001_dp*Ang, 'Bohr')
1727
1728 ! Whether we should always set the DM to bulk
1729 ! values (by reading in from electrode DM)
1730@@ -1129,8 +1138,6 @@
1731 end if
1732 else if ( TS_DE_save ) then
1733 ! means TS_HA == TS_HA_NONE
1734- write(*,'(a)') 'If you do not use Hartree.Fix you cannot &
1735- &use the TSDE file for restart in TranSIESTA.'
1736 end if
1737
1738
1739
1740=== modified file 'Src/proximity_check.F'
1741--- Src/proximity_check.F 2016-06-23 12:27:35 +0000
1742+++ Src/proximity_check.F 2017-12-28 12:43:28 +0000
1743@@ -19,9 +19,7 @@
1744 use parallel, only : IOnode
1745 use neighbour, only : jna=>jan, r2ij, mneighb,
1746 & reset_neighbour_arrays
1747-#ifdef TRANSIESTA
1748 use m_ts_global_vars, only : onlyS
1749-#endif
1750 implicit none
1751 real(dp), intent(in) :: rmax
1752 integer :: ii, jj, jamin, idxneighJ, nneigbI, isel, nna
1753@@ -52,11 +50,7 @@
1754 enddo
1755 rmin = sqrt( r2min )
1756 if (IOnode) then
1757-#ifdef TRANSIESTA
1758 if (( rmin .lt. rijmin ) .and. (.not. onlyS))
1759-#else
1760- if ( rmin .lt. rijmin )
1761-#endif
1762 & write(6,'(a,2i6,a,f12.6,a)') 'siesta: WARNING: Atoms', ii,
1763 & jamin, ' too close: rij =', rmin/Ang, ' Ang'
1764 endif
1765
1766=== modified file 'Src/read_options.F90'
1767--- Src/read_options.F90 2017-12-22 10:33:21 +0000
1768+++ Src/read_options.F90 2017-12-28 12:43:28 +0000
1769@@ -688,7 +688,6 @@
1770 call die("PEXSI solver is not compiled in. Use -DSIESTA__PEXSI")
1771 #endif
1772
1773-#ifdef TRANSIESTA
1774 else if (leqi(method,'transi') .or. leqi(method,'transiesta') &
1775 .or. leqi(method,'negf') ) then
1776 isolve = SOLVE_TRANSI
1777@@ -697,12 +696,9 @@
1778 call add_citation("10.1016/j.cpc.2016.09.022")
1779 write(*,3) 'redata: Method of Calculation','Transiesta'
1780 endif
1781-#endif /* TRANSIESTA */
1782 else
1783 call die( 'redata: The method of solution must be either '//&
1784-#ifdef TRANSIESTA
1785 'Transiesta, '//&
1786-#endif
1787 #ifdef SIESTA__PEXSI
1788 'PEXSI, '//&
1789 #endif
1790@@ -1514,11 +1510,9 @@
1791 fdf_get('SCF.Read.Deformation.Charge.NetCDF', .false. )
1792
1793 ! Write the history
1794-#ifdef TRANSIESTA
1795 write_tshs_history = fdf_get('Write.TSHS.History', .false.)
1796 if ( IONode.and.write_tshs_history ) &
1797 write(*,2) 'redata: Saves TSHS files in MD simulation'
1798-#endif
1799 !write_hs_history = fdf_get('Write.HS.History', .false.)
1800
1801 if (read_charge_cdf .or. read_deformation_charge_cdf) then
1802
1803=== modified file 'Src/reinit.F'
1804--- Src/reinit.F 2017-10-13 08:38:50 +0000
1805+++ Src/reinit.F 2017-12-28 12:43:28 +0000
1806@@ -221,7 +221,6 @@
1807 line = 'SystemLabel '//trim(line)
1808 call fdf_overwrite(line)
1809
1810-#ifdef TRANSIESTA
1811 else if ( line(1:1) == 'V' ) then
1812 if ( in >= narg )
1813 & call die('Missing argument on command line, -V')
1814@@ -230,7 +229,13 @@
1815 line = cmd_tokenize(line)
1816 line = 'TS.Voltage '//trim(line)
1817 call fdf_overwrite(line)
1818-#endif
1819+
1820+ else if ( line(1:9) == 'electrode' .or.
1821+ & line(1:4) == 'elec' ) then
1822+ line = 'TS.HS.Save true'
1823+ call fdf_overwrite(line)
1824+ line = 'TS.DE.Save true'
1825+ call fdf_overwrite(line)
1826
1827 else if ( line(1:4) == 'help' .or.
1828 & line(1:1) == 'h' ) then
1829@@ -242,10 +247,10 @@
1830 write(0,'(a)')' Short-hand for setting SystemLabel.'
1831 write(0,'(a)')' -fdf <label>=<value>[:<unit>]'
1832 write(0,'(a)')' Set the label to the corresponding value.'
1833-#ifdef TRANSIESTA
1834 write(0,'(a)')' -V <value>:<unit>'
1835 write(0,'(a)')' Short-hand for setting TS.Voltage.'
1836-#endif
1837+ write(0,'(a)')' -electrode|-elec'
1838+ write(0,'(a)')' Force TS.HS.Save and TS.DE.Save to true.'
1839 write(0,'(a)')' <fdf-file>'
1840 write(0,'(a)')
1841 & ' Use file as fdf-input, you need not to pipe it in.'
1842
1843=== modified file 'Src/save_density_matrix.F'
1844--- Src/save_density_matrix.F 2016-12-08 11:45:49 +0000
1845+++ Src/save_density_matrix.F 2017-12-28 12:43:28 +0000
1846@@ -40,13 +40,11 @@
1847 use m_ncdf_siesta, only : cdf_save_state
1848 #endif
1849 #endif
1850-#ifdef TRANSIESTA
1851 use sparse_matrices, only: EDM_2D
1852 use m_ts_iodm, only: write_ts_dm
1853 use m_ts_global_vars, only: TSrun
1854 use m_ts_options, only: TS_DE_save
1855 use m_energies, only: Ef
1856-#endif
1857
1858 implicit none
1859
1860@@ -96,78 +94,43 @@
1861 end if
1862 #endif
1863 #endif
1864-
1865-#ifndef TRANSIESTA
1866- if (do_it) then
1867-#ifdef TIMING_IO
1868- call timer('IO-W-DM',1)
1869- do i = 1 , 100
1870-#endif
1871- if (((idyn .eq. 6) .or. (idyn .eq. 7).or.(idyn.eq.9))
1872- $ .and. (istp .ne. 1) ) then
1873- ! do not write
1874- else
1875- if (fdf_get("Use.Blocked.WriteMat",.false.)) then
1876- call write_mat (maxnh, no_l, h_spin_dim,
1877- & numh, listhptr, listh, Dscf,
1878- $ userfile=trim(file)//'.blocked',compatible=.false.)
1879- else
1880- ! The filename falls back to the standard one
1881- !
1882- call write_dm(trim(slabel)//'.DM', DM_2D)
1883- endif
1884- end if
1885-#ifdef TIMING_IO
1886- end do
1887- call timer('IO-W-DM',2)
1888- call timer('IO-W-DM',3)
1889-#endif
1890- endif ! writedm
1891-#else /* TRANSIESTA */
1892-! TSS Begin
1893- if (do_it) then
1894- if (.not.TSrun) then !TSS save Dscf
1895-#ifdef TIMING_IO
1896- call timer('IO-W-DM',1)
1897- do i = 1 , 100
1898-#endif
1899- if ((idyn .eq. 6) .or. (idyn .eq. 7).or.(idyn==9)) then
1900- if (istp.eq.1)
1901- & call write_dm(trim(slabel)//'.DM', DM_2D)
1902- else
1903- call write_dm(trim(slabel)//'.DM', DM_2D)
1904- end if
1905-#ifdef TIMING_IO
1906- end do
1907- call timer('IO-W-DM',2)
1908- call timer('IO-W-DM',3)
1909-#endif
1910- else
1911-! TSS write DscfE
1912-#ifdef TIMING_IO
1913- call timer('IO-W-TS-DE',1)
1914- do i = 1 , 100
1915-#endif
1916- if ((idyn .eq. 6) .or. (idyn .eq. 7).or.(idyn==9)) then
1917- if (istp .eq.1)
1918- & call write_ts_dm(trim(slabel)//'.TSDE',
1919- & DM_2D, EDM_2D, Ef)
1920- else
1921- call write_ts_dm(trim(slabel)//'.TSDE',
1922- & DM_2D, EDM_2D, Ef)
1923- end if
1924-#ifdef TIMING_IO
1925- end do
1926- call timer('IO-W-TS-DE',2)
1927- call timer('IO-W-TS-DE',3)
1928-#endif
1929- end if ! TSrun
1930- if ( TS_DE_save ) then
1931- call write_ts_dm(trim(slabel)//'.TSDE',
1932- & DM_2D, EDM_2D, Ef)
1933- end if
1934- end if ! writedm
1935-#endif /* TRANSIESTA */
1936+
1937+#ifdef TIMING_IO
1938+ if ( do_it ) then
1939+ call timer('IO-W-DM',1)
1940+ do i = 1 , 100
1941+ if (fdf_get("Use.Blocked.WriteMat",.false.)) then
1942+ call write_mat (maxnh, no_l, h_spin_dim,
1943+ & numh, listhptr, listh, Dscf,
1944+ $ userfile=trim(file)//'.blocked',compatible=.false.)
1945+ else
1946+ ! The filename falls back to the standard one
1947+ call write_dm(trim(slabel)//'.DM', DM_2D)
1948+ end if
1949+ end do
1950+ call timer('IO-W-DM',2)
1951+ call timer('IO-W-DM',3)
1952+ end if
1953+#endif
1954+
1955+ ! Check wheter we should write
1956+ select case ( idyn )
1957+ case ( 6, 7, 9 )
1958+ if ( istp /= 1 ) do_it = .false.
1959+ end select
1960+
1961+ if ( do_it ) then
1962+ if ( TSrun ) then
1963+ call write_ts_dm(trim(slabel)//'.TSDE',
1964+ & DM_2D, EDM_2D, Ef)
1965+ else
1966+ call write_dm(trim(slabel)//'.DM', DM_2D)
1967+ if ( TS_DE_save ) then
1968+ call write_ts_dm(trim(slabel)//'.TSDE',
1969+ & DM_2D, EDM_2D, Ef)
1970+ end if
1971+ end if
1972+ end if
1973
1974 end subroutine save_density_matrix
1975
1976
1977=== modified file 'Src/siesta_dicts.F90'
1978--- Src/siesta_dicts.F90 2017-10-10 11:31:23 +0000
1979+++ Src/siesta_dicts.F90 2017-12-28 12:43:28 +0000
1980@@ -13,10 +13,8 @@
1981 ! A dictionary for all the options
1982 type(dict) :: options
1983
1984-#ifdef TRANSIESTA
1985 ! A dictionary for all transiesta options
1986 type(dict) :: ts_options
1987-#endif
1988
1989 ! A dictionary for all variables
1990 type(dict) :: variables
1991@@ -41,9 +39,7 @@
1992
1993 subroutine dict_clean()
1994 call delete(options,dealloc=.false.)
1995-#ifdef TRANSIESTA
1996 call delete(ts_options,dealloc=.false.)
1997-#endif
1998 call delete(variables,dealloc=.false.)
1999 end subroutine dict_clean
2000
2001@@ -318,10 +314,8 @@
2002 ('E.spin_orbit'.kvp.Eso)
2003 variables = variables // &
2004 ('E.ldau'.kvp.Eldau)
2005-#ifdef TRANSIESTA
2006 variables = variables // &
2007 ('E.negf'.kvp.DE_NEGF)
2008-#endif
2009
2010 ! Add the number of charges to the system
2011 variables = variables // &
2012
2013=== modified file 'Src/siesta_forces.F'
2014--- Src/siesta_forces.F 2017-12-12 07:50:52 +0000
2015+++ Src/siesta_forces.F 2017-12-28 12:43:28 +0000
2016@@ -85,7 +85,6 @@
2017 use m_pexsi, only: pexsi_finalize_scfloop
2018 #endif
2019
2020-#ifdef TRANSIESTA
2021 use m_energies, only: DE_NEGF
2022 use m_ts_options, only : N_Elec
2023 use m_ts_method
2024@@ -101,7 +100,6 @@
2025 use m_transiesta, only: transiesta
2026 use kpoint_grid, only : gamma_scf
2027 use m_energies, only : Ef
2028-#endif /* TRANSIESTA */
2029
2030 implicit none
2031
2032@@ -382,7 +380,6 @@
2033 ! Check whether we should step to the next mixer
2034 call mixing_scf_converged( SCFconverged )
2035
2036-#ifdef TRANSIESTA
2037 ! In case the user has requested a Fermi-level correction
2038 ! Then we start by correcting the fermi-level
2039 if ( SCFconverged .and. TSrun .and.
2040@@ -404,7 +401,6 @@
2041 end if
2042
2043 end if
2044-#endif
2045
2046 if (monitor_forces_in_scf) call compute_forces()
2047
2048@@ -438,7 +434,6 @@
2049 ! Retrieve an easy character string
2050 nnext_mixer = cunpack(next_mixer)
2051 if ( len_trim(nnext_mixer) > 0 ) then
2052-#ifdef TRANSIESTA
2053 if ( TSrun ) then
2054 do imix = 1 , size(ts_scf_mixs)
2055 if ( ts_scf_mixs(imix)%name == nnext_mixer ) then
2056@@ -448,7 +443,6 @@
2057 end if
2058 end do
2059 else
2060-#endif
2061 do imix = 1 , size(scf_mixs)
2062 if ( scf_mixs(imix)%name == nnext_mixer ) then
2063 call mixers_history_init(scf_mixs)
2064@@ -456,9 +450,7 @@
2065 exit
2066 end if
2067 end do
2068-#ifdef TRANSIESTA
2069 end if
2070-#endif
2071
2072 ! Check that we indeed have changed the mixer
2073 if ( IONode .and. scf_mix%name /= nnext_mixer ) then
2074@@ -484,13 +476,11 @@
2075 ! This should be the last step if we have converged...
2076 last_step = SCFConverged
2077
2078-#ifdef TRANSIESTA
2079 ! ... except that we might continue for TranSiesta
2080 if ( last_step ) then
2081 call transiesta_switch() ! might reset 'last_step'
2082 ! and iscf
2083 end if
2084-#endif
2085
2086 if ( iscf == nscf ) then
2087 last_step = .true.
2088@@ -534,12 +524,10 @@
2089 endif
2090 end if
2091
2092-#ifdef TRANSIESTA
2093 if ( TSmode.and.TSinit.and.(.not. SCFConverged) ) then
2094 call die('SCF did not converge before proceeding to transiesta
2095 &calculation')
2096 end if
2097-#endif
2098
2099 ! Clean-up here to limit memory usage
2100 call mixers_scf_history_init( )
2101@@ -623,10 +611,8 @@
2102 end subroutine compute_forces
2103
2104 subroutine print_timings(first, first_md)
2105-#ifdef TRANSIESTA
2106 use timer_options, only: use_tree_timer
2107 use m_ts_global_vars, only : TSrun
2108-#endif
2109 logical, intent(in) :: first, first_md
2110 character(len=20) :: routine
2111
2112@@ -637,7 +623,6 @@
2113
2114 routine = 'IterSCF'
2115
2116-#ifdef TRANSIESTA
2117 if ( TSrun ) then
2118 ! with Green function generation
2119 ! The tree-timer requires direct
2120@@ -648,7 +633,6 @@
2121 routine = 'TS'
2122 end if
2123 endif
2124-#endif
2125 call timer( routine, 3 )
2126
2127 end subroutine
2128@@ -692,7 +676,6 @@
2129 end subroutine end_of_cycle_save_operations
2130
2131 !-----------------------------------------------------
2132-#ifdef TRANSIESTA
2133 subroutine transiesta_switch()
2134
2135 use precision, only: dp
2136@@ -844,7 +827,6 @@
2137 end if
2138
2139 end subroutine transiesta_switch
2140-#endif
2141
2142 END subroutine siesta_forces
2143
2144
2145=== modified file 'Src/siesta_init.F'
2146--- Src/siesta_init.F 2017-12-15 14:13:16 +0000
2147+++ Src/siesta_init.F 2017-12-28 12:43:28 +0000
2148@@ -73,9 +73,7 @@
2149 #endif
2150 use m_cite, only: add_citation, init_citation
2151
2152-#ifdef TRANSIESTA
2153 use m_ts_init, only : ts_init
2154-#endif
2155
2156 use m_diag_option, only: read_diag, print_diag
2157
2158@@ -644,9 +642,7 @@
2159
2160 istp = 0
2161
2162-#ifdef TRANSIESTA
2163 call ts_init(spin%Grid,ucell,na_u,xa,lasto,no_u,inicoor,fincoor)
2164-#endif
2165
2166 #ifdef SIESTA__FLOOK
2167
2168
2169=== modified file 'Src/siesta_options.F90'
2170--- Src/siesta_options.F90 2017-07-01 00:59:38 +0000
2171+++ Src/siesta_options.F90 2017-12-28 12:43:28 +0000
2172@@ -102,9 +102,7 @@
2173 logical :: writic ! Write the initial atomic ccordinates?
2174 logical :: varcel ! Change unit cell during relaxation or dynamics?
2175 logical :: do_pdos ! Compute the projected density of states?
2176-#ifdef TRANSIESTA
2177 logical :: write_tshs_history ! Write the MD track of Hamiltonian and overlap matrices in transiesta format
2178-#endif
2179 logical :: write_hs_history ! Write the MD track of Hamiltonian and overlap matrices
2180 logical :: writedm ! Write file with density matrix?
2181 logical :: write_dm_at_end_of_cycle ! Write DM at end of SCF cycle? (converged or not)
2182
2183=== modified file 'Src/state_init.F'
2184--- Src/state_init.F 2017-01-18 08:18:31 +0000
2185+++ Src/state_init.F 2017-12-28 12:43:28 +0000
2186@@ -72,7 +72,7 @@
2187
2188 use m_sparse, only : xij_offset
2189
2190-#ifdef TRANSIESTA
2191+ use m_ts_kpoints, only: setup_ts_kpoint_grid
2192 use m_ts_charge, only : TS_RHOCORR_METHOD, TS_RHOCORR_FERMI
2193 use m_ts_options, only : BTD_method
2194 use m_ts_options, only : TS_Analyze
2195@@ -84,7 +84,6 @@
2196 use m_ts_sparse, only : ts_sparse_init
2197 use m_ts_tri_init, only : ts_tri_init, ts_tri_analyze
2198 use files, only: slabel, label_length
2199-#endif
2200 #ifdef CDF
2201 use iodm_netcdf, only: setup_dm_netcdf_file
2202 use iodmhs_netcdf, only: setup_dmhs_netcdf_file
2203@@ -110,13 +109,11 @@
2204 external :: madelung, timer
2205 real(dp), external :: volcel
2206
2207-#ifdef TRANSIESTA
2208 integer :: ts_kscell_file(3,3) = 0
2209 real(dp) :: ts_kdispl_file(3) = 0.0
2210 logical :: ts_Gamma_file = .true.
2211 character(len=label_length+6) :: fname
2212 real(dp) :: dummyef=0.0, dummyqtot=0.0
2213-#endif
2214 type(Sparsity) :: g_Sp
2215
2216 character(len=256) :: oname
2217@@ -243,6 +240,8 @@
2218 ! Will print k-points also
2219 call setup_Kpoint_grid( ucell )
2220
2221+ call setup_ts_kpoint_grid( ucell )
2222+
2223 call re_alloc( eo, 1, no_u, 1, spin%spinor, 1, nkpnt, 'eo',
2224 & 'state_init')
2225 call re_alloc( qo, 1, no_u, 1, spin%spinor, 1, nkpnt, 'qo',
2226@@ -412,7 +411,6 @@
2227 end if
2228
2229
2230-#ifdef TRANSIESTA
2231 ! When the user requests to only do an analyzation, we can call
2232 ! appropriate routines and quit
2233 if ( TS_Analyze ) then
2234@@ -434,7 +432,6 @@
2235 call bye('transiesta analyzation performed')
2236
2237 end if
2238-#endif
2239
2240
2241 write(oname,"(a,i0)") "EDM at geom step ", istep
2242@@ -513,7 +510,6 @@
2243 Escf => val(EDM_2D)
2244
2245 ! Initialize energy-density matrix to zero for first call to overfsm
2246-#ifdef TRANSIESTA
2247 ! Only part of Escf is updated in TS, so if it is put as zero here
2248 ! a continuation run gives bad forces.
2249 if ( .not. TSrun ) then
2250@@ -522,19 +518,12 @@
2251 Escf(:,:) = 0.0_dp
2252 !$OMP end parallel workshare
2253 end if
2254-#else
2255- call normalize_DM( first= .true. )
2256-!$OMP parallel workshare default(shared)
2257- Escf(:,:) = 0.0_dp
2258-!$OMP end parallel workshare
2259-#endif /* TRANSIESTA */
2260
2261 #ifdef TEST_IO
2262 ! We test the io-performance here
2263 call time_io(spin%H,H_2D)
2264 #endif
2265
2266-#ifdef TRANSIESTA
2267 ! If onlyS, Save overlap matrix and exit
2268 if ( onlyS ) then
2269 fname = fname_TSHS(slabel, onlyS = .true. )
2270@@ -565,8 +554,6 @@
2271 end if
2272 end if
2273
2274-#endif /* TRANSIESTA */
2275-
2276 #ifdef CDF
2277 if (writedm_cdf) then
2278 call setup_dm_netcdf_file( maxnh, no_l, spin%H,
2279
2280=== modified file 'Src/version.F90'
2281--- Src/version.F90 2017-10-18 16:25:05 +0000
2282+++ Src/version.F90 2017-12-28 12:43:28 +0000
2283@@ -80,9 +80,6 @@
2284 !$OMP end master
2285 !$OMP end parallel
2286
2287-#ifdef TRANSIESTA
2288-write(6,'(a)') 'TRANSIESTA support'
2289-#endif
2290 #ifdef USE_GEMM3M
2291 write(6,'(a)') 'GEMM3M support'
2292 #endif
2293@@ -98,6 +95,11 @@
2294 #if defined(ON_DOMAIN_DECOMP) || defined(SIESTA__METIS)
2295 write(6,'(a)') 'METIS ordering support'
2296 #endif
2297+#ifdef TRANSIESTA
2298+write(6,'(a)') '******************************************************'
2299+write(6,'(a)') 'transiesta executable is deprecated, please use siesta'
2300+write(6,'(a)') '******************************************************'
2301+#endif
2302
2303 end subroutine prversion
2304 !----------------------------------------------------------
2305
2306=== modified file 'Src/write_subs.F'
2307--- Src/write_subs.F 2017-10-10 11:31:23 +0000
2308+++ Src/write_subs.F 2017-12-28 12:43:28 +0000
2309@@ -296,9 +296,7 @@
2310 use units
2311 use m_energies
2312 use m_spin
2313-#ifdef TRANSIESTA
2314 use m_ts_global_vars, only: TSinit, TSrun
2315-#endif /* TRANSIESTA */
2316 implicit none
2317
2318 integer :: iscf
2319@@ -307,20 +305,14 @@
2320
2321 character(len=64) :: fmt
2322 character(len=6) :: scf_name
2323-#ifndef TRANSIESTA
2324- ! Enable _one_ block to reuse as much as possible
2325- logical, parameter :: TSinit = .false.
2326-#endif
2327
2328 logical :: first_scf_step
2329 integer :: i
2330
2331 scf_name = 'scf'
2332-#ifdef TRANSIESTA
2333 if ( TSrun ) then
2334 scf_name = 'ts-scf'
2335 end if
2336-#endif
2337
2338 first_scf_step = (iscf == 1)
2339 ! Only print out full decomposition at very beginning and end.
2340@@ -337,9 +329,7 @@
2341 . 'siesta: DEna =', DEna/eV,
2342 . 'siesta: DUscf =', DUscf/eV,
2343 . 'siesta: DUext =', DUext/eV,
2344-#ifdef TRANSIESTA
2345 . 'siesta: Enegf =', DE_NEGF/eV,
2346-#endif
2347 . 'siesta: Exc =', Exc/eV,
2348 . 'siesta: eta*DQ =', Ecorrec/eV,
2349 . 'siesta: Emadel =', Emad/eV,
2350@@ -382,11 +372,9 @@
2351 call cmlAddProperty(xf=mainXML, value=DUext/eV,
2352 . units='siestaUnits:eV',
2353 . dictref='siesta:DUext', fmt='r6')
2354-#ifdef TRANSIESTA
2355 call cmlAddProperty(xf=mainXML, value=DE_NEGF/eV,
2356 . units='siestaUnits:eV',
2357 . dictref='siesta:Enegf', fmt='r6')
2358-#endif
2359 call cmlAddProperty(xf=mainXML, value=Exc/eV,
2360 . units='siestaUnits:eV',
2361 . dictref='siesta:Exc', fmt='r6')
2362@@ -515,9 +503,7 @@
2363 . 'siesta: ', 'Eldau =', Eldau/eV,
2364 . 'siesta: ', 'Eso =', Eso/eV,
2365 . 'siesta: ', 'Ext. field =', DUext/eV,
2366-#ifdef TRANSIESTA
2367 . 'siesta: ', 'Enegf =', DE_NEGF/eV,
2368-#endif
2369 . 'siesta: ', 'Exch.-corr. =', Exc/eV,
2370 . 'siesta: ', 'Ion-electron =', (Enascf+Enl+DUscf-Uscf-Uatm)/eV,
2371 . 'siesta: ', 'Ion-ion =', (Ena+Uatm-Enaatm-Eions)/eV,
2372@@ -551,11 +537,9 @@
2373 call cmlAddProperty(xf=mainXML, value=DUext/eV,
2374 . units='siestaUnits:eV',
2375 . dictref='siesta:DUext', fmt='r7')
2376-#ifdef TRANSIESTA
2377 call cmlAddProperty(xf=mainXML, value=DE_NEGF/eV,
2378 . units='siestaUnits:eV',
2379 . dictref='siesta:Enegf', fmt='r7')
2380-#endif
2381 call cmlAddProperty(xf=mainXML, value=Exc/eV,
2382 . units='siestaUnits:eV',
2383 . dictref='siesta:Exc', fmt='r7')
2384
2385=== modified file 'Util/COOP/Makefile'
2386--- Util/COOP/Makefile 2017-11-17 20:53:23 +0000
2387+++ Util/COOP/Makefile 2017-12-28 12:43:28 +0000
2388@@ -367,7 +367,7 @@
2389 m_mat_invert.o: intrinsic_missing.o m_pivot_array.o precision.o
2390 m_matio.o: alloc.o parallel.o
2391 m_memory.o: local_sys.o memoryinfo.o parallel.o
2392-m_mesh_node.o: intrinsic_missing.o parallel.o precision.o
2393+m_mesh_node.o: intrinsic_missing.o parallel.o precision.o units.o
2394 m_mixing.o: class_Data1D.o class_Fstack_Data1D.o parallel.o precision.o
2395 m_mixing_scf.o: class_Fstack_Data1D.o m_mixing.o parallel.o precision.o
2396 m_monitor.o: alloc.o class_OrbitalDistribution.o class_Sparsity.o geom_helper.o
2397@@ -514,8 +514,9 @@
2398 m_ts_io_ctype.o: parallel.o precision.o units.o
2399 m_ts_iodm.o: class_OrbitalDistribution.o class_SpData2D.o class_Sparsity.o
2400 m_ts_iodm.o: m_io_s.o m_os.o parallel.o precision.o
2401-m_ts_kpoints.o: files.o find_kgrid.o local_sys.o m_ts_global_vars.o m_ts_tdir.o
2402-m_ts_kpoints.o: minvec.o parallel.o precision.o siesta_cml.o siesta_options.o
2403+m_ts_kpoints.o: files.o find_kgrid.o kpoint_grid.o local_sys.o
2404+m_ts_kpoints.o: m_ts_global_vars.o m_ts_tdir.o minvec.o parallel.o precision.o
2405+m_ts_kpoints.o: siesta_cml.o siesta_options.o
2406 m_ts_method.o: alloc.o fdf_extra.o geom_helper.o m_region.o m_ts_electype.o
2407 m_ts_mumps_init.o: class_OrbitalDistribution.o class_Sparsity.o
2408 m_ts_mumps_init.o: create_Sparsity_Union.o m_ts_electype.o m_ts_method.o
2409@@ -818,10 +819,10 @@
2410 state_init.o: m_os.o m_pivot_methods.o m_rmaxh.o m_sparse.o
2411 state_init.o: m_sparsity_handling.o m_spin.o m_steps.o m_supercell.o
2412 state_init.o: m_test_io.o m_ts_charge.o m_ts_electype.o m_ts_global_vars.o
2413-state_init.o: m_ts_io.o m_ts_options.o m_ts_sparse.o m_ts_tri_init.o
2414-state_init.o: normalize_dm.o overlap.o parallel.o proximity_check.o
2415-state_init.o: siesta_cml.o siesta_geom.o siesta_options.o sparse_matrices.o
2416-state_init.o: units.o write_subs.o zmatrix.o
2417+state_init.o: m_ts_io.o m_ts_kpoints.o m_ts_options.o m_ts_sparse.o
2418+state_init.o: m_ts_tri_init.o normalize_dm.o overlap.o parallel.o
2419+state_init.o: proximity_check.o siesta_cml.o siesta_geom.o siesta_options.o
2420+state_init.o: sparse_matrices.o units.o write_subs.o zmatrix.o
2421 struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o
2422 struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o
2423 struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o
2424
2425=== modified file 'Util/Denchar/Src/Makefile'
2426--- Util/Denchar/Src/Makefile 2017-11-17 20:53:23 +0000
2427+++ Util/Denchar/Src/Makefile 2017-12-28 12:43:28 +0000
2428@@ -435,7 +435,7 @@
2429 m_mat_invert.o: intrinsic_missing.o m_pivot_array.o precision.o
2430 m_matio.o: alloc.o parallel.o
2431 m_memory.o: local_sys.o memoryinfo.o parallel.o
2432-m_mesh_node.o: intrinsic_missing.o parallel.o precision.o
2433+m_mesh_node.o: intrinsic_missing.o parallel.o precision.o units.o
2434 m_mixing.o: class_Data1D.o class_Fstack_Data1D.o parallel.o precision.o
2435 m_mixing_scf.o: class_Fstack_Data1D.o m_mixing.o parallel.o precision.o
2436 m_monitor.o: alloc.o class_OrbitalDistribution.o class_Sparsity.o geom_helper.o
2437@@ -582,8 +582,9 @@
2438 m_ts_io_ctype.o: parallel.o precision.o units.o
2439 m_ts_iodm.o: class_OrbitalDistribution.o class_SpData2D.o class_Sparsity.o
2440 m_ts_iodm.o: m_io_s.o m_os.o parallel.o precision.o
2441-m_ts_kpoints.o: files.o find_kgrid.o local_sys.o m_ts_global_vars.o m_ts_tdir.o
2442-m_ts_kpoints.o: minvec.o parallel.o precision.o siesta_cml.o siesta_options.o
2443+m_ts_kpoints.o: files.o find_kgrid.o kpoint_grid.o local_sys.o
2444+m_ts_kpoints.o: m_ts_global_vars.o m_ts_tdir.o minvec.o parallel.o precision.o
2445+m_ts_kpoints.o: siesta_cml.o siesta_options.o
2446 m_ts_method.o: alloc.o fdf_extra.o geom_helper.o m_region.o m_ts_electype.o
2447 m_ts_mumps_init.o: class_OrbitalDistribution.o class_Sparsity.o
2448 m_ts_mumps_init.o: create_Sparsity_Union.o m_ts_electype.o m_ts_method.o
2449@@ -886,10 +887,10 @@
2450 state_init.o: m_os.o m_pivot_methods.o m_rmaxh.o m_sparse.o
2451 state_init.o: m_sparsity_handling.o m_spin.o m_steps.o m_supercell.o
2452 state_init.o: m_test_io.o m_ts_charge.o m_ts_electype.o m_ts_global_vars.o
2453-state_init.o: m_ts_io.o m_ts_options.o m_ts_sparse.o m_ts_tri_init.o
2454-state_init.o: normalize_dm.o overlap.o parallel.o proximity_check.o
2455-state_init.o: siesta_cml.o siesta_geom.o siesta_options.o sparse_matrices.o
2456-state_init.o: units.o write_subs.o zmatrix.o
2457+state_init.o: m_ts_io.o m_ts_kpoints.o m_ts_options.o m_ts_sparse.o
2458+state_init.o: m_ts_tri_init.o normalize_dm.o overlap.o parallel.o
2459+state_init.o: proximity_check.o siesta_cml.o siesta_geom.o siesta_options.o
2460+state_init.o: sparse_matrices.o units.o write_subs.o zmatrix.o
2461 struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o
2462 struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o
2463 struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o
2464
2465=== modified file 'Util/Gen-basis/Makefile'
2466--- Util/Gen-basis/Makefile 2017-11-17 20:53:23 +0000
2467+++ Util/Gen-basis/Makefile 2017-12-28 12:43:28 +0000
2468@@ -431,7 +431,7 @@
2469 m_mat_invert.o: intrinsic_missing.o m_pivot_array.o precision.o
2470 m_matio.o: alloc.o parallel.o
2471 m_memory.o: local_sys.o memoryinfo.o parallel.o
2472-m_mesh_node.o: intrinsic_missing.o parallel.o precision.o
2473+m_mesh_node.o: intrinsic_missing.o parallel.o precision.o units.o
2474 m_mixing.o: class_Data1D.o class_Fstack_Data1D.o parallel.o precision.o
2475 m_mixing_scf.o: class_Fstack_Data1D.o m_mixing.o parallel.o precision.o
2476 m_monitor.o: alloc.o class_OrbitalDistribution.o class_Sparsity.o geom_helper.o
2477@@ -578,8 +578,9 @@
2478 m_ts_io_ctype.o: parallel.o precision.o units.o
2479 m_ts_iodm.o: class_OrbitalDistribution.o class_SpData2D.o class_Sparsity.o
2480 m_ts_iodm.o: m_io_s.o m_os.o parallel.o precision.o
2481-m_ts_kpoints.o: files.o find_kgrid.o local_sys.o m_ts_global_vars.o m_ts_tdir.o
2482-m_ts_kpoints.o: minvec.o parallel.o precision.o siesta_cml.o siesta_options.o
2483+m_ts_kpoints.o: files.o find_kgrid.o kpoint_grid.o local_sys.o
2484+m_ts_kpoints.o: m_ts_global_vars.o m_ts_tdir.o minvec.o parallel.o precision.o
2485+m_ts_kpoints.o: siesta_cml.o siesta_options.o
2486 m_ts_method.o: alloc.o fdf_extra.o geom_helper.o m_region.o m_ts_electype.o
2487 m_ts_mumps_init.o: class_OrbitalDistribution.o class_Sparsity.o
2488 m_ts_mumps_init.o: create_Sparsity_Union.o m_ts_electype.o m_ts_method.o
2489@@ -882,10 +883,10 @@
2490 state_init.o: m_os.o m_pivot_methods.o m_rmaxh.o m_sparse.o
2491 state_init.o: m_sparsity_handling.o m_spin.o m_steps.o m_supercell.o
2492 state_init.o: m_test_io.o m_ts_charge.o m_ts_electype.o m_ts_global_vars.o
2493-state_init.o: m_ts_io.o m_ts_options.o m_ts_sparse.o m_ts_tri_init.o
2494-state_init.o: normalize_dm.o overlap.o parallel.o proximity_check.o
2495-state_init.o: siesta_cml.o siesta_geom.o siesta_options.o sparse_matrices.o
2496-state_init.o: units.o write_subs.o zmatrix.o
2497+state_init.o: m_ts_io.o m_ts_kpoints.o m_ts_options.o m_ts_sparse.o
2498+state_init.o: m_ts_tri_init.o normalize_dm.o overlap.o parallel.o
2499+state_init.o: proximity_check.o siesta_cml.o siesta_geom.o siesta_options.o
2500+state_init.o: sparse_matrices.o units.o write_subs.o zmatrix.o
2501 struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o
2502 struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o
2503 struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o
2504
2505=== modified file 'Util/Grimme/Makefile'
2506--- Util/Grimme/Makefile 2017-11-17 20:53:23 +0000
2507+++ Util/Grimme/Makefile 2017-12-28 12:43:28 +0000
2508@@ -369,7 +369,7 @@
2509 m_mat_invert.o: intrinsic_missing.o m_pivot_array.o precision.o
2510 m_matio.o: alloc.o parallel.o
2511 m_memory.o: local_sys.o memoryinfo.o parallel.o
2512-m_mesh_node.o: intrinsic_missing.o parallel.o precision.o
2513+m_mesh_node.o: intrinsic_missing.o parallel.o precision.o units.o
2514 m_mixing.o: class_Data1D.o class_Fstack_Data1D.o parallel.o precision.o
2515 m_mixing_scf.o: class_Fstack_Data1D.o m_mixing.o parallel.o precision.o
2516 m_monitor.o: alloc.o class_OrbitalDistribution.o class_Sparsity.o geom_helper.o
2517@@ -516,8 +516,9 @@
2518 m_ts_io_ctype.o: parallel.o precision.o units.o
2519 m_ts_iodm.o: class_OrbitalDistribution.o class_SpData2D.o class_Sparsity.o
2520 m_ts_iodm.o: m_io_s.o m_os.o parallel.o precision.o
2521-m_ts_kpoints.o: files.o find_kgrid.o local_sys.o m_ts_global_vars.o m_ts_tdir.o
2522-m_ts_kpoints.o: minvec.o parallel.o precision.o siesta_cml.o siesta_options.o
2523+m_ts_kpoints.o: files.o find_kgrid.o kpoint_grid.o local_sys.o
2524+m_ts_kpoints.o: m_ts_global_vars.o m_ts_tdir.o minvec.o parallel.o precision.o
2525+m_ts_kpoints.o: siesta_cml.o siesta_options.o
2526 m_ts_method.o: alloc.o fdf_extra.o geom_helper.o m_region.o m_ts_electype.o
2527 m_ts_mumps_init.o: class_OrbitalDistribution.o class_Sparsity.o
2528 m_ts_mumps_init.o: create_Sparsity_Union.o m_ts_electype.o m_ts_method.o
2529@@ -820,10 +821,10 @@
2530 state_init.o: m_os.o m_pivot_methods.o m_rmaxh.o m_sparse.o
2531 state_init.o: m_sparsity_handling.o m_spin.o m_steps.o m_supercell.o
2532 state_init.o: m_test_io.o m_ts_charge.o m_ts_electype.o m_ts_global_vars.o
2533-state_init.o: m_ts_io.o m_ts_options.o m_ts_sparse.o m_ts_tri_init.o
2534-state_init.o: normalize_dm.o overlap.o parallel.o proximity_check.o
2535-state_init.o: siesta_cml.o siesta_geom.o siesta_options.o sparse_matrices.o
2536-state_init.o: units.o write_subs.o zmatrix.o
2537+state_init.o: m_ts_io.o m_ts_kpoints.o m_ts_options.o m_ts_sparse.o
2538+state_init.o: m_ts_tri_init.o normalize_dm.o overlap.o parallel.o
2539+state_init.o: proximity_check.o siesta_cml.o siesta_geom.o siesta_options.o
2540+state_init.o: sparse_matrices.o units.o write_subs.o zmatrix.o
2541 struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o
2542 struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o
2543 struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o
2544
2545=== modified file 'Util/Helpers/Makefile'
2546--- Util/Helpers/Makefile 2017-11-17 20:53:23 +0000
2547+++ Util/Helpers/Makefile 2017-12-28 12:43:28 +0000
2548@@ -372,7 +372,7 @@
2549 m_mat_invert.o: intrinsic_missing.o m_pivot_array.o precision.o
2550 m_matio.o: alloc.o parallel.o
2551 m_memory.o: local_sys.o memoryinfo.o parallel.o
2552-m_mesh_node.o: intrinsic_missing.o parallel.o precision.o
2553+m_mesh_node.o: intrinsic_missing.o parallel.o precision.o units.o
2554 m_mixing.o: class_Data1D.o class_Fstack_Data1D.o parallel.o precision.o
2555 m_mixing_scf.o: class_Fstack_Data1D.o m_mixing.o parallel.o precision.o
2556 m_monitor.o: alloc.o class_OrbitalDistribution.o class_Sparsity.o geom_helper.o
2557@@ -519,8 +519,9 @@
2558 m_ts_io_ctype.o: parallel.o precision.o units.o
2559 m_ts_iodm.o: class_OrbitalDistribution.o class_SpData2D.o class_Sparsity.o
2560 m_ts_iodm.o: m_io_s.o m_os.o parallel.o precision.o
2561-m_ts_kpoints.o: files.o find_kgrid.o local_sys.o m_ts_global_vars.o m_ts_tdir.o
2562-m_ts_kpoints.o: minvec.o parallel.o precision.o siesta_cml.o siesta_options.o
2563+m_ts_kpoints.o: files.o find_kgrid.o kpoint_grid.o local_sys.o
2564+m_ts_kpoints.o: m_ts_global_vars.o m_ts_tdir.o minvec.o parallel.o precision.o
2565+m_ts_kpoints.o: siesta_cml.o siesta_options.o
2566 m_ts_method.o: alloc.o fdf_extra.o geom_helper.o m_region.o m_ts_electype.o
2567 m_ts_mumps_init.o: class_OrbitalDistribution.o class_Sparsity.o
2568 m_ts_mumps_init.o: create_Sparsity_Union.o m_ts_electype.o m_ts_method.o
2569@@ -823,10 +824,10 @@
2570 state_init.o: m_os.o m_pivot_methods.o m_rmaxh.o m_sparse.o
2571 state_init.o: m_sparsity_handling.o m_spin.o m_steps.o m_supercell.o
2572 state_init.o: m_test_io.o m_ts_charge.o m_ts_electype.o m_ts_global_vars.o
2573-state_init.o: m_ts_io.o m_ts_options.o m_ts_sparse.o m_ts_tri_init.o
2574-state_init.o: normalize_dm.o overlap.o parallel.o proximity_check.o
2575-state_init.o: siesta_cml.o siesta_geom.o siesta_options.o sparse_matrices.o
2576-state_init.o: units.o write_subs.o zmatrix.o
2577+state_init.o: m_ts_io.o m_ts_kpoints.o m_ts_options.o m_ts_sparse.o
2578+state_init.o: m_ts_tri_init.o normalize_dm.o overlap.o parallel.o
2579+state_init.o: proximity_check.o siesta_cml.o siesta_geom.o siesta_options.o
2580+state_init.o: sparse_matrices.o units.o write_subs.o zmatrix.o
2581 struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o
2582 struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o
2583 struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o
2584
2585=== modified file 'Util/STM/ol-stm/Src/Makefile'
2586--- Util/STM/ol-stm/Src/Makefile 2017-11-17 20:53:23 +0000
2587+++ Util/STM/ol-stm/Src/Makefile 2017-12-28 12:43:28 +0000
2588@@ -446,7 +446,7 @@
2589 m_mat_invert.o: intrinsic_missing.o m_pivot_array.o precision.o
2590 m_matio.o: alloc.o parallel.o
2591 m_memory.o: local_sys.o memoryinfo.o parallel.o
2592-m_mesh_node.o: intrinsic_missing.o parallel.o precision.o
2593+m_mesh_node.o: intrinsic_missing.o parallel.o precision.o units.o
2594 m_mixing.o: class_Data1D.o class_Fstack_Data1D.o parallel.o precision.o
2595 m_mixing_scf.o: class_Fstack_Data1D.o m_mixing.o parallel.o precision.o
2596 m_monitor.o: alloc.o class_OrbitalDistribution.o class_Sparsity.o geom_helper.o
2597@@ -593,8 +593,9 @@
2598 m_ts_io_ctype.o: parallel.o precision.o units.o
2599 m_ts_iodm.o: class_OrbitalDistribution.o class_SpData2D.o class_Sparsity.o
2600 m_ts_iodm.o: m_io_s.o m_os.o parallel.o precision.o
2601-m_ts_kpoints.o: files.o find_kgrid.o local_sys.o m_ts_global_vars.o m_ts_tdir.o
2602-m_ts_kpoints.o: minvec.o parallel.o precision.o siesta_cml.o siesta_options.o
2603+m_ts_kpoints.o: files.o find_kgrid.o kpoint_grid.o local_sys.o
2604+m_ts_kpoints.o: m_ts_global_vars.o m_ts_tdir.o minvec.o parallel.o precision.o
2605+m_ts_kpoints.o: siesta_cml.o siesta_options.o
2606 m_ts_method.o: alloc.o fdf_extra.o geom_helper.o m_region.o m_ts_electype.o
2607 m_ts_mumps_init.o: class_OrbitalDistribution.o class_Sparsity.o
2608 m_ts_mumps_init.o: create_Sparsity_Union.o m_ts_electype.o m_ts_method.o
2609@@ -897,10 +898,10 @@
2610 state_init.o: m_os.o m_pivot_methods.o m_rmaxh.o m_sparse.o
2611 state_init.o: m_sparsity_handling.o m_spin.o m_steps.o m_supercell.o
2612 state_init.o: m_test_io.o m_ts_charge.o m_ts_electype.o m_ts_global_vars.o
2613-state_init.o: m_ts_io.o m_ts_options.o m_ts_sparse.o m_ts_tri_init.o
2614-state_init.o: normalize_dm.o overlap.o parallel.o proximity_check.o
2615-state_init.o: siesta_cml.o siesta_geom.o siesta_options.o sparse_matrices.o
2616-state_init.o: units.o write_subs.o zmatrix.o
2617+state_init.o: m_ts_io.o m_ts_kpoints.o m_ts_options.o m_ts_sparse.o
2618+state_init.o: m_ts_tri_init.o normalize_dm.o overlap.o parallel.o
2619+state_init.o: proximity_check.o siesta_cml.o siesta_geom.o siesta_options.o
2620+state_init.o: sparse_matrices.o units.o write_subs.o zmatrix.o
2621 struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o
2622 struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o
2623 struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o
2624
2625=== modified file 'Util/SpPivot/Makefile'
2626--- Util/SpPivot/Makefile 2017-11-17 20:53:23 +0000
2627+++ Util/SpPivot/Makefile 2017-12-28 12:43:28 +0000
2628@@ -376,7 +376,7 @@
2629 m_mat_invert.o: intrinsic_missing.o m_pivot_array.o precision.o
2630 m_matio.o: alloc.o parallel.o
2631 m_memory.o: local_sys.o memoryinfo.o parallel.o
2632-m_mesh_node.o: intrinsic_missing.o parallel.o precision.o
2633+m_mesh_node.o: intrinsic_missing.o parallel.o precision.o units.o
2634 m_mixing.o: class_Data1D.o class_Fstack_Data1D.o parallel.o precision.o
2635 m_mixing_scf.o: class_Fstack_Data1D.o m_mixing.o parallel.o precision.o
2636 m_monitor.o: alloc.o class_OrbitalDistribution.o class_Sparsity.o geom_helper.o
2637@@ -523,8 +523,9 @@
2638 m_ts_io_ctype.o: parallel.o precision.o units.o
2639 m_ts_iodm.o: class_OrbitalDistribution.o class_SpData2D.o class_Sparsity.o
2640 m_ts_iodm.o: m_io_s.o m_os.o parallel.o precision.o
2641-m_ts_kpoints.o: files.o find_kgrid.o local_sys.o m_ts_global_vars.o m_ts_tdir.o
2642-m_ts_kpoints.o: minvec.o parallel.o precision.o siesta_cml.o siesta_options.o
2643+m_ts_kpoints.o: files.o find_kgrid.o kpoint_grid.o local_sys.o
2644+m_ts_kpoints.o: m_ts_global_vars.o m_ts_tdir.o minvec.o parallel.o precision.o
2645+m_ts_kpoints.o: siesta_cml.o siesta_options.o
2646 m_ts_method.o: alloc.o fdf_extra.o geom_helper.o m_region.o m_ts_electype.o
2647 m_ts_mumps_init.o: class_OrbitalDistribution.o class_Sparsity.o
2648 m_ts_mumps_init.o: create_Sparsity_Union.o m_ts_electype.o m_ts_method.o
2649@@ -827,10 +828,10 @@
2650 state_init.o: m_os.o m_pivot_methods.o m_rmaxh.o m_sparse.o
2651 state_init.o: m_sparsity_handling.o m_spin.o m_steps.o m_supercell.o
2652 state_init.o: m_test_io.o m_ts_charge.o m_ts_electype.o m_ts_global_vars.o
2653-state_init.o: m_ts_io.o m_ts_options.o m_ts_sparse.o m_ts_tri_init.o
2654-state_init.o: normalize_dm.o overlap.o parallel.o proximity_check.o
2655-state_init.o: siesta_cml.o siesta_geom.o siesta_options.o sparse_matrices.o
2656-state_init.o: units.o write_subs.o zmatrix.o
2657+state_init.o: m_ts_io.o m_ts_kpoints.o m_ts_options.o m_ts_sparse.o
2658+state_init.o: m_ts_tri_init.o normalize_dm.o overlap.o parallel.o
2659+state_init.o: proximity_check.o siesta_cml.o siesta_geom.o siesta_options.o
2660+state_init.o: sparse_matrices.o units.o write_subs.o zmatrix.o
2661 struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o
2662 struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o
2663 struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o
2664
2665=== modified file 'Util/TS/TBtrans/Makefile'
2666--- Util/TS/TBtrans/Makefile 2017-11-28 17:37:32 +0000
2667+++ Util/TS/TBtrans/Makefile 2017-12-28 12:43:28 +0000
2668@@ -779,8 +779,9 @@
2669 m_ts_io_ctype.o: parallel.o precision.o units.o
2670 m_ts_iodm.o: class_OrbitalDistribution.o class_SpData2D.o class_Sparsity.o
2671 m_ts_iodm.o: m_io_s.o m_os.o parallel.o precision.o
2672-m_ts_kpoints.o: files.o find_kgrid.o local_sys.o m_ts_global_vars.o m_ts_tdir.o
2673-m_ts_kpoints.o: minvec.o parallel.o precision.o siesta_cml.o siesta_options.o
2674+m_ts_kpoints.o: files.o find_kgrid.o kpoint_grid.o local_sys.o
2675+m_ts_kpoints.o: m_ts_global_vars.o m_ts_tdir.o minvec.o parallel.o precision.o
2676+m_ts_kpoints.o: siesta_cml.o siesta_options.o
2677 m_ts_method.o: alloc.o fdf_extra.o geom_helper.o m_region.o m_ts_electype.o
2678 m_ts_mumps_init.o: class_OrbitalDistribution.o class_Sparsity.o
2679 m_ts_mumps_init.o: create_Sparsity_Union.o m_ts_electype.o m_ts_method.o
2680@@ -1083,10 +1084,10 @@
2681 state_init.o: m_os.o m_pivot_methods.o m_rmaxh.o m_sparse.o
2682 state_init.o: m_sparsity_handling.o m_spin.o m_steps.o m_supercell.o
2683 state_init.o: m_test_io.o m_ts_charge.o m_ts_electype.o m_ts_global_vars.o
2684-state_init.o: m_ts_io.o m_ts_options.o m_ts_sparse.o m_ts_tri_init.o
2685-state_init.o: normalize_dm.o overlap.o parallel.o proximity_check.o
2686-state_init.o: siesta_cml.o siesta_geom.o siesta_options.o sparse_matrices.o
2687-state_init.o: units.o write_subs.o zmatrix.o
2688+state_init.o: m_ts_io.o m_ts_kpoints.o m_ts_options.o m_ts_sparse.o
2689+state_init.o: m_ts_tri_init.o normalize_dm.o overlap.o parallel.o
2690+state_init.o: proximity_check.o siesta_cml.o siesta_geom.o siesta_options.o
2691+state_init.o: sparse_matrices.o units.o write_subs.o zmatrix.o
2692 struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o
2693 struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o
2694 struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o
2695
2696=== modified file 'Util/TS/ts2ts/Makefile'
2697--- Util/TS/ts2ts/Makefile 2017-11-17 20:53:23 +0000
2698+++ Util/TS/ts2ts/Makefile 2017-12-28 12:43:28 +0000
2699@@ -376,7 +376,7 @@
2700 m_mat_invert.o: intrinsic_missing.o m_pivot_array.o precision.o
2701 m_matio.o: alloc.o parallel.o
2702 m_memory.o: local_sys.o memoryinfo.o parallel.o
2703-m_mesh_node.o: intrinsic_missing.o parallel.o precision.o
2704+m_mesh_node.o: intrinsic_missing.o parallel.o precision.o units.o
2705 m_mixing.o: class_Data1D.o class_Fstack_Data1D.o parallel.o precision.o
2706 m_mixing_scf.o: class_Fstack_Data1D.o m_mixing.o parallel.o precision.o
2707 m_monitor.o: alloc.o class_OrbitalDistribution.o class_Sparsity.o geom_helper.o
2708@@ -523,8 +523,9 @@
2709 m_ts_io_ctype.o: parallel.o precision.o units.o
2710 m_ts_iodm.o: class_OrbitalDistribution.o class_SpData2D.o class_Sparsity.o
2711 m_ts_iodm.o: m_io_s.o m_os.o parallel.o precision.o
2712-m_ts_kpoints.o: files.o find_kgrid.o local_sys.o m_ts_global_vars.o m_ts_tdir.o
2713-m_ts_kpoints.o: minvec.o parallel.o precision.o siesta_cml.o siesta_options.o
2714+m_ts_kpoints.o: files.o find_kgrid.o kpoint_grid.o local_sys.o
2715+m_ts_kpoints.o: m_ts_global_vars.o m_ts_tdir.o minvec.o parallel.o precision.o
2716+m_ts_kpoints.o: siesta_cml.o siesta_options.o
2717 m_ts_method.o: alloc.o fdf_extra.o geom_helper.o m_region.o m_ts_electype.o
2718 m_ts_mumps_init.o: class_OrbitalDistribution.o class_Sparsity.o
2719 m_ts_mumps_init.o: create_Sparsity_Union.o m_ts_electype.o m_ts_method.o
2720@@ -827,10 +828,10 @@
2721 state_init.o: m_os.o m_pivot_methods.o m_rmaxh.o m_sparse.o
2722 state_init.o: m_sparsity_handling.o m_spin.o m_steps.o m_supercell.o
2723 state_init.o: m_test_io.o m_ts_charge.o m_ts_electype.o m_ts_global_vars.o
2724-state_init.o: m_ts_io.o m_ts_options.o m_ts_sparse.o m_ts_tri_init.o
2725-state_init.o: normalize_dm.o overlap.o parallel.o proximity_check.o
2726-state_init.o: siesta_cml.o siesta_geom.o siesta_options.o sparse_matrices.o
2727-state_init.o: units.o write_subs.o zmatrix.o
2728+state_init.o: m_ts_io.o m_ts_kpoints.o m_ts_options.o m_ts_sparse.o
2729+state_init.o: m_ts_tri_init.o normalize_dm.o overlap.o parallel.o
2730+state_init.o: proximity_check.o siesta_cml.o siesta_geom.o siesta_options.o
2731+state_init.o: sparse_matrices.o units.o write_subs.o zmatrix.o
2732 struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o
2733 struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o
2734 struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o
2735
2736=== modified file 'Util/TS/tshs2tshs/Makefile'
2737--- Util/TS/tshs2tshs/Makefile 2017-11-17 20:53:23 +0000
2738+++ Util/TS/tshs2tshs/Makefile 2017-12-28 12:43:28 +0000
2739@@ -441,7 +441,7 @@
2740 m_mat_invert.o: intrinsic_missing.o m_pivot_array.o precision.o
2741 m_matio.o: alloc.o parallel.o
2742 m_memory.o: local_sys.o memoryinfo.o parallel.o
2743-m_mesh_node.o: intrinsic_missing.o parallel.o precision.o
2744+m_mesh_node.o: intrinsic_missing.o parallel.o precision.o units.o
2745 m_mixing.o: class_Data1D.o class_Fstack_Data1D.o parallel.o precision.o
2746 m_mixing_scf.o: class_Fstack_Data1D.o m_mixing.o parallel.o precision.o
2747 m_monitor.o: alloc.o class_OrbitalDistribution.o class_Sparsity.o geom_helper.o
2748@@ -588,8 +588,9 @@
2749 m_ts_io_ctype.o: parallel.o precision.o units.o
2750 m_ts_iodm.o: class_OrbitalDistribution.o class_SpData2D.o class_Sparsity.o
2751 m_ts_iodm.o: m_io_s.o m_os.o parallel.o precision.o
2752-m_ts_kpoints.o: files.o find_kgrid.o local_sys.o m_ts_global_vars.o m_ts_tdir.o
2753-m_ts_kpoints.o: minvec.o parallel.o precision.o siesta_cml.o siesta_options.o
2754+m_ts_kpoints.o: files.o find_kgrid.o kpoint_grid.o local_sys.o
2755+m_ts_kpoints.o: m_ts_global_vars.o m_ts_tdir.o minvec.o parallel.o precision.o
2756+m_ts_kpoints.o: siesta_cml.o siesta_options.o
2757 m_ts_method.o: alloc.o fdf_extra.o geom_helper.o m_region.o m_ts_electype.o
2758 m_ts_mumps_init.o: class_OrbitalDistribution.o class_Sparsity.o
2759 m_ts_mumps_init.o: create_Sparsity_Union.o m_ts_electype.o m_ts_method.o
2760@@ -892,10 +893,10 @@
2761 state_init.o: m_os.o m_pivot_methods.o m_rmaxh.o m_sparse.o
2762 state_init.o: m_sparsity_handling.o m_spin.o m_steps.o m_supercell.o
2763 state_init.o: m_test_io.o m_ts_charge.o m_ts_electype.o m_ts_global_vars.o
2764-state_init.o: m_ts_io.o m_ts_options.o m_ts_sparse.o m_ts_tri_init.o
2765-state_init.o: normalize_dm.o overlap.o parallel.o proximity_check.o
2766-state_init.o: siesta_cml.o siesta_geom.o siesta_options.o sparse_matrices.o
2767-state_init.o: units.o write_subs.o zmatrix.o
2768+state_init.o: m_ts_io.o m_ts_kpoints.o m_ts_options.o m_ts_sparse.o
2769+state_init.o: m_ts_tri_init.o normalize_dm.o overlap.o parallel.o
2770+state_init.o: proximity_check.o siesta_cml.o siesta_geom.o siesta_options.o
2771+state_init.o: sparse_matrices.o units.o write_subs.o zmatrix.o
2772 struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o
2773 struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o
2774 struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o
2775
2776=== modified file 'Util/VCA/Makefile'
2777--- Util/VCA/Makefile 2017-11-17 20:53:23 +0000
2778+++ Util/VCA/Makefile 2017-12-28 12:43:28 +0000
2779@@ -402,7 +402,7 @@
2780 m_mat_invert.o: intrinsic_missing.o m_pivot_array.o precision.o
2781 m_matio.o: alloc.o parallel.o
2782 m_memory.o: local_sys.o memoryinfo.o parallel.o
2783-m_mesh_node.o: intrinsic_missing.o parallel.o precision.o
2784+m_mesh_node.o: intrinsic_missing.o parallel.o precision.o units.o
2785 m_mixing.o: class_Data1D.o class_Fstack_Data1D.o parallel.o precision.o
2786 m_mixing_scf.o: class_Fstack_Data1D.o m_mixing.o parallel.o precision.o
2787 m_monitor.o: alloc.o class_OrbitalDistribution.o class_Sparsity.o geom_helper.o
2788@@ -549,8 +549,9 @@
2789 m_ts_io_ctype.o: parallel.o precision.o units.o
2790 m_ts_iodm.o: class_OrbitalDistribution.o class_SpData2D.o class_Sparsity.o
2791 m_ts_iodm.o: m_io_s.o m_os.o parallel.o precision.o
2792-m_ts_kpoints.o: files.o find_kgrid.o local_sys.o m_ts_global_vars.o m_ts_tdir.o
2793-m_ts_kpoints.o: minvec.o parallel.o precision.o siesta_cml.o siesta_options.o
2794+m_ts_kpoints.o: files.o find_kgrid.o kpoint_grid.o local_sys.o
2795+m_ts_kpoints.o: m_ts_global_vars.o m_ts_tdir.o minvec.o parallel.o precision.o
2796+m_ts_kpoints.o: siesta_cml.o siesta_options.o
2797 m_ts_method.o: alloc.o fdf_extra.o geom_helper.o m_region.o m_ts_electype.o
2798 m_ts_mumps_init.o: class_OrbitalDistribution.o class_Sparsity.o
2799 m_ts_mumps_init.o: create_Sparsity_Union.o m_ts_electype.o m_ts_method.o
2800@@ -853,10 +854,10 @@
2801 state_init.o: m_os.o m_pivot_methods.o m_rmaxh.o m_sparse.o
2802 state_init.o: m_sparsity_handling.o m_spin.o m_steps.o m_supercell.o
2803 state_init.o: m_test_io.o m_ts_charge.o m_ts_electype.o m_ts_global_vars.o
2804-state_init.o: m_ts_io.o m_ts_options.o m_ts_sparse.o m_ts_tri_init.o
2805-state_init.o: normalize_dm.o overlap.o parallel.o proximity_check.o
2806-state_init.o: siesta_cml.o siesta_geom.o siesta_options.o sparse_matrices.o
2807-state_init.o: units.o write_subs.o zmatrix.o
2808+state_init.o: m_ts_io.o m_ts_kpoints.o m_ts_options.o m_ts_sparse.o
2809+state_init.o: m_ts_tri_init.o normalize_dm.o overlap.o parallel.o
2810+state_init.o: proximity_check.o siesta_cml.o siesta_geom.o siesta_options.o
2811+state_init.o: sparse_matrices.o units.o write_subs.o zmatrix.o
2812 struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o
2813 struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o
2814 struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o
2815
2816=== modified file 'version.info'
2817--- version.info 2017-12-22 10:33:21 +0000
2818+++ version.info 2017-12-28 12:43:28 +0000
2819@@ -1,1 +1,5 @@
2820+<<<<<<< TREE
2821 siesta-4.1--831
2822+=======
2823+siesta-4.1--811--ts-int-2
2824+>>>>>>> MERGE-SOURCE

Subscribers

People subscribed via source and target branches