org.jmol.adapter.readers.more
Class GaussianReader

java.lang.Object
  extended by org.jmol.adapter.smarter.AtomSetCollectionReader
      extended by org.jmol.adapter.readers.more.MOReader
          extended by org.jmol.adapter.readers.more.GaussianReader

public class GaussianReader
extends MOReader

Reader for Gaussian 94/98/03 output files. 4/11/2009 -- hansonr -- added NBO support as extension of MOReader


Field Summary
private  int calculationNumber
          The number of the calculation being interpreted.
private  java.lang.String energyKey
          Type of energy calculated, e.g., E(RB+HF-PW91).
private  java.lang.String energyString
          Calculated energy with units (if possible).
private  int equivalentAtomSets
          The number of equivalent atom sets.
private static int FREQ_FIRST_VECTOR_OFFSET
          Word index of the first X vector of the first frequency in the frequency output.
private  int scanPoint
          The scan point, where -1 denotes no scan information.
private static int STD_ORIENTATION_ATOMIC_NUMBER_OFFSET
          Word index of atomic number in line with atom coordinates in an orientation block.
private  int stepNumber
           
 
Fields inherited from class org.jmol.adapter.readers.more.MOReader
alphaBeta, continuing, energyUnits, gaussianCount, gaussians, haveNboCharges, HEADER_GAMESS_OCCUPANCIES, HEADER_GAMESS_ORIGINAL, HEADER_GAMESS_UK_MO, HEADER_NONE, ignoreMOs, iHaveAtoms, moData, moTypes, orbitals, shellCount, shells
 
Fields inherited from class org.jmol.adapter.smarter.AtomSetCollectionReader
ANGSTROMS_PER_BOHR, applySymmetryToBonds, atomSetCollection, bsFilter, bsModels, calculationType, doApplySymmetry, filter, getHeader, haveAtomFilter, havePartialChargeFilter, htParams, ignoreFileSymmetryOperators, ignoreFileUnitCell, iHaveSymmetryOperators, iHaveUnitCell, isTrajectory, latticeCells, line, modelNumber, needToApplySymmetry, next, prevline, reader, readerName, spaceGroup, templateAtomCount
 
Constructor Summary
GaussianReader()
           
 
Method Summary
protected  boolean checkLine()
           
private  void readAtoms()
           
 void readAtomSetCollection(java.io.BufferedReader reader)
          Reads a Collection of AtomSets from a BufferedReader.
(package private)  void readBasis()
           
(package private)  void readDipoleMoment()
           
private  void readFrequencies()
          Interprets the Harmonic frequencies section.
(package private)  void readGaussianMolecularOrbitals()
           
(package private)  void readPartialCharges()
          Reads partial charges and assigns them only to the last atom set.
private  void readSCFDone()
          Interprets the SCF Done: section.
private  void setEnergy()
          Interpret the Energy= line for non SCF type energy output
 
Methods inherited from class org.jmol.adapter.readers.more.MOReader
addMOData, checkNboLine, filterMO, finalizeMoReader, getMOHeader, getNboTypes, readAtomSetCollection, readMolecularOrbitals, setMOData
 
Methods inherited from class org.jmol.adapter.smarter.AtomSetCollectionReader
addJmolScript, addPrimitiveLatticeVector, addSites, applySymmetryAndSetTrajectory, checkLineForScript, checkLineForScript, clearLatticeParameters, deducePdbElementSymbol, discardLines, discardLinesUntilBlank, discardLinesUntilContains, discardLinesUntilNonBlank, discardLinesUntilStartsWith, doGetModel, fillDataBlock, filterAtom, filterAtom, getElementSymbol, getStrings, getTokens, getTokens, getTokens, getTokensFloat, isLastModel, newAtomSet, parseFloat, parseFloat, parseFloat, parseInt, parseInt, parseInt, parseInt, parseToken, parseToken, parseToken, parseTokenNext, parseTrimmed, parseTrimmed, readAtomSetCollectionFromDOM, readData, readData, readLine, readLineTrimmed, setAtomCoord, setAtomCoord, setError, setFractionalCoordinates, setMOData, setSpaceGroupName, setSymmetryOperator, setTransform, setUnitCell, setUnitCellItem
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

STD_ORIENTATION_ATOMIC_NUMBER_OFFSET

private static final int STD_ORIENTATION_ATOMIC_NUMBER_OFFSET
Word index of atomic number in line with atom coordinates in an orientation block.

See Also:
Constant Field Values

FREQ_FIRST_VECTOR_OFFSET

private static final int FREQ_FIRST_VECTOR_OFFSET
Word index of the first X vector of the first frequency in the frequency output.

See Also:
Constant Field Values

energyString

private java.lang.String energyString
Calculated energy with units (if possible).


energyKey

private java.lang.String energyKey
Type of energy calculated, e.g., E(RB+HF-PW91).


calculationNumber

private int calculationNumber
The number of the calculation being interpreted.


scanPoint

private int scanPoint
The scan point, where -1 denotes no scan information.


equivalentAtomSets

private int equivalentAtomSets
The number of equivalent atom sets.

Needed to associate identical properties to multiple atomsets


stepNumber

private int stepNumber
Constructor Detail

GaussianReader

public GaussianReader()
Method Detail

readAtomSetCollection

public void readAtomSetCollection(java.io.BufferedReader reader)
Reads a Collection of AtomSets from a BufferedReader.

New AtomSets are generated when an Input, Standard or Z-Matrix orientation is read. The occurence of these orientations seems to depend on (in pseudo-code):
 if (opt=z-matrix) Z-Matrix; else Input;
 if (!NoSymmetry) Standard;

Which means that if NoSymmetry is used with a z-matrix optimization, no other orientation besides Z-Matrix will be present. This is important because Z-Matrix may have dummy atoms while the analysis of the calculation results will not, i.e., the Center Numbers in the z-matrix orientation may be different from those in the population analysis!

Single point or frequency calculations always have an Input orientation. If symmetry is used a Standard will be present too.

Specified by:
readAtomSetCollection in class MOReader
Parameters:
reader - BufferedReader associated with the Gaussian output text.

checkLine

protected boolean checkLine()
                     throws java.lang.Exception
Specified by:
checkLine in class MOReader
Returns:
true if need to read new line
Throws:
java.lang.Exception

readSCFDone

private void readSCFDone()
                  throws java.lang.Exception
Interprets the SCF Done: section.

The energyKey and energyString will be set for further AtomSets that have the same molecular geometry (e.g., frequencies). The energy, convergence, -V/T and S**2 values will be set as properties for the atomSet.

Throws:
java.lang.Exception - If an error occurs

setEnergy

private void setEnergy()
Interpret the Energy= line for non SCF type energy output


readAtoms

private void readAtoms()
                throws java.lang.Exception
Throws:
java.lang.Exception

readBasis

void readBasis()
         throws java.lang.Exception
Throws:
java.lang.Exception

readGaussianMolecularOrbitals

void readGaussianMolecularOrbitals()
                             throws java.lang.Exception
Throws:
java.lang.Exception

readFrequencies

private void readFrequencies()
                      throws java.lang.Exception,
                             java.io.IOException
Interprets the Harmonic frequencies section.

The vectors are added to a clone of the last read AtomSet. Only the Frequencies, reduced masses, force constants and IR intensities are set as properties for each of the frequency type AtomSet generated.

Throws:
java.lang.Exception - If no frequences were encountered
java.io.IOException - If an I/O error occurs

readDipoleMoment

void readDipoleMoment()
                throws java.lang.Exception
Throws:
java.lang.Exception

readPartialCharges

void readPartialCharges()
                  throws java.lang.Exception
Reads partial charges and assigns them only to the last atom set.

Throws:
java.lang.Exception - When an I/O error or discardlines error occurs