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 StringchargeTypeprivate StringdesiredQprivate javajs.util.V3desiredQptprivate floatgammaprivate booleanhaveChargesprivate booleanhavePhononsprivate booleanisAllQprivate booleanisCellprivate booleanisOutputprivate booleanisPhononprivate booleanisTSprivate StringlastQPtprivate static float[]lengthUnitFactorsprivate static String[]lengthUnitIdsprivate javajs.util.M4matSupercellprivate intqpt2private static floatRAD_TO_DEGprivate String[]tokensprivate StringtsTypeprivate static doubleTWOPI-
Fields inherited from class org.jmol.adapter.smarter.AtomSetCollectionReader
addedData, addedDataKey, addVibrations, allow_a_len_1, 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, ucItems, 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 StringgetFractionalCoord(javajs.util.V3 qvec)private voidgetTensor(Atom atom, String line0)voidinitializeReader()private static booleanisInt(float f)private voidreadAtomData(float factor)private voidreadEnergy(int pt, String prefix)private booleanreadFileData()private voidreadLatticeAbc()private voidreadLatticeCart()private floatreadLengthUnit(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(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, addExplicitLatticeVector, addJmolScript, addSites, addSiteScript, appendLoadNote, appendUunitCellInfo, applySymmetryAndSetTrajectory, applySymTrajASCR, checkCurrentLineForScript, checkFilterKey, checkLastModel, checkLineForScript, clearUnitCell, cloneLastAtomSet, discardLinesUntilBlank, discardLinesUntilContains, discardLinesUntilContains2, discardLinesUntilNonBlank, discardLinesUntilStartsWith, discardPreviousAtoms, doGetModel, doGetVibration, doPreSymmetry, fill3x3, 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 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 String lastQPt
-
qpt2
private int qpt2
-
desiredQpt
private javajs.util.V3 desiredQpt
-
desiredQ
private String desiredQ
-
chargeType
private String chargeType
-
isAllQ
private boolean isAllQ
-
haveCharges
private boolean haveCharges
-
tsType
private String tsType
-
lengthUnitIds
private static final String[] lengthUnitIds
-
lengthUnitFactors
private static final float[] lengthUnitFactors
-
matSupercell
private javajs.util.M4 matSupercell
-
TWOPI
private static final double TWOPI
- See Also:
- Constant Field Values
-
-
Method Detail
-
initializeReader
public void initializeReader() throws Exception- Overrides:
initializeReaderin classAtomSetCollectionReader- Throws:
Exception
-
setDesiredQpt
private void setDesiredQpt(String s)
-
checkLine
protected boolean checkLine() throws Exception- Overrides:
checkLinein classAtomSetCollectionReader- Returns:
- true if need to read new line
- Throws:
Exception
-
finalizeSubclassReader
protected void finalizeSubclassReader() throws ExceptionDescription copied from class:AtomSetCollectionReaderoptional reader-specific method run first.- Overrides:
finalizeSubclassReaderin classAtomSetCollectionReader- Throws:
Exception
-
setLatticeVectors
private void setLatticeVectors()
-
readOutputBornChargeTensors
private void readOutputBornChargeTensors() throws Exception- Throws:
Exception
-
readOutputAtomIndex
private int readOutputAtomIndex()
-
readOutputCharges
private void readOutputCharges() throws Exceptionread Mulliken or Hirshfield charges- Throws:
Exception
-
readPhononFractionalCoord
private void readPhononFractionalCoord() throws Exception- Throws:
Exception
-
getFractionalCoord
private 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
-
-