Provides models for physical quantities.

The difference between models lies in the assumptions each makes and, in consequence,the operations each permits. For example, the summation of a {@link com.dautelle.physics.Length} and a {@link com.dautelle.physics.Duration} is not allowed by the standard model, but is quite valid in a relativistic context.

Also, the current model specifies the default output units for physical quantities (Ref. {@link com.dautelle.physics.Quantity#getOutputUnit}).

Note: These models are similar to the physical models from the SIunit C++ library, except that the current model is selected at run-time. In addition, models are context-local, different models can be used concurrently in {@link com.dautelle.realtime.LocalContext}.

The names and characteristics of the models are presented in the following table:

Model Class Defining Characteristics Default Output Units
Standard "StandardModel" per Système Internationale Length: m;  Mass: kg;  Duration: s;  ElectricCurrent: A;  Temperature: K;  AmountOfSubstance: mol;  LuminousIntensity: cd
Relativistic "RelativisticModel" 1 = c Length, Duration: s;  Mass: eV;  ElectricCurrent: A;  Temperature: K;  AmountOfSubstance: mol;  LuminousIntensity: cd
High-Energy "HighEnergyModel" 1 = c
   = Boltzmann const
   = ePlus
Length, Duration: ns;  Mass, Temperature: GeV;  ElectricCurrent: 1/ns;  AmountOfSubstance: mol;  LuminousIntensity: cd
Quantum "QuantumModel" 1 = c
   = Boltzmann const
   = µ0
   = hBar
Length, Duration: 1/GeV;  Mass, Temperature, ElectricCurrent: GeV;  AmountOfSubstance: mol;  LuminousIntensity: cd
Natural "NaturalModel" 1 = c
   = Boltzmann const
   = µ0
   = hBar
   = grav const
Length, Mass, Duration, ElectricCurrent, Temperature: 1;  AmountOfSubstance: mol;  LuminousIntensity: cd