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:
java.io.Serializable,javajs.api.JSONEncodable,JmolModulationSet
public class ModulationSet extends Vibration implements 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:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description (package private) float[]axesLengthsunit cell axes -- used in Modulation for calculating magnetic modulationsprivate booleanenabledindicates state of modulated or unmodulatedprivate doublefileOccprivate javajs.util.M3gammaEprivate javajs.util.MatrixgammaIinvjava.util.Map<java.lang.String,java.lang.Float>htUijcurrent value of anisotropic parameter modulation(package private) java.lang.Stringidan identifier for this modulationprivate intiopthe symmetry operation used to generate this atomprivate booleanisCommensuratecommensurate modulations cannot be "undone" and they cannot be turned offprivate booleanisQprivate booleanisSubsystemsubsystems can deliver their own unique unit cell; they are commensurateprivate ModulationSetmodCalcmodCalc is used for calculations independent of what the current setting isprivate javajs.util.Lst<Modulation>modsthe list of all modulations associated with this atomjavajs.util.V3mxyzthe modulated magnetic spinprivate intnOpsthe number of operators in this space group -- needed for occupancy calculation(package private) booleanoccAbsolutefor 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[]occParamsprivate doubleoccSiteMultiplicityprivate floatoccValuefinal occupancy value -- absolute; in range [0,1](package private) javajs.util.P3ptTempprivate javajs.util.P3qtOffsetprivate javajs.util.P3r0the unmodulated original position of this atom; note that x,y,z extended from Vibration(V3) is the current displacement modulation itselfprivate javajs.util.MatrixrIprivate javajs.util.Matrixrsvsthe matrix representation for this atom's symmetry operationprivate floatscalean adjustable scaling factor, as for vibrationsprivate javajs.util.Matrixsigmaprivate floatspinOpthe spin operation for this atom: +1/0/-1private java.lang.Stringstropa string description of the atom's symmetry operatorprivate SymmetryInterfacesymmetrythe space group appropriate to this atomprivate javajs.util.Matrixtauprivate javajs.util.MatrixtFactorInvprivate javajs.util.V3v0Vibrationvibvib is a spin vector when the model has modulation; otherwise an unmodulated vibration.floatvOccthe current value of the occupancy modulation
-
Constructor Summary
Constructors Constructor Description ModulationSet()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddTo(javajs.util.T3 a, float scale)voidaddUTens(java.lang.String utens, float v)ModulationSetcalculate(javajs.util.T3 tuv, boolean isQ)Calculate r_I internal d-space coordinate of an atom.voidgetInfo(java.util.Map<java.lang.String,java.lang.Object> info)private ModulationSetgetModCalc()javajs.util.T3getModPoint(boolean asEnabled)java.lang.ObjectgetModulation(char type, javajs.util.T3 tuv)private floatgetOccupancy()intgetOccupancy100(boolean isTemp)floatgetScale()java.lang.StringgetState()SymmetryInterfacegetSubSystemUnitCell()javajs.util.V3getV3()VibrationgetVibration(boolean forceNew)booleanisEnabled()booleanisNonzero()voidscaleVibration(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 occupancyModulationSetsetMod(java.lang.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.voidsetMoment()floatsetOccupancy(double[] pt, double foccupancy, double siteMult)get the occupancy, first from the reader, then from rendererprivate voidsetVib(boolean isReset, float scale)voidsetXYZ(javajs.util.T3 v)-
Methods inherited from class org.jmol.util.Vibration
addTracePt, clone, setType, startTrace
-
-
-
-
Field Detail
-
id
java.lang.String id
an identifier for this modulation
-
r0
private javajs.util.P3 r0
the unmodulated original position of this atom; note that x,y,z extended from Vibration(V3) is the current displacement modulation itself
-
symmetry
private SymmetryInterface symmetry
the space group appropriate to this atom
-
axesLengths
float[] axesLengths
unit cell axes -- used in Modulation for calculating magnetic modulations
-
nOps
private int nOps
the number of operators in this space group -- needed for occupancy calculation
-
iop
private int iop
the symmetry operation used to generate this atom
-
strop
private java.lang.String strop
a string description of the atom's symmetry operator
-
spinOp
private float spinOp
the spin operation for this atom: +1/0/-1
-
rsvs
private javajs.util.Matrix rsvs
the matrix representation for this atom's symmetry operation
-
vib
public Vibration vib
vib is a spin vector when the model has modulation; otherwise an unmodulated vibration.
-
mods
private javajs.util.Lst<Modulation> mods
the list of all modulations associated with this atom
-
isSubsystem
private boolean isSubsystem
subsystems can deliver their own unique unit cell; they are commensurate
-
isCommensurate
private boolean isCommensurate
commensurate modulations cannot be "undone" and they cannot be turned off
-
fileOcc
private double fileOcc
-
occParams
private double[] occParams
-
occSiteMultiplicity
private double occSiteMultiplicity
-
occAbsolute
boolean occAbsolute
for 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
private ModulationSet modCalc
modCalc is used for calculations independent of what the current setting is
-
mxyz
public javajs.util.V3 mxyz
the modulated magnetic spin
-
htUij
public java.util.Map<java.lang.String,java.lang.Float> htUij
current value of anisotropic parameter modulation
-
vOcc
public float vOcc
the current value of the occupancy modulation
-
occValue
private float occValue
final occupancy value -- absolute; in range [0,1]
-
qtOffset
private javajs.util.P3 qtOffset
-
isQ
private boolean isQ
-
enabled
private boolean enabled
indicates state of modulated or unmodulated
-
scale
private float scale
an 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
-
-
Method Detail
-
getSubSystemUnitCell
public SymmetryInterface 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(java.lang.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
public ModulationSet calculate(javajs.util.T3 tuv, boolean isQ)
Calculate r_I internal d-space coordinate of an atom.- Parameters:
tuv-isQ-- Returns:
- this ModulationSet, with this.rI set to the coordinate
-
addUTens
public void addUTens(java.lang.String utens, float v)
-
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 scale)
-
getState
public java.lang.String getState()
- Specified by:
getStatein interfaceJmolModulationSet
-
getModPoint
public javajs.util.T3 getModPoint(boolean asEnabled)
- Specified by:
getModPointin interfaceJmolModulationSet
-
getModulation
public java.lang.Object getModulation(char type, javajs.util.T3 tuv)- 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
private ModulationSet getModCalc()
-
getInfo
public void getInfo(java.util.Map<java.lang.String,java.lang.Object> info)
-
getVibration
public Vibration getVibration(boolean forceNew)
- 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
-
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 isTemp)
- Overrides:
getOccupancy100in classVibration- Parameters:
isTemp- used only in ModulationSet- Returns:
- Integer.MIN_VALUE if not applicable, occupancy if enabled, -occupancy if not enabled
-
getOccupancy
private float getOccupancy()
-
-