Class 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 Detail

      • 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
    • Constructor Detail

      • CastepReader

        public CastepReader()
    • Method Detail

      • 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
      • 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
      • 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.Exception
        read 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 floats
        atom -
        rTrans - translation vector in unit fractional coord
        qvec - q point vector
        v - return vector