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 = ModelQDef -> IdeaDict forall c. Idea c => c -> IdeaDict nw ModelQDef newtonSLRQD IdeaDict -> [IdeaDict] -> [IdeaDict] forall a. a -> [a] -> [a] : (IdeaDict -> IdeaDict) -> [IdeaDict] -> [IdeaDict] forall a b. (a -> b) -> [a] -> [b] map IdeaDict -> IdeaDict 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] [IdeaDict] -> [IdeaDict] -> [IdeaDict] forall a. [a] -> [a] -> [a] ++ (ConceptChunk -> IdeaDict) -> [ConceptChunk] -> [IdeaDict] forall a b. (a -> b) -> [a] -> [b] map ConceptChunk -> IdeaDict 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 = ConceptChunk -> ConceptChunk -> IdeaDict forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict compoundNC ConceptChunk pendulum ConceptChunk motion horizontalPos :: IdeaDict horizontalPos = IdeaDict -> ConceptChunk -> IdeaDict forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict compoundNC IdeaDict horizontal ConceptChunk position verticalPos :: IdeaDict verticalPos = IdeaDict -> ConceptChunk -> IdeaDict forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict compoundNC IdeaDict vertical ConceptChunk position horizontalVel :: IdeaDict horizontalVel = IdeaDict -> ConceptChunk -> IdeaDict forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict compoundNC IdeaDict horizontal ConceptChunk velocity verticalVel :: IdeaDict verticalVel = IdeaDict -> ConceptChunk -> IdeaDict forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict compoundNC IdeaDict vertical ConceptChunk velocity horizontalAccel :: IdeaDict horizontalAccel = IdeaDict -> ConceptChunk -> IdeaDict forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict compoundNC IdeaDict horizontal ConceptChunk acceleration verticalAccel :: IdeaDict verticalAccel = IdeaDict -> ConceptChunk -> IdeaDict forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict compoundNC IdeaDict vertical ConceptChunk acceleration horizontalForce :: IdeaDict horizontalForce = IdeaDict -> ConceptChunk -> IdeaDict forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict compoundNC IdeaDict horizontal ConceptChunk force verticalForce :: IdeaDict verticalForce = IdeaDict -> ConceptChunk -> IdeaDict forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict compoundNC IdeaDict vertical ConceptChunk force firstRod :: IdeaDict firstRod = IdeaDict -> IdeaDict -> IdeaDict forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict compoundNC IdeaDict first IdeaDict rod secondRod :: IdeaDict secondRod = IdeaDict -> IdeaDict -> IdeaDict forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict compoundNC IdeaDict second_ IdeaDict rod firstObject :: IdeaDict firstObject = IdeaDict -> IdeaDict -> IdeaDict forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict compoundNC IdeaDict first IdeaDict object secondObject :: IdeaDict secondObject = IdeaDict -> IdeaDict -> IdeaDict 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]