93
|
|
|
Alberto Garcia |
18 years ago
|
|
|
92
|
|
|
Alberto Garcia |
18 years ago
|
|
|
91
|
|
|
Alberto Garcia |
18 years ago
|
|
|
90
|
|
Broyden algorithm for geometry optimization. Assorted fixes. * Broyden algorithm for geometry optimization
It is a drop-in replacement for the conjugate-gradients algorithm (including the variable-cell case). It seems to work better in all cases analyzed, even with the standard defaults.
(selected by the new Optim.Broyden boolean fdf variable. See the manual for a full set of options, but note that the defaults seem to work well)
The code is in the new routine optim.F, which just calls the same code in m_broyddj.f90 used for the SCF minimization. Actually, a special version without interprocess communication has been prepared, so that in a parallel run, with the coordinates and forces replicated in all processors, all will be doing the same kinds of operations. Some new tests have been added: h2o_op_broyden, sih_op_broyden. The var_cell test is now done with the Broyden algorithm.
* Wrap some calls and I/O statements for MPI operation. (I/O in redata, calls to coxmol and coceri)
* Give XV file priority over struct-file input
* Update FFLAGS in cscs-cray-mpi.make
* New Tests/Reference directory to hold recent output files (for checks on new installations, rather than correctness tests).
* Add proper CML references for the zmatrix case.
* Atom cosmetic fixes: non-standard write in atom/vionic.f, generic f95 aux file.
* Annealing proto-code. Some experimental code to achieve a given temperature "exactly" after a Md.TauRelax time. This is not physical, just expeditive. The code is not yet enabled.
The si test has been changed to an example of annealing.
|
Alberto Garcia |
18 years ago
|
|
|
89
|
|
|
Alberto Garcia |
18 years ago
|
|
|
88
|
|
|
Alberto Garcia |
18 years ago
|
|
|
87
|
|
|
Alberto Garcia |
18 years ago
|
|
|
86
|
|
Merge of J. Gale's branch: O(N), D&C, zmatrix, dEtol + bug fixes * Order N lower memory option expanded
(1) Lower memory version of gradient and denmat have been added: Here the algorithm is adapted along the lines of ener3lomem.F such that the size of the buxstore(2) communication arrays is reduced by a factor of 2 relative to the standard versions. Since these arrays can be the largest ones, it makes it feasible to run larger order N jobs.
Files involved: denmatlomem.F, gradientlomem.F, egandd.F
(2) Parallel division of work in order N: A check is now added to ensure that the number of domains created is larger than the number of processors so that no processor should be without work.
Files involved: initparallel.F
(3) Reduce alloc/dealloc in order N set up: The algorithm for subroutines in on_subs.F has been changed to ensure that the resizing of arrays is performed just once in each case.
Files involved: on_subs.F
* Divide and conquer could now be made the default algorithm for diagonalisation: (Actual setting pending)
Files involved: redata.F, rdiag.F, cdiag.F
* Z-matrix optimisation included
(1) Z-matrix added: This allows a Z-matrix block to be specified for the structural input, with the ability to specify symbolic variables, constants and constraints, as well as offering control over the optimisation process.
Files: zmatrix.F, siesta.F, cgvc_zmatrix.F, coor.F, conjgr.F Also added example and test case.
(2) parsing routine extended: The option to return an array that indicates the order in which parameters were read has been added.
Files: parsing.f
(3) Makefile: New routines zmatrix.F, gradientlomem.F & denmatlomem.F added
(4) New units added: Units relevant to angular degrees of freedom added
Files: fdf/fdf.f
(5) Mesh output returned to standard form: The output of the mesh details had been changed and so the format has been restored to the existing format (same information - different line spacing)
Files: meshsubs.F
(6) coor.f renamed to coor.F
* Energy convergence criterion added for SCF * Introduce new fdf symbol DM.RequireEnergyConvergence to make the test optional. (At least, to reproduce old test results)
BUG FIXES
- initparallel.F modified so that ncell is set based on absolute size of ucell to allow for negative cell parameters - Format for Qtot from mulliken increased to f12.3 to avoid ****** - Banner changed to better handle 1 node being run with MPI
Corrections to order N from Toby: - setatomnodes.f - error in referencing of y index when counting number of atoms in X blocks - declared sizes of numc/numcold corrected to nbasisloc in extrapolon.f
* Initializations:
- lastna in meshsubs.F - ilm in spher_harm.f - rngmax in ranger.f - CartesianB and CartesianF in zmatrix.F
( Note ** : stressl MUST NOT be initialized to zero in cellxc (inout) )
Other:
- User pxfabort in sys.F - Add intents to arguments in ranger.f - Replace "shrink=false" by "copy=.false." in re_alloc of listh in siesta.F - Use units module in zmatrix.F - Import IOnode in zmatrix.F - Add deg in units.f90
* Declare iamove as (*) in ranger * Initialize ianneal in redata.F * Fix bug in alloc_err bounds array
* Go back to "traditional" h2o test (without Broyden). * Reset target pressure to 100 Gpa in var_cell test.
** Add elec_corr_setup call to user.basis case.
|
Alberto Garcia |
18 years ago
|
|
|
85
|
|
|
Alberto Garcia |
19 years ago
|
|
|
84
|
|
|
Alberto Garcia |
19 years ago
|
|
|
83
|
|
|
Alberto Garcia |
19 years ago
|
|
|
82
|
|
|
Alberto Garcia |
19 years ago
|
|
|
81
|
|
|
Alberto Garcia |
19 years ago
|
|
|
80
|
|
|
Alberto Garcia |
19 years ago
|
|
|
79
|
|
|
Alberto Garcia |
19 years ago
|
|
|
78
|
|
|
Alberto Garcia |
19 years ago
|
|
|
77
|
|
|
Alberto Garcia |
19 years ago
|
|
|
76
|
|
|
Alberto Garcia |
19 years ago
|
|
|
75
|
|
|
Alberto Garcia |
19 years ago
|
|
|
74
|
|
Integration of Broyden mixing. Real kinds discovery for MPI * A new method for SCF convergence acceleration, based on the Broyden-Vanderbilt-Louie-Johnson scheme, has been implemented.
The major new pieces of code are m_broyden_mixing.f (similar in structure to pulayx) and m_broyddj.f90, which implements the method and takes care of hiding all the storage complexity.
[ The patches (later taken back)
* agarcia@siesta.arch--2005/siesta-devel--ag-bau--1.4--patch-5 Annealing framework
* agarcia@siesta.arch--2005/siesta-devel--ag-bau--1.4--patch-6 Fine-tuning of annealing framework
contain an early attempt to couple the Broyden scheme to a simulated-anealing kind of procedure. ]
* To aid in the parallelization of m_broyddj.f90, a new set of MPI wrapper routines (in module m_mpi_utils) has been implemented. These simplify the calls to the most common MPI routines, and are generic, thus avoiding the need to worry about the MPI type qualifiers.
* Similar wrappers for fdf calls have been implemented in m_wrappers.F90. They are mainly used in redata.F, which has been slimmed down significantly. * A new stub module m_options is a prototype for a program-wide repository of runtime options, to be phased in in stages.
* Some of the arrays in m_broyddj.f90 can be single or double precision. Precision is selected through the pre-processor symbol BROYDEN_DP, which is checked-for in precision.F. The same will be done in the future for the arrays on the grid.
* The input variables related to the Broyden mixing method are documented in the manual. The H2O test has been converted to use the Broyden method, and a new fe_broyden test added.
* Misc: Added top-level Specs directory to hold Specification documents (...). Added Specs/Broyden.spec.
----------- * A simple program "kind_explorer" now finds the kind parameters for real numbers, and feeds them to configure.sh in the MPI building process.
To Do: Somehow connect the mpif.h kind parameters and the native ones.
* Add some comments in precision.F
-----------
* Portability and cosmetic fixes:
Include spatial.o in denchar object list Initialize stressl in cellxc Removed size() on deallocated array in diagon.F Fix SYS in g95-nolibs.make
|
Alberto Garcia |
19 years ago
|
|
|