public class Tensor
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private static float |
ADP_FACTOR |
java.lang.String |
altType |
double[][] |
asymMatrix |
int |
atomIndex1 |
int |
atomIndex2 |
int |
eigenSignMask |
float[] |
eigenValues |
javajs.util.V3[] |
eigenVectors |
boolean |
forThermalEllipsoid |
java.lang.String |
id |
private static java.lang.String |
infoList |
private static float |
INTERACTION_FACTOR |
boolean |
isIsotropic |
boolean |
isModulated |
boolean |
isUnmodulated |
int |
iType |
private static java.lang.String |
KNOWN_TYPES |
private static float |
MAGNETIC_SUSCEPTIBILITY_FACTOR |
int |
modelIndex |
float[] |
parBorU |
private boolean |
sortIso |
double[][] |
symMatrix |
private static EigenSort |
tSort |
java.lang.String |
type |
static int |
TYPE_ADP |
static int |
TYPE_CHARGE |
static int |
TYPE_EFG |
static int |
TYPE_ISC |
static int |
TYPE_ISO |
static int |
TYPE_MS |
static int |
TYPE_OTHER |
static int |
TYPE_QUADRUPOLE |
static int |
TYPE_TLS_R |
static int |
TYPE_TLS_U |
private float |
typeFactor |
Constructor and Description |
---|
Tensor()
Although this constructor is public, to be a valid tensor, one must invoke one of the
"setFrom" methods.
|
Modifier and Type | Method and Description |
---|---|
float |
anisotropy()
anisotropy = directed distance from (center of two closest) to (the furthest)
|
float |
asymmetry()
asymmetry = deviation from a symmetric tensor
|
Tensor |
copyTensor() |
private static java.util.Comparator<? super java.lang.Object[]> |
getEigenSort() |
float |
getFactoredValue(int i)
Returns a factored eigenvalue; thermal ellipsoids use sqrt(abs(eigenvalue)) for
ellipsoid axes; others use just use abs(eigenvalue); all cases get factored by
typeFactor
|
java.lang.Object |
getInfo(java.lang.String infoType)
returns an object of the specified type, including "eigenvalues",
"eigenvectors", "asymmetric", "symmetric", "trace", "indices", and "type"
|
private static int |
getInfoIndex(java.lang.String infoType) |
private static int |
getType(java.lang.String type) |
boolean |
isEquiv(Tensor t) |
static boolean |
isFloatInfo(java.lang.String infoType) |
float |
isotropy()
isotropy = average of eigenvalues
|
boolean |
isSelected(BS bsSelected,
int iAtom) |
private void |
newTensorType(javajs.util.V3[] vectors,
float[] values,
java.lang.String type,
java.lang.String id)
common processing of eigenvectors.
|
private void |
processType()
Sets typeFactor, altType, isIsotropic, forThermalEllipsoid;
type "iso" changed to "" here.
|
float |
reducedAnisotropy()
reduced anisotropy = largest difference from isotropy
(may be negative)
|
void |
setAtomIndexes(int index1,
int index2) |
Tensor |
setFromAsymmetricTensor(double[][] asymmetricTensor,
java.lang.String type,
java.lang.String id)
Standard constructor for QM tensors
|
Tensor |
setFromAxes(javajs.util.V3[] axes)
Standard constructor for ellipsoids based on axes
|
Tensor |
setFromEigenVectors(javajs.util.V3[] eigenVectors,
float[] eigenValues,
java.lang.String type,
java.lang.String id,
Tensor t)
Standard constructor for charge and iso.
|
Tensor |
setFromThermalEquation(double[] coefs,
java.lang.String id)
standard constructor for thermal ellipsoids convention beta
(see http://www.iucr.org/iucr-top/comm/cnom/adp/finrepone/finrepone.html)
|
Tensor |
setType(java.lang.String type)
Note that type may be null here to skip type initialization
and allow later setting of type; this should be used with care.
|
float |
skew()
a measure of asymmetry.
|
private void |
sortAndNormalize()
The expression:
|sigma_3 - sigma_iso| >= |sigma_1 - sigma_iso| >= |sigma_2 - sigma_iso|
simply sorts the values from largest to smallest or smallest to largest,
depending upon the direction of the asymmetry, always setting the last
value to be the farthest from the mean.
|
float |
span()
width of the signal; |e2 - e0|
|
java.lang.String |
toString() |
private static final float ADP_FACTOR
private static final float MAGNETIC_SUSCEPTIBILITY_FACTOR
private static final float INTERACTION_FACTOR
private static EigenSort tSort
public java.lang.String id
public java.lang.String type
public int iType
private static final java.lang.String KNOWN_TYPES
public static final int TYPE_OTHER
public static final int TYPE_ISO
public static final int TYPE_ADP
public static final int TYPE_TLS_U
public static final int TYPE_TLS_R
public static final int TYPE_MS
public static final int TYPE_EFG
public static final int TYPE_ISC
public static final int TYPE_CHARGE
public static final int TYPE_QUADRUPOLE
public double[][] asymMatrix
public double[][] symMatrix
public javajs.util.V3[] eigenVectors
public float[] eigenValues
public float[] parBorU
public java.lang.String altType
public boolean isIsotropic
public boolean forThermalEllipsoid
public int eigenSignMask
private float typeFactor
private boolean sortIso
public int modelIndex
public int atomIndex1
public int atomIndex2
public boolean isModulated
public boolean isUnmodulated
private static final java.lang.String infoList
public Tensor()
private static int getType(java.lang.String type)
private static int getInfoIndex(java.lang.String infoType)
public static boolean isFloatInfo(java.lang.String infoType)
public java.lang.Object getInfo(java.lang.String infoType)
infoType
- public float isotropy()
public float span()
public float skew()
public float anisotropy()
public float reducedAnisotropy()
public float asymmetry()
public Tensor copyTensor()
public Tensor setFromAsymmetricTensor(double[][] asymmetricTensor, java.lang.String type, java.lang.String id)
asymmetricTensor
- type
- id
- public Tensor setFromEigenVectors(javajs.util.V3[] eigenVectors, float[] eigenValues, java.lang.String type, java.lang.String id, Tensor t)
eigenVectors
- eigenValues
- type
- id
- t
- public Tensor setFromAxes(javajs.util.V3[] axes)
axes
- public Tensor setFromThermalEquation(double[] coefs, java.lang.String id)
coefs
- id
- public Tensor setType(java.lang.String type)
type
- public float getFactoredValue(int i)
i
- public void setAtomIndexes(int index1, int index2)
public boolean isSelected(BS bsSelected, int iAtom)
private void newTensorType(javajs.util.V3[] vectors, float[] values, java.lang.String type, java.lang.String id)
vectors
- values
- type
- id
- private void processType()
private void sortAndNormalize()
public boolean isEquiv(Tensor t)
private static java.util.Comparator<? super java.lang.Object[]> getEigenSort()
public java.lang.String toString()
toString
in class java.lang.Object