Package

squants

thermal

Permalink

package thermal

Source
package.scala
Since

0.1

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. thermal
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. final class Temperature extends Quantity[Temperature]

    Permalink

    Represents a quantity of temperature

    Represents a quantity of temperature

    Temperatures are somewhat unique in the world of quantities for a couple of reasons.

    First, different units (scales) have different "zero" values. This means that these scales are not simple multiples of the others. There is a "zero offset" that must be applied to conversions from one scale to another.

    Second, temperatures are often quoted as though they were quantities, when in fact they are just points on a scale. Similar to a mile marker on a highway, the quantity represented is the number degrees (miles) from a specific "zero" value on the scale.

    In fact an absolute quantity of thermodynamic temperature should be measured from absolute zero. Thus, Kelvin, is the SI Base unit for temperature.

    The other scales supported here, Celsius and Fahrenheit, are known as empirical scales. Of course, these scales set their respective zero values well above absolute zero. This is done to provide a granular and reasonably sized ranges of values for dealing with everyday temperatures.

    This library supports another absolute scale, the Rankine scale. Rankine sets its zero at absolute zero, but degrees are measure in Fahrenheit (as opposed to Celsius, as the Kelvin scale uses).

    In consideration of these more unique scale conversions, two conversion types are supported: Degrees and Scale.

    Scale based conversions DO adjust for the zero offset. Thus 5 degrees C is the same as 41 degrees F on the thermometer.

    Degrees based conversions DO NOT adjust for the zero point. Thus 5 degrees C|K is the same amount of temperature as 9 degrees F|R.

    When creating a temperature it is not important to consider these differences. It is also irrelevant when performing operation on temperatures in the same scale. However, when performing operations on two temperatures of different scales these factors do become important.

    The Quantity.to(unit) and Quantity.in(unit) methods are overridden to use Scale conversions for convenience

    The Ordered.compare method is implemented to use Scale conversions

    The Quantity.plus and Quantity.minus methods are implemented to treat right operands as Quantity of Degrees and not a scale Temperature. Operands that differ in scale will use Degree conversions. This supports mixed scale expressions:

    val temp = Fahrenheit(100) - Celsius(5) // returns Fahrenheit(91)

    This also supports declaring temperature ranges using typical nomenclature:

    val tempRange = 65.F +- 5.C // returns QuantityRange(56.0°F,74.0°F)

    The toDegrees(unit) methods are implemented to use Degree conversions.

    Since

    0.1

  2. sealed trait TemperatureScale extends UnitOfMeasure[Temperature]

    Permalink

    Base trait for units of squants.thermal.Temperature

  3. final class ThermalCapacity extends Quantity[ThermalCapacity]

    Permalink

    Represents the capacity of some substance or system to hold thermal energy.

    Represents the capacity of some substance or system to hold thermal energy.

    Also a representation of Entropy

    Since

    0.1

  4. trait ThermalCapacityUnit extends UnitOfMeasure[ThermalCapacity] with UnitConverter

    Permalink

Value Members

  1. lazy val AbsoluteZero: Temperature

    Permalink
  2. lazy val BoilingTemperatureWater: Temperature

    Permalink
  3. object Celsius extends TemperatureScale

    Permalink
  4. object Fahrenheit extends TemperatureScale

    Permalink
  5. lazy val FreezingTemperatureWater: Temperature

    Permalink
  6. object JoulesPerKelvin extends ThermalCapacityUnit with PrimaryUnit with SiUnit

    Permalink
  7. object Kelvin extends TemperatureScale with PrimaryUnit with SiBaseUnit

    Permalink
  8. object Rankine extends TemperatureScale

    Permalink
  9. object Temperature extends Dimension[Temperature] with BaseDimension with Serializable

    Permalink

    Temperature companion object

  10. object TemperatureConversions

    Permalink
  11. object ThermalCapacity extends Dimension[ThermalCapacity] with Serializable

    Permalink
  12. object ThermalCapacityConversions

    Permalink

Inherited from AnyRef

Inherited from Any

Ungrouped