12013-18-03 17:30 Fabiano Corsetti <fcorsetti@nanogune.eu> trunk-432--minim-10 2Bug fix and two tests added 3 4* Bug fix for change of nhmax between MD steps that affects parallel runs with 5 sparse algebra 6* Two tests have been added to the Tests directory, one for m_dminim and one for 7 m_zminim 8 9added: 10 Tests/OMM_h2o/ 11 Tests/OMM_h2o/Makefile 12 Tests/OMM_h2o/OMM_h2o.fdf 13 Tests/OMM_h2o/OMM_h2o.pseudos 14 Tests/OMM_si/ 15 Tests/OMM_si/Makefile 16 Tests/OMM_si/OMM_si.fdf 17 Tests/OMM_si/OMM_si.pseudos 18modified: 19 Docs/siesta.tex 20 Src/m_dminim.F90 21 Src/m_zminim.F90 22 Tests/Makefile 23 242013-15-03 17:00 Fabiano Corsetti <fcorsetti@nanogune.eu> trunk-432--minim-9 25Merge with trunk-432 and manual updated 26 27removed: 28 Docs/siesta.ind 29 Src/fdf/tags 30 Src/m_ts_contour.F 31added: 32 Docs/Makefile 33 Docs/TS-npa.CHANGES 34 Docs/TranSiestaUpdate.pdf 35 Src/kpoint_convert.f90 36 Src/m_glob_sparse.F90 37 Src/m_hs_matrix.f90 38 Src/m_partial_charges.F 39 Src/m_ts_cctype.f90 40 Src/m_ts_contour.f90 41 Src/m_ts_gf.F90 42 Src/m_ts_voltage.F90 43 Src/ts_init.F90 44 Src/ts_show_regions.f90 45 Tests/Reference-xml/si_fatbands.xml 46 Tests/Reference/TranSiesta-TBTrans/ts_au_100/ 47 Tests/Reference/TranSiesta-TBTrans/ts_au_100/au_100.TRANS 48 Tests/Reference/TranSiesta-TBTrans/ts_au_100/au_100.out 49 Tests/Reference/TranSiesta-TBTrans/ts_au_100/elec_au_100.out 50 Tests/Reference/TranSiesta-TBTrans/ts_au_100/tbt_au_100.out 51 Tests/Reference/TranSiesta-TBTrans/ts_au_100_0.25V/ 52 Tests/Reference/TranSiesta-TBTrans/ts_au_100_0.25V/au_100.TRANS 53 Tests/Reference/TranSiesta-TBTrans/ts_au_100_0.25V/au_100.out 54 Tests/Reference/TranSiesta-TBTrans/ts_au_100_0.25V/elec_au_100.out 55 Tests/Reference/TranSiesta-TBTrans/ts_au_100_0.25V/tbt_au_100.out 56 Tests/Reference/TranSiesta-TBTrans/ts_au_100_repetition/ 57 Tests/Reference/TranSiesta-TBTrans/ts_au_100_repetition/au_100.TRANS 58 Tests/Reference/TranSiesta-TBTrans/ts_au_100_repetition/au_100.out 59 Tests/Reference/TranSiesta-TBTrans/ts_au_100_repetition/elec_au_100.out 60 Tests/Reference/TranSiesta-TBTrans/ts_au_100_repetition/tbt_au_100.out 61 Tests/Reference/TranSiesta-TBTrans/ts_au_100_repetition_0.25V/ 62 Tests/Reference/TranSiesta-TBTrans/ts_au_100_repetition_0.25V/au_100.TRANS 63 Tests/Reference/TranSiesta-TBTrans/ts_au_100_repetition_0.25V/au_100.out 64 Tests/Reference/TranSiesta-TBTrans/ts_au_100_repetition_0.25V/elec_au_100.out 65 Tests/Reference/TranSiesta-TBTrans/ts_au_100_repetition_0.25V/tbt_au_100.out 66 Tests/Reference/TranSiesta-TBTrans/ts_au_repetition/ 67 Tests/Reference/TranSiesta-TBTrans/ts_au_repetition/au_111_capacitor.AVTRANS 68 Tests/Reference/TranSiesta-TBTrans/ts_au_repetition/au_111_capacitor.TEIG 69 Tests/Reference/TranSiesta-TBTrans/ts_au_repetition/au_111_capacitor.TRANS 70 Tests/Reference/TranSiesta-TBTrans/ts_au_repetition/au_111_capacitor.out 71 Tests/Reference/TranSiesta-TBTrans/ts_au_repetition/elec_au_111_abc.out 72 Tests/Reference/TranSiesta-TBTrans/ts_au_repetition/tbt_au_111_capacitor.out 73 Tests/Reference/si_fatbands.out 74 Tests/TranSiesta-TBTrans/ts_au_100/ 75 Tests/TranSiesta-TBTrans/ts_au_100/Au.psf 76 Tests/TranSiesta-TBTrans/ts_au_100/au_100.fdf 77 Tests/TranSiesta-TBTrans/ts_au_100/elec_au_100.fdf 78 Tests/TranSiesta-TBTrans/ts_au_100/makefile 79 Tests/TranSiesta-TBTrans/ts_au_100/script.sh 80 Tests/TranSiesta-TBTrans/ts_au_100_0.25V/ 81 Tests/TranSiesta-TBTrans/ts_au_100_0.25V/Au.psf 82 Tests/TranSiesta-TBTrans/ts_au_100_0.25V/au_100.fdf 83 Tests/TranSiesta-TBTrans/ts_au_100_0.25V/elec_au_100.fdf 84 Tests/TranSiesta-TBTrans/ts_au_100_0.25V/makefile 85 Tests/TranSiesta-TBTrans/ts_au_100_0.25V/script.sh 86 Tests/TranSiesta-TBTrans/ts_au_100_repetition/ 87 Tests/TranSiesta-TBTrans/ts_au_100_repetition/Au.psf 88 Tests/TranSiesta-TBTrans/ts_au_100_repetition/au_100.fdf 89 Tests/TranSiesta-TBTrans/ts_au_100_repetition/elec_au_100.fdf 90 Tests/TranSiesta-TBTrans/ts_au_100_repetition/makefile 91 Tests/TranSiesta-TBTrans/ts_au_100_repetition/script.sh 92 Tests/TranSiesta-TBTrans/ts_au_100_repetition_0.25V/ 93 Tests/TranSiesta-TBTrans/ts_au_100_repetition_0.25V/Au.psf 94 Tests/TranSiesta-TBTrans/ts_au_100_repetition_0.25V/au_100.fdf 95 Tests/TranSiesta-TBTrans/ts_au_100_repetition_0.25V/elec_au_100.fdf 96 Tests/TranSiesta-TBTrans/ts_au_100_repetition_0.25V/makefile 97 Tests/TranSiesta-TBTrans/ts_au_100_repetition_0.25V/script.sh 98 Tests/TranSiesta-TBTrans/ts_au_repetition/ 99 Tests/TranSiesta-TBTrans/ts_au_repetition/Au.psf 100 Tests/TranSiesta-TBTrans/ts_au_repetition/au_111_capacitor.fdf 101 Tests/TranSiesta-TBTrans/ts_au_repetition/elec_au_111_abc.fdf 102 Tests/TranSiesta-TBTrans/ts_au_repetition/makefile 103 Tests/TranSiesta-TBTrans/ts_au_repetition/script.sh 104 Tests/h2o-pop/ 105 Tests/h2o-pop/h2o-pop.fdf 106 Tests/h2o-pop/h2o-pop.pseudos 107 Tests/h2o-pop/makefile 108 Tests/md-anneal-cont/ 109 Tests/md-anneal-cont/README 110 Tests/md-anneal-cont/makefile 111 Tests/md-anneal-cont/script.sh 112 Tests/md-cont/ 113 Tests/md-cont-no-restart-file/ 114 Tests/md-cont-no-restart-file/README 115 Tests/md-cont-no-restart-file/makefile 116 Tests/md-cont-no-restart-file/script.sh 117 Tests/md-cont/README 118 Tests/md-cont/makefile 119 Tests/md-cont/script.sh 120 Tests/md-single-run/ 121 Tests/md-single-run/README 122 Tests/md-single-run/makefile 123 Tests/md-single-run/script.sh 124 Tests/si_fatbands/ 125 Tests/si_fatbands/makefile 126 Tests/si_fatbands/si_fatbands.fdf 127 Tests/si_fatbands/si_fatbands.pseudos 128 Util/Bands/ 129 Util/Bands/Makefile 130 Util/Bands/README 131 Util/Bands/eigfat2plot.f90 132 Util/Bands/f2kcli.F90 133 Util/Bands/fat.gplot 134 Util/Bands/m_getopts.f90 135 Util/Bands/new.gnubands.f90 136 Util/COOP/Tests/si_fatbands/ 137 Util/COOP/Tests/si_fatbands/README 138 Util/COOP/Tests/si_fatbands/fatbands.mpr 139 Util/COOP/fat.f90 140 Util/Denchar/Examples/2dplot.py 141 Util/Denchar/Examples/FullExample.fdf 142 Util/Denchar/Examples/Si.psf 143 Util/Denchar/Examples/surf.py 144 Util/Denchar/Src/readwavesx.f 145 Util/JobList/ 146 Util/JobList/Examples/ 147 Util/JobList/Examples/Ice/ 148 Util/JobList/Examples/Ice/H.psf 149 Util/JobList/Examples/Ice/O.psf 150 Util/JobList/Examples/Ice/defaults.fdf 151 Util/JobList/Examples/Ice/dzp.fdf 152 Util/JobList/Examples/Ice/filter100.fdf 153 Util/JobList/Examples/Ice/iceChecks.jobs 154 Util/JobList/Examples/Ice/iceVIII.fdf 155 Util/JobList/Examples/Ice/iceXI.fdf 156 Util/JobList/Examples/Ice/meshCutoff.gplot 157 Util/JobList/Examples/Ice/meshCutoff.jobs 158 Util/JobList/Examples/Ice/pseudoLMKLL.fdf 159 Util/JobList/Examples/Ice/pseudoPBE.fdf 160 Util/JobList/Examples/Ice/pseudoVV.fdf 161 Util/JobList/Examples/Ice/queue.sh 162 Util/JobList/Examples/Ice/qzp.fdf 163 Util/JobList/Examples/Ice/tzp.fdf 164 Util/JobList/README 165 Util/JobList/Src/ 166 Util/JobList/Src/Makefile 167 Util/JobList/Src/countJobs.f90 168 Util/JobList/Src/getResults.f90 169 Util/JobList/Src/horizontal.f90 170 Util/JobList/Src/jobList.f90 171 Util/JobList/Src/runJobs.f90 172 Util/TBTrans_rep/ 173 Util/TBTrans_rep/Makefile 174 Util/TBTrans_rep/atompdos.F90 175 Util/TBTrans_rep/coop.F90 176 Util/TBTrans_rep/m_lowdin.f90 177 Util/TBTrans_rep/m_tbt_iotshs.F90 178 Util/TBTrans_rep/m_tbt_kpoints.F90 179 Util/TBTrans_rep/m_tbt_options.F90 180 Util/TBTrans_rep/m_tbt_out.f90 181 Util/TBTrans_rep/m_tbt_read_tshs.F90 182 Util/TBTrans_rep/tbt_init.F90 183 Util/TBTrans_rep/tbt_reinit.F90 184 Util/TBTrans_rep/tbtrans.F90 185 Util/TBTrans_rep/transmission.f90 186 Util/TBTrans_rep/tt_eig.f90 187renamed: 188 Util/gnubands.f => Util/Bands/gnubands.f 189modified: 190 Docs/CHANGES 191 Docs/CHANGES.minim 192 Docs/README 193 Docs/siesta.tex 194 Pseudo/atom/pseudoXML.f 195 Src/MPI/Makefile 196 Src/MPI/mpi.F 197 Src/MPI/mpi_siesta.f90 198 Src/Makefile 199 Src/SiestaXC/mesh1d.f90 200 Src/automatic_cell.f 201 Src/bands.F 202 Src/basis_io.F 203 Src/basis_specs.f 204 Src/compute_dm.F 205 Src/configure 206 Src/dhscf.F 207 Src/diagk.F 208 Src/diagkp.F 209 Src/domain_decom.F 210 Src/dynamics.f 211 Src/fdf/fdf.F90 212 Src/fdf/fdf.Standard 213 Src/fdf/makefile 214 Src/find_kgrid.F 215 Src/grdsam.F 216 Src/iomd.f 217 Src/iopipes.F90 218 Src/kpoint_grid.F90 219 Src/kpoint_pdos.F90 220 Src/m_ts_aux_rout.F 221 Src/m_ts_electrode.F90 222 Src/m_ts_in_siesta.F 223 Src/m_ts_io.F90 224 Src/m_ts_kpoints.F90 225 Src/m_ts_options.F90 226 Src/m_ts_scattering.F 227 Src/meshsubs.F 228 Src/mixer.F 229 Src/new_dm.F 230 Src/optical.F 231 Src/parallel.F 232 Src/precision.F 233 Src/reinit.F 234 Src/scfconvergence_test.F 235 Src/setup_hamiltonian.F 236 Src/siesta_analysis.F 237 Src/siesta_end.F 238 Src/siesta_forces.F 239 Src/siesta_init.F 240 Src/siesta_options.F90 241 Src/struct_init.F 242 Src/transition_rate.F 243 Src/version.F90 244 Src/write_subs.F 245 Src/writewave.F 246 Tests/Makefile 247 Tests/TranSiesta-TBTrans/README 248 Tests/md_anneal/md_anneal.fdf 249 Tests/script_ts.mk 250 Util/COOP/Makefile 251 Util/COOP/README 252 Util/COOP/Tests/README 253 Util/COOP/dm_creator.F90 254 Util/COOP/main_vars.f90 255 Util/COOP/mprop.f90 256 Util/COOP/subs.f90 257 Util/Denchar/Docs/CHANGES 258 Util/Denchar/Docs/denchar.tex 259 Util/Denchar/Src/Makefile 260 Util/Denchar/Src/denchar.f 261 Util/Eig2DOS/Eig2DOS.f90 262 Util/Grid/grid2cube.f 263 Util/README 264 Util/SiestaSubroutine/README 265 Util/TBTrans/Makefile 266 Util/pseudo-xml/xml2psf_helper.f 267 version.info 268 2692013-15-03 17:00 Fabiano Corsetti <fcorsetti@nanogune.eu> trunk-409--minim-8 270Major update (addition of many different features and keywords) 271 272* The module has been expanded to include many different versions of the OMM 273 algorithm, and several additional useful features. Keywords for the SIESTA 274 fdf input file have also been added to allow for detailed user control of the 275 module. 276* Versions of the minimization procedure now available: 277 +-----------------------------------------------------+ 278 | Gamma (G)/k points (K)* G G G G G G G G K K K K K K | 279 | Preconditioning F T F T F F F T F T F T F F | 280 | 2D data decomposition F F T T F T F F F F T T F T | 281 | Cholesky factorizarion F F F F T T F F F F F F T T | 282 | Sparse algebra F F F F F F T T F F F F F F | 283 +-----------------------------------------------------+ 284 | * (selected automatically) | 285 +-----------------------------------------------------+ 286 Furthermore, all versions support spin polarized calculations (for fixed 287 integer number of electrons per spin). Extended k grid calculations also 288 require a fixed number of electrons at each k point. 289* Additional features: 290 - select level of output detail 291 - write/read WF coeffs. to/from file 292 - input ScaLAPACK blocking factor for distributing the WF coeffs. matrix 293 - input number of SCF steps for which to use preconditioning (for first MD 294 step, and subsequent MD steps) 295 - input kinetic energy scale for the preconditioning 296 - input number of SCF steps to solve with diagonalization (for first MD step, 297 and subsequent MD steps) 298 - input convergence tolerance of CG minimization 299 - choose whether to diagonalize at end of MD step to find eigenvalues 300 301removed: 302 Src/m_minim.F90 303added: 304 Src/m_dminim.F90 305 Src/m_zminim.F90 306modified: 307 Docs/CHANGES.minim 308 Src/Makefile 309 Src/compute_dm.F 310 Src/local_DOS.F 311 Src/post_scf_work.F 312 Src/projected_DOS.F 313 Src/siesta_analysis.F 314 Src/siesta_options.F90 315 Src/write_subs.F 316 version.info 317 3182012-20-11 17:00 Fabiano Corsetti <fcorsetti@nanogune.eu> trunk-409--minim-7 319Bug fix 320 321* Bug fixed in m_minim.F90 (incorrect number of elements declared for listhptr 322 and listh). Strangely, however, the bug does not appear to cause any errors in 323 the execution of the code. 324 325modified: 326 Docs/CHANGES.minim 327 Src/m_minim.F90 328 version.info 329 3302012-11-07 19:00 Fabiano Corsetti <fcorsetti@nanogune.eu> trunk-409--minim-6 331Added preconditioning to the CG algorithm 332 333* The iterative conjugate gradients (CG) algorithm has been modified by 334 introducing a preconditioner that premultiplies the standard gradient 335 expression. This preconditioning matrix is given by the inverse of (s+t/tau), 336 where s is the overlap matrix for the underlying SIESTA basis set, and t is 337 the corresponding kinetic energy matrix; tau is a scaling factor for the 338 kinetic energy preconditioning. Note that the preconditioner transforms the 339 gradient from covariant to contravariant (although only for the index related 340 to the underlying non-orthogonal basis), thus *partially* fixing the tensorial 341 inconsistencies of the algorithm. 342 343modified: 344 Docs/CHANGES.minim 345 Src/compute_dm.F 346 Src/m_minim.F90 347 Src/post_scf_work.F 348 version.info 349 3502012-29-06 17:00 Fabiano Corsetti <fcorsetti@nanogune.eu> trunk-409--minim-5 351Added coefficients rescaling to prevent crashes 352 353* In certain regions of the coeffs. space the line search gives no minimum. This 354 occurs when there are positive eigenvalues in the eigenspecturm which are 355 significantly occupied by our coeffs. matrix. The only known cure, 356 unfortunately, is to scale down the entire matrix, thus returning to a safe 357 region of the coeffs. space. 358 359modified: 360 Docs/CHANGES.minim 361 Src/m_minim.F90 362 version.info 363 3642012-18-06 16:00 Fabiano Corsetti <fcorsetti@nanogune.eu> trunk-409--minim-4 365Fixed deallocation of arrays bug 366 367* The bug was introduced by separating the calculation of the energy-density 368 matrix from the rest of the module 369 370modified: 371 Docs/CHANGES.minim 372 Src/m_minim.F90 373 version.info 374 3752012-15-06 17:00 Fabiano Corsetti <fcorsetti@nanogune.eu> trunk-409--minim-3 376Changed initial guess for orbital coefficients 377 378* Empirical testing suggests that starting with an initial guess close to zero 379 can reduce the number of line searches in the initial SCF step by a factor of 380 2; however, if the initial guess is too small the algorithm is numerically 381 unstable 382* The impact of the initial guess on the number of line searches needs to be 383 investigated further! 384 385modified: 386 Docs/CHANGES.minim 387 Src/m_minim.F90 388 version.info 389 3902012-15-06 16:00 Fabiano Corsetti <fcorsetti@nanogune.eu> trunk-409--minim-2 391Added documentation of changes 392 393added: 394 Docs/CHANGES.minim 395modified: 396 version.info 397 3982012-15-06 16:00 Fabiano Corsetti <fcorsetti@nanogune.eu> trunk-409--minim-1 399Implemented the non-O(N) version of the Ordejon-Mauri functional 400 401* The functional is contained in a new module m_minim 402* The m_minim module replaces the m_ordern module and so can be called with 403 "SolutionMethod OrderN" in the SIESTA input file--note, however, that it 404 is *not* an O(N) functional, since there is no localization imposed on the 405 orbitals 406* "ON.eta" can be specified in the SIESTA input file to control the shift of 407 the eigenspectrum, in order to ensure that all of the occupied states (at 408 least) have a negative energy 409* The module works in serial with LAPACK, or in parallel with MPI and 410 ScaLAPACK 411* For efficiency, only the density matrix is computed at each SCF step, 412 while the energy-density matrix is computed once we have reached the end of 413 the SCF loop 414* By changing the assignment of CallDiagon in m_compute_dm, it is possible to 415 perform one or more of the SCF cycles at the beginning of each MD/geometry 416 optimization step by diagonalization instead of minimization; the 417 eigenfunctions are then used as the initial guess for the next minimization 418 call 419 420added: 421 Src/m_minim.F90 422modified: 423 Src/Makefile 424 Src/compute_dm.F 425 Src/post_scf_work.F 426 version.info 427