next up previous contents
Next: About this document ... Up: ATSP2K manual Previous: Utility programs   Contents

Subsections


I/O File Formats

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
    ...........
    

Parallel mpi_nonh, mpi_mchf.

The parallel versions use the same formats, except the file which stores the row index of a matrix element, ico. The serial version requires the row indices of each to be stored in a seperate file for each block. This simplifies the dynamic memory management for large cases, when the eigenvalue routine, dvdson() performs the calculation on disc. The parallel version assumes that sufficient number of nodes may be provided to have all arrays, except the coefficient data in memory, therefore, disk version of dvdson() is not used.
  1. ih.lst.nnn: records the row index of a matrix element. This also is a binary file for each block: ih.nn.lst: (unformatted), where nn is a 2 digit number and is the block number
       For each Block (1 : NB)
          . lij, ico(1:lsj) repeated, terminating condition:
                           lij < lsdim ncol (or ncfg for block), jptr(1:ncol)
    

The parallel versions use different file naming convention: The name of the files are comprised by a basename which is the name of the corresponding file from the serial routine, and a suffix which indicates the node ID.

bp_ang, bp_mat, bp_eiv

All three program use a nuber of files in binary format to communicate computed data:

  1. cint.lst This file is created by bp_ang and it contains general information about the problem in binary format. The number of closed shells, the highest orbital, the number of conigurations the buffer size, lsdim, inlcuded are also column pointer data, number of terms and electron parameters.

        . nclosd,maxorb,lsdim, ncfg
        . l(1:nclsd),l(1:maxorb)
        . el(1:nwf)
        . lmax, nnel, skip
        . lsp(1:ncfg), jptr(1:ncfg)
        . nterm, index(1:nterm)
    

  2. c.lst This binary file contains the coefficients and integrals required for deriving the energy expression.
    For each column (1 : ncfg)
        . n, cn(1:n), inptr(1:n)
        . in blocks of lsdim.  Last record for a column has nij = ico(nih)
    

  3. ih.lst The indices of the matrix elements are saved in binary format.
      For each column (1 : ncfg)
         . mih, jan(1:cij) where
             - nih is the number of non-zero matrix elements
             - jan(i) is the row index of the i'th
    

  4. ico.lst The column pointers are saved in binary format.
      For each column, nih,ico(i)  where
         . nih is the number of non-zero matrix elements
         . ico(i) is the value of nij when the matrix
           element calculation has been completed.
    

  5. hnr.lst, hzeta.lst, hspin.lst Each type of interaction, nonrelativistc, zeta, and spin/spin are stored in a st of three files, they are prodiced by bp_mat.
    For each column, and each type of interaction
         . write(iouhz) jb,m,(h(i,.),i=1,m),(jan(i,.),i=1,m)
              where now the matrix elements are counted with respect to type.
    

  6. LSJ.j: bp_eiv 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. The format is similar to LSn.l files shown above.
    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, gJ_LSJ, gJ_LS Zeeman factors: (3'(A8,f15.10)'
          . index of dominant configuration, energy, label (i6,f16.9,2x,A)
          . weight coefficients(eigenvector) '(7F11.8)'
    
    The command
    %"head Atom.j" shows the head of the file, the first 10 lines:
    ####
      Z=9     Z =   9.0  NEL =   7   NCFG =  14482
    
    
      2*J =    5  NUMBER =   1
       Ssms=    .0000000000    g_J=   1.2004638609  g_JLS=   1.2004638609
      6225   -97.668082391  2s(2).2p(3)2D3_2D
      .00000000  .00000000  .00000000  .00000000  .00000000  .00000000  .00000000
      .00000000  .00000000  .00000000  .00000000  .00000000  .00000000  .00000000
      .00000000  .00000000  .00000000  .00000000  .00000000  .00000000  .00000000
      .00000000  .00000000  .00000000  .00000000  .00000000  .00000000  .00000000
    ...........
    

    The column pointers are saved in binary format.

    
    
    

Parallel mpi_nonh, mpi_mchf.

The parallel versions use the same formats, but adds as a suffix to the filename the processor ID, (e.g. c.lst becomes c.lst.nnn, where n is the processor ID).

biotr

biotr computes LS and LSJ transitions.

  1. LS transitions: First line shows the file with initial transition, the second line the file used for the final transition:
    #####
      . label
      . initial state
      . final state
      . Atomic weight, principal quantum number '(/A5,I3,A5,I2)'
      . Energy initial, label of dominant transition
      . Energy final, label of dominant transition
      . LS transition energy, wavelength in vacuum, wavelength in air
      . Type of transition, line strength, gf value, transition rate - velocity form
      . line strength, gf value, transition rate - length form
    
    #####
      Transition between files: 
      E                       
      O                       
    
     Z =   9 n =  7
       3  -97.50578137  2s(2).2p(3)2P1_2P                                 
       3  -96.52277315  2s.2p(4)3P2_2P                                    
      215739.13 CM-1       463.52 ANGS(VAC)       463.52 ANGS(AIR)
     E1  length:   S =  7.81694D-01   GF =  5.12259D-01   AKI =  2.65057D+09
        velocity:  S =  8.22227D-01   GF =  5.38822D-01   AKI =  2.78801D+09
    .....
    

  2. LSJ transitions:

    The format is the same as the format for LS transitions, First line shows the file with initial transition, the second line the file used for the final transition:

      . blank line
      . blank line
      . Energy initial, label of dominant transition
      . Energy final, label of dominant transition
      . LS transition energy, wavelength in vacuum, wavelength in air
      . Type of transition, line strength, gf value, transition rate - velocity form
      . line strength, gf value, transition rate - length form
    
    #####
    
    
       1  -74.36649804  2s(2).2p(3)2P1_2P                                 
       1  -73.65565658  2s.2p(4)1S0_2S                                    
      156006.31 CM-1       641.00 ANGS(VAC)       641.00 ANGS(AIR)
     E1  S =  4.69243D-01   GF =  2.22364D-01   AKI =  1.80493D+09
              4.68123D-01         2.21833D-01          1.80062D+09
    .....
    


next up previous contents
Next: About this document ... Up: ATSP2K manual Previous: Utility programs   Contents
2001-10-11