org.jmol.adapter.readers.xtal
Class CastepReader
java.lang.Object
org.jmol.adapter.smarter.AtomSetCollectionReader
org.jmol.adapter.readers.xtal.CastepReader
public class CastepReader
- extends AtomSetCollectionReader
CASTEP (http://www.castep.org) .cell file format relevant section of .cell
file are included as comments below
preliminary .castep, .phonon frequency reader -- hansonr@stolaf.edu 9/2011 -- Many
thanks to Keith Refson for his assistance with this implementation -- atom's
mass is encoded as bfactor -- FILTER options include "q=n" where n is an
integer or "q={1/4 1/4 0}" -- for non-simple fractions, you must use the
exact form of the wavevector description: -- load "xxx.phonon" FILTER
"q=(-0.083333 0.083333 0.500000) -- for simple fractions, you can also just
specify SUPERCELL {a b c} where -- the number of cells matches a given
wavevector -- SUPERCELL {4 4 1}, for example -- following this with ".1" ".2"
etc. gives first, second, third, etc. occurance: -- load "xxx.phonon" FILTER
"q=1.3" .... -- load "xxx.phonon" FILTER "{0 0 0}.3" ....
- Version:
- 1.2
- Author:
- Joerg Meyer, FHI Berlin 2009 (meyer@fhi-berlin.mpg.de)
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, spaceGroup, stateScriptVersionInt, supercell, symmetry, templateAtomCount, useAltNames, vibrationNumber, viewer |
Methods inherited from class org.jmol.adapter.smarter.AtomSetCollectionReader |
addJmolScript, addPrimitiveLatticeVector, addSites, addSiteScript, appendLoadNote, applySymmetryAndSetTrajectory, 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 |
tokens
private java.lang.String[] tokens
isPhonon
private boolean isPhonon
isOutput
private boolean isOutput
isCell
private boolean isCell
a
private float a
b
private float b
c
private float c
alpha
private float alpha
beta
private float beta
gamma
private float gamma
abc
private javax.vecmath.Vector3f[] abc
atomCount
private int atomCount
atomPts
private javax.vecmath.Point3f[] atomPts
havePhonons
private boolean havePhonons
lastQPt
private java.lang.String lastQPt
qpt2
private int qpt2
desiredQpt
private javax.vecmath.Vector3f desiredQpt
desiredQ
private java.lang.String desiredQ
lengthUnitIds
private static final java.lang.String[] lengthUnitIds
lengthUnitFactors
private static final float[] lengthUnitFactors
TWOPI
private static final double TWOPI
- See Also:
- Constant Field Values
CastepReader
public CastepReader()
initializeReader
public void initializeReader()
throws java.lang.Exception
- Overrides:
initializeReader
in class AtomSetCollectionReader
- Throws:
java.lang.Exception
setDesiredQpt
private void setDesiredQpt(java.lang.String s)
readFileData
private boolean readFileData()
throws java.lang.Exception
- Throws:
java.lang.Exception
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
readOutputUnitCell
private void readOutputUnitCell()
throws java.lang.Exception
- Throws:
java.lang.Exception
readOutputAtoms
private void readOutputAtoms()
throws java.lang.Exception
- Throws:
java.lang.Exception
readOutputCharges
private void readOutputCharges()
throws java.lang.Exception
- Throws:
java.lang.Exception
readPhononTrajectories
private void readPhononTrajectories()
throws java.lang.Exception
- Throws:
java.lang.Exception
finalizeReader
protected void finalizeReader()
throws java.lang.Exception
- Overrides:
finalizeReader
in class AtomSetCollectionReader
- Throws:
java.lang.Exception
setLatticeVectors
private void setLatticeVectors()
readLatticeAbc
private void readLatticeAbc()
throws java.lang.Exception
- Throws:
java.lang.Exception
readLatticeCart
private void readLatticeCart()
throws java.lang.Exception
- Throws:
java.lang.Exception
readPositionsFrac
private void readPositionsFrac()
throws java.lang.Exception
- Throws:
java.lang.Exception
readPositionsAbs
private void readPositionsAbs()
throws java.lang.Exception
- Throws:
java.lang.Exception
readLengthUnit
private float readLengthUnit(java.lang.String units)
throws java.lang.Exception
- Throws:
java.lang.Exception
readAtomData
private void readAtomData(float factor)
throws java.lang.Exception
- Throws:
java.lang.Exception
tokenizeCastepCell
private int tokenizeCastepCell()
throws java.lang.Exception
- Throws:
java.lang.Exception
readPhononUnitCell
private void readPhononUnitCell()
throws java.lang.Exception
- Throws:
java.lang.Exception
readPhononFractionalCoord
private void readPhononFractionalCoord()
throws java.lang.Exception
- Throws:
java.lang.Exception
readPhononFrequencies
private void readPhononFrequencies()
throws java.lang.Exception
- Throws:
java.lang.Exception
getFractionalCoord
private java.lang.String getFractionalCoord(javax.vecmath.Vector3f qvec)
isInt
private static boolean isInt(float f)
setPhononVector
private void setPhononVector(float[] data,
Atom atom,
javax.vecmath.Vector3f rTrans,
javax.vecmath.Vector3f qvec,
javax.vecmath.Vector3f v)
- transform complex vibration vector to a real vector by applying the
appropriate translation, storing the results in v
- Parameters:
data
- from .phonon line parsed for floatsatom
- rTrans
- translation vector in unit fractional coordqvec
- q point vectorv
- return vector