next up previous contents
Next: Parallel mpi_nonh, mpi_mchf. Up: I/O File Formats Previous: I/O File Formats   Contents

Serial nonh, mchf.

Each mchf calculation begins with computing the angular coefficient and integral data using nonh. nonh records the data in a set of files. The only input file needed by nonh is the list of configurations. By default the list of configurations is named cfg.inp. Each cfg.inp is produced by lsgen using a set of rules. lsgen generates a single file per LS term. mchf calculates the radial functions by performing optimization of the energy functional over a set of LS terms which are known to mix in the Breit-Pauli configuration interaction calculation. For each LS term in the cfg.inp file, the output data consists of a one-dimensional list of coefficients, $w_{ab}^{ij}$ or $v_{abcd;k}^{ij}$ (denoted by cn(j) in nonh, and coeff in mchf) and with each such coefficient there is associated an integral. The latter is specified by an integer, inptr(j) that indicates the position of the integral within the list of all possible integrals. In the generation of a matrix element, we then need to know where the data for a matrix element terminates. This is achieved by specifying the end position of a matrix element without the necessity of specifying the first, since it follows the last coefficient of the previous. This is the role of the array ico(i) which indicates the last position of the i'th non-zero matrix elements. Since only non-zero matrix elements are stored, another integer is needed to specify the value of the row index: jan(i) (ih(i) in mchf) is the array containing this information. Because the list of coefficients and associated integrals may become extremely large, the data is collected and written to disk after LSDIM=30000 have been collected to memory. The last record for a given LS term will always contain less than LSDIM elements, possibly zero, if necessary. The value of LSDIM can readily be changed by changing four parameter statements.

Since nonh expects a single configuration list named cfg.inp, the configuration lists for each term participating in the mchf calculation are concatenated to cfg.inp. In general, cfg.inp is a file created by concatenating a number of configuration lists of terms that mix, or the final list contains a set of block of terms. nonh reads each block for the entire cfg.inp and computes all integral and angular data for the Hamiltonian. then, the computed data is stored in a set of files, which are used in a later stage by the by mchf calculation.

The files have the following format:

  1. cfg.inp is a text file. It is used as input to both: nonh and mchf:
    cfg.inp: (formatted)
       For each block (1 : NB)
         . header (A72) -- not used by the program
         . List of closed shells el(1:nclosd) Format: (20(1X,A3))
    
       For each CSF (1 : ncfg)
         . Configuration information  (el(i),q(i), i=1,nocc) Format: (8(1x,A3,1x,I2,1x))
         . Angular coupling  LSv(1:nocc),RLS(1:nocc-1) Format: (15(5X,A3))
    Terminating condition: *
    

  2. cfg.h: This files is created by nonh and it contains information which pertains to the expansions for each term found in the list.
       Global information (formatted:
          . nclosd 'Closed shells:' (I4, A15)
          . el(1:nclosd)   (18(1X,A3))
          . nwf    'Other Orbitals' (I4, A16)
          . el(nclosd+1:nwf) (18(1X,A3))
          . nb, idim, lsdim, who   (I3, I8, I8, 3X,  A5)
       For each block (1 : NB)
          . Term, ncfg, max number of coeff per column, total coefficients
    

  3. yint.lst: This is a file that has global information about all the expansions in cfg.inp. This is a binary file. yint.lst: (unformatted)
         . nclosed, maxorb, nb, lsdim
         . list of closed shells (converted to 24A3 format)
         . list of other orbitals  -- one or more records (24A3) format
    
       For each Block (1 : NB)
         . lij, jan(1:lij) repeated, terminating condition:
                             lij < lsdim ncol (or ncfg for block), jptr(1:ncol)
    
       Global information:
       For each
         . integral case (1:4) icase, noint(icase)
                                 (last position in global list of integrals)
         . ipackn(:), lused(:) for this case  where the range is from
                                  beginning to noint(icase)
    

  4. c.lst: The coefficients and integrals needed for the energy expression and the generation of the interaction matrix are stored, by column, sequentially for each term found in cfg.inp. This is a binary file. c.lst: (unformatted) (Each processor writes on its own c.lst.nn file)
          . For each block (1:NB) ncoff, cn(1:ncoff), inptr(1:ncoff)
                        repeated terminating condition: ncoff < lsdim (may be zero)
    

  5. ih.0n.lst: For each of the terms, numbered $n=1,2,..$, a file is created which records the row index of a matrix element. This facilitates the sparse matrix representation. This also is a binary file. ih.nn.lst: (unformatted), where nn is a 2 digit number and is the block number
          . lij, ico(1:lsj) repeated, terminating condition:
                           lij < lsdim ncol (or ncfg for block), jptr(1:ncol)
          NOTE: The use of separate ih.nn.lst for each term simplifis the
                memory management in diag();
    

  6. summry contains some additional information:
    1. The mean radius, the expectaion of $\sum_i r_i$.
    2. The mean square radius, the expectation of $\sum_i r_i^2$.
    3. The dipole-dipole operator, the expectation of $(\sum_i r_i)^2$,
    4. The Isotope shift parameter, $S= - \sum_{i<j} \nabla_i\cdot \nabla_j$.
    The mean radius gives an indication of the size of the atomic system, whereas the dipole-dipole operator (denoted as r.r in the summry file) is relevant to long-range interactions [#!babb!#].

  7. LSn.l: mchf saves the eigenvectors for each term included in the configuration list in a separate file. Multiple eigenvalues and eigenvectors for a given term are saved in the same file, Therefore, an LSn.l file contains a single term, however, it may contain multile eigenvalues. A number of LSn.l files are created, correspondingly file per block (term).
     
    
    Global Information for the term:
       Label, Atomic number, Number of electrons, number of configurations 
           (2X,A6,A,F5.1,A,I3,A,I6)' )
       2 blank lines
       J value, number of eigenvalues: (//A8,I4,2X,A8,I4)'      
       .For each eigenvalue index requested:
          . Ssms factor: (A8,f15.10)
          . index of dominant configuration, energy, label (i6,f16.9,2x,A)
          . weight coefficients(eigenvector) '(7F11.8)' 
    
    The command
    %"head 4P.l" shows the head of the file, the first 10 lines:
    ####
      Z=9     Z =   9.0  NEL =   0   NCFG =   4552
    
    
      2*J =    0  NUMBER =   1
       Ssms=   9.1044850144
         5   -97.049494320  2s.2p(4)3P2_4P
     -.03539122 -.10039993  .00687978  .00152753  .98568399 -.01049074 -.04761180
      .00214886  .02015163 -.03685424 -.03234737 -.01254864 -.00348771  .00099990
     -.00848004 -.00053098  .00079421  .00175919  .00089763  .00013236 -.00007157
     -.00452096 -.00173801  .00167690  .00337817 -.00020025 -.00041671 -.00144874
    ...........
    


next up previous contents
Next: Parallel mpi_nonh, mpi_mchf. Up: I/O File Formats Previous: I/O File Formats   Contents
2001-10-11