1. 23 Jun, 2016 1 commit
    • Alberto Garcia's avatar
      Release of siesta-4.0 · 7440a27d
      Alberto Garcia authored
      * Update Docs/release_notes.4.0
      
      * Update list of contributors.
      
      * Add some more documentation and comments, and clarify notes in
        output for the recet electric-field/slab-dipole-correction fix.
      
      * Remove Util/pseudo-xml
      
      * Other minor changes in README files
      
      
        
      		
      
      	
      7440a27d
  2. 22 Jun, 2016 4 commits
  3. 21 Jun, 2016 2 commits
    • Nick R. Papior's avatar
      Updated dipole tests with smaller unit-cell · 8864777b
      Nick R. Papior authored
      - h2o_dipole and h2o_dipole2 now conforms with the tests
        made in Bengtsson paper.
      
      8864777b
    • Nick R. Papior's avatar
      The floating orbital check was incorrect · 10cebf7d
      Nick R. Papior authored
      - Fixed skipped checking for proximity with floating orbitals
      
      - Exposed the chemical_types in chemical.f.
        This enables calling the functions in that code.
        I am guessing it should be made obsolete due to the
        newer types, however, for now it seems appropriate to
        retain this in a broadcasted manner.
      10cebf7d
  4. 20 Jun, 2016 1 commit
  5. 18 Jun, 2016 2 commits
    • Nick R. Papior's avatar
      Fixed dipole correction energy · 2d49bedc
      Nick R. Papior authored
      - The dipole correction energy should only be counted
        half in the Hartree total energy.
        This may be checked using 2 calculations using water:
      
        1. Calculate the energy of a dipole corrected slab of
           water with the dipole aligned perpendicular
           to the slab.
        2. Calculate the energy of a doubly water slab with
           oppositely aligned dipoles.
      
        They should yield similar total energies.
      
        These tests have been added to the:
        	h2o_dipole
      	h2o_dipole2
        tests.
      2d49bedc
    • Nick R. Papior's avatar
      Fixes lp:1593725, dipole correction and electric field · 57f275e3
      Nick R. Papior authored
      - The dipole correction should be intrinsically used if
        an external electric field is applied to slab calculations.
      
        Now siesta defaults SlabDipoleCorrection to true for slab systems
        with an external electric field.
        
      57f275e3
  6. 29 May, 2016 1 commit
  7. 18 May, 2016 1 commit
  8. 10 May, 2016 1 commit
    • Alberto Garcia's avatar
      Revise mentions to now-standalone ATOM program. Revert Tests/test.mk. · d5129b9b
      Alberto Garcia authored
      * The ATOM program is not bundled with Siesta due to licensing
        differences.  Mentions to it throughout the documentation and
        example files have been updated accordingly.
      
      * The file Tests/test.mk has been reverted to the revno 490 version.
        Note that the proper way to run the tests for a given version is
        to descend into the 'Tests' directory directly below the compilation
        directory ('Obj' or other) rather than going to the top-level 'Tests'.
      
      * Syntax changes for compiler complaints reported by Mariella Ippolito
        from CINECA.
      
      * Completion of changes to licensing headers.
      
      modified:
        Docs/siesta.tex
        Examples/README
        Examples/Vps/README
        Src/SiestaXC/vv_vdwxc.F90
        Src/fsiesta_mpi.F90
        Src/write_inp_wannier.F90
        Tests/test.mk
        + Header changes in a number of files
        
      		
      
      	
      d5129b9b
  9. 05 May, 2016 1 commit
    • Alberto Garcia's avatar
      Fix in 'fat' utility. Write spin info in 'eigfat2plot' · 87e783c5
      Alberto Garcia authored
      The 'fat' program in Util/COOP computes the projections of specific
      band states onto sets of orbitals. Due to an error, the program did
      not function correctly when a subset of upper bands was selected with
      the '-b' and '-B' flags.
      
      The 'eigfat2plot' utility in Util/Bands now prints an extra field giving
      the spin of the state.
      
      modified:
        Util/Bands/eigfat2plot.f90
        Util/COOP/fat.f90
        Util/COOP/main_vars.f90
      
      
      	
      87e783c5
  10. 03 May, 2016 1 commit
    • Alberto Garcia's avatar
      Fix for handling of geometry info in bands/wfns calculation · baa5a88d
      Alberto Garcia authored
      The computation of bands and/or wavefunctions in 'siesta_analysis'
      requires an initial setup of the k-point sets involved.  These are
      input in ad-hoc fdf blocks with two possible options for the scaling:
      'pi/a' and 'ReciprocalLatticeVectors'.
      
      The 'pi/a' option needs a lattice constant, which is determined by
      issuing an 'fdf_get' call, whereas the reciprocal lattice vector
      option triggers a call to 'redcel' to determine the unit cell.
      
      An immediate problem is the absence of lattice constant or unit-cell
      information in the fdf file. This may happen, for example, when the
      'use-struct-file' or 'use-save-xv' options are in effect. The program
      would either stop when not finding the lattice constant, or, worse,
      would implicitly compute a zero unit cell and crash later with
      linear-algebra related errors such as faulty Cholesky
      decompositions. (The zero-unit-cell case is an unfortunate consequence
      of the implicit convention that an absent unit cell means that the
      user wants an automatic one.)
      
      A second problem is that, even if the required geometry information is
      given in the fdf file, the band/wfn calculation might be happening at
      the end of a cell relaxation or MD run, so the actual unit cell is not
      that in the fdf file. This should be considered bad practice, but it
      might happen.
      
      The minimal solution adopted (encoded in routine get_kpoints_scale)
      consists of attempting to read the lattice constant for the 'pi/a'
      case, as before, but to use the unit-cell information in the
      'siesta_geom' module for the reciprocal-lattice-vectors case.  This
      information is not enough for the 'pi/a' option, since no record is
      kept of any centering options for cubic systems, so 'a' cannot be
      directly determined from the volume of the unit cell.  Note that the
      setup information is handled at the beginning of the run (during the
      initialization in 'siesta_init'.
      
      A message is printed to warn the user about possible inconsistencies
      if the unit-cell changes by the end of the run. In any case, the
      practice of computing bands or wavefunctions at the end of a
      geometry-changing run should be discouraged.
      
      added:
        Src/get_kpoints_scale.f90
      modified:
        Src/Makefile
        Src/bands.F
        Src/writewave.F
      	
      baa5a88d
  11. 02 Mar, 2016 1 commit
    • Nick R. Papior's avatar
      Tests fix, REFERENCE_DIR and SIESTA · bcb5ecb8
      Nick R. Papior authored
      - After having build siesta in the Obj directory
        a natural procedure would be to go to Tests
        and run the tests:
            make
        However, the default SIESTA is not pointing to
        the Obj.
        Further the REFERENCE_DIR is not pointing to the
        correct reference directory when in the top Tests
        directory.
      
        Hence the procedure is:
        1. cd Obj
        2. ../Src/obj_setup.sh
        3. <create arch.make>
        4. make
        5. cd ../Tests/
        6. make
        
      modified:
        Tests/test.mk
      bcb5ecb8
  12. 21 Feb, 2016 1 commit
  13. 16 Feb, 2016 1 commit
  14. 05 Feb, 2016 2 commits
    • Alberto Garcia's avatar
      Re-fix Genbasis makefile · d4e020e3
      Alberto Garcia authored
      * In Util/Gen-basis/Makefile, the treatment of COMP_LIBS can be
        improved with a form suggested by Pedro Brandimarte, which will
        work even if there are multiple files in COMP_LIBS.
      
      modified:
        Util/Gen-basis/Makefile
        
      d4e020e3
    • Alberto Garcia's avatar
      Re-fix Genbasis makefile · 8422d318
      Alberto Garcia authored
      * In Util/Gen-basis/Makefile, the treatment of COMP_LIBS can be
        improved with a form suggested by Pedro Brandimarte, which will
        work even if there are multiple files in COMP_LIBS.
      
      modified:
        Util/Gen-basis/Makefile
        
      8422d318
  15. 28 Jan, 2016 2 commits
    • Alberto Garcia's avatar
      Prepare GPL release · 7f42ef6b
      Alberto Garcia authored
      * Include proper headers
      
      * Add Docs/Contributors.txt and NOTICE.txt files.
      
      * Update READMEs and LICENSE files in several directories.
      
      * Remove Pseudo/atom, Util/test-xml
      
      * Remove DOM files from Src/xmlparser
      7f42ef6b
    • Alberto Garcia's avatar
      Fix Tests/test.mk and Genbasis makefile · fa8a7b72
      Alberto Garcia authored
      * The reference directory's path was incorrect in Tests/test.mk
      
      * In Util/Gen-basis/Makefile, the treatment of COMP_LIBS did not
        properly cover all cases.
      
      modified:
        Tests/test.mk
        Util/Gen-basis/Makefile
        
      fa8a7b72
  16. 25 Jan, 2016 1 commit
    • Alberto Garcia's avatar
      Prepare GPL release · e756609d
      Alberto Garcia authored
      * Include proper headers
      
      * Add Docs/Contributors.txt and NOTICE.txt files.
      
      * Update READMEs and LICENSE files in several directories.
      
      * Remove Pseudo/atom, Util/test-xml
      
      * Remove DOM files from Src/xmlparser
      e756609d
  17. 27 Dec, 2015 1 commit
    • Alberto Garcia's avatar
      Fix peak alloc report in MPI · 25a31f92
      Alberto Garcia authored
      When alloc-report-level is 1 or 3, a report is printed at every
      peak. This hanged in MPI runs. Now only the root node peaks are
      printed.
      
      (Thanks to Nick R. Papior)
      
      modified:
        Src/alloc.F90
        Docs/siesta.tex
        
      25a31f92
  18. 18 Dec, 2015 2 commits
    • Alberto Garcia's avatar
      Preparation of release notes for 4.0-beta · 87a841ac
      Alberto Garcia authored
      * Interim release and technical notes.
      
      * Some older .CHANGES files have been moved to the 'branch-changes'
        directory.
      
      * Older release notes moved to the 'older-release-notes' directory.
      
      added:
        Docs/Changelog-from-trunk-462.txt
        Docs/branch-changes/
        Docs/older-release-notes/
        Docs/older-release-notes/release.notes_3.0
        Docs/older-release-notes/release.notes_3.1
        Docs/older-release-notes/release.notes_3.2
        Docs/release_notes.4.0-beta
      renamed:
        Docs/BSC.CHANGES => Docs/branch-changes/BSC.CHANGES
        Docs/CHANGES.charconf => Docs/branch-changes/CHANGES.charconf
        Docs/CHANGES.minim => Docs/branch-changes/CHANGES.minim
        Docs/Grid.CHANGES => Docs/branch-changes/Grid.CHANGES
        Docs/KNOWN.ISSUES.BSC-patch => Docs/branch-changes/KNOWN.ISSUES.BSC-patch
        Docs/Mixing.CHANGES => Docs/branch-changes/Mixing.CHANGES
        Docs/TS-npa.CHANGES => Docs/branch-changes/TS-npa.CHANGES
        Docs/TranSiestaUpdate.pdf => Docs/older-release-notes/TranSiestaUpdate.pdf
        Docs/atom-filt+qconf.CHANGES => Docs/branch-changes/atom-filt+qconf.CHANGES
        Docs/fdf.CHANGES => Docs/branch-changes/fdf.CHANGES
        Docs/gga.CHANGES => Docs/branch-changes/gga.CHANGES
        Docs/mixrho.CHANGES => Docs/branch-changes/mixrho.CHANGES
        Docs/radfunc.CHANGES => Docs/branch-changes/radfunc.CHANGES
        Docs/rc-4.0.CHANGES => Docs/branch-changes/rc-4.0.CHANGES
        Docs/release.notes_0.11 => Docs/older-release-notes/release.notes_0.11
        Docs/release.notes_0.9 => Docs/older-release-notes/release.notes_0.9
        Docs/release.notes_1.1 => Docs/older-release-notes/release.notes_1.1
        Docs/release.notes_1.3 => Docs/older-release-notes/release.notes_1.3
        Docs/release.notes_2.0 => Docs/older-release-notes/release.notes_2.0
        Docs/timing.CHANGES => Docs/branch-changes/timing.CHANGES
        Docs/wannier-merge.CHANGES => Docs/branch-changes/wannier-merge.CHANGES
        Docs/wannier.CHANGES => Docs/branch-changes/wannier.CHANGES
      modified:
        Docs/siesta.tex
      87a841ac
    • Alberto Garcia's avatar
      Add lapack and blas code in Libs to support OMM and SVD · eb53cff4
      Alberto Garcia authored
      * To enable quick compilation with no external libraries, some
        lapack/blas routines have been added to the Src/Libs directory.
      
        A minimal example of arch.make: Src/Sys/nolibs.make
      
        Note that some optional features do depend on the availability of
        external libraries, such as netCDF and fftw.
        
      added:
        Src/Libs/svd_omm_lapack.f
      modified:
        Src/Libs/blas.f
        Src/Libs/makefile
        Src/Sys/nolibs.make
        Util/Gen-basis/Makefile  
      
      eb53cff4
  19. 17 Dec, 2015 1 commit
    • Alberto Garcia's avatar
      New versions of grid2cube and gnubands. Laplacian of grid functions · 38d116a8
      Alberto Garcia authored
      * Updated new.gnubands in Util/Bands to enhance spin processing
        and optional production of labels in tick marks.
      
        (Nick R. Papior)
        
      * A new experimental program g2c_ng in Util/Grid offers extended
        and cleaner functionality over the classic grid2cube.
      
      * A new program cdf_laplacian in Util/Grid computes the laplacian
        of a grid function in netCDF format.
      
        (A. Garcia)
        
      added:
        Util/Grid/cdf_laplacian.F90
        Util/Grid/g2c_ng.f
        Util/Grid/m_gridfunc.F90
        Util/Grid/m_struct.f90
      modified:
        Util/Bands/Makefile
        Util/Bands/README
        Util/Bands/new.gnubands.f90
        Util/Grid/README
        Util/Grid/makefile
        Util/build_all.sh
      		    
      	  
      
      38d116a8
  20. 26 Nov, 2015 2 commits
    • Alberto Garcia's avatar
      Increase the number of allowed iterations in minvec · d7883ed3
      Alberto Garcia authored
      The default value of 100 was inadequate for the needs of
      k-point supercells for large multipliers.
      
      modified:
        Src/minvec.f
            
      	  
      
      d7883ed3
    • Nick R. Papior's avatar
      Fix bug in heapsort routine · 0f5d8ea3
      Nick R. Papior authored and Alberto Garcia's avatar Alberto Garcia committed
      (Thanks to Nick Papior)
      
      * The recent re-implementation of the heapsort algorithm in routine
        'ordix' in 'sorting.f' (trunk revno 468)  was buggy.
      
        This affected:
      
        - The siesta.BONDS file, which did not have optimal ordering of the
          bond-lengths.
      
        - Some calculations using k-points, as routine 'minvec', used in the
          definition of the effective k-point supercell, calls 'ordix'.
          (The reference outputs for the 'var_cell' and 'si2x1h' tests have
          been modified.)
      
        - (probably) The re-use of density-matrix information, as the ordering
          of interactions in 'hsparse' also depended on 'ordix' through calls to
          'ordvec'.
      
        - (maybe) The operation of the "rho-mixing" routines, which use 'ordix'
          for the sorting of stars.
      
      modified:
        Src/sorting.f
        Tests/Reference/si2x1h.out
        Tests/Reference/var_cell.out
            
      	  
      
      0f5d8ea3
  21. 04 Oct, 2015 1 commit
    • Alberto Garcia's avatar
      Assorted fixes and cleanup. Update reference outputs · 652e3ee9
      Alberto Garcia authored
      - Replace pointers by allocatables in {zm,cell}_broyden_optim.
      - Split-off read_options from siesta_options to reduce
        dependencies and clarify hidden symbol associations.
      - Remove dependency in sparse_matrices
      - Fix dependencies in makefiles in Util
      - Remove Reference-xml
      - Update Reference-out files
      - Provide a simple-minded mechanism to flag differences in the
        test outputs ('make check').
      
      removed:
        Tests/Reference-xml/
        Tests/Reference/partial.out
      added:
        Src/read_options.F90
        Tests/Reference/TranSiesta-TBTrans/ts_au_100/au_100.AVTRANS
        Tests/Reference/TranSiesta-TBTrans/ts_au_100/au_100.TEIG
        Tests/Reference/TranSiesta-TBTrans/ts_au_100_0.25V/au_100.AVTRANS
        Tests/Reference/TranSiesta-TBTrans/ts_au_100_0.25V/au_100.TEIG
        Tests/Reference/TranSiesta-TBTrans/ts_au_100_repetition/au_100.AVTRANS
        Tests/Reference/TranSiesta-TBTrans/ts_au_100_repetition/au_100.TEIG
        Tests/Reference/TranSiesta-TBTrans/ts_au_100_repetition_0.25V/au_100.AVTRANS
        Tests/Reference/TranSiesta-TBTrans/ts_au_100_repetition_0.25V/au_100.TEIG
        Tests/TranSiesta-TBTrans/copy_to_reference.sh
        Tests/TranSiesta-TBTrans/run_tests.sh
      modified:
        Docs/siesta.tex
        Src/Makefile
        Src/cell_broyden_optim.F
        Src/diagon.F
        Src/final_H_f_stress.F
        Src/obj_setup.sh
        Src/projected_DOS.F
        Src/proximity_check.F
        Src/siesta_analysis.F
        Src/siesta_forces.F
        Src/siesta_init.F
        Src/siesta_move.F
        Src/siesta_options.F90
        Src/sparse_matrices.F
        Src/state_analysis.F
        Src/state_init.F
        Src/struct_init.F
        Src/write_md_record.F
        Src/write_subs.F
        Src/zm_broyden_optim.F
        Tests/Makefile
        Tests/README
        Tests/Reference/*
        Tests/cmp_digest.sh
        Tests/partial/README
        Tests/test.mk
        Util/Denchar/Src/Makefile
        Util/Gen-basis/Makefile
        Util/STM/ol-stm/Src/Makefile
        Util/SiestaSubroutine/README
        Util/TBTrans/Makefile
        Util/TBTrans_rep/Makefile
        Util/VCA/Makefile
        Util/build_all.sh
            
      
      
      	  
      
      652e3ee9
  22. 29 Sep, 2015 1 commit
    • Alberto Garcia's avatar
      Fixes: OCCS file, pdoskp, processorY · 3b54fb84
      Alberto Garcia authored
      * The OCCS file, containing the occupation at each k-point,
        is now created only during the scf cycle, in 'diagon'. This
        fixes problems that appeared when 'diagk' was called from
        other routines.
        
      * Some arrays in pdoskp were not dimensioned correctly on
        input in pdoskp.
      
      * Added a sanity check for the user-entered ProcessorY.
      
      (Thanks to Nick P. Andersen)
      
      modified:
        Src/diagk.F
        Src/diagk_file.F
        Src/diagon.F
        Src/initparallel.F
        Src/pdoskp.F
      	  
      
      3b54fb84
  23. 18 Sep, 2015 1 commit
    • Alberto Garcia's avatar
      Fixes: pi/a mode in bands; low-n interpolation; others · 8105b056
      Alberto Garcia authored
      * Fix handling of n<3 cases in interpolation.f90 
      * Made global variable 'saved' in matel_registry
        (J. Soler, with thanks to Nick P. Andersen)
      
      * Fix uninitialized variable in interpolation.f90.
      * Proper check on number of atoms in zmatrix.F.
      * Avoid underflow in sorting.f.
      
        (Thanks to P. Brandimarte)
      
      * In bands.F, only check for LatticeConstant input
        in the "pi/a" case.
      
      modified:
        Src/bands.F
        Src/interpolation.f90
        Src/matel_registry.F90
        Src/sorting.f
        Src/zmatrix.F
      
      
      8105b056
  24. 16 Jul, 2015 1 commit
    • Alberto Garcia's avatar
      Fix the geometry and DM and H logic for consistency in analysis · cf0f352a
      Alberto Garcia authored
      -*-*-*-*-* 
      IMPORTANT NOTE: This patch will slightly change the output
      of most calculations and the detailed results of any
      post-processing. Keep this in mind if you need to maintain coherency
      within a project. See the rest of the text for ways to restore
      backward compatibility.  The reference output files in Tests/Reference
      have *not* been updated yet.
      -*-*-*-*-*
        
      This is the initial patch in a long-overdue clarification work related
      to the "outer geometry loop" in Siesta and its interaction with the
      analysis of the electronic structure.
      
      The most important changes, following the actual refactoring logic, are:
      
      * Superfluous calls to 'superx' to propagate the new coordinates to
        the auxiliary supercell in 'siesta_move' have been removed, as they
        are already done by 'state_init'.
      
      * The above change has the side effect of leaving inconsistent sets of
        unit cell and supercell coordinates in 'siesta_analysis' if the unit
        cell coordinates used in the latter are those 'moved' by the
        geometry-update routines. To avoid this, and to do the analysis
        using the actual coordinates used in the computation of the
        electronic structure, the coordinates are reset to those values
        (using the *_last arrays) in 'siesta_analysis'.  The old behavior
        can be recovered by using by setting the backward compatibility
        switch 'compat-pre-v4-dynamics' to 'true'.
      
      
      * To guarantee that the DM and H used in the analysis correspond to
        the latest electronic structure computed, there should be no mixing
        at the end of the scf loop. This behavior, which was optional until
        now (controlled by the value of scf-mix-after-convergence) is now
        the default. The use of DM_out instead of DM_mixed provides also a
        truly variational total-energy and more consistent forces. If the
        scf cycle is carried out mixing H, H(DM_in) is recovered by
        re-setting H to Hold in siesta_forces at the end of the cycle.
      
        Also, to preserve the right H for analysis it is necessary to
        avoid overwriting it in post_scf_work. This is now done by default,
        except if the option 'scf-recompute-h-after-scf' is 'true'.
      
        There is another switch for pre-v4.0 compatibility in this context:
        If 'compat-pre-v4-dm-h' is 'true', the 'scf-mix-after-convergence'
        and 'scf-recompute-h-after-scf' options are activated too.
      
        Some comments have been added to siesta_forces to document possible
        further clarifications.
      
      * For clarity, each MD or geometry-optimization flavor has now its own
        self-contained logic block in 'siesta_move'. This has uncovered a
        few issues that have been corrected:
      
        - The quenched forms of the Verlet and Parrinello-Rahman (PR)
          schemes, which are actually relaxations, did not check for
          convergence before moving the atoms (PR did not check at any
          point).  Now the 'constrained' forces and stress are checked
          before invoking the routines. In the case of PR, a 'target stress'
          can optionally be subtracted from the constrained stress (a
          further form of constraint that was previously only available
          (internally) in the standard relaxation routines). A future update
          might put all these constraint conditions in 'fixed', but care
          should be taken to study their interaction with the MD
          variable-cell routines. A future revision might look into the
          effectiveness of the variable-cell routines.
          There is a new example in Tests for quenched MD relaxation.
      
        - The geometry output in 'siesta_move' is now exclusively done for
          checkpointing purposes, and typically involves the 'moved'
          geometries.  The current geometry output is done in 'state_init',
          and any final output in 'siesta_analysis'.
      
        - Some output calls have been removed where they did not make much
          sense (as in the FC or server blocks).
      
        - The deprecated 'phonon' support has been removed.
      
      * Siesta_analysis outputs the 'current' final geometry, and not the
        'moved' one. The old behavior can be recovered by using the
        'compat-pre-v4-dynamics' switch.
      
      * The default 'dynamics' option has been changed from 'verlet' to 'CG'.
        There should really be a new 'single-point' default which completely
        avoids 'siesta_move'. The old behavior can be recovered by using the
        'compat-pre-v4-dynamics' switch.
      
      * Single-point calculations do not write .STRUCT_NEXT_ITER files, and
        the coordinates in the XV file are the current ones, unmoved.
        Extra output in siesta_options is avoided for this case.
      
      * The headings for the beginning of the dynamics blocks are now
        more concrete.
      
      Other minor changes:
      
      * Fix the IO field widths in the bonds routine to support more atoms.
      
      * Add a few more deallocations in several routines, and change the
        'routine' field in some deallocations to match the allocations
        (notably for arrays in the 'sparse_matrices' module)
      
      * Cosmetic changes in the output format for dynamics headings
      
      * Atomic displacements for force-constant runs are output in Ang.
      
      removed:
        Src/phonon.F
      added:
        Src/m_target_stress.F
        Tests/si2x1h-quench/
        Tests/si2x1h-quench/makefile
        Tests/si2x1h-quench/si2x1h-quench.fdf
        Tests/si2x1h-quench/si2x1h-quench.pseudos
      modified:
        Docs/siesta.tex
        Src/Makefile
        Src/atomlist.f
        Src/bonds.f
        Src/dhscf.F
        Src/diag2g.F
        Src/diag2k.F
        Src/final_H_f_stress.F
        Src/fixed.F
        Src/ioxv.F
        Src/m_check_supercell.f
        Src/m_pulay.F90
        Src/new_dm.F
        Src/post_scf_work.F
        Src/save_density_matrix.F
        Src/siesta_analysis.F
        Src/siesta_forces.F
        Src/siesta_init.F
        Src/siesta_move.F
        Src/siesta_options.F90
        Src/sparse_matrices.F
        Src/state_analysis.F
        Src/state_init.F
        Src/write_subs.F
      cf0f352a
  25. 09 Jul, 2015 1 commit
  26. 08 Jul, 2015 2 commits
    • Alberto Garcia's avatar
      Minor fixes and cosmetic changes after Wannier merge · 7e7082ad
      Alberto Garcia authored
      * Associate auxiliary array auxloc in slave nodes even if
        not used in mpi_reduce call (Nick P. Andersen).
      
      * Add missing files in Test/wannier.
      
      * Streamline the wannier interface output.
      
      added:
        Tests/wannier/makefile
        Tests/wannier/wannier.pseudos
      modified:
        Src/compute_pw_matrix.F90
        Src/m_digest_nnkp.F90
        Src/write_inp_wannier.F90
      7e7082ad
    • Alberto Garcia's avatar
      Backward compatibility switches and further documentation. · 2afbf9b2
      Alberto Garcia authored
      * Added backward compatibility logic to the previous changes,
        plus some more comments.
      
      This is a summary of the changes in this branch, useful for a merge
      log message.
      
      Clarify the geometry and DM and H logic in siesta_move and siesta_analysis
        
      This is the initial patch in a long-overdue clarification work related
      to the "outer geometry loop" in Siesta and its interaction with the
      analysis of the electronic structure.
      
      The most important changes, following the actual refactoring logic, are:
      
      * Superfluous calls to 'superx' to propagate the new coordinates to
        the auxiliary supercell in 'siesta_move' have been removed, as they
        are already done by 'state_init'.
      
      * The above change has the side effect of leaving inconsistent sets of
        unit cell and supercell coordinates in 'siesta_analysis' if the unit
        cell coordinates used in the latter are those 'moved' by the
        geometry-update routines. To avoid this, and to do the analysis
        using the actual coordinates used in the computation of the
        electronic structure, the coordinates are reset to those values
        (using the *_last arrays) in 'siesta_analysis'.
      
      * To guarantee that the DM and H used in the analysis correspond to
        the latest electronic structure computed, there should be no mixing
        at the end of the scf loop. This behavior, which was optional until
        now (controlled by the value of scf-mix-after-convergence) is now
        the default. The use of DM_out instead of DM_mixed provides also a
        truly variational total-energy and more consistent forces. If the
        scf cycle is carried out mixing H, H(DM_in) is recovered by
        re-setting H to Hold in siesta_forces at the end of the cycle.
      
        Also, to preserve the right H for analysis it is necessary to
        avoid overwriting it in post_scf_work. This is now done by default,
        except if the option 'scf-recompute-h-after-scf' is 'true'.
      
        There is a new general switch for pre-v4.0 compatibility in this
        context: If 'compat-pre4-dm-h' is 'true', the
        'scf-mix-after-convergence' and 'scf-recompute-h-after-scf' options
        are activated too.
      
        Some comments have been added to siesta_forces to document possible
        further clarifications.
      
      * For clarity, each MD or geometry-optimization flavor has now its own
        self-contained logic block in 'siesta_move'. This has uncovered a
        few issues that have been corrected:
      
        - The quenched forms of the Verlet and Parrinello-Rahman (PR)
          schemes, which are actually relaxations, did not check for
          convergence before moving the atoms (PR did not check at any
          point).  Now the 'constrained' forces and stress are checked
          before invoking the routines. In the case of PR, a 'target stress'
          can optionally be subtracted from the constrained stress (a
          further form of constraint that was previously only available
          (internally) in the standard relaxation routines). A future update
          might put all these constraint conditions in 'fixed', but care
          should be taken to study their interaction with the MD
          variable-cell routines. A future revision might look into the
          effectiveness of the variable-cell routines.
          There is a new example in Tests for quenched MD relaxation.
      
        - The geometry output in 'siesta_move' is now exclusively done for
          checkpointing purposes, and typically involves the 'moved'
          geometries.  The current geometry output is done in 'state_init',
          and any final output in 'siesta_analysis'.
      
        - Some output calls have been removed where they did not make much
          sense (as in the FC or server blocks).
      
        - The deprecated 'phonon' support has been removed.
      
      * Siesta_analysis outputs the 'current' final geometry, and not the
        'moved' one.
      
      * The default 'dynamics' option has been changed from 'verlet' to 'CG'.
        There should really be a new 'single-point' default which completely
        avoids 'siesta_move'.
      
      * Single-point calculations do not write .STRUCT_NEXT_ITER files, and
        the coordinates in the XV file are the current ones, unmoved.
        Extra output in siesta_options is avoided for this case.
      
      * The headings for the beginning of the dynamics blocks are now
        more concrete.
      2afbf9b2
  27. 07 Jul, 2015 3 commits
    • Alberto Garcia's avatar
      Preserve H in post_scf_work · 20eb30f0
      Alberto Garcia authored
      20eb30f0
    • Alberto Garcia's avatar
    • Alberto Garcia's avatar
      Merge code for interoperation with Wannier90 · 63eda248
      Alberto Garcia authored
      (Javier Junquera, after work by Richard Korytar, and Alberto Garcia)
      
      Siesta can now read the .nnkp file produced by Wannier90 and output
      the *.amn, *.mmn, *.eig (see below), and UNK* files needed by
      post-processing with that program, which generates maximally-localized
      Wannier functions.
      
      The most relevant changes in the code needed to support this
      functionality are detailed below. For practical guidance, see the
      manual, the simple test in Tests/wannier, and the suite of Wannier90
      examples adapted for Siesta in
      
         http://personales.unican.es/junqueraj/Wannier-examples.tar.gz
      
      
      * To implement support for "projection functions", which might not be
        pure radial functions, but hybrids with mixed angular momentum and
        varying spatial orientation, as well as to provide support of
        arbitrary kinds of radial functions for future developments, the
        'matel' framework has been extended:
      
        Matel (actually renamed to 'new_matel') now accepts two generalized
        indexes instead of the two pairs of indexes previously used. The
        generalized indexes can represent either a normal "radial function",
        as in previous Siesta usage, or a "projection function". The indexes
        are obtained via a "check-in" into a registry of functions, which
        keeps track of the nature of the functions and provides the needed
        evaluators and accessors for 'new_matel'.
      
        The relevant code is in 'matel_registry', 'new_matel', and
        'register_rfs'. The latter shows how to "register" the usual radial
        functions for PAOs, KB projectors, etc. 
      
      * Bloch states are computed and saved, instead of being recomputed as
        needed, to avoid problems with irreproducible random phases and
        linear combinations within degenerate subspaces.
      
      * At this point the parallelization of the new code is only "over
        orbitals". It is not yet possible to parallelize the operations over
        the k-points on the grid. The production of the UNK* files can be
        slow if there are many k-points and bands.
      
      * There is not yet support for "spinor wavefunctions". In the case of
        spin-polarized calculations, separate spin-up and spin-down
        processings are needed.
      
      * There is not yet support for interaction with Wannier90 in "library
        mode", due to licensing issues.
      
      * The "eigenvalue file" for Wannier90 has extension .eigW to avoid
        clashes with the standard Siesta eigenvalue file in case-insensitive
        filesystems.
      
      removed:
        Src/matel.f
      added:
        Docs/radfunc.CHANGES
        Docs/wannier-merge.CHANGES
        Docs/wannier.CHANGES
        Src/amn.F90
        Src/broadcast_projections.F
        Src/compute_pw_matrix.F90
        Src/delk.F
        Src/diagonalizeHk.F90
        Src/m_digest_nnkp.F90
        Src/m_noccbands.f
        Src/m_orderbands.F
        Src/m_overkkneig.F90
        Src/m_planewavematrix.F90
        Src/m_planewavematrixvar.F90
        Src/m_trialorbitalclass.f90
        Src/m_writedelk.F
        Src/matel_registry.F90
        Src/mmn.F90
        Src/new_matel.f
        Src/register_rfs.F90
        Src/reordpsi.F
        Src/siesta2wannier90.F90
        Src/write_inp_wannier.F90
        Tests/wannier/		-- New test
        Tests/wannier/wannier.fdf
        Tests/wannier/wannier.nnkp
      modified:
        Docs/siesta.tex
        Src/Makefile
        Src/alloc.F90		-- New z3 and z4 generics
        Src/m_mpi_utils.F
        Src/atm_types.f       -- Fields for global index storage
        Src/atmfuncs.f        -- Global index management
        Src/dhscf.F           -- New routine to compute PW matrix elements
        Src/mneighb.f         -- Added 'x0' module variable
        Src/parallelsubs.F	-- Catch special blocksize case
        Src/mesh.F		-- Extra bookeeping
        Src/meshdscf.F
        Src/meshsubs.F
        Src/kinefsm.f		-- New matel
        Src/naefs.f
        Src/nlefsm.f
        Src/overfsm.f
        Src/overlap.f
        Src/phirphi.f
        Src/phirphi_opt.f
        Src/siesta_analysis.F		-- Actual w90 processing
        Src/siesta_init.F
        Src/siesta_options.F90
        Src/spher_harm.f		-- Two implementations of YLMEXP.
      
          
      63eda248
  28. 06 Jul, 2015 1 commit
    • Alberto Garcia's avatar
      Added quenched MD example. New dynamics headings · 1c91bab4
      Alberto Garcia authored
      * The headings for the beginning of the dynamics blocks are now
        more concrete.
      
      * New example for quenched MD relaxation.
      
      added:
        Tests/si2x1h-quench/
        Tests/si2x1h-quench/makefile
        Tests/si2x1h-quench/si2x1h-quench.fdf
        Tests/si2x1h-quench/si2x1h-quench.pseudos
      modified:
        Src/siesta_move.F
        Src/state_init.F
      1c91bab4