org.jmol.adapter.readers.more
Class QchemReader

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

public class QchemReader
extends MOReader

A reader for Q-Chem 2.1 and 3.2 Q-Chem is a quantum chemistry program developed by Q-Chem, Inc. (http://www.q-chem.com/)

Molecular coordinates, normal coordinates of vibrations and MOs are read.

In order to get the output required for MO reading make sure that the $rem block has

print_general_basis TRUE
print_orbitals TRUE

This reader was developed from only a few output files, and therefore, is not guaranteed to properly read all Q-chem output. If you have problems, please contact the author of this code, not the developers of Q-chem.

This is a hacked version of Miguel's GaussianReader

Version:
1.1, 1.0
Author:
Rene P.F Kanters (rkanters@richmond.edu), Steven E. Wheeler (swheele2@ccqc.uga.edu)

Nested Class Summary
protected  class QchemReader.MOInfo
           
 
Field Summary
(package private)  QchemReader.MOInfo[] alphas
           
(package private)  QchemReader.MOInfo[] betas
           
private  int calculationNumber
          The number of the calculation being interpreted.
(package private)  int nBasis
           
(package private)  int nShell
           
 
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
QchemReader()
           
 
Method Summary
protected  boolean checkLine()
           
(package private)  void readAtoms()
           
 void readAtomSetCollection(java.io.BufferedReader reader)
           
private  void readBasis()
           
private  void readCalculationType()
           
protected  void readESym(boolean haveSym)
           
private  void readFrequencies()
          Interprets the Harmonic frequencies section.
private  int readMOs(boolean restricted, java.lang.String[] aoLabels, java.util.Vector orbitals, QchemReader.MOInfo[] moInfos)
           
(package private)  void readPartialCharges()
           
private  void readQchemMolecularOrbitals()
           
 
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

calculationNumber

private int calculationNumber
The number of the calculation being interpreted.


alphas

QchemReader.MOInfo[] alphas

betas

QchemReader.MOInfo[] betas

nShell

int nShell

nBasis

int nBasis
Constructor Detail

QchemReader

public QchemReader()
Method Detail

readAtomSetCollection

public void readAtomSetCollection(java.io.BufferedReader reader)
Specified by:
readAtomSetCollection in class MOReader

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

readCalculationType

private void readCalculationType()

readAtoms

void readAtoms()
         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

readPartialCharges

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

readBasis

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

readESym

protected void readESym(boolean haveSym)
                 throws java.lang.Exception
Throws:
java.lang.Exception

readQchemMolecularOrbitals

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

readMOs

private int readMOs(boolean restricted,
                    java.lang.String[] aoLabels,
                    java.util.Vector orbitals,
                    QchemReader.MOInfo[] moInfos)
             throws java.lang.Exception
Throws:
java.lang.Exception