-- | 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 qualified 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)

physicalquants :: [DefinedQuantityDict]
physicalquants :: [DefinedQuantityDict]
physicalquants = [DefinedQuantityDict
density, DefinedQuantityDict
specWeight, DefinedQuantityDict
mass, DefinedQuantityDict
len, DefinedQuantityDict
vol]

density, specWeight, mass, len, vol :: DefinedQuantityDict
density :: DefinedQuantityDict
density    = ConceptChunk -> Symbol -> Space -> UnitDefn -> DefinedQuantityDict
dqd ConceptChunk
CPP.density    Symbol
lRho   Space
Real UnitDefn
densityU
specWeight :: DefinedQuantityDict
specWeight = ConceptChunk -> Symbol -> Space -> UnitDefn -> DefinedQuantityDict
dqd ConceptChunk
CPP.specWeight Symbol
lGamma Space
Real UnitDefn
specificWeight
mass :: DefinedQuantityDict
mass       = ConceptChunk -> Symbol -> Space -> UnitDefn -> DefinedQuantityDict
dqd ConceptChunk
CPP.mass       Symbol
lM     Space
Real UnitDefn
kilogram
len :: DefinedQuantityDict
len        = ConceptChunk -> Symbol -> Space -> UnitDefn -> DefinedQuantityDict
dqd ConceptChunk
CPP.len        Symbol
cL     Space
Real UnitDefn
metre
vol :: DefinedQuantityDict
vol        = ConceptChunk -> Symbol -> Space -> UnitDefn -> DefinedQuantityDict
dqd ConceptChunk
CPP.vol        Symbol
cV     Space
Real UnitDefn
m_3