-- | Defines concepts used to describe physical properties.
module Data.Drasil.Concepts.PhysicalProperties where

import Language.Drasil
import Language.Drasil.Chunk.Concept.NamedCombinators

import Data.Drasil.Concepts.Documentation (material_, property)
import Data.Drasil.Concepts.Math (centre)

-- | Collects all physical property-related concepts.
physicalcon :: [ConceptChunk]
physicalcon :: [ConceptChunk]
physicalcon = [ConceptChunk
gaseous, ConceptChunk
liquid, ConceptChunk
solid, ConceptChunk
ctrOfMass, ConceptChunk
density, ConceptChunk
specWeight, ConceptChunk
mass,
  ConceptChunk
len, ConceptChunk
dimension, ConceptChunk
vol, ConceptChunk
flexure]

-- * Physical Properties

gaseous, liquid, solid, ctrOfMass, density, specWeight, mass, len, dimension,
  vol, flexure :: ConceptChunk

gaseous :: ConceptChunk
gaseous    = String -> NP -> String -> ConceptChunk
dcc "gaseous"    (String -> NP
cn''' "gas"          ) "gaseous state"
liquid :: ConceptChunk
liquid     = String -> NP -> String -> ConceptChunk
dcc "liquid"     (String -> NP
cn' "liquid"         ) "liquid state"
solid :: ConceptChunk
solid      = String -> NP -> String -> ConceptChunk
dcc "solid"      (String -> NP
cn' "solid"          ) "solid state"
ctrOfMass :: ConceptChunk
ctrOfMass  = String -> NP -> String -> ConceptChunk
dcc "ctrOfMass"  (ConceptChunk
centre ConceptChunk -> ConceptChunk -> NP
forall c d. (NamedIdea c, NamedIdea d) => c -> d -> NP
`of_PS` ConceptChunk
mass  ) "the mean location of the distribution of mass of the object"
dimension :: ConceptChunk
dimension  = String -> NP -> String -> ConceptChunk
dcc "dimension"  (String -> NP
cn' "dimension"      ) "any of a set of basic kinds of quantity, as mass, length, and time"
density :: ConceptChunk
density    = String -> NP -> String -> ConceptChunk
dcc "density"    (String -> NP
cnIES "density"      ) "the mass per unit volume"
specWeight :: ConceptChunk
specWeight = String -> NP -> String -> ConceptChunk
dcc "specWeight" (String -> NP
cn' "specific weight") "the weight per unit volume"
flexure :: ConceptChunk
flexure    = String -> NP -> String -> ConceptChunk
dcc "flexure"    (String -> NP
cn' "flexure"        ) "a bent or curved part"
len :: ConceptChunk
len        = String -> NP -> String -> ConceptChunk
dcc "length"     (String -> NP
cn' "length"         ) ("the straight-line distance between two points along an object, " String -> String -> String
forall a. [a] -> [a] -> [a]
++
                                                       "typically used to represent the size of an object from one end to the other")
mass :: ConceptChunk
mass       = String -> NP -> String -> ConceptChunk
dcc "mass"       (String -> NP
cn''' "mass"         ) "the quantity of matter in a body"
vol :: ConceptChunk
vol        = String -> NP -> String -> ConceptChunk
dcc "volume"     (String -> NP
cn' "volume"         ) "the amount of space that a substance or object occupies"

materialProprty :: NamedChunk
materialProprty :: NamedChunk
materialProprty = NamedChunk -> NamedChunk -> NamedChunk
forall a b. (NamedIdea a, NamedIdea b) => a -> b -> NamedChunk
compoundNC NamedChunk
material_ NamedChunk
property