-- | Assigns symbols and units (quantities) to common physical properties.
module Data.Drasil.Quantities.PhysicalProperties where

import Language.Drasil
import Language.Drasil.ShortHands (lM, cL, cV, lGamma, lRho)

import Data.Drasil.Concepts.PhysicalProperties as CPP (density, specWeight, len,
  mass, vol)
import Data.Drasil.SI_Units (kilogram, metre, m_3, specificWeight)
import Data.Drasil.Units.PhysicalProperties (densityU)

density, specWeight, mass, len, vol :: UnitalChunk
density :: UnitalChunk
density    = ConceptChunk -> Symbol -> Space -> UnitDefn -> UnitalChunk
forall c u.
(Concept c, IsUnit u) =>
c -> Symbol -> Space -> u -> UnitalChunk
uc ConceptChunk
CPP.density    Symbol
lRho   Space
Real UnitDefn
densityU
specWeight :: UnitalChunk
specWeight = ConceptChunk -> Symbol -> Space -> UnitDefn -> UnitalChunk
forall c u.
(Concept c, IsUnit u) =>
c -> Symbol -> Space -> u -> UnitalChunk
uc ConceptChunk
CPP.specWeight Symbol
lGamma Space
Real UnitDefn
specificWeight
mass :: UnitalChunk
mass       = ConceptChunk -> Symbol -> Space -> UnitDefn -> UnitalChunk
forall c u.
(Concept c, IsUnit u) =>
c -> Symbol -> Space -> u -> UnitalChunk
uc ConceptChunk
CPP.mass       Symbol
lM     Space
Real UnitDefn
kilogram
len :: UnitalChunk
len        = ConceptChunk -> Symbol -> Space -> UnitDefn -> UnitalChunk
forall c u.
(Concept c, IsUnit u) =>
c -> Symbol -> Space -> u -> UnitalChunk
uc ConceptChunk
CPP.len        Symbol
cL     Space
Real UnitDefn
metre
vol :: UnitalChunk
vol        = ConceptChunk -> Symbol -> Space -> UnitDefn -> UnitalChunk
forall c u.
(Concept c, IsUnit u) =>
c -> Symbol -> Space -> u -> UnitalChunk
uc ConceptChunk
CPP.vol        Symbol
cV     Space
Real UnitDefn
m_3