Class MopacReader

java.lang.Object
org.jmol.adapter.smarter.AtomSetCollectionReader
org.jmol.adapter.readers.simple.MopacReader
All Implemented Interfaces:
javajs.api.GenericLineReader

public class MopacReader extends AtomSetCollectionReader
Reads Mopac 93, 6, 7, 2002, or 2009 output files
Author:
Egon Willighagen <egonw@jmol.org>
  • Field Details

    • chargesFound

      private boolean chargesFound
    • haveHeader

      private boolean haveHeader
    • mopacVersion

      private int mopacVersion
  • Constructor Details

    • MopacReader

      public MopacReader()
  • Method Details

    • initializeReader

      protected void initializeReader() throws Exception
      Overrides:
      initializeReader in class AtomSetCollectionReader
      Throws:
      Exception
    • checkLine

      protected boolean checkLine() throws Exception
      Overrides:
      checkLine in class AtomSetCollectionReader
      Returns:
      true if need to read new line
      Throws:
      Exception
    • processTotalEnergy

      void processTotalEnergy()
    • processAtomicCharges

      void processAtomicCharges() throws Exception
      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() throws Exception
      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
    • readFrequencies

      private void readFrequencies() throws Exception
      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