## FCSys.Units.Bases

Sets of base constants and units

### Information

FCSys requires that the Faraday and gas constants are normalized to one. The structure of the Units package allows those constants to be relaxed, but the models in FCSys generally do not.

Some natural systems of units are not compatible with FCSys. Since the Faraday and gas constants are both normalized, it follows that kB = q. This is not the case for the Planck, Rydberg, and Natural systems of units [http://en.wikipedia.org/wiki/Natural_units].

The quasi-SI sets in this package are named by listing (in alphabetical order) the two units that are not normalized for the sake of setting the Faraday and gas constants equal to one. There are eight possible sets of this type (SIAK, SIAm, SIAs, SIKmol, SIKs, SImmol SIms, SImols).

For more information, please see the documentation for the Units package.

Extends from Modelica.Icons.Package (Icon for standard packages).

### Package Content

Name | Description
--- | ---
FC | Base constants and units that are well-scaled for fuel cell simulation and analysis
Gaussian | Base constants and units for Gaussian units (kA = ke = 1)
Hartree | Base constants and units for Hartree units
LH | Base constants and units for Lorentz-Heaviside units (μ0 = ε0 = 1)
Stoney | Base constants and units for Stoney units
SIAK | Base constants and units for SI with kF and R normalized instead of A and K
SIAm | Base constants and units for SI with kF and R normalized instead of A and m
SIAs | Base constants and units for SI with kF and R normalized instead of A and s
SIKmol | Base constants and units for SI with kF and R normalized instead of K and mol
SIKs | Base constants and units for SI with kF and R normalized instead of K and s
SImmol | Base constants and units for SI with kF and R normalized instead of m and mol
SIms | Base constants and units for SI with kF and R normalized instead of m and s
SImols | Base constants and units for SI with kF and R normalized instead of mol and s
Base | Base constants and units

## FCSys.Units.Bases.FC

Base constants and units that are well-scaled for fuel cell simulation and analysis

### Information

The values of this record result in the following values for the base SI units (besides cd = 1, which is the default):

- A ≈ 1e-5 (⇒ 1e3 C ≈ 1)
- K ≈ 8.617
- kg = 1e4 (⇒ 0.1 g = 1)
- m = 10 (⇒ 10 cm = 1)
- mol ≈ 96.485 (⇒ 0.01036 mol ≈1)
- s = 100 (⇒ 10 ms = 1)

which are well-scaled for the states and efforts of a single-cell PEMFC. Also, with these settings:

- 10 m/s ≈ 1
- 9.872e-5 atm ≈ 1

For more information, please see the documentation for the Units package.

Extends from Base (Base constants and units).

### Modelica definition

    record FC
      "Base constants and units that are well-scaled for fuel cell simulation and analysis"
      extends Base(
        final R_inf=1e-1*10973731.568539,
        final c=1e-1*299792458,
        final R_K=1e10*25812.8074434,
        final k_J=483597.870e9*sqrt(S*s/1e4)/m);
      // Note:  k_J = 483597.870e9*sqrt(S*s/x)/m sets kg = x.

    end FC;

## FCSys.Units.Bases.Gaussian

Base constants and units for Gaussian units (kA = ke = 1)

### Information

Gaussian systems of units impose:

- kA = 1 ⇒ RK/c = 2π/α
- ke = 1 ⇒ RK*c = 2π/α

Together, c = 1 and RK = 2π/α

The Gaussian conditions are not sufficient to fully establish the values of the base constants and units of the Units package. Gaussian units encompass other systems of units.

For more information, please see the documentation for the Units package.

Extends from Base (Base constants and units).

### Modelica definition

    record Gaussian
      "Base constants and units for Gaussian units (kA = ke = 1)"
      extends Base(final c=1,final R_K=25812.8074434/(299792458*1e-7));

    end Gaussian;

## FCSys.Units.Bases.Hartree

Base constants and units for Hartree units

### Information

The candela (`'cd'`) is not final because luminous intensity is not included in Hartree units.

For more information, please see the documentation for the Units package.

Extends from Base (Base constants and units).

### Modelica definition

    record Hartree "Base constants and units for Hartree units"

      extends Base(
        final R_inf=pi*(299792458*1e-7/25812.8074434)^2,
        final c=25812.8074434/(2*pi*299792458*1e-7),
        final k_J=1/pi,
        final R_K=2*pi);

    end Hartree;

## FCSys.Units.Bases.LH

Base constants and units for Lorentz-Heaviside units (μ0 = ε0 = 1)

### Information

Lorentz-Heaviside systems of units impose:

- μ0 = 1 ⇒ RK/c = 1/(2α)
- ε0 = 1 ⇒ RK c = 1/(2α)

Together, c = 1 and RK = 1/(2α)

The Lorentz-Heaviside conditions are not sufficient to fully establish the values of the base constants and units of the Units package. Lorentz-Heaviside units encompass other systems of units.

For more information, please see the documentation for the Units package.

Extends from Base (Base constants and units).

### Modelica definition

    record LH
      "Base constants and units for Lorentz-Heaviside units (μ0 = ε0 = 1)"
      extends Base(final c=1,final R_K=25812.8074434/(4*pi*299792458*1e-7));

    end LH;

## FCSys.Units.Bases.Stoney

Base constants and units for Stoney units

### Information

The Rydberg constant (R∞) is not final because the Units package does not include the gravitational constant. The candela (`'cd'`) is not final because luminous intensity is not included in Stoney units.

For more information, please see the documentation for the Units package.

Extends from Gaussian (Base constants and units for Gaussian units (kA = ke = 1)).

### Modelica definition

    record Stoney "Base constants and units for Stoney units"

      extends Gaussian(final k_J=2e-7*299792458/25812.8074434);

    end Stoney;

## FCSys.Units.Bases.SIAK

Base constants and units for SI with kF and R normalized instead of A and K

### Information

The values of the un-normalized SI base units are (see Resources/unit-systems.cdf):

- A ≈ 1.03643e-5
- K ≈ 8.31446

For more information, please see the documentation for the Units package.

Extends from Base (Base constants and units).

### Modelica definition

    record SIAK
      "Base constants and units for SI with kF and R normalized instead of A and K"

      extends Base(
        final R_inf=10973731.568539,
        final c=299792458,
        final R_K=96485.3365^2*25812.8074434,
        final k_J=483597.870e9*sqrt(S*s)/m,
        final 'cd'=1);

    end SIAK;

## FCSys.Units.Bases.SIAm

Base constants and units for SI with kF and R normalized instead of A and m

### Information

The values of the un-normalized SI base units are (see Resources/unit-systems.cdf):

- A ≈ 1.03643e-5
- m ≈ 0.346803

For more information, please see the documentation for the Units package.

Extends from Base (Base constants and units).

### Modelica definition

    record SIAm
      "Base constants and units for SI with kF and R normalized instead of A and m"

      extends Base(
        final R_inf=sqrt(8.3144621)*10973731.568539,
        final c=299792458/sqrt(8.3144621),
        final R_K=(96485.3365^2*25812.8074434)/8.3144621,
        final k_J=483597.870e9*sqrt(S*s)/m,
        final 'cd'=1);

    end SIAm;

## FCSys.Units.Bases.SIAs

Base constants and units for SI with kF and R normalized instead of A and s

### Information

The values of the un-normalized SI base units are (see Resources/unit-systems.cdf):

- A ≈ 3.59436e-6
- s ≈ 2.88348

For more information, please see the documentation for the Units package.

Extends from Base (Base constants and units).

### Modelica definition

    record SIAs
      "Base constants and units for SI with kF and R normalized instead of A and s"
      extends Base(
        final R_inf=10973731.568539,
        final c=299792458/sqrt(8.3144621),
        final R_K=(96485.3365^2*25812.8074434)/sqrt(8.3144621),
        final k_J=483597.870e9*sqrt(S*s)/m,
        final 'cd'=1);

    end SIAs;

## FCSys.Units.Bases.SIKmol

Base constants and units for SI with kF and R normalized instead of K and mol

### Information

The values of the un-normalized SI base units are (see Resources/unit-systems.cdf):

- K ≈ 8.61733e-5
- mol ≈ 96485.3

For more information, please see the documentation for the Units package.

Extends from Base (Base constants and units).

### Modelica definition

    record SIKmol
      "Base constants and units for SI with kF and R normalized instead of K and mol"
      extends Base(
        final R_inf=10973731.568539,
        final c=299792458,
        final R_K=25812.8074434,
        final k_J=483597.870e9*sqrt(S*s)/m,
        final 'cd'=1);

    end SIKmol;

## FCSys.Units.Bases.SIKs

Base constants and units for SI with kF and R normalized instead of K and s

### Information

The values of the un-normalized SI base units are (see Resources/unit-systems.cdf):

- K ≈ 7.74028e10
- s ≈ 1.03643e-5

For more information, please see the documentation for the Units package.

Extends from Base (Base constants and units).

### Modelica definition

    record SIKs
      "Base constants and units for SI with kF and R normalized instead of K and s"
      extends Base(
        final R_inf=10973731.568539,
        final c=96485.3365*299792458,
        final R_K=96485.3365^3*25812.8074434,
        final k_J=483597.870e9*sqrt(S*s)/m,
        final 'cd'=1);

    end SIKs;

## FCSys.Units.Bases.SImmol

Base constants and units for SI with kF and R normalized instead of m and mol

### Information

The values of the un-normalized SI base units are (see Resources/unit-systems.cdf):

- m ≈ 107.724
- mol ≈ 96485.3

For more information, please see the documentation for the Units package.

Extends from Base (Base constants and units).

### Modelica definition

    record SImmol
      "Base constants and units for SI with kF and R normalized instead of m and mol"
      extends Base(
        final R_inf=sqrt(8.3144621/96485.3365)*10973731.568539,
        final c=sqrt(96485.3365/8.3144621)*299792458,
        final R_K=(96485.3365*25812.8074434)/8.3144621,
        final k_J=483597.870e9*sqrt(S*s)/m,
        final 'cd'=1);

    end SImmol;

## FCSys.Units.Bases.SIms

Base constants and units for SI with kF and R normalized instead of m and s

### Information

The values of the un-normalized SI base units are (see Resources/unit-systems.cdf):

- m ≈ 3.59436e-6
- s ≈ 1.03643e-5

For more information, please see the documentation for the Units package.

Extends from Base (Base constants and units).

### Modelica definition

    record SIms
      "Base constants and units for SI with kF and R normalized instead of m and s"
      extends Base(
        final R_inf=96485.3365*sqrt(8.3144621)*10973731.568539,
        final c=299792458/sqrt(8.3144621),
        final R_K=(96485.3365*25812.8074434)/8.3144621,
        final k_J=483597.870e9*sqrt(S*s)/m,
        final 'cd'=1);

    end SIms;

## FCSys.Units.Bases.SImols

Base constants and units for SI with kF and R normalized instead of mol and s

### Information

The values of the un-normalized SI base units are (see Resources/unit-systems.cdf):

- mol ≈ 4261.73
- s ≈ 0.0441697

For more information, please see the documentation for the Units package.

Extends from Base (Base constants and units).

### Modelica definition

    record SImols
      "Base constants and units for SI with kF and R normalized instead of mol and s"
      extends Base(
        final R_inf=10973731.568539,
        final c=(96485.3365/8.3144621)^(1/3)*299792458,
        final R_K=(96485.3365*25812.8074434)/8.3144621,
        final k_J=483597.870e9*sqrt(S*s)/m,
        final 'cd'=1);

    end SImols;

## FCSys.Units.Bases.Base

Base constants and units

### Information

Please see the notes in the Modelica code and the documentation of the Units package.

Extends from Modelica.Icons.Record (Icon for records).

### Modelica definition

    record Base "Base constants and units"
      extends Modelica.Icons.Record;

      final constant Q.Angle rad=1 "radian";
      // SI unit of rotation or planar angle
      // This condition is required by BIPM [BIPM2006, Table 3].  It can't be
      // relaxed because BIPM doesn't explicitly use angle in the definitions of
      // Hz, sr, etc. and NIST doesn't explicitly use angle in the relations for
      // R_inf, c_3_nu, etc. [NIST2010].
      constant Q.Wavenumber R_inf=1
        "Rydberg constant (R∞)";
      // The SI unit length (meter) is inversely proportional to this value,
      // which should be increased for larger characteristic lengths.
      constant Q.Velocity c=1 "speed of light in vacuum (c)";
      // The SI unit time (second) is inversely proportional to this value (and
      // R_inf), which should be increased for larger characteristic times.
      constant Q.MagneticFluxReciprocal k_J=1
        "Josephson constant (kJ)";
      // The SI unit of magnetic flux (weber) is inversely proportional to this
      // value, which should be increased for larger magnetic flux numbers.
      // Also, the SI unit of charge (coulomb) is inversely proportional to this
      // value.
      constant Q.ResistanceElectrical R_K=1
        "von Klitzing constant (RK)";
      // The SI unit of electrical conductance (siemen) is inversely proportional
      // to this value, which should be increased for larger characteristic
      // conductances.  Also, the SI unit of charge (coulomb) is inversely
      // proportional to this value.
      constant Q.PowerRadiant 'cd'=1 "candela";
      // SI unit of luminous intensity
      // From http://en.wikipedia.org/wiki/Luminous_intensity, accessed 11/5/11:
      // "luminous intensity is a measure of the wavelength-weighted power
      // emitted by a light source in a particular direction per unit solid
      // angle, based on the luminosity function, a standardized model of the
      // sensitivity of the human eye."
      final constant Q.Number k_F=1 "Faraday constant (kF)";
      // The unit of substance (mole) is inversely proportional to this value.
      // The Faraday constant isn't adjustable because the equations of FCSys
      // require that it's one, which means that charge is considered to be an
      // amount of substance.
      final constant Q.Number R=1 "gas constant";
      // The unit of temperature (kelvin) is inversely proportional to this
      // value.  The gas constant isn't adjustable because the equations of FCSys
      // require that it's one, which means that temperature is considered to be
      // a potential.

    end Base;