//
// SI.java
//

/*
VisAD system for interactive analysis and visualization of numerical
data.  Copyright (C) 1996 - 2017 Bill Hibbard, Curtis Rueden, Tom
Rink, Dave Glowacki, Steve Emmerson, Tom Whittaker, Don Murray, and
Tommy Jasmin.

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Library General Public License for more details.

You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA
*/

package visad;

import java.io.Serializable;

/**
 * A class that represents the SI system of units.
 *
 * @author Steven R. Emmerson
 *
 * This is part of Steve Emerson's Unit package that has been
 * incorporated into VisAD.
 */
public final class SI
    implements Serializable
{
    /*
     * The base units of the SI system of units:
     */

    /**
     * Base unit of electric current.
     * The ampere is that constant current which, if maintained
     * in two straight parallel conductors of infinite length,
     * of negligible circular cross section, and placed 1 meter
     * apart in vacuum, would produce between these conductors a
     * force equal to 2 x 10^-7 newton per meter of length.
     */
    public static /*final*/ BaseUnit	ampere;

    /**
     * Base unit of luminous intensity.
     * The candela is the luminous intensity, in a given
     * direction, of a source that emits monochromatic
     * radiation of frequency 540 x 10^12 hertz and that has a
     * radiant intensity in that direction of (1/683) watt per
     * steradian.
     */
    public static /*final*/ BaseUnit	candela;

    /**
     * Base unit of thermodynamic temperature.
     * The kelvin, unit of thermodynamic temperature, is the
     * fraction 1/273.16 of the thermodynamic temperature of the
     * triple point of water.
     */
    public static /*final*/ BaseUnit	kelvin;

    /**
     * Base unit of mass.
     * The kilogram is the unit of mass; it is equal to the mass
     * of the international prototype of the kilogram.
     */
    public static /*final*/ BaseUnit	kilogram;

    /**
     * Base unit of length.
     * The meter is the length of the path travelled by light
     * in vacuum during a time interval of 1/299 792 458 of a
     * second.
     */
    public static /*final*/ BaseUnit	meter;

    /**
     * Base unit of time.
     * The second is the duration of 9 192 631 770 periods of
     * the radiation corresponding to the trasition between
     * the two hyperfine levels of the ground state of the
     * cesium-133 atom.
     */
    public static /*final*/ BaseUnit	second;

    /**
     * Base unit of amount of substance.
     * The mole is the amount of substance of a system which
     * contains as many elementary entities as there are atoms
     * in 0.012 kilogram of carbon 12.
     */
    public static /*final*/ BaseUnit	mole;

    /**
     * Base unit of angular measure.
     * The radian is the plane angle between two radii of a
     * circle that cut off on the circumference an arc equal in
     * length to the radius.  This unit is dimensionless.
     */
    public static /*final*/ BaseUnit	radian;

    /**
     * Base unit of solid angle.
     * The steradian is the solid angle that, having its vertex
     * in the center of a sphere, cuts off an area of the surface
     * equal to that of a square with sides of length equal to the
     * radius of the sphere.  This unit is dimensionless.
     */
    public static /*final*/ BaseUnit	steradian;

    static
    {
	try
	{
	    /**
	     * Base unit of electric current.
	     * The ampere is that constant current which, if maintained
	     * in two straight parallel conductors of infinite length,
	     * of negligible circular cross section, and placed 1 meter
	     * apart in vacuum, would produce between these conductors a
	     * force equal to 2 x 10^-7 newton per meter of length.
	     */
	    ampere = BaseUnit.addBaseUnit("ElectricCurrent", "ampere", "A");

	    /**
	     * Base unit of luminous intensity.
	     * The candela is the luminous intensity, in a given
	     * direction, of a source that emits monochromatic
	     * radiation of frequency 540 x 10^12 hertz and that has a
	     * radiant intensity in that direction of (1/683) watt per
	     * steradian.
	     */
	    candela =
	      BaseUnit.addBaseUnit("LuminousIntensity", "candela", "cd");

	    /**
	     * Base unit of thermodynamic temperature.
	     * The kelvin, unit of thermodynamic temperature, is the
	     * fraction 1/273.16 of the thermodynamic temperature of the
	     * triple point of water.
	     */
	    kelvin = BaseUnit.addBaseUnit("Temperature", "kelvin", "K");

	    /**
	     * Base unit of mass.
	     * The kilogram is the unit of mass; it is equal to the mass
	     * of the international prototype of the kilogram.
	     */
	    kilogram = BaseUnit.addBaseUnit("Mass", "kilogram", "kg");

	    /**
	     * Base unit of length.
	     * The meter is the length of the path travelled by light
	     * in vacuum during a time interval of 1/299 792 458 of a
	     * second.
	     */
	    meter = BaseUnit.addBaseUnit("Length", "meter", "m");

	    /**
	     * Base unit of time.
	     * The second is the duration of 9 192 631 770 periods of
	     * the radiation corresponding to the trasition between
	     * the two hyperfine levels of the ground state of the
	     * cesium-133 atom.
	     */
	    second = BaseUnit.addBaseUnit("Time", "second", "s");

	    /**
	     * Base unit of amount of substance.
	     * The mole is the amount of substance of a system which
	     * contains as many elementary entities as there are atoms
	     * in 0.012 kilogram of carbon 12.
	     */
	    mole = BaseUnit.addBaseUnit("AmountOfSubstance", "mole", "mol");

	    /**
	     * Base unit of angular measure.
	     * The radian is the plane angle between two radii of a
	     * circle that cut off on the circumference an arc equal in
	     * length to the radius.  This unit is dimensionless.
	     */
	    radian = BaseUnit.addBaseUnit("Angle", "radian", "rad", true);

	    /**
	     * Base unit of solid angle.
	     * The steradian is the solid angle that, having its vertex
	     * in the center of a sphere, cuts off an area of the surface
	     * equal to that of a square with sides of length equal to the
	     * radius of the sphere.  This unit is dimensionless.
	     */
	    steradian =
		BaseUnit.addBaseUnit("SolidAngle", "steradian", "sr", true);
	}
	catch (UnitException e) {}
    }

    private SI() {
    }

    /**
     * Test this class.
     *
     * @param args		Arguments (ignored).
     */
    public static void main (String[] args)
    {
	System.out.println("ampere      = \"" + ampere + "\"");
	System.out.println("candela     = \"" + candela + "\"");
	System.out.println("kelvin      = \"" + kelvin + "\"");
	System.out.println("kilogram    = \"" + kilogram + "\"");
	System.out.println("meter       = \"" + meter + "\"");
	System.out.println("second      = \"" + second + "\"");
	System.out.println("mole        = \"" + mole + "\"");
	System.out.println("radian      = \"" + radian + "\"");
	System.out.println("steradian   = \"" + steradian + "\"");
    }
}

 

Ads help maintain this website.