org.jmol.adapter.readers.quantum
Class QchemReader

java.lang.Object
  extended by org.jmol.adapter.smarter.AtomSetCollectionReader
      extended by org.jmol.adapter.readers.quantum.BasisFunctionReader
          extended by org.jmol.adapter.readers.quantum.MOReader
              extended by org.jmol.adapter.readers.quantum.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
private  QchemReader.MOInfo[] alphas
           
private  QchemReader.MOInfo[] betas
           
private  int calculationNumber
          The number of the calculation being interpreted.
private static String DC_LIST
           
private  boolean dFixed
           
(package private)  String dList
           
private static String DS_LIST
           
(package private)  boolean dSpherical
           
private static String FC_LIST
           
private  boolean fFixed
           
(package private)  String fList
           
private static String FS_LIST
           
(package private)  boolean fSpherical
           
private  int nBasis
           
 
Fields inherited from class org.jmol.adapter.readers.quantum.MOReader
energyUnits, gaussianCount, gaussians, haveNboCharges, haveNboOrbitals, HEADER_GAMESS_OCCUPANCIES, HEADER_GAMESS_ORIGINAL, HEADER_GAMESS_UK_MO, HEADER_NONE, moTypes, orbitalsRead, shellCount
 
Fields inherited from class org.jmol.adapter.readers.quantum.BasisFunctionReader
alphaBeta, CANONICAL_DC_LIST, CANONICAL_DS_LIST, CANONICAL_FC_LIST, CANONICAL_FS_LIST, dfCoefMaps, ignoreMOs, moData, nOrbitals, orbitals, shells
 
Fields inherited from class org.jmol.adapter.smarter.AtomSetCollectionReader
addVibrations, ANGSTROMS_PER_BOHR, applySymmetryToBonds, atomSetCollection, bsFilter, bsModels, calculationType, continuing, desiredModelNumber, desiredVibrationNumber, doApplySymmetry, doCheckUnitCell, doProcessLines, filter, getHeader, haveModel, havePartialChargeFilter, htParams, ignoreFileSpaceGroupName, ignoreFileSymmetryOperators, ignoreFileUnitCell, iHaveSymmetryOperators, iHaveUnitCell, isSequential, isTrajectory, latticeCells, line, matUnitCellOrientation, modelNumber, next, notionalUnitCell, os, prevline, ptLine, reader, readerName, readMolecularOrbitals, spaceGroup, symmetry, templateAtomCount, vibrationNumber, viewer
 
Constructor Summary
QchemReader()
           
 
Method Summary
protected  boolean checkLine()
           
protected  void initializeReader()
           
private  void readAtoms()
           
private  void readBasis()
           
private  void readCalculationType()
           
private  void readESym(boolean haveSym)
           
private  void readFrequencies()
          Interprets the Harmonic frequencies section.
private  int readMOs(boolean restricted, QchemReader.MOInfo[] moInfos)
           
private  void readPartialCharges()
           
private  void readQchemMolecularOrbitals()
           
 
Methods inherited from class org.jmol.adapter.readers.quantum.MOReader
addMOData, checkNboLine, getMOHeader, getNboTypes, readMolecularOrbitals, setMOData, setMOType
 
Methods inherited from class org.jmol.adapter.readers.quantum.BasisFunctionReader
canonicalizeQuantumSubshellTag, filterMO, fixSlaterTypes, getDFMap, isQuantumBasisSupported, setMO
 
Methods inherited from class org.jmol.adapter.smarter.AtomSetCollectionReader
addJmolScript, addPrimitiveLatticeVector, addSites, addSiteScript, applySymmetryAndSetTrajectory, checkFilter, checkLastModel, checkLineForScript, checkLineForScript, clearLatticeParameters, cloneLastAtomSet, discardLines, discardLinesUntilBlank, discardLinesUntilContains, discardLinesUntilContains, discardLinesUntilNonBlank, discardLinesUntilStartsWith, doGetModel, doGetVibration, fillDataBlock, fillDataBlock, fillFloatArray, fillFrequencyData, filterAtom, finalizeReader, getElementSymbol, getFortranFormatLengths, getStrings, getSymmetry, getTokens, getTokens, getTokens, getTokensFloat, initializeSymmetry, isLastModel, newAtomSet, parseFloat, parseFloat, parseFloat, parseInt, parseInt, parseInt, parseInt, parseStringInfestedFloatArray, parseToken, parseToken, parseToken, parseTokenNext, parseTrimmed, parseTrimmed, readAtomSetCollectionFromDOM, readData, readLine, set2D, setAtomCoord, setAtomCoord, setFilter, 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

private QchemReader.MOInfo[] alphas

betas

private QchemReader.MOInfo[] betas

nBasis

private int nBasis

dFixed

private boolean dFixed

fFixed

private boolean fFixed

DC_LIST

private static String DC_LIST

DS_LIST

private static String DS_LIST

FC_LIST

private static String FC_LIST

FS_LIST

private static String FS_LIST

dList

String dList

fList

String fList

dSpherical

boolean dSpherical

fSpherical

boolean fSpherical
Constructor Detail

QchemReader

public QchemReader()
Method Detail

initializeReader

protected void initializeReader()
Overrides:
initializeReader in class MOReader

checkLine

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

readCalculationType

private void readCalculationType()

readAtoms

private void readAtoms()
                throws Exception
Throws:
Exception

readFrequencies

private void readFrequencies()
                      throws Exception,
                             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:
Exception - If no frequences were encountered
IOException - If an I/O error occurs

readPartialCharges

private void readPartialCharges()
                         throws Exception
Throws:
Exception

readBasis

private void readBasis()
                throws Exception
Throws:
Exception

readESym

private void readESym(boolean haveSym)
               throws Exception
Throws:
Exception

readQchemMolecularOrbitals

private void readQchemMolecularOrbitals()
                                 throws Exception
Throws:
Exception

readMOs

private int readMOs(boolean restricted,
                    QchemReader.MOInfo[] moInfos)
             throws Exception
Throws:
Exception