Class PeriodicSystem


  • @PublicAPI
    public class PeriodicSystem
    extends ChemConst
    Periodic System of the Elements. Provides basic information of the chemical elements and their isotopes.

    Information on the elements are stored at element.zip. By default this file is located at the chemaxon directory but it can be overwritten by a file having the same name at user_home/chemaxon directory.

    Information on the elements are stored at isotopes.data. By default this file is located at the chemaxon directory but it can be overwritten by a file having the same name at user_home/chemaxon directory.

    Metal/non-metal classification of elements is based on PubChem Periodic Table of Elements.

    API usage example:

            int elementCount = PeriodicSystem.getElementCount();        // number of elements in the periodic system
            int isotopeCount = PeriodicSystem.getIsotopeCount();        // number of isotopes in the periodic system
            String symbol = PeriodicSystem.getSymbol(6);                // element symbol of the 6th element
            String name = PeriodicSystem.getName(6);                    // element name of the 6th element
            int atomicNumber = PeriodicSystem.getAtomicNumber("C");     // atomic number of carbon
            double mass = PeriodicSystem.getMass(6);                    // elemental mass (weight) of an element
            int precision = PeriodicSystem.getMassPrecision(6);         // precision of a certain the elemental mass (weight)
            int isotopes = PeriodicSystem.getIsotopeCount(6);           // number of isotopes of carbon
      int mainIsotope =
              PeriodicSystem.getMostFrequentNaturalIsotope(6);    // the most frequent natural isotope of carbon
            double isotopeMass = PeriodicSystem.getMass(6, 14);         // isotopic mass (weight) of carbon 14
            int isotopePrecision =
                    PeriodicSystem.getMassPrecision(6, 14);             // precision of a certain isotopic mass (weight)
            int deuterium = PeriodicSystem.getAtomicNumber("D");        // atomic number of Deuterium
     
    • Constructor Detail

      • PeriodicSystem

        public PeriodicSystem()
    • Method Detail

      • getElementCount

        public static int getElementCount()
        Number of elements in the periodic system
        Returns:
        number of element
      • getIsotopeCount

        public static int getIsotopeCount()
        Number of isotopes in the periodic system
        Returns:
        number of isotopes
      • getIsotopeCount

        public static int getIsotopeCount​(int z)
        Number of isotopes of the element
        Parameters:
        z - atomic number of the element (protons)
        Returns:
        number of isotopes
      • getIsotope

        public static int getIsotope​(int z,
                                     int i)
        Retrieves an isotope of the element
        Parameters:
        z - atomic number of the element (protons)
        i - index of the isotope (0 based)
        Returns:
        mass number of the isotope
      • getName

        public static String getName​(int z)
        Name of the element
        Parameters:
        z - atomic number (protons)
        Returns:
        element name
      • getSymbol

        public static String getSymbol​(int z)
        Symbol of the element
        Parameters:
        z - atomic number (protons)
        Returns:
        element symbol
      • getMass

        public static double getMass​(int z)
        Atomic weight of the element based on the natural abundance of its isotopes
        Parameters:
        z - atomic number (protons)
        Returns:
        elemental mass
      • getMass

        public static double getMass​(int z,
                                     int m)
        Atomic weight of an isotope
        Parameters:
        z - atomic number of the isotope
        m - mass number of the isotope (0 for element mass)
        Returns:
        isotope mass (0 if isotope does not exist)
      • getMassPrecision

        public static int getMassPrecision​(int z)
        The precision of an elemental mass is the number of measured digits after the decimal separator. For example, the mass of Mg is 24.3050, so its precision is 4.
        Parameters:
        z - atomic number (protons)
        Returns:
        the number of significant digits after the decimal point
      • getMassPrecision

        public static int getMassPrecision​(int z,
                                           int m)
        The precision of an isotopic mass is the number of measured digits after the decimal separator. For example, the mass of [4He] is 4.002603250, so its precision is 9.
        Parameters:
        z - atomic number (protons)
        m - mass number of the isotope (0 for element mass)
        Returns:
        the number of significant digits after the decimal point (0 if isotope does not exists)
      • getAbundance

        public static double getAbundance​(int z,
                                          int m)
        Natural abundance of the isotope
        Parameters:
        z - atomic number of the isotope (protons)
        m - mass number of the isotope (protons + neutrons)
        Returns:
        natural abundance (100 for the most frequent isotope)
      • getMostFrequentNaturalIsotope

        public static int getMostFrequentNaturalIsotope​(int z)
        Returns the mass number of the most frequent natural isotope of the element
        Parameters:
        z - atomic number (protons)
        Returns:
        mass number of the isotope (0 if artificial element)
      • getAtomicNumber

        @Deprecated
        public static int getAtomicNumber​(String symbol)
        Deprecated.
        As of Marvin 5.9, replaced by a similar method which throws IllegalArgumentException in case of failure findAtomicNumber(String).
        Returns the atomic number of the element in the periodic system specified by its symbol. Case insensitive. In addition to elements of the periodic system, Deuterium and Tritium isotopes are also handled.
        Parameters:
        symbol - atom symbol e.g. "C", "Br", "BR".
        Returns:
        atomic number or -1 if not found.
      • findAtomicNumber

        public static int findAtomicNumber​(String symbol)
                                    throws IllegalArgumentException
        Returns the atomic number of the element in the periodic system specified by its symbol. Case insensitive. In addition to elements of the periodic system, Deuterium and Tritium isotopes are also handled.
        Parameters:
        symbol - atom symbol e.g. "C", "Br", "BR".
        Returns:
        atomic number
        Throws:
        IllegalArgumentException - if symbol does not correspond to a chemical element in the periodic table.
      • isAtomicSymbol

        public static boolean isAtomicSymbol​(String symbol)
        Returns whether the given string corresponds to an atomic number of an element in the periodic system specified by its symbol. Case insensitive.
        Parameters:
        symbol - atom symbol e.g. "C", "Br", "BR".
        Returns:
        true if atomic number found else false.
      • getAtomicRadius

        public static double getAtomicRadius​(int z)
        Atomic radius of the element Angstroms.
        Parameters:
        z - atomic number (protons)
        Returns:
        atomic radius (1.5 if unknown)
      • getCovalentRadius

        public static double getCovalentRadius​(int z)
        Covalent radius of the element in Angstroms.
        Parameters:
        z - atomic number (protons)
        Returns:
        atomic radius (1.5 if unknown)
      • getCovalentRadius

        public static double getCovalentRadius​(int z,
                                               int t)
        Covalent radius of the element in specific bond type in Angstroms.
        Parameters:
        z - atomic number (protons)
        t - bond type
        Returns:
        atomic radius (1.5 if unknown)
      • getVanDerWaalsRadius

        public static double getVanDerWaalsRadius​(int z)
        Van der Waals radius of the element in Angstroms.
        Parameters:
        z - atomic number (protons)
        Returns:
        atomic radius (2.0 if unknown)
      • getRow

        public static int getRow​(int z)
        The row or or period of an element in the periodic system.
        Parameters:
        z - atomic number (protons)
        Returns:
        column of the given element (0 for unknown)
        Since:
        Marvin 4.1
      • isMetal

        public static boolean isMetal​(int z)
        Decides whether the element is a metal. It returns true for those elements, that are classified as different kinds of metals: alkali metal, alkaline earth metal, transition metal and other metals, as well as Ge, Sb and Po from the metalloids.
        Parameters:
        z - atomic number (protons)
        Returns:
        true if the element is metal
      • isAlkaliMetal

        public static boolean isAlkaliMetal​(int z)
        Checks if the given atom is an alkali (group I.) metal.
        Parameters:
        z - atomic number of the atom.
        Returns:
        true if the given atom is alkali metal.
      • isAlkalineEarthMetal

        public static boolean isAlkalineEarthMetal​(int z)
        Checks if the given atom is an alkaline earth (group II.) metal.
        Parameters:
        z - atomic number of the atom.
        Returns:
        true if the given atom is an alkaline earth metal.
      • isOtherMetal

        public static boolean isOtherMetal​(int z)
        Checks if the given atom is an "other metal", group IIIa-Va metal.
        Parameters:
        z - atomic number of the atom.
        Returns:
        true if the given atom is other metal.
      • isTransitionMetal

        public static boolean isTransitionMetal​(int z)
        Checks if the given atom is a transition metal, IB-VIIIB. Lanthanum and Actinium are excluded.
        Parameters:
        z - atomic number of the atom.
        Returns:
        true if the given atom is a transition metal.
      • isLanthanideMetal

        public static boolean isLanthanideMetal​(int z)
        Checks if the given atom is a lanthanide metal Lanthanum is included.
        Parameters:
        z - atomic number of the atom.
        Returns:
        true if the given atom is a lanthanide metal.
      • isActinideMetal

        public static boolean isActinideMetal​(int z)
        Checks if the given atom is an actinide metal Actinium is included.
        Parameters:
        z - atomic number of the atom.
        Returns:
        true if the given atom is a actinide metal.
      • isMetalloid

        public static boolean isMetalloid​(int z)
        Checks if the given atom is a metalloid (B, Si, Ge, As, Sb, Te, Po).
        Parameters:
        z - atomic number of the atom.
        Returns:
        true if the given atom is a metalloid.
      • isHalogen

        public static boolean isHalogen​(int z)
        Checks if the given atom is a halogen (F, Cl, Br, I, At, Ts).
        Parameters:
        z - atomic number of the atom.
        Returns:
        true if the given atom is a halogen.
      • isNobleGas

        public static boolean isNobleGas​(int z)
        Checks if the given atom is a noble gas.
        Parameters:
        z - atomic number of the atom.
        Returns:
        true if the given atom is a noble gas.