module Data.Drasil.Units.Physics where
import Data.Drasil.SI_Units (metre, radian, s_2, second, newton, kilogram,
m_2, m_3, newton)
import Language.Drasil (cn, dcc, newUnit, UnitDefn, (/:), (/$), (*:), makeDerU)
accelU, angVelU, angAccelU, forcePerMeterU, momtInertU, momentOfForceU,
impulseU, springConstU, torqueU, velU :: UnitDefn
accelU :: UnitDefn
accelU = String -> UnitEquation -> UnitDefn
newUnit String
"acceleration" (UnitEquation -> UnitDefn) -> UnitEquation -> UnitDefn
forall a b. (a -> b) -> a -> b
$ UnitDefn
metre UnitDefn -> UnitDefn -> UnitEquation
/: UnitDefn
s_2
angVelU :: UnitDefn
angVelU = String -> UnitEquation -> UnitDefn
newUnit String
"angular velocity" (UnitEquation -> UnitDefn) -> UnitEquation -> UnitDefn
forall a b. (a -> b) -> a -> b
$ UnitDefn
radian UnitDefn -> UnitDefn -> UnitEquation
/: UnitDefn
second
angAccelU :: UnitDefn
angAccelU = String -> UnitEquation -> UnitDefn
newUnit String
"angular acceleration" (UnitEquation -> UnitDefn) -> UnitEquation -> UnitDefn
forall a b. (a -> b) -> a -> b
$ UnitDefn
radian UnitDefn -> UnitDefn -> UnitEquation
/: UnitDefn
s_2
forcePerMeterU :: UnitDefn
forcePerMeterU = String -> UnitEquation -> UnitDefn
newUnit String
"force per meter" (UnitEquation -> UnitDefn) -> UnitEquation -> UnitDefn
forall a b. (a -> b) -> a -> b
$ UnitDefn
newton UnitDefn -> UnitDefn -> UnitEquation
/: UnitDefn
metre
impulseU :: UnitDefn
impulseU = String -> UnitEquation -> UnitDefn
newUnit String
"impulse" (UnitEquation -> UnitDefn) -> UnitEquation -> UnitDefn
forall a b. (a -> b) -> a -> b
$ UnitDefn
newton UnitDefn -> UnitDefn -> UnitEquation
*: UnitDefn
second
momtInertU :: UnitDefn
momtInertU = String -> UnitEquation -> UnitDefn
newUnit String
"moment of inertia" (UnitEquation -> UnitDefn) -> UnitEquation -> UnitDefn
forall a b. (a -> b) -> a -> b
$ UnitDefn
kilogram UnitDefn -> UnitDefn -> UnitEquation
*: UnitDefn
m_2
momentOfForceU :: UnitDefn
momentOfForceU = String -> UnitEquation -> UnitDefn
newUnit String
"moment of force" (UnitEquation -> UnitDefn) -> UnitEquation -> UnitDefn
forall a b. (a -> b) -> a -> b
$ UnitDefn
newton UnitDefn -> UnitDefn -> UnitEquation
*: UnitDefn
metre
springConstU :: UnitDefn
springConstU = String -> UnitEquation -> UnitDefn
newUnit String
"spring constant" (UnitEquation -> UnitDefn) -> UnitEquation -> UnitDefn
forall a b. (a -> b) -> a -> b
$ UnitDefn
newton UnitDefn -> UnitDefn -> UnitEquation
/: UnitDefn
metre
torqueU :: UnitDefn
torqueU = String -> UnitEquation -> UnitDefn
newUnit String
"torque" (UnitEquation -> UnitDefn) -> UnitEquation -> UnitDefn
forall a b. (a -> b) -> a -> b
$ UnitDefn
newton UnitDefn -> UnitDefn -> UnitEquation
*: UnitDefn
metre
velU :: UnitDefn
velU = String -> UnitEquation -> UnitDefn
newUnit String
"velocity" (UnitEquation -> UnitDefn) -> UnitEquation -> UnitDefn
forall a b. (a -> b) -> a -> b
$ UnitDefn
metre UnitDefn -> UnitDefn -> UnitEquation
/: UnitDefn
second
gravConstU :: UnitDefn
gravConstU :: UnitDefn
gravConstU = ConceptChunk -> UnitEquation -> UnitDefn
makeDerU (String -> NP -> String -> ConceptChunk
dcc String
"gravConstU" (String -> NP
cn String
"gravitational constant")
String
"universal gravitational constant") (UnitDefn
m_3 UnitDefn -> UnitEquation -> UnitEquation
/$ (UnitDefn
kilogram UnitDefn -> UnitDefn -> UnitEquation
*: UnitDefn
s_2))