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 AtomSetCollectionReaderprivate booleanprivate AtomSetCollectionprivate SymmetryInterfaceprivate float[]private intprivate javajs.util.SBprivate booleanprivate booleanprivate intprivate booleanprivate booleanprivate booleanprivate Stringprivate intprivate int[]private booleanprivate intprivate static final floatprivate javajs.util.P3iprivate javajs.util.P3(package private) static javajs.util.M4private javajs.util.P3iprivate javajs.util.P3private javajs.util.M3private intprivate intprivate intprivate floatprivate static final intprivate static final intprivate static final intprivate final javajs.util.P3private javajs.util.P3private floatrange minima and maxima -- also usedf for cartesians comparisonsprivate floatrange minima and maxima -- also usedf for cartesians comparisonsprivate floatrange minima and maxima -- also usedf for cartesians comparisonsprivate floatrange minima and maxima -- also usedf for cartesians comparisonsprivate floatrange minima and maxima -- also usedf for cartesians comparisonsprivate floatrange minima and maxima -- also usedf for cartesians comparisonsprivate SymmetryInterfaceprivate floatprivate 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) intaddSpaceGroupOperation(String xyz, boolean andSetLattice) private voidadjustRangeMinMax(javajs.util.T3[] oabc) private voidapplyAllSymmetry(MSInterface ms, javajs.util.BS bsAtoms) voidapplySymmetryBio(Map<String, Object> thisBiomolecule, boolean applySymmetryToBonds, String filter) (package private) SymmetryInterfaceapplySymmetryFromReader(SymmetryInterface readerSymmetry) private voidprivate voidduplicateAtomProperties(int nTimes) private voidfinalizeSymmetry(SymmetryInterface symmetry) voidfinalizeUnitCell(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.T3booleanisWithinCell(int ndims, javajs.util.P3 pt, float minX, float maxX, float minY, float maxY, float minZ, float maxZ, float slop) booleanremovePacking(int ndims, javajs.util.P3 pt, float minX, float maxX, float minY, float maxY, float minZ, float maxZ, float slop) private voidreset()voidmagCIF files have moments expressed as Bohr magnetons along the cryrstallographic axes.set(AtomSetCollectionReader reader) private voidsetAtomSetSpaceGroupName(String spaceGroupName) private voidvoidsetLatticeParameter(int latt) private voidsetMinMax(int dim, int kcode, int maxX, int maxY, int maxZ) voidsetSpaceGroupFrom(SymmetryInterface readerSymmetry) int(package private) SymmetryInterfacesetSymmetry(SymmetryInterface symmetry) private voidsetSymmetryMinMax(javajs.util.P3 c) private voidprivate voidsetSymmetryRange(float factor) (package private) voidvoidsetTimeReversal(int op, int timeRev) private voidsetUnitCell(float[] info, javajs.util.M3 matUnitCellOrientation, javajs.util.P3 unitCellOffset) private intsymmetryAddAtoms(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 voidtrimToUnitCell(int iAtomFirst) private javajs.util.BSUpdate 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-
-