Documentation
¶
Overview ¶
Package si defines International System of Units (SI) base and derived units. These form the canonical system for scientific and engineering work.
Canonical units provided here include:
- Length: Meter (m)
- Mass: Kilogram (kg)
- Time: Second (s) [from std]
- Current: Ampere (A)
- Temperature: Kelvin (K), with Celsius (°C) for absolute and delta forms
- Amount: Mole (mol)
- Luminous intensity: Candela (cd)
Derived units such as Newton, Pascal, Joule, Watt, and derived prefixes (milli-, kilo-, mega-, etc.) are also defined here.
Example usage:
dist := si.Meter.Of(250) mass := si.Kilogram.Of(80) force := si.Newton.Of(500)
The si package is the primary target for most scientific and engineering calculations, and interoperates cleanly with std and usc units.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( Meter = uom.DefineUnit[dim.Length]("m", 1.0) Kilogram = uom.DefineUnit[dim.Mass]("kg", 1.0) Ampere = uom.DefineUnit[dim.Current]("A", 1.0) Kelvin = uom.DefineUnit[dim.Temperature]("K", 1.0) Mole = uom.DefineUnit[dim.Substance]("mol", 1.0) Candela = uom.DefineUnit[dim.Luminosity]("cd", 1.0) MeterSquared = uom.DefineUnit[dim.Area]("m^2", 1.0) )
SI base units (coherent)
var ( Newton = uom.DefineUnit[dim.Force]("N", 1) NewtonMeter = uom.DefineUnit[dim.Torque]("N·m", 1) Momentum = uom.DefineUnit[dim.Momentum]("kg·m/s", 1) NewtonSecond = uom.DefineUnit[dim.Impulse]("N·s", 1) NewtonMeterSecond = uom.DefineUnit[dim.AngularMomentum]("N·m·s", 1) )
var ( Kilometer = uom.DeriveUnit[dim.Length]("km", uom.U(Kilo), uom.U(Meter)) Centimeter = uom.DeriveUnit[dim.Length]("cm", uom.U(Centi), uom.U(Meter)) Millimeter = uom.DeriveUnit[dim.Length]("mm", uom.U(Milli), uom.U(Meter)) Micrometer = uom.DeriveUnit[dim.Length]("µm", uom.U(Micro), uom.U(Meter)) Nanometer = uom.DeriveUnit[dim.Length]("nm", uom.U(Nano), uom.U(Meter)) )
var ( // 1 g = 1e-3 kg Gram = uom.DeriveUnit[dim.Mass]("g", uom.U(Milli), uom.U(Kilogram)) Milligram = uom.DeriveUnit[dim.Mass]("mg", uom.U(Milli), uom.U(Gram)) Microgram = uom.DeriveUnit[dim.Mass]("µg", uom.U(Micro), uom.U(Gram)) // 1 tonne (t) = 1e3 kg — SI accepted unit Tonne = uom.DeriveUnit[dim.Mass]("t", uom.U(Kilo), uom.U(Kilogram)) )
Mass units commonly used alongside kilogram base
var ( KilogramPerCubicMeter = uom.DefineUnit[dim.Density]("kg/m^3", 1) GramPerCubicCentimeter = uom.DeriveUnit[dim.Density]("g/cm^3", uom.U(Gram), uom.U(CubicCentimeter).Per(), ) GramPerMilliliter = uom.DeriveUnit[dim.Density]("g/mL", uom.U(Gram), uom.U(Milliliter).Per(), ) )
Mass density (ρ): mass per unit volume
var ( KilogramPerMeter = uom.DefineUnit[dim.LinearMass]("kg/m", 1) GramPerMeter = uom.DeriveUnit[dim.LinearMass]("g/m", uom.U(Gram), uom.U(Meter).Per(), ) GramPerMillimeter = uom.DeriveUnit[dim.LinearMass]("g/mm", uom.U(Gram), uom.U(Millimeter).Per(), ) )
Linear mass density (μ): mass per unit length
var ( KilogramPerSquareMeter = uom.DefineUnit[dim.ArealMass]("kg/m^2", 1) GramPerSquareMeter = uom.DeriveUnit[dim.ArealMass]("g/m^2", uom.U(Gram), uom.U(Meter).Pow(-2), ) )
Areal mass density (σ): mass per unit area
var ( Yocto = uom.DefineUnit[dim.Dimensionless]("y", 1e-24) Zepto = uom.DefineUnit[dim.Dimensionless]("z", 1e-21) Atto = uom.DefineUnit[dim.Dimensionless]("a", 1e-18) Femto = uom.DefineUnit[dim.Dimensionless]("f", 1e-15) Pico = uom.DefineUnit[dim.Dimensionless]("p", 1e-12) Nano = uom.DefineUnit[dim.Dimensionless]("n", 1e-9) Micro = uom.DefineUnit[dim.Dimensionless]("μ", 1e-6) Milli = uom.DefineUnit[dim.Dimensionless]("m", 1e-3) Centi = uom.DefineUnit[dim.Dimensionless]("c", 1e-2) Deci = uom.DefineUnit[dim.Dimensionless]("d", 1e-1) Deca = uom.DefineUnit[dim.Dimensionless]("da", 1e1) Hecto = uom.DefineUnit[dim.Dimensionless]("h", 1e2) Kilo = uom.DefineUnit[dim.Dimensionless]("k", 1e3) Mega = uom.DefineUnit[dim.Dimensionless]("M", 1e6) Giga = uom.DefineUnit[dim.Dimensionless]("G", 1e9) Tera = uom.DefineUnit[dim.Dimensionless]("T", 1e12) Peta = uom.DefineUnit[dim.Dimensionless]("P", 1e15) Exa = uom.DefineUnit[dim.Dimensionless]("E", 1e18) Zetta = uom.DefineUnit[dim.Dimensionless]("Z", 1e21) Yotta = uom.DefineUnit[dim.Dimensionless]("Y", 1e24) )
SI prefixes as dimensionless units
var ( // Standard SI unit of energy; used for heat, work, and internal energy in thermodynamic systems Joule = uom.DefineUnit[dim.Energy]("J", 1) // SI unit of power; measures rate of energy transfer (e.g., heating or cooling power) Watt = uom.DefineUnit[dim.Power]("W", 1) // Pressure is central to state equations and phase-change analysis in thermodynamics Pascal = uom.DefineUnit[dim.Pressure]("Pa", 1) // Thermal conductivity; quantifies ability of a material to conduct heat WattPerMeterK = uom.DefineUnit[dim.ThermalConductivity]("W/(m·K)", 1) // Heat capacity; total energy required to change an object's temperature by 1 K JoulePerKelvin = uom.DefineUnit[dim.HeatCapacity]("J/K", 1) // Specific heat capacity; heat capacity per unit mass, key in calorimetry and energy balance JoulePerKilogramK = uom.DefineUnit[dim.SpecificHeatCapacity]("J/(kg·K)", 1) // Heat transfer coefficient; overall heat transfer rate across a surface per unit area and temperature difference WPerM2K = uom.DefineUnit[dim.HeatTransferCoefficient]("W/(m²·K)", 1) )
var ( // Canonical SI volume; baseline for storage tanks, flow integrals, and conversions CubicMeter = uom.DefineUnit[dim.Volume]("m^3", 1) // SI-accepted unit favored in fluids/lab specs; ubiquitous in data sheets and dosing Liter = uom.DefineUnit[dim.Volume]("L", 1e-3) // Bench-scale measurements; reagents, small containers, pipetting Milliliter = uom.DefineUnit[dim.Volume]("mL", 1e-6) // Microlab and analytical work; microfluidics, chromatography, assays Microliter = uom.DefineUnit[dim.Volume]("µL", 1e-9) // Engineering drawings and engine displacement; also packaging volumes CubicCentimeter = uom.DefineUnit[dim.Volume]("cm^3", 1e-6) // Small parts and precision manufacturing; solder paste, adhesives, beads CubicMillimeter = uom.DefineUnit[dim.Volume]("mm^3", 1e-9) // Hydrology and geophysics; reservoir and basin volumes CubicKilometer = uom.DefineUnit[dim.Volume]("km^3", 1e9) // Often seen in chemistry texts and metrology; numerically equal to 1 L CubicDecimeter = uom.DefineUnit[dim.Volume]("dm^3", 1e-3) )
Volumes commonly used across fluids, lab work, and large-scale geophysics
var (
MeterPerSecond = uom.DefineUnit[dim.Velocity]("m/s", 1)
)
Velocity
var (
MeterPerSecondSquared = uom.DefineUnit[dim.Acceleration]("m/s^2", 1)
)
Acceleration
var (
NewtonWeight = uom.DefineUnit[dim.Weight]("N", 1)
)
var (
StandardGravity = uom.DeriveUnit[dim.Acceleration]("g", uom.U(MeterPerSecondSquared), uom.Const(9.80665))
)
Functions ¶
This section is empty.
Types ¶
This section is empty.