Class DimensionalModel
- java.lang.Object
-
- tech.units.indriya.spi.DimensionalModel
-
- Direct Known Subclasses:
StandardModel
public abstract class DimensionalModel extends java.lang.Object
This class represents the physical model used for dimensional analysis.
In principle, dimensions of physical quantities could be defined as "fundamental" (such as momentum or energy or electric current) making such quantities uncommensurate (not comparable). Modern physics has cast doubt on the very existence of incompatible fundamental dimensions of physical quantities. For example, most physicists do not recognize temperature,
Θ
, as a fundamental dimension since it essentially expresses the energy per particle per degree of freedom, which can be expressed in terms of energy (or mass, length, and time). To support, such model the method#getConverter
may returns a non-null value for distinct dimensions.The default model is
Standard
. Applications may use one of the predefined model or create their own.DimensionalModel relativistic = new DimensionalModel() { public Dimension getFundamentalDimension(Dimension dimension) { if (dimension.equals(QuantityDimension.LENGTH)) return QuantityDimension.TIME; // Consider length derived from time. return super.getDimension(dimension); // Returns product of fundamental dimension. } public UnitConverter getDimensionalTransform(Dimension dimension) { if (dimension.equals(QuantityDimension.LENGTH)) return new RationalConverter(1, 299792458); // Converter (1/C) from LENGTH SI unit (m) to TIME SI unit (s). return super.getDimensionalTransform(dimension); } }; try { DimensionalModel.setCurrent(relativistic); // Current thread use the relativistic model. Units.KILOGRAM.getConverterToAny(Units.JOULE); // Allowed. ... } finally { cleanup(); }
- Version:
- 0.5.5, $Date: 2015-07-25 $
- See Also:
- Wikipedia: Dimensional Analysis
-
-
Field Summary
Fields Modifier and Type Field Description private static DimensionalModel
currentModel
Holds the current model.
-
Constructor Summary
Constructors Modifier Constructor Description protected
DimensionalModel()
DefaultQuantityFactory constructor (allows for derivation).
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static DimensionalModel
current()
Returns the current model (by default an instance ofStandardModel
).AbstractConverter
getDimensionalTransform(javax.measure.Dimension dimension)
Returns the dimensional transform of the specified dimension.javax.measure.Dimension
getFundamentalDimension(javax.measure.Dimension dimension)
Returns the fundamental dimension for the one specified.protected static void
setCurrent(DimensionalModel model)
Sets the current dimensional model
-
-
-
Field Detail
-
currentModel
private static DimensionalModel currentModel
Holds the current model.
-
-
Method Detail
-
current
public static DimensionalModel current()
Returns the current model (by default an instance ofStandardModel
).- Returns:
- the current dimensional model.
-
setCurrent
protected static void setCurrent(DimensionalModel model)
Sets the current dimensional model- Parameters:
model
- the new current model.- See Also:
current()
-
getFundamentalDimension
public javax.measure.Dimension getFundamentalDimension(javax.measure.Dimension dimension)
Returns the fundamental dimension for the one specified. If the specified dimension is a dimensional product, the dimensional product of its fundamental dimensions is returned. Physical quantities are considered commensurate only if their fundamental dimensions are equals using the current physics model.- Parameters:
dimension
- the dimension for which the fundamental dimension is returned.- Returns:
this
or a rational product of fundamental dimension.
-
getDimensionalTransform
public AbstractConverter getDimensionalTransform(javax.measure.Dimension dimension)
Returns the dimensional transform of the specified dimension. If the specified dimension is a fundamental dimension or a product of fundamental dimensions the identity converter is returned; otherwise the converter from the system unit (SI) of the specified dimension to the system unit (SI) of its fundamental dimension is returned.- Parameters:
dimension
- the dimension for which the dimensional transform is returned.- Returns:
- the dimensional transform (identity for fundamental dimensions).
-
-