|
|
The amount of memory used by the program during a calculation is determined by three quantities:
Via input the parameters used in the dynamical allocation mechanism can be adjusted to override the installation-set defaults. This applies to the total maximum of dynamical memory (the most significant application), but also to the sizes of the memory blocks by which the actually used memory is built up. The latter aspect is rather technical and should not play a role for the normal user.
All input keys pertaining to dynamical allocation are simple keys and specify the corresponding quantities in Mbytes. The total amount of memory (for scratch space):
The technical parameters, determining the chunks of memory allocated at a time:
The defaults are defined by the installation. The MAXMEMORYUSAGE value will have been chosen specifically by the user/installer to accomodate his machine(s). The other (*MEMBLOCK) parameters are in principle merely technical and will usually not have been adjusted by the installer. Standard values are:
reals: 1
integers: 1/2
logicals: 1/32
strings: 3/2
As already suggested by the default values: the input values (n) for the memory-usage keys need not be integers: reals or integer fractions are allowed.
Numerical integration is applied in ADF to evaluate Fock matrix elements and many other quantities that are defined as integrals over basis functions, the charge density, the potential, etc. As a consequence a large part of the CPU time is spent in simple do-loops over the integration points. The total number of points depends on the required precision and on the number of atoms, the geometry and symmetry. All such numerical integration loops are segmented into loops over blocks of points, each block consisting of a certain number of points. This latter defines the most inner do-loop and hence determines vectorization aspects.
Depending on the computer, c.f. the compiler, vector operations may be executed more efficiently using longer vectors. Long vectors increase the demand on Central Memory however because the program may sometimes have to access large numbers of such vectors in combination (for instance all basis functions) so that they must be available in memory simultaneously. The optimum vector length depends therefore on the balance between vectorization efficiency and memory usage. The maximum vector length that you allow the program to use can be set via input.
The default is set at the installation of ADF on your platform, see the Installation manual. For organizational reasons the true vector length actually used in the computation may be smaller than the value defined with this key, but will not exceed it (except in a Create run, but in that case performance and memory usage are no hot topics).
Each block of points (see above) covers (more or less) a certain region in space and can hence be assigned a distance value with respect to a particular atom. These distances are used to control whether or not to evaluate funtions centered on that atom in that particular block of points.
Special: if only the key is given, without any argument, all functions are evaluated in all blocks of points, so that all screening of function tails is suppressed.
ADF makes use of symmetry in the numerical integrations. Points are generated for the irreducible wedge, a symmetry unique sub region of space. Optionally the symmetry equivalent points are also used. This is achieved by setting the key
The key has no argument. The CPU time increases roughly by a factor equal to the number of symmetry operators, and the results should be the same. This key is available only as a debugging feature, to check the correctness of certain symmetry related algorithms.
During a geometry optimization the SCF convergence criterion is relaxed as long as the geometry has not yet converged. The value actually in effect depends on the current maximum (Cartesian) gradient as printed in the geometry update section. The effective convergence criterion is kept between the primary (final) and secondary criterion respectively which are both controlled by the key SCF (subkey CONVERGENCE). The key FULLSCF turns this feature off: the primary criterion will apply always.
The same effect is achieved by specifying the secondary criterion (key SCF) to be the same as the primary one.
At every cycle in the SCF procedure the Fock operator is computed in all integration points. By default the difference with the values of the previous cycle are used to compute changes in the Fock matrix elements. This leads in general to better computational efficiency in two ways: 1) when all such difference values in a block of integration points are very small such a block is skipped in the calculation. 2) if the values are not negligible but still rather small, the contribution from such a block to matrix elements between basis functions with small overlaps are neglected.
With the key
this is turned off, so that the complete matrix elements are computed, no blocks are skipped and the neglect of matrix elements between functions with small overlaps (see also the key TAILS) is controlled solely by the function characteristics and precision requirements, not by the development of the SCF.
By default the program tries to evaluate the electrostatic Coulomb interaction energy between the fragments in a molecule using the exact fragment charge densities. The implemented algorithm requires that all fragments are spherically symmetric. This is checked by the program by verifying that all fragments have been computed in ATOM symmetry. It that is not the case, an alternative method is applied, using the fitted charge densities of the atoms; this is an approximation with a small, but not insignificant error. The following key forces the program to apply the fit density approach even in the case of spherically symmetric fragments. This aspect applies only to the final bonding energy analysis, not to energy computations and their gradients within the automatic geometry optimizer. The purpose of this option is to simulate a previously existing situation where the electrostatic term in the bonding energy was computed from the fit density regardless of the fragments and their internal symmetries.
presence of this key in the input file triggers using the fit density.
Several types of information, gathered during the run, are lost on exit. The SAVE key allows you to prevent the removal of such information.
SAVE can also be used in the negative form:
The structure is similar:
info is a list of arguments and NOSAVE may, like SAVE, occur any number of times in the input file.
SAVE and NOSAVE turn save-info options on and off. A lists of the available options, with their default status.
item |
default |
explanation |
TAPE10 |
no |
File with numerical integration data: points and weights, values of functions (depends on direct-SCF options) and core densities and potentials. |
TAPE11 |
no |
File with fit integrals. |
TAPE13 |
no |
Check point file. This file is lost (by default) only upon normal program exit, i.e. a program-controlled termination (including a program-detected error condition leading to controlled exit). In all such cases all info on TAPE13 is also present on TAPE21. TAPE13 exists when the program crashes into a core dump for instance, in which case it is uncertain what the contents of TAPE21 will be. The SAVE feature allows you to specify that TAPE13 is kept also upon normal exit. |
TAPE14 |
no |
Scratch file with numerical integration data, mainly pertaining to individual fragments. |
Timing |
no |
During an ADF calculation the program gathers a large amount of timing information about the performance of different program parts. It can be printed, at various levels of detail, on standard output (key PRINT). It can also be stored on TAPE21, for later inspection, in a section Timing. |
Table VII. Arguments for the keys SAVE and NOSAVE. |