module Drasil.DblPend.Concepts where import Language.Drasil import Data.Drasil.Domains (physics) import Data.Drasil.Concepts.Documentation (first, second_, object) import Data.Drasil.Theories.Physics (newtonSLRQD) import Language.Drasil.Chunk.Concept.NamedCombinators (compoundNC) import Data.Drasil.Concepts.Physics (pendulum, motion, position, velocity, force, acceleration) concepts :: [IdeaDict] concepts :: [IdeaDict] concepts = forall c. Idea c => c -> IdeaDict nw ModelQDef newtonSLRQD forall a. a -> [a] -> [a] : forall a b. (a -> b) -> [a] -> [b] map forall c. Idea c => c -> IdeaDict nw [IdeaDict rod, IdeaDict horizontal, IdeaDict vertical, IdeaDict pendMotion, IdeaDict horizontalPos, IdeaDict verticalPos, IdeaDict horizontalVel,IdeaDict horizontalAccel, IdeaDict verticalAccel, IdeaDict verticalVel, IdeaDict horizontalForce, IdeaDict verticalForce, IdeaDict firstRod, IdeaDict secondRod, IdeaDict firstObject, IdeaDict secondObject] forall a. [a] -> [a] -> [a] ++ forall a b. (a -> b) -> [a] -> [b] map forall c. Idea c => c -> IdeaDict nw [ConceptChunk] defs rod, horizontal, vertical :: IdeaDict rod :: IdeaDict rod = String -> NP -> IdeaDict nc String "rod" (String -> NP cn' String "rod") horizontal :: IdeaDict horizontal = String -> NP -> IdeaDict nc String "horizontal" (String -> NP cn String "horizontal") vertical :: IdeaDict vertical = String -> NP -> IdeaDict nc String "vertical" (String -> NP cn String "vertical") pendMotion, horizontalPos, verticalPos, horizontalVel, verticalVel, horizontalForce, verticalForce, horizontalAccel, verticalAccel, firstRod, secondRod, firstObject, secondObject:: IdeaDict pendMotion :: IdeaDict pendMotion = forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict compoundNC ConceptChunk pendulum ConceptChunk motion horizontalPos :: IdeaDict horizontalPos = forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict compoundNC IdeaDict horizontal ConceptChunk position verticalPos :: IdeaDict verticalPos = forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict compoundNC IdeaDict vertical ConceptChunk position horizontalVel :: IdeaDict horizontalVel = forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict compoundNC IdeaDict horizontal ConceptChunk velocity verticalVel :: IdeaDict verticalVel = forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict compoundNC IdeaDict vertical ConceptChunk velocity horizontalAccel :: IdeaDict horizontalAccel = forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict compoundNC IdeaDict horizontal ConceptChunk acceleration verticalAccel :: IdeaDict verticalAccel = forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict compoundNC IdeaDict vertical ConceptChunk acceleration horizontalForce :: IdeaDict horizontalForce = forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict compoundNC IdeaDict horizontal ConceptChunk force verticalForce :: IdeaDict verticalForce = forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict compoundNC IdeaDict vertical ConceptChunk force firstRod :: IdeaDict firstRod = forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict compoundNC IdeaDict first IdeaDict rod secondRod :: IdeaDict secondRod = forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict compoundNC IdeaDict second_ IdeaDict rod firstObject :: IdeaDict firstObject = forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict compoundNC IdeaDict first IdeaDict object secondObject :: IdeaDict secondObject = forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict compoundNC IdeaDict second_ IdeaDict object defs :: [ConceptChunk] defs :: [ConceptChunk] defs = [ConceptChunk arcLen] arcLen :: ConceptChunk arcLen :: ConceptChunk arcLen = String -> NP -> String -> ConceptChunk dcc String "arc length" (String -> NP nounPhraseSP String "arc length") String "the distance between two points on a curve" progName :: CI progName :: CI progName = String -> NP -> String -> [IdeaDict] -> CI commonIdeaWithDict String "dblPendulum" (String -> NP pn String "Double Pendulum") String "DblPend" [IdeaDict physics]