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  Map<String,Float> atomCharges
           
private  float b
           
private  float beta
           
private  boolean bTest
           
private  float c
           
private  boolean coordinatesArePrimitive
           
private  String energyUnits
           
private  float gamma
           
private  boolean isMolecular
           
private  boolean isPolymer
           
private  boolean isPrimitive
           
private  boolean isSlab
           
private  float[] primitiveData
           
private  String sep
           
private  String spaceGroup
           
private static String[] tags
           
private  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(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(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 String spaceGroup

isSlab

private boolean isSlab

isPolymer

private boolean isPolymer

isMolecular

private boolean isMolecular

isPrimitive

private boolean isPrimitive

sep

private String sep

coordinatesArePrimitive

private boolean coordinatesArePrimitive

atomCharges

private Map<String,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 String[] tags

totEnergy

private Double totEnergy

energyUnits

private String energyUnits
Constructor Detail

GulpReader

public GulpReader()
Method Detail

initializeReader

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

finalizeReader

protected void finalizeReader()
Overrides:
finalizeReader in class AtomSetCollectionReader

checkLine

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

readDimensionality

private boolean readDimensionality()
                            throws Exception
Throws:
Exception

readSpaceGroup

private void readSpaceGroup()
                     throws Exception
Throws:
Exception

parameterIndex

private static int parameterIndex(String key)

setParameter

private void setParameter(String key,
                          float value)

newAtomSet

private void newAtomSet(boolean doSetUnitCell)

setModelParameters

private void setModelParameters(boolean isPrimitive)

readCellParameters

private void readCellParameters(boolean isLatticeVectors)
                         throws Exception
Throws:
Exception

readFinalCell

private void readFinalCell()
                    throws Exception
Throws:
Exception

scalePrimitiveData

private void scalePrimitiveData(int i,
                                float value)

applySymmetryAndSetTrajectory

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

readAtomicPos

private void readAtomicPos(boolean finalizeSymmetry)
                    throws Exception
Throws:
Exception

readPartialCharges

private void readPartialCharges()
                         throws Exception
Throws:
Exception

readEnergy

private void readEnergy()
                 throws Exception
Throws:
Exception

setEnergy

private void setEnergy()