Package org.jmol.adapter.smarter
Class XtalSymmetry
java.lang.Object
org.jmol.adapter.smarter.XtalSymmetry
A class used by AtomSetCollection for building the symmetry of a model and
generating new atoms based on that symmetry.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate AtomSetCollectionReader
private boolean
private AtomSetCollection
private SymmetryInterface
private float[]
private int
private javajs.util.SB
private boolean
private boolean
private int
private boolean
private boolean
private boolean
private String
private int
private int[]
private boolean
private int
private static final float
private javajs.util.P3i
private javajs.util.P3
(package private) static javajs.util.M4
private javajs.util.P3i
private javajs.util.P3
private javajs.util.M3
private int
private int
private int
private float
private static final int
private static final int
private static final int
private final javajs.util.P3
private javajs.util.P3
private float
range minima and maxima -- also usedf for cartesians comparisonsprivate float
range minima and maxima -- also usedf for cartesians comparisonsprivate float
range minima and maxima -- also usedf for cartesians comparisonsprivate float
range minima and maxima -- also usedf for cartesians comparisonsprivate float
range minima and maxima -- also usedf for cartesians comparisonsprivate float
range minima and maxima -- also usedf for cartesians comparisonsprivate SymmetryInterface
private float
private javajs.util.Lst<float[]>
private float[]
private javajs.util.V3[]
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddRotatedTensor
(Atom a, Tensor t, int iSym, boolean reset, SymmetryInterface symmetry) (package private) int
addSpaceGroupOperation
(String xyz, boolean andSetLattice) private void
adjustRangeMinMax
(javajs.util.T3[] oabc) private void
applyAllSymmetry
(MSInterface ms, javajs.util.BS bsAtoms) void
applySymmetryBio
(Map<String, Object> thisBiomolecule, boolean applySymmetryToBonds, String filter) (package private) SymmetryInterface
applySymmetryFromReader
(SymmetryInterface readerSymmetry) private void
private void
duplicateAtomProperties
(int nTimes) private void
finalizeSymmetry
(SymmetryInterface symmetry) void
finalizeUnitCell
(javajs.util.P3 ptSupercell) Ensure that ModelLoader sets up the supercell unit cell.Get the symmetry that was in place prior to any supercell businessjavajs.util.T3
boolean
isWithinCell
(int ndims, javajs.util.P3 pt, float minX, float maxX, float minY, float maxY, float minZ, float maxZ, float slop) boolean
removePacking
(int ndims, javajs.util.P3 pt, float minX, float maxX, float minY, float maxY, float minZ, float maxZ, float slop) private void
reset()
void
magCIF files have moments expressed as Bohr magnetons along the cryrstallographic axes.set
(AtomSetCollectionReader reader) private void
setAtomSetSpaceGroupName
(String spaceGroupName) private void
void
setLatticeParameter
(int latt) private void
setMinMax
(int dim, int kcode, int maxX, int maxY, int maxZ) void
setSpaceGroupFrom
(SymmetryInterface readerSymmetry) int
(package private) SymmetryInterface
setSymmetry
(SymmetryInterface symmetry) private void
setSymmetryMinMax
(javajs.util.P3 c) private void
private void
setSymmetryRange
(float factor) (package private) void
void
setTimeReversal
(int op, int timeRev) private void
setUnitCell
(float[] info, javajs.util.M3 matUnitCellOrientation, javajs.util.P3 unitCellOffset) private int
symmetryAddAtoms
(int transX, int transY, int transZ, int baseCount, int pt, int iCellOpPt, javajs.util.P3[] cartesians, MSInterface ms, javajs.util.BS excludedOps, int[] atomMap) private void
trimToUnitCell
(int iAtomFirst) private javajs.util.BS
Update asc.bsAtoms to include all atoms, or at least all atoms that are still viable from the reader.
-
Field Details
-
PARTICLE_NONE
private static final int PARTICLE_NONE- See Also:
-
PARTICLE_CHAIN
private static final int PARTICLE_CHAIN- See Also:
-
PARTICLE_SYMOP
private static final int PARTICLE_SYMOP- See Also:
-
MAX_INTERCHAIN_BOND_2
private static final float MAX_INTERCHAIN_BOND_2- See Also:
-
acr
-
asc
-
baseSymmetry
-
sym2
-
applySymmetryToBonds
private boolean applySymmetryToBonds -
centroidPacked
private boolean centroidPacked -
doCentroidUnitCell
private boolean doCentroidUnitCell -
doNormalize
private boolean doNormalize -
doPackUnitCell
private boolean doPackUnitCell -
latticeOnly
private boolean latticeOnly -
trajectoryUnitCells
private javajs.util.Lst<float[]> trajectoryUnitCells -
unitCellParams
private float[] unitCellParams -
baseUnitCell
private float[] baseUnitCell -
latticeCells
private int[] latticeCells -
unitCellTranslations
private javajs.util.V3[] unitCellTranslations -
symmetryRange
private float symmetryRange -
packingError
private float packingError -
filterSymop
-
bondsFound
private javajs.util.SB bondsFound -
ndims
private int ndims -
firstAtom
private int firstAtom -
latticeOp
private int latticeOp -
noSymmetryCount
private int noSymmetryCount -
nVib
private int nVib -
ptTemp
private javajs.util.P3 ptTemp -
mTemp
private javajs.util.M3 mTemp -
rminx
private float rminxrange minima and maxima -- also usedf for cartesians comparisons -
rminy
private float rminyrange minima and maxima -- also usedf for cartesians comparisons -
rminz
private float rminzrange minima and maxima -- also usedf for cartesians comparisons -
rmaxx
private float rmaxxrange minima and maxima -- also usedf for cartesians comparisons -
rmaxy
private float rmaxyrange minima and maxima -- also usedf for cartesians comparisons -
rmaxz
private float rmaxzrange minima and maxima -- also usedf for cartesians comparisons -
ptOffset
private final javajs.util.P3 ptOffset -
minXYZ
private javajs.util.P3i minXYZ -
maxXYZ
private javajs.util.P3i maxXYZ -
minXYZ0
private javajs.util.P3 minXYZ0 -
maxXYZ0
private javajs.util.P3 maxXYZ0 -
checkAll
private boolean checkAll -
bondCount0
private int bondCount0 -
symmetry
-
disorderMap
-
disorderMapMax
private int disorderMapMax -
mident
static javajs.util.M4 mident
-
-
Constructor Details
-
XtalSymmetry
public XtalSymmetry()
-
-
Method Details
-
set
-
getSymmetry
-
setSymmetry
-
setSymmetryRange
private void setSymmetryRange(float factor) -
setLatticeCells
private void setLatticeCells() -
setUnitCell
private void setUnitCell(float[] info, javajs.util.M3 matUnitCellOrientation, javajs.util.P3 unitCellOffset) -
addSpaceGroupOperation
-
setLatticeParameter
public void setLatticeParameter(int latt) -
applySymmetryFromReader
- Throws:
Exception
-
setSpaceGroupFrom
-
setAtomSetSpaceGroupName
-
applySymmetryLattice
- Throws:
Exception
-
setMinMax
private void setMinMax(int dim, int kcode, int maxX, int maxY, int maxZ) -
trimToUnitCell
private void trimToUnitCell(int iAtomFirst) -
updateBSAtoms
private javajs.util.BS updateBSAtoms()Update asc.bsAtoms to include all atoms, or at least all atoms that are still viable from the reader.- Returns:
- updated BS
-
adjustRangeMinMax
private void adjustRangeMinMax(javajs.util.T3[] oabc) -
setSymmetryMinMax
private void setSymmetryMinMax(javajs.util.P3 c) -
isWithinCell
public boolean isWithinCell(int ndims, javajs.util.P3 pt, float minX, float maxX, float minY, float maxY, float minZ, float maxZ, float slop) -
removePacking
public boolean removePacking(int ndims, javajs.util.P3 pt, float minX, float maxX, float minY, float maxY, float minZ, float maxZ, float slop) -
applyAllSymmetry
- Parameters:
ms
- modulated structure interfacebsAtoms
- relating to supercells- Throws:
Exception
-
symmetryAddAtoms
private int symmetryAddAtoms(int transX, int transY, int transZ, int baseCount, int pt, int iCellOpPt, javajs.util.P3[] cartesians, MSInterface ms, javajs.util.BS excludedOps, int[] atomMap) throws Exception - Throws:
Exception
-
duplicateAtomProperties
private void duplicateAtomProperties(int nTimes) -
finalizeSymmetry
-
setSymmetryOps
private void setSymmetryOps() -
getOverallSpan
public javajs.util.T3 getOverallSpan() -
applySymmetryBio
-
reset
private void reset() -
addRotatedTensor
public Tensor addRotatedTensor(Atom a, Tensor t, int iSym, boolean reset, SymmetryInterface symmetry) -
setTensors
void setTensors() -
setTimeReversal
public void setTimeReversal(int op, int timeRev) -
setSpinVectors
public int setSpinVectors() -
scaleFractionalVibs
public void scaleFractionalVibs()magCIF files have moments expressed as Bohr magnetons along the cryrstallographic axes. These have to be "fractionalized" in order to be properly handled by symmetry operations, then, in the end, turned into Cartesians. It is not clear to me at all how this would be handled if there are subsystems. This method must be run PRIOR to applying symmetry and thus prior to creation of modulation sets. -
getBaseSymmetry
Get the symmetry that was in place prior to any supercell business- Returns:
- base symmetry
-
finalizeUnitCell
public void finalizeUnitCell(javajs.util.P3 ptSupercell) Ensure that ModelLoader sets up the supercell unit cell.- Parameters:
ptSupercell
-
-