AdfReader
Date: 2019-10-22

org.jmol.adapter.readers.quantum

## Class AdfReader

- java.lang.Object
- - org.jmol.adapter.smarter.AtomSetCollectionReader
  - - org.jmol.adapter.readers.quantum.BasisFunctionReader
    - - org.jmol.adapter.readers.quantum.SlaterReader
      - - org.jmol.adapter.readers.quantum.AdfReader

- All Implemented Interfaces:
    javajs.api.GenericLineReader

      public class AdfReader
      extends SlaterReader

  TODO: adf-2007.out causes failure reading basis functions A reader for ADF output. Amsterdam Density Functional (ADF) is a quantum chemistry program by Scientific Computing & Modelling NV (SCM) (http://www.scm.com/).

  Molecular coordinates, energies, and normal coordinates of vibrations are read. Each set of coordinates is added to the ChemFile in the order they are found. Energies and vibrations are associated with the previously read set of coordinates.

  This reader was developed from a small set of example output files, and therefore, is not guaranteed to properly read all ADF output. If you have problems, please contact the author of this code, not the developers of ADF.

  Added note (Bob Hanson) -- 1/1/2010 -- Trying to implement reading of orbitals; ran into the problem that the atomic Slater description uses Cartesian orbitals, but the MO refers to spherical orbitals.

  Version:
    1.0
  Author:
    Bradley A. Smith (yeldar@home.com)

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `private class` | `AdfReader.SymmetryData`

    - ### Nested classes/interfaces inherited from class org.jmol.adapter.readers.quantum.SlaterReader

      `SlaterReader.OrbitalSorter, SlaterReader.SlaterSorter`

    - ### Nested classes/interfaces inherited from class org.jmol.adapter.readers.quantum.BasisFunctionReader

      `BasisFunctionReader.MOEnergySorter`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private java.lang.String` | `energy`
    `private java.util.Map<java.lang.String,AdfReader.SymmetryData>` | `htSymmetries`
    `private int` | `nXX`
    `private java.lang.String` | `symLine`
    `private javajs.util.Lst<AdfReader.SymmetryData>` | `vSymmetries`

    - ### Fields inherited from class org.jmol.adapter.readers.quantum.SlaterReader

      `slaterArray, slaters`

    - ### Fields inherited from class org.jmol.adapter.readers.quantum.BasisFunctionReader

      `alphaBeta, dfCoefMaps, ignoreMOs, moData, nCoef, nOrbitals, orbitalMaps, orbitals, shells`

    - ### Fields inherited from class org.jmol.adapter.smarter.AtomSetCollectionReader

      `addedData, addedDataKey, addVibrations, allowPDBFilter, ANGSTROMS_PER_BOHR, applySymmetryToBonds, asc, baseAtomIndex, binaryDoc, bsFilter, bsModels, calculationType, continuing, debugging, desiredModelNumber, desiredSpaceGroupIndex, desiredVibrationNumber, doApplySymmetry, doCentralize, doCheckUnitCell, doConvertToFractional, doPackUnitCell, doProcessLines, doReadMolecularOrbitals, dssr, fileName, fileOffset, filePath, fileScaling, fillRange, filter, filterHetero, fixJavaFloat, forcePacked, getHeader, haveAtomFilter, haveModel, havePartialChargeFilter, htParams, ignoreFileSpaceGroupName, ignoreFileSymmetryOperators, ignoreFileUnitCell, ignoreStructure, iHaveFractionalCoordinates, iHaveSymmetryOperators, iHaveUnitCell, isBinary, isConcatenated, isDSSP1, isFinalized, isMolecular, isPrimitive, isSequential, isTrajectory, latticeCells, latticeScaling, latticeType, line, lstNCS, matUnitCellOrientation, modDim, modelNumber, ms, mustFinalizeModelSet, next, out, packingError, prevline, primitiveToCrystal, ptLine, ptSupercell, reader, readerName, requiresBSFilter, reverseModels, rotateHexCell, sgName, stateScriptVersionInt, strSupercell, symmetry, templateAtomCount, thisBiomolecule, trajectorySteps, unitCellOffset, unitCellParams, useAltNames, useFileModelNumbers, validation, vibrationNumber, vibsFractional, vwr`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AdfReader()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `private void` | `addMo(java.lang.String sym, int moPt, float occ, float energy)`
    `protected boolean` | `checkLine()`
    `private void` | `readCoordinates()` Reads a set of coordinates
    `private void` | `readFrequencies()` Reads a set of vibrations.
    `private void` | `readMolecularOrbitals(java.lang.String sym)`
    `private void` | `readSlaterBasis()`
    `private void` | `readSymmetries()`

    - ### Methods inherited from class org.jmol.adapter.readers.quantum.SlaterReader

      `addSlater, addSlater, getSlaterConstCartesian, getSlaterConstDSpherical, scaleSlater, setMOs, setSlaters, sortOrbitalCoefficients, sortOrbitals`

    - ### Methods inherited from class org.jmol.adapter.readers.quantum.BasisFunctionReader

      `canonicalizeQuantumSubshellTag, clearOrbitals, discardPreviousAtoms, enableShell, filterMO, fixSlaterTypes, getDfCoefMaps, getDFMap, getQuantumShellTag, getQuantumShellTagID, getQuantumShellTagIDSpherical, setMO`

    - ### Methods inherited from class org.jmol.adapter.smarter.AtomSetCollectionReader

      `addAtomXYZSymName, addExplicitLatticeVector, addJmolScript, addSites, addSiteScript, appendLoadNote, appendUunitCellInfo, applySymmetryAndSetTrajectory, applySymTrajASCR, checkCurrentLineForScript, checkFilterKey, checkLastModel, checkLineForScript, clearUnitCell, cloneLastAtomSet, discardLinesUntilBlank, discardLinesUntilContains, discardLinesUntilContains2, discardLinesUntilNonBlank, discardLinesUntilStartsWith, doGetModel, doGetVibration, doPreSymmetry, fill3x3, fillDataBlock, fillDataBlockFixed, fillFloatArray, fillFrequencyData, filterAtom, filterReject, finalizeMOData, finalizeModelSet, finalizeReaderASCR, finalizeSubclassReader, finalizeSubclassSymmetry, forceSymmetry, fractionalizeCoordinates, getElementSymbol, getFilter, getFortranFormatLengths, getInterface, getNewSymmetry, getStrings, getSymmetry, getTokens, getTokensFloat, initializeReader, initializeSymmetry, initializeSymmetryOptions, initializeTrajectoryFile, isLastModel, newAtomSet, parseFloat, parseFloatRange, parseFloatStr, parseInt, parseIntAt, parseIntRange, parseIntStr, parseToken, parseTokenNext, parseTokenRange, parseTokenStr, processBinaryDocument, processDOM, rd, read3Vectors, readDataObject, readLines, readNextLine, rejectAtomName, RL, set2D, setAtomCoord, setAtomCoordScaled, setAtomCoordTokens, setAtomCoordXYZ, setChainID, setElementAndIsotope, setFilter, setFilterAtomTypeStr, setFractionalCoordinates, setIsPDB, setLoadNote, setModelPDB, setSpaceGroupName, setSymmetryOperator, setTransform, setUnitCell, setUnitCellItem, setup, setupASCR`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### htSymmetries

          private java.util.Map<java.lang.String,AdfReader.SymmetryData> htSymmetries

    - #### vSymmetries

          private javajs.util.Lst<AdfReader.SymmetryData> vSymmetries

    - #### energy

          private java.lang.String energy

    - #### nXX

          private int nXX

    - #### symLine

          private java.lang.String symLine

  - ### Constructor Detail

    - #### AdfReader

          public AdfReader()

  - ### Method Detail

    - #### checkLine

          protected boolean checkLine()
                               throws java.lang.Exception

      Overrides:
        `checkLine` in class `AtomSetCollectionReader`
      Returns:
        true if need to read new line
      Throws:
        `java.lang.Exception`

    - #### readCoordinates

          private void readCoordinates()
                                throws java.lang.Exception

      Reads a set of coordinates
      Throws:
        `java.lang.Exception` - if an I/O error occurs

    - #### readFrequencies

          private void readFrequencies()
                                throws java.lang.Exception

      Reads a set of vibrations.
      Throws:
        `java.lang.Exception` - if an I/O error occurs

    - #### readSymmetries

          private void readSymmetries()
                               throws java.lang.Exception

      Throws:
        `java.lang.Exception`

    - #### readSlaterBasis

          private void readSlaterBasis()
                                throws java.lang.Exception

      Throws:
        `java.lang.Exception`

    - #### readMolecularOrbitals

          private void readMolecularOrbitals(java.lang.String sym)
                                      throws java.lang.Exception

      Throws:
        `java.lang.Exception`

    - #### addMo

          private void addMo(java.lang.String sym,
                             int moPt,
                             float occ,
                             float energy)