Package org.jmol.util
Class ModulationSet
java.lang.Object
javajs.util.T3
javajs.util.V3
org.jmol.util.Vibration
org.jmol.util.ModulationSet
- All Implemented Interfaces:
Serializable,javajs.api.JSONEncodable,JmolModulationSet
A class to group a set of modulations for an atom as a "vibration" Extends V3
so that it will be a displacement, and its value will be an occupancy
- Author:
- Bob Hanson hansonr@stolaf.edu 8/9/2013
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) float[]unit cell axes -- used in Modulation for calculating magnetic modulationsprivate booleanindicates state of modulated or unmodulatedprivate doubleprivate javajs.util.M3private javajs.util.Matrixcurrent value of anisotropic parameter modulation(package private) Stringan identifier for this modulationprivate intthe symmetry operation used to generate this atomprivate booleancommensurate modulations cannot be "undone" and they cannot be turned offprivate booleanprivate booleansubsystems can deliver their own unique unit cell; they are commensurateprivate ModulationSetmodCalc is used for calculations independent of what the current setting isprivate javajs.util.Lst<Modulation>the list of all modulations associated with this atomjavajs.util.V3the modulated magnetic spinprivate intthe number of operators in this space group -- needed for occupancy calculation(package private) booleanfor Crenels (simple occupational modulation or Legendre displacement modulation, the value determined here is absolute (0 or 1), not an adjustment; set in calculate() by one of the modulationsprivate double[]private doubleprivate floatfinal occupancy value -- absolute; in range [0,1](package private) javajs.util.P3private javajs.util.P3private javajs.util.P3the unmodulated original position of this atom; note that x,y,z extended from Vibration(V3) is the current displacement modulation itselfprivate javajs.util.Matrixprivate javajs.util.Matrixthe matrix representation for this atom's symmetry operationprivate floatan adjustable scaling factor, as for vibrationsprivate javajs.util.Matrixprivate floatthe spin operation for this atom: +1/0/-1private Stringa string description of the atom's symmetry operatorprivate SymmetryInterfacethe space group appropriate to this atomprivate javajs.util.Matrixprivate javajs.util.Matrixprivate javajs.util.V3vib is a spin vector when the model has modulation; otherwise an unmodulated vibration.floatthe current value of the occupancy modulationFields inherited from class org.jmol.util.Vibration
modDim, modScale, showTrace, tracePt, twoPI, TYPE_SPIN, TYPE_VIBRATIONFields inherited from class javajs.util.T3
x, y, z -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddTo(javajs.util.T3 a, float scale) voidcalculate(javajs.util.T3 tuv, boolean isQ) Calculate r_I internal d-space coordinate of an atom.voidprivate ModulationSetjavajs.util.T3getModPoint(boolean asEnabled) getModulation(char type, javajs.util.T3 tuv, boolean occ100) private floatgetOccupancy(boolean checkCutoff) intgetOccupancy100(boolean forVibVis) floatgetScale()getState()javajs.util.V3getV3()getVibration(boolean forceNew) booleanbooleanvoidscaleVibration(float m) javajs.util.T3setCalcPoint(javajs.util.T3 pt, javajs.util.T3 t456, float vibScale, float scale) get updated value for offset vector and for occupancysetMod(String id, javajs.util.P3 r00, javajs.util.P3 r0, int d, javajs.util.Lst<Modulation> mods, javajs.util.M3 gammaE, javajs.util.Matrix[] factors, SymmetryInterface symmetry, int nOps, int iop, Vibration v, boolean isCommensurate) A collection of modulations for a specific atom.voidsetModTQ(javajs.util.T3 a, boolean isOn, javajs.util.T3 qtOffset, boolean isQ, float scale) Set modulation "t" value, which sets which unit cell in sequence we are looking at; d=1 only.voidfloatsetOccupancy(double[] pt, double foccupancy, double siteMult) get the occupancy, first from the reader, then from rendererprivate voidsetVib(boolean isReset, float modulationScale) voidsetXYZ(javajs.util.T3 v) Methods inherited from class org.jmol.util.Vibration
addTracePt, clone, setType, startTraceMethods inherited from class javajs.util.V3
angle, new3, newV, newVsubMethods inherited from class javajs.util.T3
add, add2, add3, ave, cross, distance, distanceSquared, dot, equals, floatToIntBits, hashCode, length, lengthSquared, normalize, scale, scaleAdd2, scaleT, set, setA, setT, sub, sub2, toJSON, toString
-
Field Details
-
id
String idan identifier for this modulation -
r0
private javajs.util.P3 r0the unmodulated original position of this atom; note that x,y,z extended from Vibration(V3) is the current displacement modulation itself -
symmetry
the space group appropriate to this atom -
axesLengths
float[] axesLengthsunit cell axes -- used in Modulation for calculating magnetic modulations -
nOps
private int nOpsthe number of operators in this space group -- needed for occupancy calculation -
iop
private int iopthe symmetry operation used to generate this atom -
strop
a string description of the atom's symmetry operator -
spinOp
private float spinOpthe spin operation for this atom: +1/0/-1 -
rsvs
private javajs.util.Matrix rsvsthe matrix representation for this atom's symmetry operation -
vib
vib is a spin vector when the model has modulation; otherwise an unmodulated vibration. -
mods
the list of all modulations associated with this atom -
isSubsystem
private boolean isSubsystemsubsystems can deliver their own unique unit cell; they are commensurate -
isCommensurate
private boolean isCommensuratecommensurate modulations cannot be "undone" and they cannot be turned off -
fileOcc
private double fileOcc -
occParams
private double[] occParams -
occSiteMultiplicity
private double occSiteMultiplicity -
occAbsolute
boolean occAbsolutefor Crenels (simple occupational modulation or Legendre displacement modulation, the value determined here is absolute (0 or 1), not an adjustment; set in calculate() by one of the modulations -
modCalc
modCalc is used for calculations independent of what the current setting is -
mxyz
public javajs.util.V3 mxyzthe modulated magnetic spin -
htUij
current value of anisotropic parameter modulation -
vOcc
public float vOccthe current value of the occupancy modulation -
occValue
private float occValuefinal occupancy value -- absolute; in range [0,1] -
qtOffset
private javajs.util.P3 qtOffset -
isQ
private boolean isQ -
enabled
private boolean enabledindicates state of modulated or unmodulated -
scale
private float scalean adjustable scaling factor, as for vibrations -
gammaE
private javajs.util.M3 gammaE -
gammaIinv
private javajs.util.Matrix gammaIinv -
sigma
private javajs.util.Matrix sigma -
tau
private javajs.util.Matrix tau -
rI
private javajs.util.Matrix rI -
tFactorInv
private javajs.util.Matrix tFactorInv -
ptTemp
javajs.util.P3 ptTemp -
v0
private javajs.util.V3 v0
-
-
Constructor Details
-
ModulationSet
public ModulationSet()
-
-
Method Details
-
getSubSystemUnitCell
- Specified by:
getSubSystemUnitCellin interfaceJmolModulationSet
-
isEnabled
public boolean isEnabled()- Specified by:
isEnabledin interfaceJmolModulationSet
-
getScale
public float getScale()- Specified by:
getScalein interfaceJmolModulationSet
-
setMod
public ModulationSet setMod(String id, javajs.util.P3 r00, javajs.util.P3 r0, int d, javajs.util.Lst<Modulation> mods, javajs.util.M3 gammaE, javajs.util.Matrix[] factors, SymmetryInterface symmetry, int nOps, int iop, Vibration v, boolean isCommensurate) A collection of modulations for a specific atom.- Parameters:
id-r00- originating atom position prior to application of symmetryr0- unmodulated (average) position after application of symmetryd-mods-gammaE-factors- including sigma and tFactorsymmetry-iop-nOps-v- TODOisCommensurate- TODO- Returns:
- this
-
calculate
Calculate r_I internal d-space coordinate of an atom.- Parameters:
tuv-isQ-- Returns:
- this ModulationSet, with this.rI set to the coordinate
-
addUTens
-
setModTQ
public void setModTQ(javajs.util.T3 a, boolean isOn, javajs.util.T3 qtOffset, boolean isQ, float scale) Set modulation "t" value, which sets which unit cell in sequence we are looking at; d=1 only.- Specified by:
setModTQin interfaceJmolModulationSet- Parameters:
isOn-qtOffset-isQ-scale-
-
addTo
public void addTo(javajs.util.T3 a, float scale) - Specified by:
addToin interfaceJmolModulationSet
-
setVib
private void setVib(boolean isReset, float modulationScale) -
getState
- Specified by:
getStatein interfaceJmolModulationSet
-
getModPoint
public javajs.util.T3 getModPoint(boolean asEnabled) - Specified by:
getModPointin interfaceJmolModulationSet
-
getModulation
- Specified by:
getModulationin interfaceJmolModulationSet
-
setCalcPoint
public javajs.util.T3 setCalcPoint(javajs.util.T3 pt, javajs.util.T3 t456, float vibScale, float scale) get updated value for offset vector and for occupancy- Overrides:
setCalcPointin classVibration- Returns:
- pt
-
getModCalc
-
getInfo
-
setXYZ
public void setXYZ(javajs.util.T3 v) -
getVibration
- Specified by:
getVibrationin interfaceJmolModulationSet
-
getV3
public javajs.util.V3 getV3()- Specified by:
getV3in interfaceJmolModulationSet
-
scaleVibration
public void scaleVibration(float m) - Specified by:
scaleVibrationin interfaceJmolModulationSet
-
setMoment
public void setMoment()- Specified by:
setMomentin interfaceJmolModulationSet
-
isNonzero
public boolean isNonzero() -
setOccupancy
public float setOccupancy(double[] pt, double foccupancy, double siteMult) get the occupancy, first from the reader, then from renderer- Parameters:
pt-foccupancy-siteMult- or 0 is this is not relevant- Returns:
- occupancy on [0,1]
-
getOccupancy100
public int getOccupancy100(boolean forVibVis) - Overrides:
getOccupancy100in classVibration- Parameters:
forVibVis- used only in ModulationSet- Returns:
- Integer.MIN_VALUE if not applicable, occupancy if enabled, -occupancy if not enabled
-
getOccupancy
private float getOccupancy(boolean checkCutoff)
-