org.jmol.util
Class Elements

java.lang.Object
  extended by org.jmol.util.Elements

public class Elements
extends java.lang.Object


Field Summary
static int altElementMax
          length of the altElementSymbols, altElementNames, altElementNumbers arrays
private static java.lang.String[] altElementNames
           
private static short[] altElementNumbers
           
private static java.lang.String[] altElementSymbols
           
private static short[] anionLookupTable
           
static float[] atomicMass
           
private static java.util.BitSet bsAnions
           
private static java.util.BitSet bsCations
           
private static short[] cationLookupTable
           
static short[] covalentMars
          Default table of covalent Radii stored as a short mar ...
static java.lang.String[] elementNames
           
static int elementNumberMax
          one larger than the last elementNumber, same as elementSymbols.length
static java.lang.String[] elementSymbols
          The default elementSymbols.
static int firstIsotope
          first entry of an actual isotope int the altElementSymbols, altElementNames, altElementNumbers arrays
static int FORMAL_CHARGE_MAX
           
static int FORMAL_CHARGE_MIN
          ionic radii are looked up using an array of shorts (16 bits each) that contains the atomic number, the charge, and the radius in two consecutive values, encoded as follows: (atomicNumber << 4) + (charge + 4), radiusAngstroms*1000 That is, (atomicNumber * 16 + charge + 4), milliAngstromRadius This allows for charges from -4 to 11, but we only really have -4 to 7.
static java.util.Map<java.lang.String,java.lang.Integer> htElementMap
           
private static float[] hydrophobicities
           
private static int[] naturalIsotopeMasses
           
private static java.lang.String naturalIsotopes
           
static short[] vanderwaalsMars
          Default table of van der Waals Radii.
 
Constructor Summary
Elements()
           
 
Method Summary
static int altElementIndexFromNumber(int atomicAndIsotopeNumber)
           
static java.lang.String altElementNameFromIndex(int i)
           
static short altElementNumberFromIndex(int i)
           
static java.lang.String altElementSymbolFromIndex(int i)
           
static java.lang.String altIsotopeSymbolFromIndex(int i)
           
static java.lang.String altIsotopeSymbolFromIndex2(int i)
           
static java.lang.String elementNameFromNumber(int elementNumber)
           
static short elementNumberFromSymbol(java.lang.String elementSymbol, boolean isSilent)
           
static java.lang.String elementSymbolFromNumber(int elementNumber)
           
static short getAtomicAndIsotopeNumber(int n, int mass)
           
static float getAtomicMass(int i)
           
static float getBondingRadiusFloat(int atomicNumber, int charge, short[] table)
           
static float getBondingRadiusFloat(short atomicNumberAndIsotope, int charge)
           
static short getElementNumber(short atomicAndIsotopeNumber)
           
static float getHydrophobicity(int i)
           
static short getIsotopeNumber(short atomicAndIsotopeNumber)
           
static int getNaturalIsotope(int elementNumber)
           
static int getVanderwaalsMar(int i, EnumVdw type)
           
static boolean isNaturalIsotope(java.lang.String isotopeSymbol)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

elementSymbols

public static final java.lang.String[] elementSymbols
The default elementSymbols. Presumably the only entry which may cause confusion is element 0, whose symbol we have defined as "Xx".


atomicMass

public static final float[] atomicMass

elementNumberMax

public static final int elementNumberMax
one larger than the last elementNumber, same as elementSymbols.length


htElementMap

public static java.util.Map<java.lang.String,java.lang.Integer> htElementMap

elementNames

public static final java.lang.String[] elementNames

naturalIsotopeMasses

private static int[] naturalIsotopeMasses

naturalIsotopes

private static final java.lang.String naturalIsotopes
See Also:
Constant Field Values

firstIsotope

public static final int firstIsotope
first entry of an actual isotope int the altElementSymbols, altElementNames, altElementNumbers arrays

See Also:
Constant Field Values

altElementNumbers

private static final short[] altElementNumbers

altElementMax

public static final int altElementMax
length of the altElementSymbols, altElementNames, altElementNumbers arrays


altElementSymbols

private static final java.lang.String[] altElementSymbols

altElementNames

private static final java.lang.String[] altElementNames

vanderwaalsMars

public static final short[] vanderwaalsMars
Default table of van der Waals Radii. values are stored as MAR -- Milli Angstrom Radius Used for spacefill rendering of atoms. Values taken from OpenBabel. Note that AUTO_JMOL, AUTO_BABEL, and AUTO_RASMOL are 4, 5, and 6, respectively, so their mod will be JMOL, BABEL, and RASMOL. AUTO is 8, so will default to Jmol

See Also:
openbabel.sourceforge.net, vdw_comparison.xls

covalentMars

public static final short[] covalentMars
Default table of covalent Radii stored as a short mar ... Milli Angstrom Radius Values taken from OpenBabel.

See Also:
openbabel.sourceforge.net

FORMAL_CHARGE_MIN

public static final int FORMAL_CHARGE_MIN
ionic radii are looked up using an array of shorts (16 bits each) that contains the atomic number, the charge, and the radius in two consecutive values, encoded as follows: (atomicNumber << 4) + (charge + 4), radiusAngstroms*1000 That is, (atomicNumber * 16 + charge + 4), milliAngstromRadius This allows for charges from -4 to 11, but we only really have -4 to 7. This data is from Handbook of Chemistry and Physics. 48th Ed, 1967-8, p. F143 (scanned for Jmol by Phillip Barak, Jan 2004) Reorganized from two separate arrays 9/2006 by Bob Hanson, who thought it was just too hard to look these up and, if necessary, add or modify. At the same time, the table was split into cations and anions for easier retrieval. O- and N+ removed 9/2008 - BH. The problem is that the formal charge is used to determine bonding radius. But these formal charges are different than the charges used in compilation of HCP data (which is crystal ionic radii). Specifically, because O- and N+ are very common in organic compounds, I have removed their radii from the table FOR OUR PURPOSES HERE. I suppose there are some ionic compounds that have O- and N+ as isolated ions, but what they would be I have no clue. Better to be safe and go with somewhat more reasonable values. Argh. Changed for Jmol 11.6.RC15

See Also:
Constant Field Values

FORMAL_CHARGE_MAX

public static final int FORMAL_CHARGE_MAX
See Also:
Constant Field Values

cationLookupTable

private static final short[] cationLookupTable

anionLookupTable

private static final short[] anionLookupTable

bsCations

private static final java.util.BitSet bsCations

bsAnions

private static final java.util.BitSet bsAnions

hydrophobicities

private static final float[] hydrophobicities
Constructor Detail

Elements

public Elements()
Method Detail

getAtomicMass

public static float getAtomicMass(int i)

elementNumberFromSymbol

public static final short elementNumberFromSymbol(java.lang.String elementSymbol,
                                                  boolean isSilent)
Parameters:
elementSymbol - First char must be upper case, second char accepts upper or lower case
isSilent - TODO
Returns:
elementNumber = atomicNumber + IsotopeNumber*128

elementSymbolFromNumber

public static final java.lang.String elementSymbolFromNumber(int elementNumber)
Parameters:
elementNumber - may be atomicNumber + isotopeNumber*128
Returns:
elementSymbol

elementNameFromNumber

public static final java.lang.String elementNameFromNumber(int elementNumber)
Parameters:
elementNumber - may be atomicNumber + isotopeNumber*128
Returns:
elementName

altElementNameFromIndex

public static final java.lang.String altElementNameFromIndex(int i)
Parameters:
i - index into altElementNames
Returns:
elementName

altElementNumberFromIndex

public static final short altElementNumberFromIndex(int i)
Parameters:
i - index into altElementNumbers
Returns:
elementNumber (may be atomicNumber + isotopeNumber*128)

altElementSymbolFromIndex

public static final java.lang.String altElementSymbolFromIndex(int i)
Parameters:
i - index into altElementSymbols
Returns:
elementSymbol

altIsotopeSymbolFromIndex

public static final java.lang.String altIsotopeSymbolFromIndex(int i)
Parameters:
i - index into altElementSymbols
Returns:
2H

altIsotopeSymbolFromIndex2

public static final java.lang.String altIsotopeSymbolFromIndex2(int i)
Parameters:
i - index into altElementSymbols
Returns:
H2

getElementNumber

public static final short getElementNumber(short atomicAndIsotopeNumber)

getIsotopeNumber

public static final short getIsotopeNumber(short atomicAndIsotopeNumber)

getAtomicAndIsotopeNumber

public static final short getAtomicAndIsotopeNumber(int n,
                                                    int mass)

altElementIndexFromNumber

public static final int altElementIndexFromNumber(int atomicAndIsotopeNumber)
Parameters:
atomicAndIsotopeNumber - (may be atomicNumber + isotopeNumber*128)
Returns:
index into altElementNumbers

getNaturalIsotope

public static int getNaturalIsotope(int elementNumber)

isNaturalIsotope

public static final boolean isNaturalIsotope(java.lang.String isotopeSymbol)

getBondingRadiusFloat

public static float getBondingRadiusFloat(short atomicNumberAndIsotope,
                                          int charge)

getBondingRadiusFloat

public static float getBondingRadiusFloat(int atomicNumber,
                                          int charge,
                                          short[] table)

getVanderwaalsMar

public static int getVanderwaalsMar(int i,
                                    EnumVdw type)

getHydrophobicity

public static float getHydrophobicity(int i)