org.jmol.adapter.readers.more

Class MopacReader

public class MopacReader extends AtomSetCollectionReader

Reads Mopac 93, 97 or 2002 output files, but was tested only for Mopac 93 files yet. (Miguel tweaked it to handle 2002 files, but did not test extensively.)

Author: Egon Willighagen

Field Summary
intbaseAtomIndex
booleanchargesFound
Method Summary
voidprocessAtomicCharges()
Reads the section in MOPAC files with atomic charges.
voidprocessCoordinates()
Reads the section in MOPAC files with cartesian coordinates.
voidprocessTotalEnergy()
AtomSetCollectionreadAtomSetCollection(BufferedReader reader)
voidreadFrequencies()
Interprets the Harmonic frequencies section.

Field Detail

baseAtomIndex

int baseAtomIndex

chargesFound

private boolean chargesFound

Method Detail

processAtomicCharges

void processAtomicCharges()
Reads the section in MOPAC files with atomic charges. These sections look like:
               NET ATOMIC CHARGES AND DIPOLE CONTRIBUTIONS
 
          ATOM NO.   TYPE          CHARGE        ATOM  ELECTRON DENSITY
            1          C          -0.077432        4.0774
            2          C          -0.111917        4.1119
            3          C           0.092081        3.9079
 
They are expected to be found in the file before the cartesian coordinate section.

Throws: Exception

processCoordinates

void processCoordinates()
Reads the section in MOPAC files with cartesian coordinates. These sections look like:
           CARTESIAN COORDINATES
 
     NO.       ATOM         X         Y         Z
 
      1         C        0.0000    0.0000    0.0000
      2         C        1.3952    0.0000    0.0000
      3         C        2.0927    1.2078    0.0000
 
In a MOPAC2002 file the columns are different:
          CARTESIAN COORDINATES

 NO.       ATOM           X             Y             Z

  1         H        0.00000000    0.00000000    0.00000000
  2         O        0.95094500    0.00000000    0.00000000
  3         H        1.23995160    0.90598439    0.00000000
 

Throws: Exception

processTotalEnergy

void processTotalEnergy()

readAtomSetCollection

public AtomSetCollection readAtomSetCollection(BufferedReader reader)

readFrequencies

private void readFrequencies()
Interprets the Harmonic frequencies section.
     THE LAST 6 VIBRATIONS ARE THE TRANSLATION AND ROTATION MODES
    THE FIRST THREE OF THESE BEING TRANSLATIONS IN X, Y, AND Z, RESPECTIVELY
              NORMAL COORDINATE ANALYSIS
   
       ROOT NO.    1           2           3           4           5           6
   
              370.51248   370.82204   618.03031   647.68700   647.74806   744.32662
     
            1   0.00002     0.00001    -0.00002    -0.05890     0.07204    -0.00002
            2   0.00001    -0.00006    -0.00001     0.01860     0.13517     0.00000
            3   0.00421    -0.11112     0.06838    -0.00002    -0.00003    -0.02449
   
            4   0.00002     0.00001    -0.00002    -0.04779     0.07977    -0.00001
            5  -0.00002     0.00002     0.00001     0.13405    -0.02908     0.00004
            6  -0.10448     0.05212    -0.06842    -0.00005    -0.00002    -0.02447
 

The vectors are added to a clone of the last read AtomSet. Only the Frequencies are set as properties for each of the frequency type AtomSet generated.

Throws: Exception If an I/O error occurs