View Javadoc
1   package org.djunits.value.vdouble.scalar.base;
2   
3   import org.djunits.unit.DimensionlessUnit;
4   import org.djunits.unit.ElectricalChargeUnit;
5   import org.djunits.value.vdouble.scalar.Dimensionless;
6   import org.djunits.value.vdouble.scalar.ElectricalCharge;
7   import org.djunits.value.vdouble.scalar.Frequency;
8   import org.djunits.value.vdouble.scalar.Mass;
9   import org.djunits.value.vdouble.scalar.SIScalar;
10  import org.djunits.value.vdouble.scalar.Speed;
11  
12  /**
13   * <p>
14   * Various physical constants. For many, see
15   * <a href="https://en.wikipedia.org/wiki/2019_redefinition_of_the_SI_base_units">Wikipedia 2019 redefinition of the SI base
16   * units</a>
17   * </p>
18   * @author <a href="https://www.tudelft.nl/staff/p.knoppers">Peter Knoppers</a>
19   */
20  public final class Constants
21  {
22      /** Utility class. */
23      private Constants()
24      {
25          // utility class
26      }
27  
28      /**
29       * Number of constituent particles in a Mole; a.k.a. Avogadro's number. This value is exact since the 2019 redefinition of
30       * the SI base units.
31       */
32      public static final SIScalar AVOGADRO = SIScalar.of(6.02214076e23, "1/mol");
33  
34      /**
35       * Boltzmann constant in Joule per Kelvin (this value is exact since the 2019 redefinition of SI base units). See
36       * <a href="https://en.wikipedia.org/wiki/Boltzmann_constant">Wikipedia: Boltzmann constant</a>
37       */
38      public static final SIScalar BOLTZMANN = SIScalar.of(1.380649e-23, "kgm2/s2K");
39  
40      /**
41       * The Cesium 133 ground state hyperfine structure transition frequency. This value is exact since the 2006 redefinition of
42       * the SI base units.
43       */
44      public static final Frequency CESIUM133_FREQUENCY = Frequency.of(9192631770d, "1/s");
45  
46      /** Electrical charge of one electron. This value is exact since the 2019 redefinition of the SI base units. */
47      public static final ElectricalCharge ELECTRONCHARGE = new ElectricalCharge(-1, ElectricalChargeUnit.ATOMIC_UNIT);
48  
49      /**
50       * Mass of an electron. See <a href="https://en.wikipedia.org/wiki/Physical_constant">Wikipedia Physical constant</a>. This
51       * value of this physical constant has an uncertainty of 2.8e-40 kg.
52       */
53      public static final Mass ELECTRONMASS = Mass.of(9.1093837015e-31, "kg");
54  
55      /** ElectricalCharge of one proton. */
56      public static final ElectricalCharge PROTONCHARGE = new ElectricalCharge(1, ElectricalChargeUnit.ATOMIC_UNIT);
57  
58      /**
59       * Mass of a neutron. See <a href="https://en.wikipedia.org/wiki/List_of_physical_constants">Wikipedia List of physical
60       * constants</a>. This value of this physical constant has an uncertainty of 9.5e-37 kg.
61       */
62      public static final Mass NEUTRONMASS = Mass.of(1.6749274714e-27, "kg");
63  
64      /**
65       * Mass of a proton. See <a href="https://en.wikipedia.org/wiki/Physical_constant">Wikipedia Physical constant</a>. This
66       * value of this physical constant has an uncertainty of 5.1e-37.
67       */
68      public static final Mass PROTONMASS = Mass.of(1.67262192369e-27, "kg");
69  
70      /**
71       * Gravitational constant, a.k.a. Newtonian constant of gravitation. This is the 2018 best known approximation, which has an
72       * uncertainty 1.5e-15 m^3/kgs^2
73       */
74      public static final SIScalar G = SIScalar.of(6.67430e-11, "m3/kgs2");
75  
76      /** Speed of light in vacuum. This value is exact (since the 2006 redefinition of the SI base units). */
77      public static final Speed LIGHTSPEED = Speed.of(299792458, "m/s");
78  
79      /**
80       * Permeability of vacuum. See <a href="https://en.wikipedia.org/wiki/Vacuum_permeability">Wikipedia, Vacuum
81       * permeability</a>. The uncertainty of this value is 1.9e-16N/A^2.
82       */
83      public static final SIScalar VACUUMPERMEABILITY = SIScalar.of(1.25663706212e-6, "kgm/s2A2");
84  
85      /**
86       * Permittivity of vacuum. See <a href="https://en.wikipedia.org/wiki/Vacuum_permittivity">Wikipedia Vacuum
87       * permittivity</a>. The uncertainty of this value is 1.3e-21 F/m.
88       */
89      public static final SIScalar VACUUMPERMITTIVITY = SIScalar.of(8.8541878128e-12, "s4A2/kgm3");
90  
91      /** Impedance of vacuum. */
92      public static final SIScalar VACUUMIMPEDANCE = VACUUMPERMEABILITY.times(LIGHTSPEED);
93  
94      /**
95       * Planck constant; ratio of a photon's energy and its frequency. This value is exact since the 2019 redefinition of the SI
96       * base units.
97       */
98      public static final SIScalar PLANCK = SIScalar.of(6.62607015e-34, "kgm2/s");
99  
100     /**
101      * The luminous efficacy Kcd of monochromatic radiation of frequency 540×10^12 Hz (540 THz). This is the frequency of a
102      * green-colored light at approximately the peak sensitivity of the human eye. This value is exact since the 2006
103      * redefinition of the SI base units.
104      */
105     public static final SIScalar LUMINOUS_EFFICACY_540THZ = SIScalar.of(683d, "cdsrs3/kg");
106 
107     /** Ratio of circumference of circle and its radius. */
108     public static final Dimensionless TAU = new Dimensionless(Math.PI * 2, DimensionlessUnit.SI);
109 
110     /** Reduced Planck constant, a.k.a. angular Planck constant; Planck constant divided by 2 pi. */
111     public static final SIScalar PLANKREDUCED = PLANCK.divide(TAU);
112 
113 }