Merge lp:~nickpapior/siesta/4.1-ncdf-md into lp:siesta/4.1

Proposed by Nick Papior
Status: Merged
Merged at revision: 939
Proposed branch: lp:~nickpapior/siesta/4.1-ncdf-md
Merge into: lp:siesta/4.1
Diff against target: 1187 lines (+425/-261) (has conflicts)
20 files modified
Docs/siesta.tex (+13/-5)
Src/Makefile (+8/-8)
Src/final_H_f_stress.F (+18/-5)
Src/m_ncdf_siesta.F90 (+205/-114)
Src/read_options.F90 (+16/-2)
Src/save_density_matrix.F (+13/-9)
Src/siesta_forces.F (+7/-27)
Src/state_init.F (+53/-3)
Util/COOP/Makefile (+8/-8)
Util/Denchar/Src/Makefile (+8/-8)
Util/Gen-basis/Makefile (+8/-8)
Util/Grimme/Makefile (+8/-8)
Util/Helpers/Makefile (+8/-8)
Util/STM/ol-stm/Src/Makefile (+8/-8)
Util/SpPivot/Makefile (+8/-8)
Util/TS/TBtrans/Makefile (+8/-8)
Util/TS/ts2ts/Makefile (+8/-8)
Util/TS/tshs2tshs/Makefile (+8/-8)
Util/VCA/Makefile (+8/-8)
version.info (+4/-0)
Text conflict in version.info
To merge this branch: bzr merge lp:~nickpapior/siesta/4.1-ncdf-md
Reviewer Review Type Date Requested Status
Alberto Garcia Approve
Review via email: mp+348933@code.launchpad.net

Commit message

Fixed NCDF write-out for MD and FC calculations

Previously the NCDF file-write-out would crash when performing
MD/FC calculations because the sparse arrays does not really make sense
to store.

Now the file content is based on the type of run, single/MD/FC.
A relaxation is equivalent to an MD (currently).

One non-CDF related change is the change of MD.NumCGSteps to
MD.Steps keyword. The NumCGSteps is deprecated since many more
options have entered and CG was not necessarily the correct instance.
Same applies to MD.MaxCGDispl -> MD.MaxDispl.

Secondly, the MD.Steps keyword is now also the default for
MD.FinalTimeStep which means that a single keyword determines the number
of steps runned.

The old flags are still used as the default values.

Description of the change

Basically this is one big fix for the NCDF routines in Siesta.

However, there is one change that "affects" siesta.

MD.NumCGSteps is renamed to MD.Steps (please suggest if another keyword is better).
The procedure is this:

i = fdf_get('MD.NumCGSteps', 0)
i = fdf_get('MD.Steps', i)

I think the NumCGsteps is far too confusing in 4.1 (even in 4.0) and it should have been updated previously.
The same changes have been applied to MD.MaxCGDispl (now MD.MaxDispl).

Secondly, since MD.Steps is more generic it is now also the default in MD.FinalTimeStep

j = fdf_get('MD.FinalTimeStep', i) ! i from above.

Hence one single keyword may be used generically throughout.

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

OK to the introduction of MD.Steps et al.

This is a minor point:

If someone uses MD.TypeOfRun <some MD option> but forgets to set MD.FinalTimeStep, a fossil MD.NumCGSteps might set it silently. I would put in code to complain if MD.Steps is not set either.

Also:

* In the ncdf module, the KB projectors might (in the trunk) now have an extra "j" index (when offsite SO is used). I put them in the .ion file, but I forgot to put them in the vanilla cdf files. Please take this into account when you port this patch into the trunk.

* Correct the indentation of

! 5 = -z

in final_H_f_stress.

review: Approve
lp:~nickpapior/siesta/4.1-ncdf-md updated
939. By Nick Papior

Fixed FinalTimeStep option reads and indentation

Thanks Alberto

940. By Nick Papior

Added pjnl_j to the ncdf basis

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

Ok, I will insert an fdf_defined before FinalTimestep.

Add 0's to the output of the KB projectors.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'Docs/siesta.tex'
--- Docs/siesta.tex 2018-06-26 08:27:41 +0000
+++ Docs/siesta.tex 2018-07-09 07:59:46 +0000
@@ -5796,7 +5796,7 @@
5796 if the lattice changes are moderate).5796 if the lattice changes are moderate).
57975797
5798 By default this will be \fdffalse\ when performing single-point calculations5798 By default this will be \fdffalse\ when performing single-point calculations
5799 (\fdf{MD.TypeOfRun:CG} with \fdf{MD.NumCGsteps:1} or below). Otherwise5799 (\fdf{MD.TypeOfRun:CG} with \fdf{MD.Steps:1} or below). Otherwise
5800 this will default to \fdftrue.5800 this will default to \fdftrue.
58015801
5802 \note one may try to set this to \fdffalse\ for better performance,5802 \note one may try to set this to \fdffalse\ for better performance,
@@ -9364,15 +9364,20 @@
93649364
9365\end{fdfentry}9365\end{fdfentry}
93669366
9367\begin{fdfentry}{MD.NumCGsteps}[integer]<0>9367\begin{fdfentry}{MD.Steps}[integer]<0>
9368 \fdfdepend{MD.NumCGsteps}
9368 9369
9369 Maximum number of conjugate gradient (or Broyden) minimization moves9370 Maximum number of steps in a minimization routine
9370 (the minimization will stop if tolerance is reached before; see9371 (the minimization will stop if tolerance is reached before; see
9371 \fdf{MD.MaxForceTol} below).9372 \fdf{MD.MaxForceTol} below).
93729373
9374 \note The old flag \fdf*{MD.NumCGsteps} will remain for historical
9375 reasons.
9376
9373\end{fdfentry}9377\end{fdfentry}
93749378
9375\begin{fdfentry}{MD.MaxCGDispl}[length]<$0.2\,\mathrm{Bohr}$>9379\begin{fdfentry}{MD.MaxDispl}[length]<$0.2\,\mathrm{Bohr}$>
9380 \fdfdepend{MD.MaxCGDispl}
9376 9381
9377 Maximum atomic displacements in an optimization move.9382 Maximum atomic displacements in an optimization move.
93789383
@@ -9383,6 +9388,9 @@
93839388
9384 Note that there are Zmatrix-specific options that override this option.9389 Note that there are Zmatrix-specific options that override this option.
93859390
9391 \note The old flag \fdf*{MD.MaxCGDispl} will remain for historical
9392 reasons.
9393
9386\end{fdfentry}9394\end{fdfentry}
93879395
9388\begin{fdfentry}{MD.PreconditionVariableCell}[length]<$5\,\mathrm{Ang}$>9396\begin{fdfentry}{MD.PreconditionVariableCell}[length]<$5\,\mathrm{Ang}$>
@@ -9659,7 +9667,7 @@
96599667
9660\end{fdfentry}9668\end{fdfentry}
96619669
9662\begin{fdfentry}{MD.FinalTimeStep}[integer]<$1$>9670\begin{fdfentry}{MD.FinalTimeStep}[integer]<\fdfvalue{MD.Steps}>
96639671
9664 Final time step of the MD simulation.9672 Final time step of the MD simulation.
96659673
96669674
=== modified file 'Src/Makefile'
--- Src/Makefile 2018-06-28 13:53:17 +0000
+++ Src/Makefile 2018-07-09 07:59:46 +0000
@@ -1293,14 +1293,14 @@
1293state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o1293state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o
1294state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o1294state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o
1295state_init.o: ioxv.o kpoint_grid.o ldau_specs.o m_energies.o m_eo.o m_mixing.o1295state_init.o: ioxv.o kpoint_grid.o ldau_specs.o m_energies.o m_eo.o m_mixing.o
1296state_init.o: m_mixing_scf.o m_mpi_utils.o m_new_dm.o m_os.o m_pivot_methods.o1296state_init.o: m_mixing_scf.o m_mpi_utils.o m_ncdf_siesta.o m_new_dm.o m_os.o
1297state_init.o: m_rmaxh.o m_sparse.o m_sparsity_handling.o m_spin.o m_steps.o1297state_init.o: m_pivot_methods.o m_rmaxh.o m_sparse.o m_sparsity_handling.o
1298state_init.o: m_supercell.o m_test_io.o m_ts_charge.o m_ts_electype.o1298state_init.o: m_spin.o m_steps.o m_supercell.o m_test_io.o m_ts_charge.o
1299state_init.o: m_ts_global_vars.o m_ts_io.o m_ts_kpoints.o m_ts_options.o1299state_init.o: m_ts_electype.o m_ts_global_vars.o m_ts_io.o m_ts_kpoints.o
1300state_init.o: m_ts_sparse.o m_ts_tri_init.o normalize_dm.o overlap.o parallel.o1300state_init.o: m_ts_options.o m_ts_sparse.o m_ts_tri_init.o normalize_dm.o
1301state_init.o: proximity_check.o siesta_cml.o siesta_dicts.o siesta_geom.o1301state_init.o: overlap.o parallel.o proximity_check.o siesta_cml.o
1302state_init.o: siesta_options.o sparse_matrices.o sys.o units.o write_subs.o1302state_init.o: siesta_dicts.o siesta_geom.o siesta_options.o sparse_matrices.o
1303state_init.o: zmatrix.o1303state_init.o: sys.o units.o write_subs.o zmatrix.o
1304struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o1304struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o
1305struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o1305struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o
1306struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o1306struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o
13071307
=== modified file 'Src/final_H_f_stress.F'
--- Src/final_H_f_stress.F 2018-06-20 10:34:33 +0000
+++ Src/final_H_f_stress.F 2018-07-09 07:59:46 +0000
@@ -17,7 +17,7 @@
17#ifdef NCDF_417#ifdef NCDF_4
18 use siesta_options, only: write_cdf18 use siesta_options, only: write_cdf
19#endif19#endif
20 use siesta_options, only: g2cut, savehs, temp20 use siesta_options, only: g2cut, savehs, temp, nmove
21 use siesta_options, only: recompute_H_after_scf21 use siesta_options, only: recompute_H_after_scf
22 use sparse_matrices, only: numh, listh, listhptr22 use sparse_matrices, only: numh, listh, listhptr
23 use sparse_matrices, only: H, S, Dscf, Escf, maxnh, xijo23 use sparse_matrices, only: H, S, Dscf, Escf, maxnh, xijo
@@ -297,10 +297,23 @@
297#ifdef CDF297#ifdef CDF
298#ifdef NCDF_4298#ifdef NCDF_4
299 if ( write_cdf ) then299 if ( write_cdf ) then
300 dic_save = ('fa'.kv.1)//('stress'.kv.1)300 if ( idyn == 6 ) then
301 if ( savehs .or. TS_HS_save ) dic_save = dic_save //('H'.kv.1)301 call cdf_save_fc(trim(slabel)//'.nc', istep)
302 call cdf_save_state(trim(slabel)//'.nc',dic_save)302 if ( istep == 0 ) then
303 call delete(dic_save)303 dic_save = ('fa'.kv.1)//('stress'.kv.1)
304 if ( savehs .or. TS_HS_save )
305 & dic_save = dic_save//('H'.kv.1)
306 call cdf_save_state(trim(slabel)//'.nc',dic_save)
307 call delete(dic_save)
308 end if
309 else if ( idyn /=0 .or. nmove /= 0 ) then
310 call cdf_save_md(trim(slabel)//'.nc')
311 else
312 dic_save = ('fa'.kv.1)//('stress'.kv.1)
313 if ( savehs .or. TS_HS_save ) dic_save = dic_save //('H'.kv.1)
314 call cdf_save_state(trim(slabel)//'.nc',dic_save)
315 call delete(dic_save)
316 end if
304 end if317 end if
305#endif318#endif
306#endif319#endif
307320
=== modified file 'Src/m_ncdf_siesta.F90'
--- Src/m_ncdf_siesta.F90 2018-06-12 22:59:08 +0000
+++ Src/m_ncdf_siesta.F90 2018-07-09 07:59:46 +0000
@@ -29,6 +29,7 @@
29 public :: cdf_save_settings29 public :: cdf_save_settings
30 public :: cdf_save_basis30 public :: cdf_save_basis
31 public :: cdf_save_md31 public :: cdf_save_md
32 public :: cdf_save_fc
32 public :: cdf_save_state33 public :: cdf_save_state
33 public :: cdf_save_grid34 public :: cdf_save_grid
3435
@@ -38,7 +39,7 @@
3839
39#ifdef NCDF_440#ifdef NCDF_4
4041
41 subroutine cdf_init_file(fname,is_md)42 subroutine cdf_init_file(fname, is_md, is_fc)
42 use fdf, only : fdf_get, leqi43 use fdf, only : fdf_get, leqi
43 use class_Sparsity44 use class_Sparsity
44 use files, only : slabel45 use files, only : slabel
@@ -57,13 +58,15 @@
57 use siesta_options, only: savebader58 use siesta_options, only: savebader
58 use siesta_options, only: save_initial_charge_density59 use siesta_options, only: save_initial_charge_density
59 use siesta_options, only: fixspin, total_spin60 use siesta_options, only: fixspin, total_spin
61 use siesta_options, only: ia1, ia2, dx ! FC information
60 use m_timestamp, only: datestring62 use m_timestamp, only: datestring
61 use m_ts_electype, elec_name => name63 use m_ts_electype, elec_name => name
62 use m_ts_options, only : Volt, N_Elec, Elecs64 use m_ts_options, only : Volt, N_Elec, Elecs
63 use m_ts_options, only : TS_HS_Save65 use m_ts_options, only : TS_HS_Save
6466
65 character(len=*), intent(in) :: fname67 character(len=*), intent(in) :: fname
66 logical, intent(in) :: is_md68 logical, intent(in), optional :: is_md
69 logical, intent(in), optional :: is_fc
6770
68 ! Local variables71 ! Local variables
69 type(hNCDF) :: ncdf, grp, grp272 type(hNCDF) :: ncdf, grp, grp2
@@ -72,10 +75,16 @@
72 integer :: n_nzs, tmp, i, chks(3), iEl75 integer :: n_nzs, tmp, i, chks(3), iEl
73 integer, allocatable :: ibuf(:)76 integer, allocatable :: ibuf(:)
74 logical :: exists77 logical :: exists
78 logical :: lis_md, lis_fc
75#ifdef MPI79#ifdef MPI
76 integer :: MPIerror80 integer :: MPIerror
77#endif81#endif
7882
83 lis_md = .false.
84 if ( present(is_md) ) lis_md = is_md
85 lis_fc = .false.
86 if ( present(is_fc) ) lis_fc = is_fc
87
79 ! We always re-write the file...88 ! We always re-write the file...
80 call ncdf_create(ncdf,fname, &89 call ncdf_create(ncdf,fname, &
81 mode=ior(NF90_WRITE,NF90_NETCDF4), overwrite=.true.)90 mode=ior(NF90_WRITE,NF90_NETCDF4), overwrite=.true.)
@@ -96,112 +105,120 @@
96 d = d// ('DIMone'.kv. 1)105 d = d// ('DIMone'.kv. 1)
97 call ncdf_crt(ncdf,d)106 call ncdf_crt(ncdf,d)
98 call delete(d)107 call delete(d)
99
100 ! Create all necessary containers...
101 dic = ('info'.kv.'Number of supercells in each unit-cell direction')
102 call ncdf_def_var(ncdf,'nsc',NF90_INT,(/'xyz'/), &
103 compress_lvl=0, atts=dic)
104108
105 dic = dic//('info'.kv.'Last orbital of equivalent atom')109 dic = dic//('info'.kv.'Last orbital of equivalent atom')
106 call ncdf_def_var(ncdf,'lasto',NF90_INT,(/'na_u'/), &110 call ncdf_def_var(ncdf,'lasto',NF90_INT,(/'na_u'/), &
107 compress_lvl=0, atts=dic)111 compress_lvl=0, atts=dic)
112 call ncdf_put_var(ncdf,'lasto',lasto(1:na_u))
108 113
109 dic = dic//('info'.kv.'Total charge')114 dic = dic//('info'.kv.'Total charge')
110 call ncdf_def_var(ncdf,'Qtot',NF90_DOUBLE,(/'one'/), &115 call ncdf_def_var(ncdf,'Qtot',NF90_DOUBLE,(/'one'/), &
111 compress_lvl=0, atts=dic)116 compress_lvl=0, atts=dic)
117 call ncdf_put_var(ncdf,'Qtot',Qtot)
112118
113 dic = dic//('info'.kv.'Fermi level')//('unit'.kv.'Ry')
114 if ( fixspin ) then119 if ( fixspin ) then
115 call ncdf_def_var(ncdf,'Ef',NF90_DOUBLE,(/'spin'/), &
116 compress_lvl=0, atts=dic)
117
118 call delete(dic)
119 dic = dic//('info'.kv.'Total spin')120 dic = dic//('info'.kv.'Total spin')
120 call ncdf_def_var(ncdf,'Qspin',NF90_DOUBLE,(/'one'/), &121 call ncdf_def_var(ncdf,'Qspin',NF90_DOUBLE,(/'one'/), &
121 compress_lvl=0, atts=dic)122 compress_lvl=0, atts=dic)
122 else123 call ncdf_put_var(ncdf,'Qspin',total_spin)
123 call ncdf_def_var(ncdf,'Ef',NF90_DOUBLE,(/'one'/), &124 end if
124 compress_lvl=0, atts=dic)125
125 end if126 if ( .not. lis_MD ) then
126 127
127 dic = dic//('info'.kv.'Atomic coordinates')//('unit'.kv.'Bohr')128 ! Create all necessary containers...
128 call ncdf_def_var(ncdf,'xa',NF90_DOUBLE,(/'xyz ','na_u'/), &129 dic = dic//('info'.kv.'Number of supercells in each unit-cell direction')
129 compress_lvl=0, atts=dic)130 call ncdf_def_var(ncdf,'nsc',NF90_INT,(/'xyz'/), &
130 131 compress_lvl=0, atts=dic)
131 dic = dic//('info'.kv.'Unit cell')132
132 call ncdf_def_var(ncdf,'cell',NF90_DOUBLE,(/'xyz','xyz'/), &133 dic = dic//('info'.kv.'Fermi level')//('unit'.kv.'Ry')
133 compress_lvl=0, atts=dic)134 if ( fixspin ) then
134 135 call ncdf_def_var(ncdf,'Ef',NF90_DOUBLE,(/'spin'/), &
135 dic = dic//('info'.kv.'Atomic forces')//('unit'.kv.'Ry/Bohr')136 compress_lvl=0, atts=dic)
136 call ncdf_def_var(ncdf,'fa',NF90_DOUBLE,(/'xyz ','na_u'/), &137 else
137 compress_lvl=0, atts=dic)138 call ncdf_def_var(ncdf,'Ef',NF90_DOUBLE,(/'one'/), &
138 139 compress_lvl=0, atts=dic)
139 dic = dic//('info'.kv.'Cell stress')//('unit'.kv.'Ry/Bohr**3')140 end if
140 call ncdf_def_var(ncdf,'stress',NF90_DOUBLE,(/'xyz','xyz'/), &141
141 compress_lvl=0, atts=dic)142 dic = dic//('info'.kv.'Atomic coordinates')//('unit'.kv.'Bohr')
143 call ncdf_def_var(ncdf,'xa',NF90_DOUBLE,(/'xyz ','na_u'/), &
144 compress_lvl=0, atts=dic)
145
146 dic = dic//('info'.kv.'Unit cell')
147 call ncdf_def_var(ncdf,'cell',NF90_DOUBLE,(/'xyz','xyz'/), &
148 compress_lvl=0, atts=dic)
149
150 dic = dic//('info'.kv.'Atomic forces')//('unit'.kv.'Ry/Bohr')
151 call ncdf_def_var(ncdf,'fa',NF90_DOUBLE,(/'xyz ','na_u'/), &
152 compress_lvl=0, atts=dic)
153
154 dic = dic//('info'.kv.'Cell stress')//('unit'.kv.'Ry/Bohr**3')
155 call ncdf_def_var(ncdf,'stress',NF90_DOUBLE,(/'xyz','xyz'/), &
156 compress_lvl=0, atts=dic)
157 end if
142158
143 call delete(dic)159 call delete(dic)
144160
145 161 if ( .not. lis_MD ) then
146 ! Create matrix group162
147 call ncdf_def_grp(ncdf,'SPARSE',grp)163 ! Create matrix group
148164 call ncdf_def_grp(ncdf,'SPARSE',grp)
149 call ncdf_def_dim(grp,'nnzs',n_nzs)165
150166 call ncdf_def_dim(grp,'nnzs',n_nzs)
151 ! EDM is required to have its own spin (because of spin-orbit coupling167
152 ! where the spin == 4, and not 8)168 ! EDM is required to have its own spin (because of spin-orbit coupling
153 call ncdf_def_dim(grp,'spin_EDM',spin%EDM)169 ! where the spin == 4, and not 8)
154170 call ncdf_def_dim(grp,'spin_EDM',spin%EDM)
155171
156 dic = dic//('info'.kv.'Index of supercell coordinates')172
157 call ncdf_def_var(grp,'isc_off',NF90_INT,(/'xyz','n_s'/), &173 dic = dic//('info'.kv.'Index of supercell coordinates')
158 compress_lvl=0, atts=dic)174 call ncdf_def_var(grp,'isc_off',NF90_INT,(/'xyz','n_s'/), &
159175 compress_lvl=0, atts=dic)
160 dic = dic//('info'.kv.'Number of non-zero elements per row')176
161 call ncdf_def_var(grp,'n_col',NF90_INT,(/'no_u'/), &177 dic = dic//('info'.kv.'Number of non-zero elements per row')
162 compress_lvl=0, atts=dic)178 call ncdf_def_var(grp,'n_col',NF90_INT,(/'no_u'/), &
163179 compress_lvl=0, atts=dic)
164 chks = (/n_nzs,1,1/)180
165 181 chks = (/n_nzs,1,1/)
166 dic = dic//('info'.kv. &182
167 'Supercell column indices in the sparse format ')183 dic = dic//('info'.kv. &
168 call ncdf_def_var(grp,'list_col',NF90_INT,(/'nnzs'/), &184 'Supercell column indices in the sparse format ')
169 compress_lvl=cdf_comp_lvl,atts=dic,chunks=chks)185 call ncdf_def_var(grp,'list_col',NF90_INT,(/'nnzs'/), &
170186 compress_lvl=cdf_comp_lvl,atts=dic,chunks=chks)
171 ! Create the overlap matrix (we know it will not change)187
172 dic = ('info'.kv.'Overlap matrix')188 ! Create the overlap matrix (we know it will not change)
173 call ncdf_def_var(grp,'S',NF90_DOUBLE,(/'nnzs'/), &189 dic = ('info'.kv.'Overlap matrix')
174 compress_lvl=cdf_comp_lvl,atts=dic,chunks=chks)190 call ncdf_def_var(grp,'S',NF90_DOUBLE,(/'nnzs'/), &
175 191 compress_lvl=cdf_comp_lvl,atts=dic,chunks=chks)
176 dic = dic//('info'.kv.'Density matrix')192
177 call ncdf_def_var(grp,'DM',NF90_DOUBLE,(/'nnzs','spin'/), &193 dic = dic//('info'.kv.'Density matrix')
178 compress_lvl=cdf_comp_lvl,atts=dic,chunks=chks)194 call ncdf_def_var(grp,'DM',NF90_DOUBLE,(/'nnzs','spin'/), &
179 195 compress_lvl=cdf_comp_lvl,atts=dic,chunks=chks)
180 dic = dic//('info'.kv.'Energy density matrix')196
181 dic = dic//('unit'.kv.'Ry')197 dic = dic//('info'.kv.'Energy density matrix')
182 call ncdf_def_var(grp,'EDM',NF90_DOUBLE,(/'nnzs ','spin_EDM'/), &198 dic = dic//('unit'.kv.'Ry')
183 compress_lvl=cdf_comp_lvl,atts=dic,chunks=chks)199 call ncdf_def_var(grp,'EDM',NF90_DOUBLE,(/'nnzs ','spin_EDM'/), &
184200 compress_lvl=cdf_comp_lvl,atts=dic,chunks=chks)
185 if ( savehs .or. TS_HS_save ) then201
186 ! Unit is already present in dictionary202 if ( savehs .or. TS_HS_save ) then
187 dic = dic//('info'.kv.'Hamiltonian')203 ! Unit is already present in dictionary
188 call ncdf_def_var(grp,'H',NF90_DOUBLE,(/'nnzs','spin'/), &204 dic = dic//('info'.kv.'Hamiltonian')
205 call ncdf_def_var(grp,'H',NF90_DOUBLE,(/'nnzs','spin'/), &
189 compress_lvl=cdf_comp_lvl,atts=dic,chunks=chks)206 compress_lvl=cdf_comp_lvl,atts=dic,chunks=chks)
207 end if
208
209 ! Even though I think we could do without, I add the
210 ! xij array to the file
211 ! Note that xij can be re-created using
212 ! nsc, isc_off and xa
213 ! if ( .not. Gamma ) then
214 ! dic = dic//('info'.kv. &
215 ! 'Distance between orbital i and j')
216 ! dic = dic//('unit'.kv.'Bohr')
217 ! call ncdf_def_var(grp,'xij',NF90_DOUBLE,(/'xyz ','nnzs'/), &
218 ! compress_lvl=cdf_comp_lvl,atts=dic)
219 ! end if
190 end if220 end if
191221
192 ! Even though I think we could do without, I add the
193 ! xij array to the file
194 ! Note that xij can be re-created using
195 ! nsc, isc_off and xa
196! if ( .not. Gamma ) then
197! dic = dic//('info'.kv. &
198! 'Distance between orbital i and j')
199! dic = dic//('unit'.kv.'Bohr')
200! call ncdf_def_var(grp,'xij',NF90_DOUBLE,(/'xyz ','nnzs'/), &
201! compress_lvl=cdf_comp_lvl,atts=dic)
202! end if
203
204
205 ! Delete the dictionary222 ! Delete the dictionary
206 call delete(dic)223 call delete(dic)
207224
@@ -336,21 +353,21 @@
336 call ncdf_def_var(grp,'MeshCutoff',NF90_DOUBLE,(/'one'/), &353 call ncdf_def_var(grp,'MeshCutoff',NF90_DOUBLE,(/'one'/), &
337 compress_lvl=0, atts=dic)354 compress_lvl=0, atts=dic)
338355
339 ! Create matrix group356 ! Create MD group
340 if ( is_MD ) then357 if ( lis_MD ) then
341358
342 call ncdf_def_grp(ncdf,'MD',grp)359 call ncdf_def_grp(ncdf,'MD',grp)
343360
344 ! Create arrays for containers361 ! Create arrays for containers
345 call ncdf_def_dim(grp,'MD',NF90_UNLIMITED)362 call ncdf_def_dim(grp,'MD',NF90_UNLIMITED)
346363
347 dic = ('info'.kv.'Temperature')//('unit'.kv.'K')364 dic = ('info'.kv.'Ionic temperature')//('unit'.kv.'K')
348 call ncdf_def_var(grp,'T',NF90_DOUBLE,(/'MD'/), &365 call ncdf_def_var(grp,'T',NF90_DOUBLE,(/'MD'/), &
349 compress_lvl=0, atts=dic) ! do not compress unlimited D366 compress_lvl=0, atts=dic) ! do not compress unlimited D
350367
351 dic = dic//('info'.kv.'Kohn-Sham energy')//('unit'.kv.'Ry')368 !dic = dic//('info'.kv.'Kohn-Sham energy')//('unit'.kv.'Ry')
352 call ncdf_def_var(grp,'E_KS',NF90_DOUBLE,(/'MD'/), &369 !call ncdf_def_var(grp,'E_KS',NF90_DOUBLE,(/'MD'/), &
353 compress_lvl=0, atts=dic) ! do not compress unlimited D370 ! compress_lvl=0, atts=dic) ! do not compress unlimited D
354371
355 dic = dic//('info'.kv.'Total energy')372 dic = dic//('info'.kv.'Total energy')
356 call ncdf_def_var(grp,'E_tot',NF90_DOUBLE,(/'MD'/), &373 call ncdf_def_var(grp,'E_tot',NF90_DOUBLE,(/'MD'/), &
@@ -360,6 +377,10 @@
360 call ncdf_def_var(grp,'E_kin',NF90_DOUBLE,(/'MD'/), &377 call ncdf_def_var(grp,'E_kin',NF90_DOUBLE,(/'MD'/), &
361 compress_lvl=0, atts=dic) ! do not compress unlimited D378 compress_lvl=0, atts=dic) ! do not compress unlimited D
362379
380 dic = dic//('info'.kv.'XC energy')
381 call ncdf_def_var(grp,'E_xc',NF90_DOUBLE,(/'MD'/), &
382 compress_lvl=0, atts=dic) ! do not compress unlimited D
383
363 dic = dic//('info'.kv.'Fermi level')384 dic = dic//('info'.kv.'Fermi level')
364 call ncdf_def_var(grp,'Ef',NF90_DOUBLE,(/'MD'/), &385 call ncdf_def_var(grp,'Ef',NF90_DOUBLE,(/'MD'/), &
365 compress_lvl=0, atts=dic) ! do not compress unlimited D386 compress_lvl=0, atts=dic) ! do not compress unlimited D
@@ -367,6 +388,10 @@
367 dic = dic//('info'.kv.'Atomic coordinates')//('unit'.kv.'Bohr')388 dic = dic//('info'.kv.'Atomic coordinates')//('unit'.kv.'Bohr')
368 call ncdf_def_var(grp,'xa',NF90_DOUBLE,(/'xyz ','na_u','MD '/), &389 call ncdf_def_var(grp,'xa',NF90_DOUBLE,(/'xyz ','na_u','MD '/), &
369 compress_lvl=0, atts=dic) ! do not compress unlimited D390 compress_lvl=0, atts=dic) ! do not compress unlimited D
391
392 dic = dic//('info'.kv.'Cell stress')//('unit'.kv.'Ry/Bohr**3')
393 call ncdf_def_var(grp,'stress',NF90_DOUBLE,(/'xyz','xyz','MD '/), &
394 compress_lvl=0, atts=dic) ! do not compress unlimited D
370395
371 dic = dic//('info'.kv.'Atomic forces')//('unit'.kv.'Ry/Bohr')396 dic = dic//('info'.kv.'Atomic forces')//('unit'.kv.'Ry/Bohr')
372 call ncdf_def_var(grp,'fa',NF90_DOUBLE,(/'xyz ','na_u','MD '/), &397 call ncdf_def_var(grp,'fa',NF90_DOUBLE,(/'xyz ','na_u','MD '/), &
@@ -378,6 +403,32 @@
378403
379 end if404 end if
380405
406 ! Create FC group
407 if ( lis_FC ) then
408
409 call ncdf_def_grp(ncdf,'FC',grp)
410
411 ! Create dimension arrays
412 ! Create arrays for containers
413 call ncdf_def_dim(grp,'ia',ia2-ia1+1)
414 call ncdf_def_dim(grp,'m_p',2)
415
416 dic = dic//('info'.kv.'Displacement length')//('unit'.kv.'Bohr')
417 call ncdf_def_var(grp,'disp',NF90_DOUBLE,(/'one'/), &
418 compress_lvl=0, atts=dic) ! do not compress unlimited D
419 call ncdf_put_var(grp,'disp',dx)
420
421 dic = dic//('info'.kv.'Undisplaced atomic forces ')//('unit'.kv.'Ry/Bohr')
422 call ncdf_def_var(grp,'fa0',NF90_DOUBLE,(/'xyz ','na_u'/), &
423 compress_lvl=0, atts=dic) ! do not compress unlimited D
424
425 dic = dic//('info'.kv.'Displaced atomic forces')//('unit'.kv.'Ry/Bohr')
426 call ncdf_def_var(grp,'fa',NF90_DOUBLE,(/'xyz ','na_u','m_p ','xyz ', 'ia '/), &
427 compress_lvl=0, atts=dic) ! do not compress unlimited D
428
429 end if
430
431
381 call delete(dic)432 call delete(dic)
382433
383 if ( isolve == SOLVE_TRANSI ) then434 if ( isolve == SOLVE_TRANSI ) then
@@ -447,12 +498,6 @@
447498
448 call delete(dic)499 call delete(dic)
449500
450 ! Save the total charge and lasto
451 call ncdf_put_var(ncdf,'Qtot',Qtot)
452 if ( fixspin ) then
453 call ncdf_put_var(ncdf,'Qspin',total_spin)
454 end if
455
456 call ncdf_put_var(ncdf,'lasto',lasto(1:na_u))501 call ncdf_put_var(ncdf,'lasto',lasto(1:na_u))
457502
458 if ( isolve == SOLVE_TRANSI ) then503 if ( isolve == SOLVE_TRANSI ) then
@@ -541,7 +586,8 @@
541 use siesta_geom, only: na_u, ucell, xa, va586 use siesta_geom, only: na_u, ucell, xa, va
542 use siesta_geom, only: nsc, isc_off587 use siesta_geom, only: nsc, isc_off
543 use sparse_matrices, only: sparse_pattern, block_dist588 use sparse_matrices, only: sparse_pattern, block_dist
544 use sparse_matrices, only: S_1D, DM_2D, EDM_2D, H_2D589 use sparse_matrices, only: S_1D
590 use sparse_matrices, only: DM_2D, EDM_2D, H_2D
545! use sparse_matrices, only: xij_2D591! use sparse_matrices, only: xij_2D
546 use m_stress, only : stress592 use m_stress, only : stress
547 use m_forces, only: fa593 use m_forces, only: fa
@@ -603,7 +649,7 @@
603! if ( .not. Gamma .and. ('xij' .in. dic_save) ) then649! if ( .not. Gamma .and. ('xij' .in. dic_save) ) then
604 ! Write the xij array, it will not change during SCF650 ! Write the xij array, it will not change during SCF
605! call cdf_w_d2D(grp,'xij',xij_2D)651! call cdf_w_d2D(grp,'xij',xij_2D)
606! end if652 ! end if
607 if ( 'H' .in. dic_save ) &653 if ( 'H' .in. dic_save ) &
608 call cdf_w_d2D(grp,'H',H_2D)654 call cdf_w_d2D(grp,'H',H_2D)
609 if ( 'DM' .in. dic_save ) &655 if ( 'DM' .in. dic_save ) &
@@ -679,7 +725,9 @@
679725
680 ! Used for saving variables726 ! Used for saving variables
681 integer :: no, nk727 integer :: no, nk
682 integer, allocatable :: aux(:)728 integer, allocatable :: iaux(:)
729 real(dp), allocatable :: raux(:)
730
683731
684 ! Unluckily the new basis saves only732 ! Unluckily the new basis saves only
685 ! saved on the IO node. 733 ! saved on the IO node.
@@ -751,8 +799,8 @@
751799
752 ! Create all projector variables...800 ! Create all projector variables...
753 if ( nk > 0 ) then801 if ( nk > 0 ) then
754 dic = ('pjnl_l'.kv.NF90_INT)//('pjnl_n'.kv.NF90_INT)802 dic = ('pjnl_l'.kv.NF90_INT)//('pjnl_j'.kv.NF90_DOUBLE)
755 dic = dic//('pjnl_ekb'.kv.NF90_DOUBLE)803 dic = dic//('pjnl_n'.kv.NF90_INT)//('pjnl_ekb'.kv.NF90_DOUBLE)
756 dic = dic//('kbcutoff'.kv.NF90_DOUBLE)//('kbdelta'.kv.NF90_DOUBLE)804 dic = dic//('kbcutoff'.kv.NF90_DOUBLE)//('kbdelta'.kv.NF90_DOUBLE)
757 d = .first. dic805 d = .first. dic
758 do while ( .not. (.empty. d) )806 do while ( .not. (.empty. d) )
@@ -817,21 +865,27 @@
817 call ncdf_put_var(grp,'orbnl_n',spp%orbnl_n(1:no))865 call ncdf_put_var(grp,'orbnl_n',spp%orbnl_n(1:no))
818 call ncdf_put_var(grp,'orbnl_z',spp%orbnl_z(1:no))866 call ncdf_put_var(grp,'orbnl_z',spp%orbnl_z(1:no))
819867
820 allocate(aux(no))868 allocate(iaux(no))
821 do i = 1, no869 do i = 1, no
822 if ( spp%orbnl_ispol(i) ) then870 if ( spp%orbnl_ispol(i) ) then
823 aux(i) = 1871 iaux(i) = 1
824 else872 else
825 aux(i) = 0 873 iaux(i) = 0
826 end if874 end if
827 end do875 end do
828 call ncdf_put_var(grp,'orbnl_ispol',aux(1:no))876 call ncdf_put_var(grp,'orbnl_ispol',iaux(1:no))
829 deallocate(aux)877 deallocate(iaux)
830 call ncdf_put_var(grp,'orbnl_pop',spp%orbnl_pop(1:no))878 call ncdf_put_var(grp,'orbnl_pop',spp%orbnl_pop(1:no))
831879
832 ! Save projector880 ! Save projector
833 if ( nk > 0 ) then881 if ( nk > 0 ) then
834 call ncdf_put_var(grp,'pjnl_l',spp%pjnl_l(1:nk))882 call ncdf_put_var(grp,'pjnl_l',spp%pjnl_l(1:nk))
883 allocate(raux(nk))
884 do i = 1, nk
885 raux(i) = 0._dp
886 end do
887 call ncdf_put_var(grp,'pjnl_j',raux)
888 deallocate(raux)
835 call ncdf_put_var(grp,'pjnl_n',spp%pjnl_n(1:nk))889 call ncdf_put_var(grp,'pjnl_n',spp%pjnl_n(1:nk))
836 call ncdf_put_var(grp,'pjnl_ekb',spp%pjnl_ekb(1:nk))890 call ncdf_put_var(grp,'pjnl_ekb',spp%pjnl_ekb(1:nk))
837 end if891 end if
@@ -874,9 +928,11 @@
874928
875 subroutine cdf_save_md(fname)929 subroutine cdf_save_md(fname)
876 use siesta_geom, only: na_u, xa, va930 use siesta_geom, only: na_u, xa, va
931 use m_stress, only: stress
877 use m_forces, only: fa932 use m_forces, only: fa
878 use m_energies, only: Etot, Ef, Ekinion933 use m_energies, only: Etot, Ekinion, Exc
879 use m_kinetic, only : Tempion934 use m_kinetic, only : Tempion
935 use m_energies, only: Ef
880936
881 character(len=*), intent(in) :: fname937 character(len=*), intent(in) :: fname
882938
@@ -894,19 +950,54 @@
894 if ( Node == 0 ) then950 if ( Node == 0 ) then
895 ! Save current state951 ! Save current state
896 call ncdf_put_var(ncdf,'T',Tempion,start=(/MD/))952 call ncdf_put_var(ncdf,'T',Tempion,start=(/MD/))
897 call ncdf_put_var(ncdf,'Ef',Ef,start=(/MD/))
898 !call ncdf_put_var(ncdf,'E_KS',EKS,start=(/MD/))953 !call ncdf_put_var(ncdf,'E_KS',EKS,start=(/MD/))
899 call ncdf_put_var(ncdf,'E_tot',Etot,start=(/MD/))954 call ncdf_put_var(ncdf,'E_tot',Etot,start=(/MD/))
900 call ncdf_put_var(ncdf,'E_kin',Ekinion,start=(/MD/))955 call ncdf_put_var(ncdf,'E_kin',Ekinion,start=(/MD/))
956 call ncdf_put_var(ncdf,'E_xc',Exc,start=(/MD/))
957 call ncdf_put_var(ncdf,'Ef',Ef,start=(/MD/))
901 958
902 call ncdf_put_var(ncdf,'xa',xa,count=(/3,na_u/),start=(/1,1,MD/))959 call ncdf_put_var(ncdf,'xa',xa,count=(/3,na_u/),start=(/1,1,MD/))
903 call ncdf_put_var(ncdf,'fa',fa,count=(/3,na_u/),start=(/1,1,MD/))960 call ncdf_put_var(ncdf,'fa',fa,count=(/3,na_u/),start=(/1,1,MD/))
961 call ncdf_put_var(ncdf,'stress',stress,count=(/3,3/),start=(/1,1,MD/))
904 call ncdf_put_var(ncdf,'va',va,count=(/3,na_u/),start=(/1,1,MD/))962 call ncdf_put_var(ncdf,'va',va,count=(/3,na_u/),start=(/1,1,MD/))
905 end if963 end if
906964
907 call ncdf_close(ncdf)965 call ncdf_close(ncdf)
908966
909 end subroutine cdf_save_md967 end subroutine cdf_save_md
968
969 subroutine cdf_save_fc(fname,istep)
970 use siesta_geom, only: na_u
971 use siesta_options, only: ia1
972 use m_forces, only: fa
973
974 character(len=*), intent(in) :: fname
975 integer, intent(in) :: istep
976
977 type(hNCDF) :: ncdf
978 integer :: ia, dir, pm
979
980 if ( Node /= 0 ) return
981
982 ! open the file...
983 call ncdf_open(ncdf,fname,mode=ior(NF90_WRITE,NF90_NETCDF4),group='FC')
984
985 if ( istep == 0 ) then
986 call ncdf_put_var(ncdf,'fa0',fa)
987
988 else
989 ! Atomic index (with respect to ia1)
990 ia = mod(istep - 1, 6) + 1
991 dir = (ia - 1) / 2 + 1
992 pm = mod(ia-1, 2) + 1
993 ia = (istep - 1) / 6 + 1
994
995 call ncdf_put_var(ncdf,'fa',fa,count=(/3,na_u/),start=(/1,1,pm,dir,ia/))
996 end if
997
998 call ncdf_close(ncdf)
999
1000 end subroutine cdf_save_fc
910 1001
911#else1002#else
912 subroutine dummy()1003 subroutine dummy()
9131004
=== modified file 'Src/read_options.F90'
--- Src/read_options.F90 2018-06-26 08:27:41 +0000
+++ Src/read_options.F90 2018-07-09 07:59:46 +0000
@@ -994,9 +994,11 @@
994994
995 ! Maximum number of steps in CG/Broyden coordinate optimization995 ! Maximum number of steps in CG/Broyden coordinate optimization
996 nmove = fdf_get('MD.NumCGsteps',0)996 nmove = fdf_get('MD.NumCGsteps',0)
997 nmove = fdf_get('MD.Steps',nmove)
997998
998 ! Maximum atomic displacement in one CG step999 ! Maximum atomic displacement in one CG step
999 dxmax = fdf_get('MD.MaxCGDispl',0.2_dp,'Bohr')1000 dxmax = fdf_get('MD.MaxCGDispl',0.2_dp,'Bohr')
1001 dxmax = fdf_get('MD.MaxDispl',dxmax,'Bohr')
10001002
1001 ! Tolerance in the maximum atomic force [0.04 eV/Ang]1003 ! Tolerance in the maximum atomic force [0.04 eV/Ang]
1002 ftol = fdf_get('MD.MaxForceTol', 0.00155574_dp, 'Ry/Bohr')1004 ftol = fdf_get('MD.MaxForceTol', 0.00155574_dp, 'Ry/Bohr')
@@ -1052,11 +1054,19 @@
1052 name = 'MD.NumCGSteps', &1054 name = 'MD.NumCGSteps', &
1053 value = nmove, &1055 value = nmove, &
1054 units = "cmlUnits:countable" )1056 units = "cmlUnits:countable" )
1057 call cmlAddParameter( xf = mainXML, &
1058 name = 'MD.Steps', &
1059 value = nmove, &
1060 units = "cmlUnits:countable" )
10551061
1056 call cmlAddParameter( xf = mainXML, &1062 call cmlAddParameter( xf = mainXML, &
1057 name = 'MD.MaxCGDispl', &1063 name = 'MD.MaxCGDispl', &
1058 value = dxmax, &1064 value = dxmax, &
1059 units = 'siestaUnits:Bohr' )1065 units = 'siestaUnits:Bohr' )
1066 call cmlAddParameter( xf = mainXML, &
1067 name = 'MD.MaxDispl', &
1068 value = dxmax, &
1069 units = 'siestaUnits:Bohr' )
10601070
1061 call cmlAddParameter( xf=mainXML, &1071 call cmlAddParameter( xf=mainXML, &
1062 name='MD.MaxForceTol', &1072 name='MD.MaxForceTol', &
@@ -1156,7 +1166,11 @@
11561166
1157 ! Initial and final time steps for MD1167 ! Initial and final time steps for MD
1158 istart = fdf_get('MD.InitialTimeStep',1)1168 istart = fdf_get('MD.InitialTimeStep',1)
1159 ifinal = fdf_get('MD.FinalTimeStep',1)1169 if ( fdf_defined('MD.Steps') ) then
1170 ifinal = fdf_get('MD.FinalTimeStep',max(1,nmove - istart + 1))
1171 else
1172 ifinal = fdf_get('MD.FinalTimeStep',1)
1173 end if
11601174
1161 ! Length of time step for MD1175 ! Length of time step for MD
1162 dt = fdf_get('MD.LengthTimeStep',1._dp,'fs')1176 dt = fdf_get('MD.LengthTimeStep',1._dp,'fs')
@@ -1583,7 +1597,7 @@
15831597
15841598
1585 ! Default variable depending on the action required1599 ! Default variable depending on the action required
1586 if ( idyn == 0 .and. nmove <= 1 ) then1600 if ( idyn == 0 .and. nmove <= 0 ) then
1587 ! Single-point calculation: use the tight auxiliary supercell by default1601 ! Single-point calculation: use the tight auxiliary supercell by default
1588 naive_aux_cell = fdf_get( 'NaiveAuxiliaryCell', .false. )1602 naive_aux_cell = fdf_get( 'NaiveAuxiliaryCell', .false. )
1589 else1603 else
15901604
=== modified file 'Src/save_density_matrix.F'
--- Src/save_density_matrix.F 2017-11-23 14:17:27 +0000
+++ Src/save_density_matrix.F 2018-07-09 07:59:46 +0000
@@ -28,7 +28,7 @@
28 use atomlist, only: no_l28 use atomlist, only: no_l
29 use siesta_options, only: writedm, writedm_cdf29 use siesta_options, only: writedm, writedm_cdf
30 use siesta_options, only: writedm_cdf_history30 use siesta_options, only: writedm_cdf_history
31 use siesta_options, only: idyn31 use siesta_options, only: idyn, nmove
32 use m_steps, only: istp32 use m_steps, only: istp
33 use sparse_matrices, only: Dscf, DM_2D33 use sparse_matrices, only: Dscf, DM_2D
34 use fdf, only: fdf_get34 use fdf, only: fdf_get
@@ -51,7 +51,7 @@
51 logical, intent(in), optional :: when51 logical, intent(in), optional :: when
52 character(len=*), intent(in), optional :: file52 character(len=*), intent(in), optional :: file
5353
54 logical :: do_it54 logical :: do_it, is_MD
5555
56#ifdef CDF56#ifdef CDF
57#ifdef NCDF_457#ifdef NCDF_4
@@ -83,13 +83,17 @@
83 & overwrite=.true. )83 & overwrite=.true. )
84 endif84 endif
85#ifdef NCDF_485#ifdef NCDF_4
86 if ( write_cdf ) then86 if ( write_cdf .and. do_it ) then
8787
88 dic_save = ('Ef'.kv.1)88 if ( (idyn == 0 .and. nmove == 0) .or.
89 dic_save = dic_save//('DM'.kv.1)//('EDM'.kv.1)89 & (idyn == 6 .and. istp == 1 ) ) then
90 call cdf_save_state(trim(slabel)//'.nc',dic_save)90
9191 dic_save = ('Ef'.kv.1)
92 call delete(dic_save)92 dic_save = dic_save//('DM'.kv.1)//('EDM'.kv.1)
93 call cdf_save_state(trim(slabel)//'.nc',dic_save)
94
95 call delete(dic_save)
96 end if
9397
94 end if98 end if
95#endif99#endif
96100
=== modified file 'Src/siesta_forces.F'
--- Src/siesta_forces.F 2018-06-19 11:00:00 +0000
+++ Src/siesta_forces.F 2018-07-09 07:59:46 +0000
@@ -72,9 +72,7 @@
72 use write_subs, only: siesta_write_forces72 use write_subs, only: siesta_write_forces
73 use write_subs, only: siesta_write_stress_pressure73 use write_subs, only: siesta_write_stress_pressure
74#ifdef NCDF_474#ifdef NCDF_4
75 use dictionary75 use m_ncdf_siesta, only : cdf_save_settings
76 use m_ncdf_siesta, only : cdf_init_file, cdf_save_settings
77 use m_ncdf_siesta, only : cdf_save_state, cdf_save_basis
78#endif76#endif
79 use m_compute_energies, only: compute_energies77 use m_compute_energies, only: compute_energies
80 use m_mpi_utils, only: broadcast78 use m_mpi_utils, only: broadcast
@@ -121,9 +119,6 @@
121 external :: die, message119 external :: die, message
122120
123 real(dp) :: Qcur121 real(dp) :: Qcur
124#ifdef NCDF_4
125 type(dict) :: d_sav
126#endif
127#ifdef SIESTA__FLOOK122#ifdef SIESTA__FLOOK
128 ! len=24 from m_mixing.F90123 ! len=24 from m_mixing.F90
129 character(len=1), target :: next_mixer(24)124 character(len=1), target :: next_mixer(24)
@@ -230,27 +225,12 @@
230 ! Initialize the NC file225 ! Initialize the NC file
231 if ( write_cdf ) then226 if ( write_cdf ) then
232227
233 ! Initialize the file...228! Save the settings (important to do here since mesh-cutoff may
234 call cdf_init_file(trim(slabel)//'.nc',is_MD = .false.)229! have changed).
235#ifdef MPI230 call cdf_save_settings(trim(slabel)//'.nc')
236 call MPI_Barrier(MPI_Comm_World,MPIerror)231#ifdef MPI
237#endif232 call MPI_Barrier(MPI_Comm_World,MPIerror)
238233#endif
239 ! Save the settings
240 call cdf_save_settings(trim(slabel)//'.nc')
241#ifdef MPI
242 call MPI_Barrier(MPI_Comm_World,MPIerror)
243#endif
244
245 d_sav = ('sp'.kv.1)//('S'.kv.1)
246 d_sav = d_sav//('nsc'.kv.1)//('xij'.kv.1)
247 d_sav = d_sav//('xa'.kv.1)//('cell'.kv.1)
248 d_sav = d_sav//('isc_off'.kv.1)
249 call cdf_save_state(trim(slabel)//'.nc',d_sav)
250 call delete(d_sav)
251
252 ! Save the basis set
253 call cdf_save_basis(trim(slabel)//'.nc')
254234
255 end if235 end if
256#endif236#endif
257237
=== modified file 'Src/state_init.F'
--- Src/state_init.F 2018-06-26 08:27:41 +0000
+++ Src/state_init.F 2018-07-09 07:59:46 +0000
@@ -22,9 +22,9 @@
22 use sparse_matrices, only: maxnh, numh, listh, listhptr22 use sparse_matrices, only: maxnh, numh, listh, listhptr
23 use sparse_matrices, only: Dold, Dscf, DM_2D23 use sparse_matrices, only: Dold, Dscf, DM_2D
24 use sparse_matrices, only: Eold, Escf, EDM_2D24 use sparse_matrices, only: Eold, Escf, EDM_2D
25 use sparse_matrices, only: Hold, H , H_2D25 use sparse_matrices, only: Hold, H, H_2D
26 use sparse_matrices, only: xijo, xij_2D26 use sparse_matrices, only: xijo, xij_2D
27 use sparse_matrices, only: S , S_1D27 use sparse_matrices, only: S, S_1D
2828
29 use sparse_matrices, only: H_kin_1D, H_vkb_1D29 use sparse_matrices, only: H_kin_1D, H_vkb_1D
30 use sparse_matrices, only: H_ldau_2D, H_so_2D30 use sparse_matrices, only: H_ldau_2D, H_so_2D
@@ -91,6 +91,15 @@
91 use iodm_netcdf, only: setup_dm_netcdf_file91 use iodm_netcdf, only: setup_dm_netcdf_file
92 use iodmhs_netcdf, only: setup_dmhs_netcdf_file92 use iodmhs_netcdf, only: setup_dmhs_netcdf_file
93#endif93#endif
94#ifdef NCDF_4
95 use dictionary
96 use m_ncdf_siesta, only : cdf_init_file, cdf_save_settings
97 use m_ncdf_siesta, only : cdf_save_state, cdf_save_basis
98#ifdef MPI
99 use mpi_siesta
100#endif
101#endif
102
94 use class_Sparsity103 use class_Sparsity
95 use class_dSpData1D104 use class_dSpData1D
96 use class_dSpData2D105 use class_dSpData2D
@@ -123,6 +132,13 @@
123 character(len=label_length+6) :: fname132 character(len=label_length+6) :: fname
124 real(dp) :: dummyef=0.0, dummyqtot=0.0133 real(dp) :: dummyef=0.0, dummyqtot=0.0
125 type(Sparsity) :: g_Sp134 type(Sparsity) :: g_Sp
135#ifdef NCDF_4
136 type(dict) :: d_sav
137#ifdef MPI
138 integer :: MPIerror
139#endif
140 logical :: is_MD, is_FC
141#endif
126 142
127 character(len=256) :: oname143 character(len=256) :: oname
128144
@@ -555,8 +571,42 @@
555 call overlap( na_u, na_s, no_s, scell, xa, indxua, rmaxo, maxnh,571 call overlap( na_u, na_s, no_s, scell, xa, indxua, rmaxo, maxnh,
556 & lasto, iphorb, isa, numh, listhptr, listh, S )572 & lasto, iphorb, isa, numh, listhptr, listh, S )
557573
558574#ifdef NCDF_4
575! At this point the sparsity pattern, overlap matrix and some
576! other details.
577! Before continuing we will create the CDF file output
559!578!
579! Initialize the NC file
580 if ( write_cdf ) then
581 if ( inicoor == istep ) then
582 is_MD = .true.
583 if ( idyn == 0 .and. nmove == 0 ) is_MD = .false.
584 is_FC = (idyn == 6)
585 if ( is_FC ) is_MD = .false.
586 call cdf_init_file(trim(slabel)//'.nc',
587 & is_MD=is_MD, is_FC=is_FC)
588#ifdef MPI
589 call MPI_Barrier(MPI_Comm_World,MPIerror)
590#endif
591
592! Save the basis set (only once)
593 call cdf_save_basis(trim(slabel)//'.nc')
594#ifdef MPI
595 call MPI_Barrier(MPI_Comm_World,MPIerror)
596#endif
597
598 if ( .not. is_MD ) then
599 d_sav = d_sav//('xa'.kv.1)//('cell'.kv.1)
600 d_sav = d_sav//('sp'.kv.1)//('S'.kv.1)//('xij'.kv.1)
601 d_sav = d_sav//('isc_off'.kv.1)//('nsc'.kv.1)
602 call cdf_save_state(trim(slabel)//'.nc',d_sav)
603 call delete(d_sav)
604 end if
605 end if
606 end if
607#endif
608
609!
560! Here we could also read a Hamiltonian, either to proceed to610! Here we could also read a Hamiltonian, either to proceed to
561! the analysis section (with nscf=0) or to start a mix-H scf cycle.611! the analysis section (with nscf=0) or to start a mix-H scf cycle.
562!612!
563613
=== modified file 'Util/COOP/Makefile'
--- Util/COOP/Makefile 2018-06-28 13:53:17 +0000
+++ Util/COOP/Makefile 2018-07-09 07:59:46 +0000
@@ -814,14 +814,14 @@
814state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o814state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o
815state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o815state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o
816state_init.o: ioxv.o kpoint_grid.o ldau_specs.o local_sys.o m_energies.o m_eo.o816state_init.o: ioxv.o kpoint_grid.o ldau_specs.o local_sys.o m_energies.o m_eo.o
817state_init.o: m_mixing.o m_mixing_scf.o m_mpi_utils.o m_new_dm.o m_os.o817state_init.o: m_mixing.o m_mixing_scf.o m_mpi_utils.o m_ncdf_siesta.o
818state_init.o: m_pivot_methods.o m_rmaxh.o m_sparse.o m_sparsity_handling.o818state_init.o: m_new_dm.o m_os.o m_pivot_methods.o m_rmaxh.o m_sparse.o
819state_init.o: m_spin.o m_steps.o m_supercell.o m_test_io.o m_ts_charge.o819state_init.o: m_sparsity_handling.o m_spin.o m_steps.o m_supercell.o
820state_init.o: m_ts_electype.o m_ts_global_vars.o m_ts_io.o m_ts_kpoints.o820state_init.o: m_test_io.o m_ts_charge.o m_ts_electype.o m_ts_global_vars.o
821state_init.o: m_ts_options.o m_ts_sparse.o m_ts_tri_init.o normalize_dm.o821state_init.o: m_ts_io.o m_ts_kpoints.o m_ts_options.o m_ts_sparse.o
822state_init.o: overlap.o parallel.o proximity_check.o siesta_cml.o822state_init.o: m_ts_tri_init.o normalize_dm.o overlap.o parallel.o
823state_init.o: siesta_dicts.o siesta_geom.o siesta_options.o sparse_matrices.o823state_init.o: proximity_check.o siesta_cml.o siesta_dicts.o siesta_geom.o
824state_init.o: units.o write_subs.o zmatrix.o824state_init.o: siesta_options.o sparse_matrices.o units.o write_subs.o zmatrix.o
825struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o825struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o
826struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o826struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o
827struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o827struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o
828828
=== modified file 'Util/Denchar/Src/Makefile'
--- Util/Denchar/Src/Makefile 2018-06-28 13:53:17 +0000
+++ Util/Denchar/Src/Makefile 2018-07-09 07:59:46 +0000
@@ -888,14 +888,14 @@
888state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o888state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o
889state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o889state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o
890state_init.o: ioxv.o kpoint_grid.o ldau_specs.o local_sys.o m_energies.o m_eo.o890state_init.o: ioxv.o kpoint_grid.o ldau_specs.o local_sys.o m_energies.o m_eo.o
891state_init.o: m_mixing.o m_mixing_scf.o m_mpi_utils.o m_new_dm.o m_os.o891state_init.o: m_mixing.o m_mixing_scf.o m_mpi_utils.o m_ncdf_siesta.o
892state_init.o: m_pivot_methods.o m_rmaxh.o m_sparse.o m_sparsity_handling.o892state_init.o: m_new_dm.o m_os.o m_pivot_methods.o m_rmaxh.o m_sparse.o
893state_init.o: m_spin.o m_steps.o m_supercell.o m_test_io.o m_ts_charge.o893state_init.o: m_sparsity_handling.o m_spin.o m_steps.o m_supercell.o
894state_init.o: m_ts_electype.o m_ts_global_vars.o m_ts_io.o m_ts_kpoints.o894state_init.o: m_test_io.o m_ts_charge.o m_ts_electype.o m_ts_global_vars.o
895state_init.o: m_ts_options.o m_ts_sparse.o m_ts_tri_init.o normalize_dm.o895state_init.o: m_ts_io.o m_ts_kpoints.o m_ts_options.o m_ts_sparse.o
896state_init.o: overlap.o parallel.o proximity_check.o siesta_cml.o896state_init.o: m_ts_tri_init.o normalize_dm.o overlap.o parallel.o
897state_init.o: siesta_dicts.o siesta_geom.o siesta_options.o sparse_matrices.o897state_init.o: proximity_check.o siesta_cml.o siesta_dicts.o siesta_geom.o
898state_init.o: units.o write_subs.o zmatrix.o898state_init.o: siesta_options.o sparse_matrices.o units.o write_subs.o zmatrix.o
899struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o899struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o
900struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o900struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o
901struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o901struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o
902902
=== modified file 'Util/Gen-basis/Makefile'
--- Util/Gen-basis/Makefile 2018-06-28 13:53:17 +0000
+++ Util/Gen-basis/Makefile 2018-07-09 07:59:46 +0000
@@ -878,14 +878,14 @@
878state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o878state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o
879state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o879state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o
880state_init.o: ioxv.o kpoint_grid.o ldau_specs.o local_sys.o m_energies.o m_eo.o880state_init.o: ioxv.o kpoint_grid.o ldau_specs.o local_sys.o m_energies.o m_eo.o
881state_init.o: m_mixing.o m_mixing_scf.o m_mpi_utils.o m_new_dm.o m_os.o881state_init.o: m_mixing.o m_mixing_scf.o m_mpi_utils.o m_ncdf_siesta.o
882state_init.o: m_pivot_methods.o m_rmaxh.o m_sparse.o m_sparsity_handling.o882state_init.o: m_new_dm.o m_os.o m_pivot_methods.o m_rmaxh.o m_sparse.o
883state_init.o: m_spin.o m_steps.o m_supercell.o m_test_io.o m_ts_charge.o883state_init.o: m_sparsity_handling.o m_spin.o m_steps.o m_supercell.o
884state_init.o: m_ts_electype.o m_ts_global_vars.o m_ts_io.o m_ts_kpoints.o884state_init.o: m_test_io.o m_ts_charge.o m_ts_electype.o m_ts_global_vars.o
885state_init.o: m_ts_options.o m_ts_sparse.o m_ts_tri_init.o normalize_dm.o885state_init.o: m_ts_io.o m_ts_kpoints.o m_ts_options.o m_ts_sparse.o
886state_init.o: overlap.o parallel.o proximity_check.o siesta_cml.o886state_init.o: m_ts_tri_init.o normalize_dm.o overlap.o parallel.o
887state_init.o: siesta_dicts.o siesta_geom.o siesta_options.o sparse_matrices.o887state_init.o: proximity_check.o siesta_cml.o siesta_dicts.o siesta_geom.o
888state_init.o: units.o write_subs.o zmatrix.o888state_init.o: siesta_options.o sparse_matrices.o units.o write_subs.o zmatrix.o
889struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o889struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o
890struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o890struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o
891struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o891struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o
892892
=== modified file 'Util/Grimme/Makefile'
--- Util/Grimme/Makefile 2018-06-28 13:53:17 +0000
+++ Util/Grimme/Makefile 2018-07-09 07:59:46 +0000
@@ -816,14 +816,14 @@
816state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o816state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o
817state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o817state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o
818state_init.o: ioxv.o kpoint_grid.o ldau_specs.o local_sys.o m_energies.o m_eo.o818state_init.o: ioxv.o kpoint_grid.o ldau_specs.o local_sys.o m_energies.o m_eo.o
819state_init.o: m_mixing.o m_mixing_scf.o m_mpi_utils.o m_new_dm.o m_os.o819state_init.o: m_mixing.o m_mixing_scf.o m_mpi_utils.o m_ncdf_siesta.o
820state_init.o: m_pivot_methods.o m_rmaxh.o m_sparse.o m_sparsity_handling.o820state_init.o: m_new_dm.o m_os.o m_pivot_methods.o m_rmaxh.o m_sparse.o
821state_init.o: m_spin.o m_steps.o m_supercell.o m_test_io.o m_ts_charge.o821state_init.o: m_sparsity_handling.o m_spin.o m_steps.o m_supercell.o
822state_init.o: m_ts_electype.o m_ts_global_vars.o m_ts_io.o m_ts_kpoints.o822state_init.o: m_test_io.o m_ts_charge.o m_ts_electype.o m_ts_global_vars.o
823state_init.o: m_ts_options.o m_ts_sparse.o m_ts_tri_init.o normalize_dm.o823state_init.o: m_ts_io.o m_ts_kpoints.o m_ts_options.o m_ts_sparse.o
824state_init.o: overlap.o parallel.o proximity_check.o siesta_cml.o824state_init.o: m_ts_tri_init.o normalize_dm.o overlap.o parallel.o
825state_init.o: siesta_dicts.o siesta_geom.o siesta_options.o sparse_matrices.o825state_init.o: proximity_check.o siesta_cml.o siesta_dicts.o siesta_geom.o
826state_init.o: units.o write_subs.o zmatrix.o826state_init.o: siesta_options.o sparse_matrices.o units.o write_subs.o zmatrix.o
827struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o827struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o
828struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o828struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o
829struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o829struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o
830830
=== modified file 'Util/Helpers/Makefile'
--- Util/Helpers/Makefile 2018-06-28 13:53:17 +0000
+++ Util/Helpers/Makefile 2018-07-09 07:59:46 +0000
@@ -819,14 +819,14 @@
819state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o819state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o
820state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o820state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o
821state_init.o: ioxv.o kpoint_grid.o ldau_specs.o local_sys.o m_energies.o m_eo.o821state_init.o: ioxv.o kpoint_grid.o ldau_specs.o local_sys.o m_energies.o m_eo.o
822state_init.o: m_mixing.o m_mixing_scf.o m_mpi_utils.o m_new_dm.o m_os.o822state_init.o: m_mixing.o m_mixing_scf.o m_mpi_utils.o m_ncdf_siesta.o
823state_init.o: m_pivot_methods.o m_rmaxh.o m_sparse.o m_sparsity_handling.o823state_init.o: m_new_dm.o m_os.o m_pivot_methods.o m_rmaxh.o m_sparse.o
824state_init.o: m_spin.o m_steps.o m_supercell.o m_test_io.o m_ts_charge.o824state_init.o: m_sparsity_handling.o m_spin.o m_steps.o m_supercell.o
825state_init.o: m_ts_electype.o m_ts_global_vars.o m_ts_io.o m_ts_kpoints.o825state_init.o: m_test_io.o m_ts_charge.o m_ts_electype.o m_ts_global_vars.o
826state_init.o: m_ts_options.o m_ts_sparse.o m_ts_tri_init.o normalize_dm.o826state_init.o: m_ts_io.o m_ts_kpoints.o m_ts_options.o m_ts_sparse.o
827state_init.o: overlap.o parallel.o proximity_check.o siesta_cml.o827state_init.o: m_ts_tri_init.o normalize_dm.o overlap.o parallel.o
828state_init.o: siesta_dicts.o siesta_geom.o siesta_options.o sparse_matrices.o828state_init.o: proximity_check.o siesta_cml.o siesta_dicts.o siesta_geom.o
829state_init.o: units.o write_subs.o zmatrix.o829state_init.o: siesta_options.o sparse_matrices.o units.o write_subs.o zmatrix.o
830struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o830struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o
831struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o831struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o
832struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o832struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o
833833
=== modified file 'Util/STM/ol-stm/Src/Makefile'
--- Util/STM/ol-stm/Src/Makefile 2018-06-28 13:53:17 +0000
+++ Util/STM/ol-stm/Src/Makefile 2018-07-09 07:59:46 +0000
@@ -901,14 +901,14 @@
901state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o901state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o
902state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o902state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o
903state_init.o: ioxv.o kpoint_grid.o ldau_specs.o local_sys.o m_energies.o m_eo.o903state_init.o: ioxv.o kpoint_grid.o ldau_specs.o local_sys.o m_energies.o m_eo.o
904state_init.o: m_mixing.o m_mixing_scf.o m_mpi_utils.o m_new_dm.o m_os.o904state_init.o: m_mixing.o m_mixing_scf.o m_mpi_utils.o m_ncdf_siesta.o
905state_init.o: m_pivot_methods.o m_rmaxh.o m_sparse.o m_sparsity_handling.o905state_init.o: m_new_dm.o m_os.o m_pivot_methods.o m_rmaxh.o m_sparse.o
906state_init.o: m_spin.o m_steps.o m_supercell.o m_test_io.o m_ts_charge.o906state_init.o: m_sparsity_handling.o m_spin.o m_steps.o m_supercell.o
907state_init.o: m_ts_electype.o m_ts_global_vars.o m_ts_io.o m_ts_kpoints.o907state_init.o: m_test_io.o m_ts_charge.o m_ts_electype.o m_ts_global_vars.o
908state_init.o: m_ts_options.o m_ts_sparse.o m_ts_tri_init.o normalize_dm.o908state_init.o: m_ts_io.o m_ts_kpoints.o m_ts_options.o m_ts_sparse.o
909state_init.o: overlap.o parallel.o proximity_check.o siesta_cml.o909state_init.o: m_ts_tri_init.o normalize_dm.o overlap.o parallel.o
910state_init.o: siesta_dicts.o siesta_geom.o siesta_options.o sparse_matrices.o910state_init.o: proximity_check.o siesta_cml.o siesta_dicts.o siesta_geom.o
911state_init.o: units.o write_subs.o zmatrix.o911state_init.o: siesta_options.o sparse_matrices.o units.o write_subs.o zmatrix.o
912struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o912struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o
913struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o913struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o
914struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o914struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o
915915
=== modified file 'Util/SpPivot/Makefile'
--- Util/SpPivot/Makefile 2018-06-28 13:53:17 +0000
+++ Util/SpPivot/Makefile 2018-07-09 07:59:46 +0000
@@ -830,14 +830,14 @@
830state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o830state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o
831state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o831state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o
832state_init.o: ioxv.o kpoint_grid.o ldau_specs.o local_sys.o m_energies.o m_eo.o832state_init.o: ioxv.o kpoint_grid.o ldau_specs.o local_sys.o m_energies.o m_eo.o
833state_init.o: m_mixing.o m_mixing_scf.o m_mpi_utils.o m_new_dm.o m_os.o833state_init.o: m_mixing.o m_mixing_scf.o m_mpi_utils.o m_ncdf_siesta.o
834state_init.o: m_pivot_methods.o m_rmaxh.o m_sparse.o m_sparsity_handling.o834state_init.o: m_new_dm.o m_os.o m_pivot_methods.o m_rmaxh.o m_sparse.o
835state_init.o: m_spin.o m_steps.o m_supercell.o m_test_io.o m_ts_charge.o835state_init.o: m_sparsity_handling.o m_spin.o m_steps.o m_supercell.o
836state_init.o: m_ts_electype.o m_ts_global_vars.o m_ts_io.o m_ts_kpoints.o836state_init.o: m_test_io.o m_ts_charge.o m_ts_electype.o m_ts_global_vars.o
837state_init.o: m_ts_options.o m_ts_sparse.o m_ts_tri_init.o normalize_dm.o837state_init.o: m_ts_io.o m_ts_kpoints.o m_ts_options.o m_ts_sparse.o
838state_init.o: overlap.o parallel.o proximity_check.o siesta_cml.o838state_init.o: m_ts_tri_init.o normalize_dm.o overlap.o parallel.o
839state_init.o: siesta_dicts.o siesta_geom.o siesta_options.o sparse_matrices.o839state_init.o: proximity_check.o siesta_cml.o siesta_dicts.o siesta_geom.o
840state_init.o: units.o write_subs.o zmatrix.o840state_init.o: siesta_options.o sparse_matrices.o units.o write_subs.o zmatrix.o
841struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o841struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o
842struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o842struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o
843struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o843struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o
844844
=== modified file 'Util/TS/TBtrans/Makefile'
--- Util/TS/TBtrans/Makefile 2018-06-28 13:53:17 +0000
+++ Util/TS/TBtrans/Makefile 2018-07-09 07:59:46 +0000
@@ -1086,14 +1086,14 @@
1086state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o1086state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o
1087state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o1087state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o
1088state_init.o: ioxv.o kpoint_grid.o ldau_specs.o local_sys.o m_energies.o m_eo.o1088state_init.o: ioxv.o kpoint_grid.o ldau_specs.o local_sys.o m_energies.o m_eo.o
1089state_init.o: m_mixing.o m_mixing_scf.o m_mpi_utils.o m_new_dm.o m_os.o1089state_init.o: m_mixing.o m_mixing_scf.o m_mpi_utils.o m_ncdf_siesta.o
1090state_init.o: m_pivot_methods.o m_rmaxh.o m_sparse.o m_sparsity_handling.o1090state_init.o: m_new_dm.o m_os.o m_pivot_methods.o m_rmaxh.o m_sparse.o
1091state_init.o: m_spin.o m_steps.o m_supercell.o m_test_io.o m_ts_charge.o1091state_init.o: m_sparsity_handling.o m_spin.o m_steps.o m_supercell.o
1092state_init.o: m_ts_electype.o m_ts_global_vars.o m_ts_io.o m_ts_kpoints.o1092state_init.o: m_test_io.o m_ts_charge.o m_ts_electype.o m_ts_global_vars.o
1093state_init.o: m_ts_options.o m_ts_sparse.o m_ts_tri_init.o normalize_dm.o1093state_init.o: m_ts_io.o m_ts_kpoints.o m_ts_options.o m_ts_sparse.o
1094state_init.o: overlap.o parallel.o proximity_check.o siesta_cml.o1094state_init.o: m_ts_tri_init.o normalize_dm.o overlap.o parallel.o
1095state_init.o: siesta_dicts.o siesta_geom.o siesta_options.o sparse_matrices.o1095state_init.o: proximity_check.o siesta_cml.o siesta_dicts.o siesta_geom.o
1096state_init.o: units.o write_subs.o zmatrix.o1096state_init.o: siesta_options.o sparse_matrices.o units.o write_subs.o zmatrix.o
1097struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o1097struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o
1098struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o1098struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o
1099struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o1099struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o
11001100
=== modified file 'Util/TS/ts2ts/Makefile'
--- Util/TS/ts2ts/Makefile 2018-06-28 13:53:17 +0000
+++ Util/TS/ts2ts/Makefile 2018-07-09 07:59:46 +0000
@@ -823,14 +823,14 @@
823state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o823state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o
824state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o824state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o
825state_init.o: ioxv.o kpoint_grid.o ldau_specs.o local_sys.o m_energies.o m_eo.o825state_init.o: ioxv.o kpoint_grid.o ldau_specs.o local_sys.o m_energies.o m_eo.o
826state_init.o: m_mixing.o m_mixing_scf.o m_mpi_utils.o m_new_dm.o m_os.o826state_init.o: m_mixing.o m_mixing_scf.o m_mpi_utils.o m_ncdf_siesta.o
827state_init.o: m_pivot_methods.o m_rmaxh.o m_sparse.o m_sparsity_handling.o827state_init.o: m_new_dm.o m_os.o m_pivot_methods.o m_rmaxh.o m_sparse.o
828state_init.o: m_spin.o m_steps.o m_supercell.o m_test_io.o m_ts_charge.o828state_init.o: m_sparsity_handling.o m_spin.o m_steps.o m_supercell.o
829state_init.o: m_ts_electype.o m_ts_global_vars.o m_ts_io.o m_ts_kpoints.o829state_init.o: m_test_io.o m_ts_charge.o m_ts_electype.o m_ts_global_vars.o
830state_init.o: m_ts_options.o m_ts_sparse.o m_ts_tri_init.o normalize_dm.o830state_init.o: m_ts_io.o m_ts_kpoints.o m_ts_options.o m_ts_sparse.o
831state_init.o: overlap.o parallel.o proximity_check.o siesta_cml.o831state_init.o: m_ts_tri_init.o normalize_dm.o overlap.o parallel.o
832state_init.o: siesta_dicts.o siesta_geom.o siesta_options.o sparse_matrices.o832state_init.o: proximity_check.o siesta_cml.o siesta_dicts.o siesta_geom.o
833state_init.o: units.o write_subs.o zmatrix.o833state_init.o: siesta_options.o sparse_matrices.o units.o write_subs.o zmatrix.o
834struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o834struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o
835struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o835struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o
836struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o836struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o
837837
=== modified file 'Util/TS/tshs2tshs/Makefile'
--- Util/TS/tshs2tshs/Makefile 2018-06-28 13:53:17 +0000
+++ Util/TS/tshs2tshs/Makefile 2018-07-09 07:59:46 +0000
@@ -889,14 +889,14 @@
889state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o889state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o
890state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o890state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o
891state_init.o: ioxv.o kpoint_grid.o ldau_specs.o local_sys.o m_energies.o m_eo.o891state_init.o: ioxv.o kpoint_grid.o ldau_specs.o local_sys.o m_energies.o m_eo.o
892state_init.o: m_mixing.o m_mixing_scf.o m_mpi_utils.o m_new_dm.o m_os.o892state_init.o: m_mixing.o m_mixing_scf.o m_mpi_utils.o m_ncdf_siesta.o
893state_init.o: m_pivot_methods.o m_rmaxh.o m_sparse.o m_sparsity_handling.o893state_init.o: m_new_dm.o m_os.o m_pivot_methods.o m_rmaxh.o m_sparse.o
894state_init.o: m_spin.o m_steps.o m_supercell.o m_test_io.o m_ts_charge.o894state_init.o: m_sparsity_handling.o m_spin.o m_steps.o m_supercell.o
895state_init.o: m_ts_electype.o m_ts_global_vars.o m_ts_io.o m_ts_kpoints.o895state_init.o: m_test_io.o m_ts_charge.o m_ts_electype.o m_ts_global_vars.o
896state_init.o: m_ts_options.o m_ts_sparse.o m_ts_tri_init.o normalize_dm.o896state_init.o: m_ts_io.o m_ts_kpoints.o m_ts_options.o m_ts_sparse.o
897state_init.o: overlap.o parallel.o proximity_check.o siesta_cml.o897state_init.o: m_ts_tri_init.o normalize_dm.o overlap.o parallel.o
898state_init.o: siesta_dicts.o siesta_geom.o siesta_options.o sparse_matrices.o898state_init.o: proximity_check.o siesta_cml.o siesta_dicts.o siesta_geom.o
899state_init.o: units.o write_subs.o zmatrix.o899state_init.o: siesta_options.o sparse_matrices.o units.o write_subs.o zmatrix.o
900struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o900struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o
901struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o901struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o
902struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o902struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o
903903
=== modified file 'Util/VCA/Makefile'
--- Util/VCA/Makefile 2018-06-28 13:53:17 +0000
+++ Util/VCA/Makefile 2018-07-09 07:59:46 +0000
@@ -849,14 +849,14 @@
849state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o849state_init.o: class_SpData2D.o class_Sparsity.o create_Sparsity_SC.o
850state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o850state_init.o: domain_decom.o files.o hsparse.o iodm_netcdf.o iodmhs_netcdf.o
851state_init.o: ioxv.o kpoint_grid.o ldau_specs.o local_sys.o m_energies.o m_eo.o851state_init.o: ioxv.o kpoint_grid.o ldau_specs.o local_sys.o m_energies.o m_eo.o
852state_init.o: m_mixing.o m_mixing_scf.o m_mpi_utils.o m_new_dm.o m_os.o852state_init.o: m_mixing.o m_mixing_scf.o m_mpi_utils.o m_ncdf_siesta.o
853state_init.o: m_pivot_methods.o m_rmaxh.o m_sparse.o m_sparsity_handling.o853state_init.o: m_new_dm.o m_os.o m_pivot_methods.o m_rmaxh.o m_sparse.o
854state_init.o: m_spin.o m_steps.o m_supercell.o m_test_io.o m_ts_charge.o854state_init.o: m_sparsity_handling.o m_spin.o m_steps.o m_supercell.o
855state_init.o: m_ts_electype.o m_ts_global_vars.o m_ts_io.o m_ts_kpoints.o855state_init.o: m_test_io.o m_ts_charge.o m_ts_electype.o m_ts_global_vars.o
856state_init.o: m_ts_options.o m_ts_sparse.o m_ts_tri_init.o normalize_dm.o856state_init.o: m_ts_io.o m_ts_kpoints.o m_ts_options.o m_ts_sparse.o
857state_init.o: overlap.o parallel.o proximity_check.o siesta_cml.o857state_init.o: m_ts_tri_init.o normalize_dm.o overlap.o parallel.o
858state_init.o: siesta_dicts.o siesta_geom.o siesta_options.o sparse_matrices.o858state_init.o: proximity_check.o siesta_cml.o siesta_dicts.o siesta_geom.o
859state_init.o: units.o write_subs.o zmatrix.o859state_init.o: siesta_options.o sparse_matrices.o units.o write_subs.o zmatrix.o
860struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o860struct_init.o: alloc.o atmfuncs.o atomlist.o files.o ioxv.o m_exp_coord.o
861struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o861struct_init.o: m_iostruct.o m_mpi_utils.o m_steps.o parallel.o periodic_table.o
862struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o862struct_init.o: siesta_cml.o siesta_geom.o siesta_master.o siesta_options.o
863863
=== modified file 'version.info'
--- version.info 2018-07-06 20:00:09 +0000
+++ version.info 2018-07-09 07:59:46 +0000
@@ -1,1 +1,5 @@
1<<<<<<< TREE
1siesta-4.1--9382siesta-4.1--938
3=======
4siesta-4.1--937--cdf-md-3
5>>>>>>> MERGE-SOURCE

Subscribers

People subscribed via source and target branches