Package org.jmol.symmetry
Class Symmetry
java.lang.Object
org.jmol.symmetry.Symmetry
- All Implemented Interfaces:
SymmetryInterface
- Direct Known Subclasses:
XtalSymmetry.FileSymmetry
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint
addBioMoleculeOperation
(M4 mat, boolean isReverse) int
addSpaceGroupOperation
(String xyz, int opId) void
calculateCIPChiralityForAtoms
(Viewer vwr, BS bsAtoms) String[]
calculateCIPChiralityForSmiles
(Viewer vwr, String smiles) boolean
checkPeriodic
(P3 pt) convertTransform
(String transform, M4 trm) findSpaceGroup
(Viewer vwr, BS atoms, String xyzList, float[] unitCellParams, T3 origin, T3[] oabc, int flags) boolean
fixUnitCell
(float[] params) geCIFWriterValue
(String type) generateCrystalClass
(P3 pt00) M4[]
int
P3[]
getCanonicalCopy
(float scale, boolean withOffset) P3[]
getCanonicalCopyTrimmed
(P3 frac, float scale) int[]
float
getCellWeight
(P3 pt) boolean
int
void
getEquivPointList
(Lst<P3> pts, int nInitial, String flags, M4[] opsCtr) getEquivPoints
(Lst<P3> pts, P3 pt, String flags) int
getFractionalOffset
(boolean onlyIfFractional) int[]
getInvariantSymops
(P3 pt, int[] v0) getITASettingValue
(Viewer vwr, String itaIndex, String key) getIterator
(Viewer vwr, Atom atom, BS bsAtoms, float radius) int
char
getOperationRsVs
(int iop) int
getPointGroupInfo
(int modelIndex, String drawID, boolean asInfo, String type, int index, float scale) float
int
getSpaceGroupInfo
(ModelSet modelSet, String sgName, int modelIndex, boolean isFull, float[] cellParams) getSpaceGroupInfoObj
(String name, Object params, boolean isFull, boolean addNonstandard) getSpaceGroupJSON
(Viewer vwr, String name, String data, int index) getSpaceGroupOperation
(int i) int
getSpaceGroupXyz
(int i, boolean doNormalize) int
getSpinOp
(int op) boolean
getSubgroupJSON
(Viewer vwr, int itaFrom, int itaTo, int index1, int index2) Retrieve subgroup information for a space group.getSymmetryInfoAtom
(ModelSet modelSet, int iatom, String xyz, int op, P3 translation, P3 pt, P3 pt2, String id, int type, float scaleFactor, int nth, int options, int[] opList) When information is desired about the space group, we use SymmetryInfo.String[]
getSymopList
(boolean doNormalize) getTransform
(P3 fracA, P3 fracB, boolean best) getUnitCell
(T3[] oabc, boolean setRelative, String name) float[]
getUnitCellAsArray
(boolean vectorsOnly) getUnitCellInfo
(boolean scaled) float
getUnitCellInfoType
(int infoType) Note, this has no origin shift.float[]
P3[]
P3[]
T3[]
getWyckoffPosition
(Viewer vwr, P3 p, String letter) boolean
void
initializeOrientation
(M3 mat) boolean
isBio()
boolean
boolean
isSimple()
boolean
isSlab()
boolean
boolean
boolean
isWithinUnitCell
(P3 pt, float x, float y, float z) void
newSpaceGroupPoint
(P3 pt, int i, M4 o, int transX, int transY, int transZ, P3 retPoint) notInCentroid
(ModelSet modelSet, BS bsAtoms, int[] minmax) removeDuplicates
(ModelSet ms, BS bs, boolean highPrec) replaceTransformMatrix
(M4 trm) V3[]
rotateAxes
(int iop, V3[] axes, P3 ptTemp, M3 mTemp) void
setFinalOperations
(int dim, String name, P3[] atoms, int iAtomFirst, int noSymmetryCount, boolean doNormalize, String filterSymop) void
setLattice
(int latt) set symmetry lattice type using Hall rotationsvoid
setOffset
(int nnn) void
setOffsetPt
(T3 pt) setPointGroup
(Viewer vwr, SymmetryInterface siLast, T3 center, T3[] atomset, BS bsAtoms, boolean haveVibration, float distanceTolerance, float linearTolerance, int maxAtoms, boolean localEnvOnly) void
setSpaceGroup
(boolean doNormalize) void
setSpaceGroupName
(String name) void
void
setSymmetryInfoFromFile
(ModelSet ms, int modelIndex, float[] unitCellParams) Set space group and unit cell from the auxiliary info generated by XtalSymmetry specific to a given model.void
setUnitCellFromParams
(float[] unitCellParams, boolean setRelative, float slop) for the vwr.getSymTemp() onlystaticConvertOperation
(String xyz, M4 matrix) staticGetTransformABC
(Object transform, boolean normalize) staticToRationalXYZ
(P3 fPt, String sep) staticTransformSpaceGroup
(BS bs, String cleg, Object paramsOrUC, SB sb) void
toCartesian
(T3 pt, boolean ignoreOffset) void
toFractional
(T3 pt, boolean ignoreOffset) boolean
toFromPrimitive
(boolean toPrimitive, char type, T3[] oabc, M3 primitiveToCrystal) toSupercell
(P3 fpt) void
toUnitCell
(T3 pt, T3 offset) void
transformUnitCell
(M4 trm) boolean
void
-
Field Details
-
spaceGroup
-
unitCell
-
isBio
public boolean isBio
-
-
Constructor Details
-
Symmetry
public Symmetry()
-
-
Method Details
-
getSymopList
- Specified by:
getSymopList
in interfaceSymmetryInterface
-
isBio
public boolean isBio()- Specified by:
isBio
in interfaceSymmetryInterface
-
setPointGroup
public SymmetryInterface setPointGroup(Viewer vwr, SymmetryInterface siLast, T3 center, T3[] atomset, BS bsAtoms, boolean haveVibration, float distanceTolerance, float linearTolerance, int maxAtoms, boolean localEnvOnly) - Specified by:
setPointGroup
in interfaceSymmetryInterface
-
getPointGroupName
- Specified by:
getPointGroupName
in interfaceSymmetryInterface
-
getPointGroupInfo
public Object getPointGroupInfo(int modelIndex, String drawID, boolean asInfo, String type, int index, float scale) - Specified by:
getPointGroupInfo
in interfaceSymmetryInterface
-
setSpaceGroup
public void setSpaceGroup(boolean doNormalize) - Specified by:
setSpaceGroup
in interfaceSymmetryInterface
-
addSpaceGroupOperation
- Specified by:
addSpaceGroupOperation
in interfaceSymmetryInterface
-
addBioMoleculeOperation
- Specified by:
addBioMoleculeOperation
in interfaceSymmetryInterface
-
setLattice
public void setLattice(int latt) Description copied from interface:SymmetryInterface
set symmetry lattice type using Hall rotations- Specified by:
setLattice
in interfaceSymmetryInterface
- Parameters:
latt
- SHELX index or character lattice character P I R F A B C S T or \0
-
getSpaceGroup
- Specified by:
getSpaceGroup
in interfaceSymmetryInterface
-
getSpaceGroupInfoObj
public Object getSpaceGroupInfoObj(String name, Object params, boolean isFull, boolean addNonstandard) - Specified by:
getSpaceGroupInfoObj
in interfaceSymmetryInterface
-
getLatticeDesignation
- Specified by:
getLatticeDesignation
in interfaceSymmetryInterface
-
setFinalOperations
public void setFinalOperations(int dim, String name, P3[] atoms, int iAtomFirst, int noSymmetryCount, boolean doNormalize, String filterSymop) - Specified by:
setFinalOperations
in interfaceSymmetryInterface
-
getSpaceGroupOperation
- Specified by:
getSpaceGroupOperation
in interfaceSymmetryInterface
-
getSpaceGroupXyz
- Specified by:
getSpaceGroupXyz
in interfaceSymmetryInterface
-
newSpaceGroupPoint
- Specified by:
newSpaceGroupPoint
in interfaceSymmetryInterface
-
rotateAxes
- Specified by:
rotateAxes
in interfaceSymmetryInterface
-
getSpinOp
public int getSpinOp(int op) - Specified by:
getSpinOp
in interfaceSymmetryInterface
-
getLatticeOp
public int getLatticeOp()- Specified by:
getLatticeOp
in interfaceSymmetryInterface
-
getLatticeCentering
- Specified by:
getLatticeCentering
in interfaceSymmetryInterface
-
getOperationRsVs
- Specified by:
getOperationRsVs
in interfaceSymmetryInterface
-
getSiteMultiplicity
- Specified by:
getSiteMultiplicity
in interfaceSymmetryInterface
-
getSpaceGroupName
- Specified by:
getSpaceGroupName
in interfaceSymmetryInterface
-
geCIFWriterValue
- Specified by:
geCIFWriterValue
in interfaceSymmetryInterface
-
getLatticeType
public char getLatticeType()- Specified by:
getLatticeType
in interfaceSymmetryInterface
-
getIntTableNumber
- Specified by:
getIntTableNumber
in interfaceSymmetryInterface
-
getIntTableIndex
- Specified by:
getIntTableIndex
in interfaceSymmetryInterface
-
getIntTableTransform
- Specified by:
getIntTableTransform
in interfaceSymmetryInterface
-
getSpaceGroupClegId
- Specified by:
getSpaceGroupClegId
in interfaceSymmetryInterface
-
getSpaceGroupJmolId
- Specified by:
getSpaceGroupJmolId
in interfaceSymmetryInterface
-
getCoordinatesAreFractional
public boolean getCoordinatesAreFractional()- Specified by:
getCoordinatesAreFractional
in interfaceSymmetryInterface
-
getCellRange
public int[] getCellRange()- Specified by:
getCellRange
in interfaceSymmetryInterface
-
getSymmetryInfoStr
When information is desired about the space group, we use SymmetryInfo.- Specified by:
getSymmetryInfoStr
in interfaceSymmetryInterface
-
getSpaceGroupOperationCount
public int getSpaceGroupOperationCount()- Specified by:
getSpaceGroupOperationCount
in interfaceSymmetryInterface
-
getSymmetryOperations
- Specified by:
getSymmetryOperations
in interfaceSymmetryInterface
-
getAdditionalOperationsCount
public int getAdditionalOperationsCount()- Specified by:
getAdditionalOperationsCount
in interfaceSymmetryInterface
-
getAdditionalOperations
- Specified by:
getAdditionalOperations
in interfaceSymmetryInterface
-
isSimple
public boolean isSimple()- Specified by:
isSimple
in interfaceSymmetryInterface
-
haveUnitCell
public boolean haveUnitCell()- Specified by:
haveUnitCell
in interfaceSymmetryInterface
-
setUnitCellFromParams
public SymmetryInterface setUnitCellFromParams(float[] unitCellParams, boolean setRelative, float slop) - Specified by:
setUnitCellFromParams
in interfaceSymmetryInterface
-
unitCellEquals
- Specified by:
unitCellEquals
in interfaceSymmetryInterface
-
isSymmetryCell
- Specified by:
isSymmetryCell
in interfaceSymmetryInterface
-
getUnitCellState
- Specified by:
getUnitCellState
in interfaceSymmetryInterface
-
getMoreInfo
- Specified by:
getMoreInfo
in interfaceSymmetryInterface
-
initializeOrientation
- Specified by:
initializeOrientation
in interfaceSymmetryInterface
-
unitize
- Specified by:
unitize
in interfaceSymmetryInterface
-
toUnitCell
- Specified by:
toUnitCell
in interfaceSymmetryInterface
-
toSupercell
- Specified by:
toSupercell
in interfaceSymmetryInterface
-
toFractional
- Specified by:
toFractional
in interfaceSymmetryInterface
-
toCartesian
- Specified by:
toCartesian
in interfaceSymmetryInterface
-
getUnitCellParams
public float[] getUnitCellParams()- Specified by:
getUnitCellParams
in interfaceSymmetryInterface
-
getUnitCellAsArray
public float[] getUnitCellAsArray(boolean vectorsOnly) - Specified by:
getUnitCellAsArray
in interfaceSymmetryInterface
-
getUnitCellVerticesNoOffset
- Specified by:
getUnitCellVerticesNoOffset
in interfaceSymmetryInterface
-
getCartesianOffset
- Specified by:
getCartesianOffset
in interfaceSymmetryInterface
-
getFractionalOffset
- Specified by:
getFractionalOffset
in interfaceSymmetryInterface
-
setOffsetPt
- Specified by:
setOffsetPt
in interfaceSymmetryInterface
-
setOffset
public void setOffset(int nnn) - Specified by:
setOffset
in interfaceSymmetryInterface
-
getUnitCellMultiplier
- Specified by:
getUnitCellMultiplier
in interfaceSymmetryInterface
-
getUnitCellMultiplied
Note, this has no origin shift.- Specified by:
getUnitCellMultiplied
in interfaceSymmetryInterface
-
getCanonicalCopy
- Specified by:
getCanonicalCopy
in interfaceSymmetryInterface
-
getCanonicalCopyTrimmed
- Specified by:
getCanonicalCopyTrimmed
in interfaceSymmetryInterface
-
getUnitCellInfoType
public float getUnitCellInfoType(int infoType) - Specified by:
getUnitCellInfoType
in interfaceSymmetryInterface
-
getUnitCellInfo
- Specified by:
getUnitCellInfo
in interfaceSymmetryInterface
-
isSlab
public boolean isSlab()- Specified by:
isSlab
in interfaceSymmetryInterface
-
isPolymer
public boolean isPolymer()- Specified by:
isPolymer
in interfaceSymmetryInterface
-
getUnitCellVectors
- Specified by:
getUnitCellVectors
in interfaceSymmetryInterface
-
getUnitCell
- Specified by:
getUnitCell
in interfaceSymmetryInterface
- Parameters:
oabc
- [ptorigin, va, vb, vc]setRelative
- a flag only set true for IsosurfaceMeshname
-- Returns:
- this SymmetryInterface
-
isSupercell
public boolean isSupercell()- Specified by:
isSupercell
in interfaceSymmetryInterface
-
notInCentroid
- Specified by:
notInCentroid
in interfaceSymmetryInterface
-
getSymmetryInfoAtom
public Object getSymmetryInfoAtom(ModelSet modelSet, int iatom, String xyz, int op, P3 translation, P3 pt, P3 pt2, String id, int type, float scaleFactor, int nth, int options, int[] opList) - Specified by:
getSymmetryInfoAtom
in interfaceSymmetryInterface
- Parameters:
modelSet
-iatom
-xyz
-op
-translation
- TODOpt
-pt2
- a second point or an offsetid
-type
- T.point, T.lattice, or T.draw, T.matrix4f, T.label, T.list, T.info, T.translation, T.axis, T.plane, T.angle, T.centerscaleFactor
-nth
- TODOoptions
- could be T.offsetopList
-- Returns:
- a variety of object types
-
getSpaceGroupInfo
public Map<String,Object> getSpaceGroupInfo(ModelSet modelSet, String sgName, int modelIndex, boolean isFull, float[] cellParams) - Specified by:
getSpaceGroupInfo
in interfaceSymmetryInterface
-
getV0abc
- Specified by:
getV0abc
in interfaceSymmetryInterface
-
getQuaternionRotation
- Specified by:
getQuaternionRotation
in interfaceSymmetryInterface
-
getFractionalOrigin
- Specified by:
getFractionalOrigin
in interfaceSymmetryInterface
-
getState
- Specified by:
getState
in interfaceSymmetryInterface
-
getIterator
- Specified by:
getIterator
in interfaceSymmetryInterface
-
toFromPrimitive
- Specified by:
toFromPrimitive
in interfaceSymmetryInterface
-
generateCrystalClass
- Specified by:
generateCrystalClass
in interfaceSymmetryInterface
-
calculateCIPChiralityForAtoms
- Specified by:
calculateCIPChiralityForAtoms
in interfaceSymmetryInterface
-
calculateCIPChiralityForSmiles
- Specified by:
calculateCIPChiralityForSmiles
in interfaceSymmetryInterface
- Throws:
Exception
-
getUnitCellInfoMap
- Specified by:
getUnitCellInfoMap
in interfaceSymmetryInterface
-
setUnitCell
- Specified by:
setUnitCell
in interfaceSymmetryInterface
-
findSpaceGroup
public Object findSpaceGroup(Viewer vwr, BS atoms, String xyzList, float[] unitCellParams, T3 origin, T3[] oabc, int flags) - Specified by:
findSpaceGroup
in interfaceSymmetryInterface
-
setSpaceGroupName
- Specified by:
setSpaceGroupName
in interfaceSymmetryInterface
-
setSpaceGroupTo
- Specified by:
setSpaceGroupTo
in interfaceSymmetryInterface
- Parameters:
sg
- ITA number, ITA full name ("48:1")
-
removeDuplicates
- Specified by:
removeDuplicates
in interfaceSymmetryInterface
-
getEquivPoints
- Specified by:
getEquivPoints
in interfaceSymmetryInterface
-
getPeriodicity
public int getPeriodicity()- Specified by:
getPeriodicity
in interfaceSymmetryInterface
-
getDimensionality
public int getDimensionality()- Specified by:
getDimensionality
in interfaceSymmetryInterface
-
getEquivPointList
- Specified by:
getEquivPointList
in interfaceSymmetryInterface
-
getInvariantSymops
- Specified by:
getInvariantSymops
in interfaceSymmetryInterface
-
getWyckoffPosition
- Specified by:
getWyckoffPosition
in interfaceSymmetryInterface
-
getTransform
- Specified by:
getTransform
in interfaceSymmetryInterface
- Parameters:
fracA
-fracB
-- Returns:
- matrix
-
isWithinUnitCell
- Specified by:
isWithinUnitCell
in interfaceSymmetryInterface
-
checkPeriodic
- Specified by:
checkPeriodic
in interfaceSymmetryInterface
-
staticConvertOperation
- Specified by:
staticConvertOperation
in interfaceSymmetryInterface
-
getSubgroupJSON
Retrieve subgroup information for a space group. Returns:values are 1-based so that "0" has special meaning, "-" means ignored; "MnV" is Integer.MIN_VALUE itaFrom itaTo index1 index2 n MnV - - return map for group n, contents of sub_n.json n 0 0 0 return int[][] of critical information n 0 m MnV return map map.subgroups[m] n 0 MnV - return int[] array of list of valid super>>sub n 0 m t return string transform map.subgroups[m].trm[t] n1 n2 MnV - return list map.subgroups.select("WHERE subgroup=n2") n1 n2 m MnV return map map.subgroups.select("WHERE subgroup=n2")[m] n1 n2 m t return string transform map.subgroups.select("WHERE subgroup=n2")[m].trm[t]
Critical information array is: [ isub, ntrm, subIndex, idet, trType ] isub: subgroupNumber ntrm: transformation count subIndex: index of this group-subgroup relationship idet: determinant if determinant >= 1; -1/determinant if determinant invalid input: '<' 1 trType: 1 translationengeliechen, 3 klassengleichen "ct" loss of centering translation, 4 klassengleichen "eu" enlarged unit cell- Specified by:
getSubgroupJSON
in interfaceSymmetryInterface
- Parameters:
vwr
-itaFrom
- group ITA numberitaTo
- subgroup ITA numberindex1
- for a specific index or Integer.MIN_VALUE for all itaFrom; itaTo ignoredindex2
- Integer.MIN_VALUE for all, or an index for a specific transform- Returns:
- Map, List, or String with conjugation class removed (first two characters "a:......")
-
getSpaceGroupJSON
- Specified by:
getSpaceGroupJSON
in interfaceSymmetryInterface
-
getCellWeight
- Specified by:
getCellWeight
in interfaceSymmetryInterface
-
getPrecision
public float getPrecision()- Specified by:
getPrecision
in interfaceSymmetryInterface
-
fixUnitCell
public boolean fixUnitCell(float[] params) - Specified by:
fixUnitCell
in interfaceSymmetryInterface
-
staticGetTransformABC
- Specified by:
staticGetTransformABC
in interfaceSymmetryInterface
-
setSymmetryInfoFromFile
Set space group and unit cell from the auxiliary info generated by XtalSymmetry specific to a given model. Only called by ModelLoader.- Parameters:
ms
-modelIndex
-unitCellParams
-
-
transformUnitCell
-
getITASettingValue
- Specified by:
getITASettingValue
in interfaceSymmetryInterface
-
staticCleanTransform
- Specified by:
staticCleanTransform
in interfaceSymmetryInterface
-
replaceTransformMatrix
- Specified by:
replaceTransformMatrix
in interfaceSymmetryInterface
-
getUnitCellDisplayName
- Specified by:
getUnitCellDisplayName
in interfaceSymmetryInterface
-
staticToRationalXYZ
- Specified by:
staticToRationalXYZ
in interfaceSymmetryInterface
-
getFinalOperationCount
public int getFinalOperationCount()- Specified by:
getFinalOperationCount
in interfaceSymmetryInterface
-
convertTransform
- Specified by:
convertTransform
in interfaceSymmetryInterface
-
staticGetMatrixTransform
- Specified by:
staticGetMatrixTransform
in interfaceSymmetryInterface
-
staticTransformSpaceGroup
- Specified by:
staticTransformSpaceGroup
in interfaceSymmetryInterface
-
setViewer
for the vwr.getSymTemp() only- Specified by:
setViewer
in interfaceSymmetryInterface
- Parameters:
vwr
-- Returns:
- this
-
getUnitCellCenter
- Specified by:
getUnitCellCenter
in interfaceSymmetryInterface
-