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 float
a
private javajs.util.V3[]
abc
private int
ac
private float
alpha
private javajs.util.P3[]
atomPts
private float
b
private float
beta
private float
c
private String
chargeType
private String
desiredQ
private javajs.util.V3
desiredQpt
private float
gamma
private boolean
haveCharges
private boolean
havePhonons
private boolean
isAllQ
private boolean
isCell
private boolean
isOutput
private boolean
isPhonon
private boolean
isTS
private String
lastQPt
private static float[]
lengthUnitFactors
private static String[]
lengthUnitIds
private javajs.util.M4
matSupercell
private int
qpt2
private static float
RAD_TO_DEG
private String[]
tokens
private String
tsType
private static double
TWOPI
-
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 boolean
checkLine()
protected void
finalizeSubclassReader()
optional reader-specific method run first.private String
getFractionalCoord(javajs.util.V3 qvec)
private void
getTensor(Atom atom, String line0)
void
initializeReader()
private static boolean
isInt(float f)
private void
readAtomData(float factor)
private void
readEnergy(int pt, String prefix)
private boolean
readFileData()
private void
readLatticeAbc()
private void
readLatticeCart()
private float
readLengthUnit(String units)
private int
readOutputAtomIndex()
private void
readOutputAtoms()
private void
readOutputBornChargeTensors()
private void
readOutputCharges()
read Mulliken or Hirshfield chargesprivate void
readOutputUnitCell()
private void
readPhononFractionalCoord()
private void
readPhononFrequencies()
private void
readPhononTrajectories()
private void
readPhononUnitCell()
private void
readPositionsAbs()
private void
readPositionsFrac()
private void
setDesiredQpt(String s)
private void
setLatticeVectors()
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 vprivate int
tokenizeCastepCell()
-
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:
initializeReader
in classAtomSetCollectionReader
- Throws:
Exception
-
setDesiredQpt
private void setDesiredQpt(String s)
-
checkLine
protected boolean checkLine() throws Exception
- Overrides:
checkLine
in classAtomSetCollectionReader
- Returns:
- true if need to read new line
- Throws:
Exception
-
finalizeSubclassReader
protected void finalizeSubclassReader() throws Exception
Description copied from class:AtomSetCollectionReader
optional reader-specific method run first.- Overrides:
finalizeSubclassReader
in classAtomSetCollectionReader
- Throws:
Exception
-
setLatticeVectors
private void setLatticeVectors()
-
readOutputBornChargeTensors
private void readOutputBornChargeTensors() throws Exception
- Throws:
Exception
-
readOutputAtomIndex
private int readOutputAtomIndex()
-
readOutputCharges
private void readOutputCharges() throws Exception
read 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
-
-