Package org.jmol.adapter.readers.xtal
Class CastepReader
- java.lang.Object
-
- org.jmol.adapter.smarter.AtomSetCollectionReader
-
- org.jmol.adapter.readers.xtal.CastepReader
-
- All Implemented Interfaces:
javajs.api.GenericLineReader
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 "q={1/4 1/4 0}" "q=ALL" -- 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 note: following was never implemented? -- 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)
-
-
Field Summary
Fields Modifier and Type Field Description private floataprivate javajs.util.V3[]abcprivate intacprivate floatalphaprivate javajs.util.P3[]atomPtsprivate floatbprivate floatbetaprivate floatcprivate java.lang.StringchargeTypeprivate java.lang.StringdesiredQprivate javajs.util.V3desiredQptprivate floatgammaprivate booleanhaveChargesprivate booleanhavePhononsprivate booleanisAllQprivate booleanisCellprivate booleanisOutputprivate booleanisPhononprivate booleanisTSprivate java.lang.StringlastQPtprivate static float[]lengthUnitFactorsprivate static java.lang.String[]lengthUnitIdsprivate intqpt2private static floatRAD_TO_DEGprivate java.lang.String[]tokensprivate java.lang.StringtsTypeprivate static doubleTWOPI-
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, isSequential, isTrajectory, latticeCells, latticeScaling, line, lstNCS, matUnitCellOrientation, modelNumber, ms, mustFinalizeModelSet, next, out, packingError, prevline, ptLine, ptSupercell, reader, readerName, reverseModels, sgName, stateScriptVersionInt, strSupercell, symmetry, templateAtomCount, thisBiomolecule, trajectorySteps, unitCellOffset, unitCellParams, useAltNames, useFileModelNumbers, validation, vibrationNumber, vibsFractional, vwr
-
-
Constructor Summary
Constructors Constructor Description CastepReader()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleancheckLine()protected voidfinalizeSubclassReader()optional reader-specific method run first.private java.lang.StringgetFractionalCoord(javajs.util.V3 qvec)private voidgetTensor(Atom atom, java.lang.String line0)voidinitializeReader()private static booleanisInt(float f)private voidreadAtomData(float factor)private voidreadEnergy(int pt, java.lang.String prefix)private booleanreadFileData()private voidreadLatticeAbc()private voidreadLatticeCart()private floatreadLengthUnit(java.lang.String units)private intreadOutputAtomIndex()private voidreadOutputAtoms()private voidreadOutputBornChargeTensors()private voidreadOutputCharges()read Mulliken or Hirshfield chargesprivate voidreadOutputUnitCell()private voidreadPhononFractionalCoord()private voidreadPhononFrequencies()private voidreadPhononTrajectories()private voidreadPhononUnitCell()private voidreadPositionsAbs()private voidreadPositionsFrac()private voidsetDesiredQpt(java.lang.String s)private voidsetLatticeVectors()private voidsetPhononVector(float[] data, Atom atom, javajs.util.V3 rTrans, javajs.util.V3 qvec, javajs.util.V3 v)transform complex vibration vector to a real vector by applying the appropriate translation, storing the results in vprivate inttokenizeCastepCell()-
Methods inherited from class org.jmol.adapter.smarter.AtomSetCollectionReader
addAtomXYZSymName, addJmolScript, addPrimitiveLatticeVector, addSites, addSiteScript, appendLoadNote, appendUunitCellInfo, applySymmetryAndSetTrajectory, applySymTrajASCR, checkCurrentLineForScript, checkFilterKey, checkLastModel, checkLineForScript, clearUnitCell, cloneLastAtomSet, discardLinesUntilBlank, discardLinesUntilContains, discardLinesUntilContains2, discardLinesUntilNonBlank, discardLinesUntilStartsWith, discardPreviousAtoms, doGetModel, doGetVibration, doPreSymmetry, fillDataBlock, fillDataBlockFixed, fillFloatArray, fillFrequencyData, filterAtom, filterReject, finalizeMOData, finalizeModelSet, finalizeReaderASCR, finalizeSubclassSymmetry, forceSymmetry, fractionalizeCoordinates, getElementSymbol, getFilter, getFortranFormatLengths, getInterface, getNewSymmetry, getStrings, getSymmetry, getTokens, getTokensFloat, 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
-
-
-
-
Field Detail
-
RAD_TO_DEG
private static final float RAD_TO_DEG
- See Also:
- Constant Field Values
-
tokens
private java.lang.String[] tokens
-
isPhonon
private boolean isPhonon
-
isTS
private boolean isTS
-
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 javajs.util.V3[] abc
-
ac
private int ac
-
atomPts
private javajs.util.P3[] atomPts
-
havePhonons
private boolean havePhonons
-
lastQPt
private java.lang.String lastQPt
-
qpt2
private int qpt2
-
desiredQpt
private javajs.util.V3 desiredQpt
-
desiredQ
private java.lang.String desiredQ
-
chargeType
private java.lang.String chargeType
-
isAllQ
private boolean isAllQ
-
haveCharges
private boolean haveCharges
-
tsType
private java.lang.String tsType
-
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
-
-
Method Detail
-
initializeReader
public void initializeReader() throws java.lang.Exception- Overrides:
initializeReaderin classAtomSetCollectionReader- 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:
checkLinein classAtomSetCollectionReader- 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
-
readEnergy
private void readEnergy(int pt, java.lang.String prefix) throws java.lang.Exception- Throws:
java.lang.Exception
-
readPhononTrajectories
private void readPhononTrajectories() throws java.lang.Exception- Throws:
java.lang.Exception
-
finalizeSubclassReader
protected void finalizeSubclassReader() throws java.lang.ExceptionDescription copied from class:AtomSetCollectionReaderoptional reader-specific method run first.- Overrides:
finalizeSubclassReaderin classAtomSetCollectionReader- 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
-
readOutputBornChargeTensors
private void readOutputBornChargeTensors() throws java.lang.Exception- Throws:
java.lang.Exception
-
readOutputAtomIndex
private int readOutputAtomIndex()
-
getTensor
private void getTensor(Atom atom, java.lang.String line0) throws java.lang.Exception
- Throws:
java.lang.Exception
-
readOutputCharges
private void readOutputCharges() throws java.lang.Exceptionread Mulliken or Hirshfield charges- 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(javajs.util.V3 qvec)
-
isInt
private static boolean isInt(float f)
-
setPhononVector
private void setPhononVector(float[] data, Atom atom, javajs.util.V3 rTrans, javajs.util.V3 qvec, javajs.util.V3 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
-
-