next up previous contents
Next: Generate a program Up: Short description of the program: QMC Previous: Short description of the program: QMC

The modules

 Usual wildcard notation applies here for shortness. Main programs have compound names which shall be explained first. The first two letters describe the type of atom e.g. li, ga, as or gs for GaAs. The third letter describes the one-particle basis functions (ETWF) e.g. a (AO), p, atomic orbitals (AO) or plane waves, resp.. The 4th letter denotes the composition of the one-particle wave functions from the ETWF basis, e.g. a (AO remain), m (AO --> molecular O), g (AO --> solid LCAO), h (AO --> hybrid O), p (plane waves). The 5th and 6th letter give the form of the Jastrow factor, e.g. ga (lattice Jastrow- factor but without lattice correction), gg (ga with lattice corr.), aa (atomic Jastrow factor, ag non-existent). So, typical names arise as liaaga and liaaaa (Li atom) or liagga or lippga (Li solid), gaaaga, asaaga, gaahga, asahga (Ga and As atom) or gsahga and gsppga (GaAs solid) [hr?dsgsahga,bhr?gsahga]. Besides the above specifications there are other minor ones which are not specified in the name because the wave function is the main ingredient for a calculation.

The main program is found in ham*mc[hrhammc,hrhammcpt]. That modul organizes which observables are statistically evaluated. The various parts of the total energy are evaluated with several modules. In ham [hrham] the usual Coulomb potentials reside together with a conversion of units. Parts of the lattice potentials are available invew (Ewald like summation) [hrsvew] with an atomic version for save of memory in vewa (used as dummy file). Pseudopotentials appear in vkpp* [hrvkpplgs, hrvkppnlgs] also with a dummy atomic version vkppdum. Kinetic energy parts of the electronic system are programmed in slater [hrslater] and jastrowu [hrjastrowu, hrzptopf], depending whether they are antisymmetric or symmetric, resp..

As indicated above several different modules can be chosen for special forms of the Slater wave functions and of the Jastrow factor. The Slater pieces are within two sets of modules ph* and ps*. The ph* modules contain the basic forms of the one-particle wave function, i.e. phass for two different s orbitals which are read in during initialization scanning the distance to the center on a definite grid. The analogous procedure works in phasp [hrphasp] for one s and one p orbital which yields the latter in x, y, and z direction. In lpha [hrlpha] those parts of phasp collected, which are independent of the system.phasw contains an s orbital and single plane waves whose defining k values are read in. Furthermore, composite plane waves are programmed in phawf with higher Fourier components. The ps* modules compose the various basic forms into the actual one-particle wave function. That can only refer to an indexing of the orbitals localized at different sites, as e.g. psali for phass, or psaga and psaas for phasp, and further pspli for phasw or pspgs for phawf. The other possibilities additionally combine linearly different basic forms: psgli and psmli with phass to yield LCAOs of the solid and the molecule, resp. or pshgs [hrpshgs] with phasp (twice) as hybrid bonds. A suffix x following the ps* name means the cancelling of a one-particle wave function (for (N-1) electron systems), whose index and spin have to be supplied during initialization. Modules which are not encountered here did not lead to important and significantly reliable results. For instance, psggs did not yield better results than pshgs, or in another context the lattice corrected phk* did not show a reliable advantage over the simpler and faster pha*.

In a similar organization also the Jastrow factor is distributed over two modul sets. The basic ingredients are contained in the jp* whereas the ju* combine these. The Jastrow factor usually is written as an exponential function whose argument is a two-particle function, called an effective two-electron potential because of its structure being analogous to a potential. Additional possible functions as an electron-nucleon term or three-particle functions are not considered here. Their effect is covered mostly by the variational freedom in the one-particle Slater wave functions. Two principally different potentials have been implemented here: One is called the lattice potential and the other is called the atom potential because of an appreciable frequency of application. The latter is found in jpaa, the former in jpga and in jpgg with an additional lattice correction. All contributions are programmed in jpall and ljpall [hrljpall], resp.. An exception from the notation is jpuga [hrjpuga] which is memory saving combination of jpga and juga, and should be considered as a standard choice.Out of the basic collection juga chooses the lattice potential without lattice correction, jugg with lattice correction, and juaa the atom potential. The case of the Hartree-Fock approximation, i.e. no Jastrow factor is applied, can be achieved either by setting the Jatrow parameter to zero or by linking the dummy modul jasdum instead of jastrowu.

The module mc must not to be changed. It runs the Monte-Carlo sampling with the necessary initializations and the call to other modules. Furthermore, it contains the statistical processing of the observables and the output at program termination. Support to the statistical calculations is supplied by akf [hrakf], where the autocorrelation function of an observable is simultaneously computed.

A further fixed module is gitter [hrgitter] which contains the calculations of distances and the initialization of the system positions and parameters. Before the distances are calculated, the equivalent positions in the Wigner-Seitz cell have to be determined. That is achieved by displacing the positions in special routines belonging to the respective lattice typ and contained in modules as gitatom (no displacement), gitsc (simple cubic) [hrgitq, bhrgitq; hrksw], gitfcc (fcc) or gitbcc (bcc).

Modules of minor and only assisting importance are uti [hruti] for symmetrising and summing, specifically aqd [hraqd,hrnaqd] for equidistant grids and herskil [hrherskil] for a Herman-Skilman grid. Furthermore, dumtime [hrdumtime, hrtimef] is designed for measuring time in the case appropriate tools are lacking on the command surface and xran, crran and forran [hrt3eran, hrforran] specifically manage random number generation for platforms.

An important module type regards the sampling of additional observables. If occasionally one wants to sample a definite observable or if there are especially many of those,then it is provided to program them in a zus* module. The dummy module zusdum is used to skip such a calculation. To a larger part the existing module have not been used for real production runs and thus are not fully tested. zuskorr calculates the two-particle correlation function for the electron-nucleon and electron-electron case as an integral over spheres. zusdg should calculate the derivative of observables with respect to the lattice constant, which seems to occur there in a too accurate manner. zusef izusef is prepared for quantities depending on an external electric field. zusek is prepared to calculate the Hamiltonian matrix in a plane wave basis. The zuset* modules are several trials to sample one-particle quantities as N-particle observables. zusmcx is an actual module which samples in a second system via an interior loop a different electron, and similarly zusmcz. zuspp is for testing partial results of the nonlocal pseudopotential. The modules zusvk* calculate the one-particle potential in the solid including the Hartree part.

Further main programs which belong to the project serve for testing the wave function and its derivative tphi, tjas, tsla and tpsi. For the calculation of Lithium s orbitals which contain the Slater orbitals somewhat more complicated than those of Gallium and Arsenic one needs the program vorslak. For an external tabulation of the lattice potentials the programs vew0, vewv, vew2v and tvewg [hr?svewtab, hr?vewtab] are generated. They use data and routines for the cubic lattices from cabst [hrgeo, hrgeosc].


next up previous contents
Next: Generate a program Up: Short description of the program: QMC Previous: Short description of the program: QMC

Robert Bahnsen
1/28/2002