org.jmol.adapter.readers.xtal
Class GulpReader

java.lang.Object
  extended by org.jmol.adapter.smarter.AtomSetCollectionReader
      extended by org.jmol.adapter.readers.xtal.GulpReader

public class GulpReader
extends AtomSetCollectionReader

Problems identified (Bob Hanson) -- -- Coordinates for the asymmetric unit are conventional. Default right now is to read conventional cell, not primitive celll -- Frequency data number of atoms does not correspond to initial atom count. It looks like there is a missing report of symmetry-generated atoms. see https://projects.ivec.org/gulp/

Version:
1.0
Author:
Pieremanuele Canepa, Room 104, FM Group School of Physical Sciences, Ingram Building, University of Kent, Canterbury, Kent, CT2 7NH United Kingdom, pc229@kent.ac.uk

Field Summary
private  float a
           
private  float alpha
           
private  java.util.Map<java.lang.String,java.lang.Float> atomCharges
           
private  float b
           
private  float beta
           
private  boolean bTest
           
private  float c
           
private  boolean coordinatesArePrimitive
           
private  java.lang.String energyUnits
           
private  float gamma
           
private  boolean isMolecular
           
private  boolean isPolymer
           
private  boolean isPrimitive
           
private  boolean isSlab
           
private  float[] primitiveData
           
private  java.lang.String sep
           
private  java.lang.String spaceGroup
           
private static java.lang.String[] tags
           
private  java.lang.Double totEnergy
           
 
Fields inherited from class org.jmol.adapter.smarter.AtomSetCollectionReader
addVibrations, ANGSTROMS_PER_BOHR, applySymmetryToBonds, atomSetCollection, bsFilter, bsModels, calculationType, continuing, desiredModelNumber, desiredVibrationNumber, doApplySymmetry, doc, doCheckUnitCell, doPackUnitCell, doProcessLines, filter, filterHetero, getHeader, haveModel, havePartialChargeFilter, htParams, ignoreFileSpaceGroupName, ignoreFileSymmetryOperators, ignoreFileUnitCell, iHaveFractionalCoordinates, iHaveSymmetryOperators, iHaveUnitCell, isBinary, isSequential, isTrajectory, latticeCells, line, matUnitCellOrientation, modelNumber, next, notionalUnitCell, os, prevline, ptLine, reader, readerName, readMolecularOrbitals, stateScriptVersionInt, supercell, symmetry, templateAtomCount, useAltNames, vibrationNumber, viewer
 
Constructor Summary
GulpReader()
           
 
Method Summary
 void applySymmetryAndSetTrajectory()
           
protected  boolean checkLine()
           
protected  void finalizeReader()
           
protected  void initializeReader()
           
private  void newAtomSet(boolean doSetUnitCell)
           
private static int parameterIndex(java.lang.String key)
           
private  void readAtomicPos(boolean finalizeSymmetry)
           
private  void readCellParameters(boolean isLatticeVectors)
           
private  boolean readDimensionality()
           
private  void readEnergy()
           
private  void readFinalCell()
           
private  void readPartialCharges()
           
private  void readSpaceGroup()
           
private  void scalePrimitiveData(int i, float value)
           
private  void setEnergy()
           
private  void setModelParameters(boolean isPrimitive)
           
private  void setParameter(java.lang.String key, float value)
           
 
Methods inherited from class org.jmol.adapter.smarter.AtomSetCollectionReader
addJmolScript, addPrimitiveLatticeVector, addSites, addSiteScript, appendLoadNote, checkFilter, checkLastModel, checkLineForScript, checkLineForScript, clearUnitCell, cloneLastAtomSet, discardLinesUntilBlank, discardLinesUntilContains, discardLinesUntilContains, discardLinesUntilNonBlank, discardLinesUntilStartsWith, doGetModel, doGetVibration, fillDataBlock, fillDataBlock, fillFloatArray, fillFrequencyData, filterAtom, 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, processBinaryDocument, processXml, read3Vectors, readData, readLine, readLines, set2D, setAtomCoord, setAtomCoord, setFilter, setFractionalCoordinates, setIsPDB, setMOData, setPdb, 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

spaceGroup

private java.lang.String spaceGroup

isSlab

private boolean isSlab

isPolymer

private boolean isPolymer

isMolecular

private boolean isMolecular

isPrimitive

private boolean isPrimitive

sep

private java.lang.String sep

coordinatesArePrimitive

private boolean coordinatesArePrimitive

atomCharges

private java.util.Map<java.lang.String,java.lang.Float> atomCharges

bTest

private boolean bTest

a

private float a

b

private float b

c

private float c

alpha

private float alpha

beta

private float beta

gamma

private float gamma

primitiveData

private float[] primitiveData

tags

private static java.lang.String[] tags

totEnergy

private java.lang.Double totEnergy

energyUnits

private java.lang.String energyUnits
Constructor Detail

GulpReader

public GulpReader()
Method Detail

initializeReader

protected void initializeReader()
                         throws java.lang.Exception
Overrides:
initializeReader in class AtomSetCollectionReader
Throws:
java.lang.Exception

finalizeReader

protected void finalizeReader()
Overrides:
finalizeReader in class AtomSetCollectionReader

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

readDimensionality

private boolean readDimensionality()
                            throws java.lang.Exception
Throws:
java.lang.Exception

readSpaceGroup

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

parameterIndex

private static int parameterIndex(java.lang.String key)

setParameter

private void setParameter(java.lang.String key,
                          float value)

newAtomSet

private void newAtomSet(boolean doSetUnitCell)

setModelParameters

private void setModelParameters(boolean isPrimitive)

readCellParameters

private void readCellParameters(boolean isLatticeVectors)
                         throws java.lang.Exception
Throws:
java.lang.Exception

readFinalCell

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

scalePrimitiveData

private void scalePrimitiveData(int i,
                                float value)

applySymmetryAndSetTrajectory

public void applySymmetryAndSetTrajectory()
                                   throws java.lang.Exception
Overrides:
applySymmetryAndSetTrajectory in class AtomSetCollectionReader
Throws:
java.lang.Exception

readAtomicPos

private void readAtomicPos(boolean finalizeSymmetry)
                    throws java.lang.Exception
Throws:
java.lang.Exception

readPartialCharges

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

readEnergy

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

setEnergy

private void setEnergy()