{-# LANGUAGE PostfixOperators #-} module Drasil.Projectile.Assumptions (accelYGravity, accelXZero, cartSyst, assumptions, constAccel, gravAccelValue, launchOrigin, pointMass, posXDirection, targetXAxis, timeStartZero, twoDMotion, yAxisGravity) where import Language.Drasil import Language.Drasil.Chunk.Concept.NamedCombinators import qualified Language.Drasil.NounPhrase.Combinators as NP import qualified Language.Drasil.Sentence.Combinators as S import qualified Drasil.DocLang.SRS as SRS (valsOfAuxCons) import Data.Drasil.Concepts.Documentation (assumpDom, value, consVals) import Data.Drasil.Concepts.Math (cartesian, xAxis, xDir, yAxis, yDir, direction, positive) import Data.Drasil.Concepts.PhysicalProperties (mass) import Data.Drasil.Concepts.Physics (acceleration, collision, distance, gravity, time, twoD) import Drasil.Projectile.Concepts (launcher, projectile, target, projMotion) assumptions :: [ConceptInstance] assumptions :: [ConceptInstance] assumptions = [ConceptInstance twoDMotion, ConceptInstance cartSyst, ConceptInstance yAxisGravity, ConceptInstance launchOrigin, ConceptInstance targetXAxis, ConceptInstance posXDirection, ConceptInstance constAccel, ConceptInstance accelXZero, ConceptInstance accelYGravity, ConceptInstance neglectDrag, ConceptInstance pointMass, ConceptInstance freeFlight, ConceptInstance neglectCurv, ConceptInstance timeStartZero, ConceptInstance gravAccelValue] twoDMotion, cartSyst, yAxisGravity, launchOrigin, targetXAxis, posXDirection, constAccel, accelXZero, accelYGravity, neglectDrag, pointMass, freeFlight, neglectCurv, timeStartZero, gravAccelValue :: ConceptInstance twoDMotion :: ConceptInstance twoDMotion = String -> Sentence -> String -> ConceptChunk -> ConceptInstance forall c. Concept c => String -> Sentence -> String -> c -> ConceptInstance cic String "twoDMotion" Sentence twoDMotionDesc String "twoDMotion" ConceptChunk assumpDom cartSyst :: ConceptInstance cartSyst = String -> Sentence -> String -> ConceptChunk -> ConceptInstance forall c. Concept c => String -> Sentence -> String -> c -> ConceptInstance cic String "cartSyst" Sentence cartSystDesc String "cartSyst" ConceptChunk assumpDom yAxisGravity :: ConceptInstance yAxisGravity = String -> Sentence -> String -> ConceptChunk -> ConceptInstance forall c. Concept c => String -> Sentence -> String -> c -> ConceptInstance cic String "yAxisGravity" Sentence yAxisGravityDesc String "yAxisGravity" ConceptChunk assumpDom launchOrigin :: ConceptInstance launchOrigin = String -> Sentence -> String -> ConceptChunk -> ConceptInstance forall c. Concept c => String -> Sentence -> String -> c -> ConceptInstance cic String "launchOrigin" Sentence launchOriginDesc String "launchOrigin" ConceptChunk assumpDom targetXAxis :: ConceptInstance targetXAxis = String -> Sentence -> String -> ConceptChunk -> ConceptInstance forall c. Concept c => String -> Sentence -> String -> c -> ConceptInstance cic String "targetXAxis" Sentence targetXAxisDesc String "targetXAxis" ConceptChunk assumpDom posXDirection :: ConceptInstance posXDirection = String -> Sentence -> String -> ConceptChunk -> ConceptInstance forall c. Concept c => String -> Sentence -> String -> c -> ConceptInstance cic String "posXDirection" Sentence posXDirectionDesc String "posXDirection" ConceptChunk assumpDom constAccel :: ConceptInstance constAccel = String -> Sentence -> String -> ConceptChunk -> ConceptInstance forall c. Concept c => String -> Sentence -> String -> c -> ConceptInstance cic String "constAccel" Sentence constAccelDesc String "constAccel" ConceptChunk assumpDom accelXZero :: ConceptInstance accelXZero = String -> Sentence -> String -> ConceptChunk -> ConceptInstance forall c. Concept c => String -> Sentence -> String -> c -> ConceptInstance cic String "accelXZero" Sentence accelXZeroDesc String "accelXZero" ConceptChunk assumpDom accelYGravity :: ConceptInstance accelYGravity = String -> Sentence -> String -> ConceptChunk -> ConceptInstance forall c. Concept c => String -> Sentence -> String -> c -> ConceptInstance cic String "accelYGravity" Sentence accelYGravityDesc String "accelYGravity" ConceptChunk assumpDom neglectDrag :: ConceptInstance neglectDrag = String -> Sentence -> String -> ConceptChunk -> ConceptInstance forall c. Concept c => String -> Sentence -> String -> c -> ConceptInstance cic String "neglectDrag" Sentence neglectDragDesc String "neglectDrag" ConceptChunk assumpDom pointMass :: ConceptInstance pointMass = String -> Sentence -> String -> ConceptChunk -> ConceptInstance forall c. Concept c => String -> Sentence -> String -> c -> ConceptInstance cic String "pointMass" Sentence pointMassDesc String "pointMass" ConceptChunk assumpDom freeFlight :: ConceptInstance freeFlight = String -> Sentence -> String -> ConceptChunk -> ConceptInstance forall c. Concept c => String -> Sentence -> String -> c -> ConceptInstance cic String "freeFlight" Sentence freeFlightDesc String "freeFlight" ConceptChunk assumpDom neglectCurv :: ConceptInstance neglectCurv = String -> Sentence -> String -> ConceptChunk -> ConceptInstance forall c. Concept c => String -> Sentence -> String -> c -> ConceptInstance cic String "neglectCurv" Sentence neglectCurvDesc String "neglectCurv" ConceptChunk assumpDom timeStartZero :: ConceptInstance timeStartZero = String -> Sentence -> String -> ConceptChunk -> ConceptInstance forall c. Concept c => String -> Sentence -> String -> c -> ConceptInstance cic String "timeStartZero" Sentence timeStartZeroDesc String "timeStartZero" ConceptChunk assumpDom gravAccelValue :: ConceptInstance gravAccelValue = String -> Sentence -> String -> ConceptChunk -> ConceptInstance forall c. Concept c => String -> Sentence -> String -> c -> ConceptInstance cic String "gravAccelValue" Sentence gravAccelValueDesc String "gravAccelValue" ConceptChunk assumpDom twoDMotionDesc :: Sentence twoDMotionDesc :: Sentence twoDMotionDesc = NP -> Sentence forall n. NounPhrase n => n -> Sentence atStartNP (NP -> NP NP.the (IdeaDict projMotion IdeaDict -> CI -> NP forall c d. (NamedIdea c, NamedIdea d) => c -> d -> NP `is` CI twoD)) Sentence -> Sentence -> Sentence +:+. Sentence -> Sentence sParen (CI -> Sentence getAcc CI twoD) cartSystDesc :: Sentence cartSystDesc :: Sentence cartSystDesc = NP -> Sentence forall n. NounPhrase n => n -> Sentence atStartNP (ConceptChunk -> NP forall c. NamedIdea c => c -> NP a_ ConceptChunk cartesian) Sentence -> Sentence -> Sentence `S.is` String -> Sentence S String "used" Sentence -> Sentence -> Sentence +:+. ConceptInstance -> Sentence forall r. (Referable r, HasShortName r) => r -> Sentence fromSource ConceptInstance neglectCurv yAxisGravityDesc :: Sentence yAxisGravityDesc :: Sentence yAxisGravityDesc = NP -> Sentence forall n. NounPhrase n => n -> Sentence atStartNP (ConceptChunk direction ConceptChunk -> ConceptChunk -> NP forall c d. (NamedIdea c, NamedIdea d) => c -> d -> NP `the_ofThe` ConceptChunk yAxis) Sentence -> Sentence -> Sentence `S.is` String -> Sentence S String "directed opposite to" Sentence -> Sentence -> Sentence +:+. ConceptChunk -> Sentence forall n. NamedIdea n => n -> Sentence phrase ConceptChunk gravity launchOriginDesc :: Sentence launchOriginDesc :: Sentence launchOriginDesc = (NP -> Sentence forall n. NounPhrase n => n -> Sentence atStartNP (ConceptChunk -> NP forall c. NamedIdea c => c -> NP the ConceptChunk launcher) Sentence -> Sentence -> Sentence `S.is` String -> Sentence S String "coincident with the origin" !.) targetXAxisDesc :: Sentence targetXAxisDesc :: Sentence targetXAxisDesc = NP -> Sentence forall n. NounPhrase n => n -> Sentence atStartNP (ConceptChunk -> NP forall c. NamedIdea c => c -> NP the ConceptChunk target) Sentence -> Sentence -> Sentence +:+ String -> Sentence S String "lies on the" Sentence -> Sentence -> Sentence +:+ ConceptChunk -> Sentence forall n. NamedIdea n => n -> Sentence phrase ConceptChunk xAxis Sentence -> Sentence -> Sentence +:+. ConceptInstance -> Sentence forall r. (Referable r, HasShortName r) => r -> Sentence fromSource ConceptInstance neglectCurv posXDirectionDesc :: Sentence posXDirectionDesc :: Sentence posXDirectionDesc = NP -> Sentence forall n. NounPhrase n => n -> Sentence atStartNP (NP -> NP NP.the (ConceptChunk -> ConceptChunk -> NP forall c d. (NamedIdea c, NamedIdea d) => c -> d -> NP combineNINI ConceptChunk positive ConceptChunk xDir)) Sentence -> Sentence -> Sentence `S.is` String -> Sentence S String "from the" Sentence -> Sentence -> Sentence +:+. NP -> Sentence forall n. NounPhrase n => n -> Sentence phraseNP (ConceptChunk launcher ConceptChunk -> ConceptChunk -> NP forall c d. (NamedIdea c, NamedIdea d) => c -> d -> NP `toThe` ConceptChunk target) constAccelDesc :: Sentence constAccelDesc :: Sentence constAccelDesc = NP -> Sentence forall n. NounPhrase n => n -> Sentence atStartNP (ConceptChunk -> NP forall c. NamedIdea c => c -> NP the ConceptChunk acceleration) Sentence -> Sentence -> Sentence `S.is` String -> Sentence S String "constant" Sentence -> Sentence -> Sentence +:+. [ConceptInstance] -> Sentence forall r. (Referable r, HasShortName r) => [r] -> Sentence fromSources [ConceptInstance accelXZero, ConceptInstance accelYGravity, ConceptInstance neglectDrag, ConceptInstance freeFlight] accelXZeroDesc :: Sentence accelXZeroDesc :: Sentence accelXZeroDesc = NP -> Sentence forall n. NounPhrase n => n -> Sentence atStartNP (NP -> NP NP.the (ConceptChunk acceleration ConceptChunk -> ConceptChunk -> NP forall c d. (NamedIdea c, NamedIdea d) => c -> d -> NP `inThe` ConceptChunk xDir)) Sentence -> Sentence -> Sentence `S.is` (String -> Sentence S String "zero" !.) accelYGravityDesc :: Sentence accelYGravityDesc :: Sentence accelYGravityDesc = NP -> Sentence forall n. NounPhrase n => n -> Sentence atStartNP (NP -> NP NP.the (ConceptChunk acceleration ConceptChunk -> ConceptChunk -> NP forall c d. (NamedIdea c, NamedIdea d) => c -> d -> NP `inThe` ConceptChunk yDir)) Sentence -> Sentence -> Sentence `S.isThe` ConceptChunk -> Sentence forall n. NamedIdea n => n -> Sentence phrase ConceptChunk acceleration Sentence -> Sentence -> Sentence +:+ String -> Sentence S String "due to" Sentence -> Sentence -> Sentence +:+ ConceptChunk -> Sentence forall n. NamedIdea n => n -> Sentence phrase ConceptChunk gravity Sentence -> Sentence -> Sentence +:+. ConceptInstance -> Sentence forall r. (Referable r, HasShortName r) => r -> Sentence fromSource ConceptInstance yAxisGravity neglectDragDesc :: Sentence neglectDragDesc :: Sentence neglectDragDesc = (String -> Sentence S String "Air drag" Sentence -> Sentence -> Sentence `S.is` String -> Sentence S String "neglected" !.) pointMassDesc :: Sentence pointMassDesc :: Sentence pointMassDesc = (String -> Sentence S String "size" Sentence -> Sentence -> Sentence `S.and_` String -> Sentence S String "shape") Sentence -> Sentence -> Sentence `S.the_ofTheC` ConceptChunk -> Sentence forall n. NamedIdea n => n -> Sentence phrase ConceptChunk projectile Sentence -> Sentence -> Sentence `S.are` String -> Sentence S String "negligible" Sentence -> Sentence -> Sentence `sC` String -> Sentence S String "so that it can be modelled as a point" Sentence -> Sentence -> Sentence +:+. ConceptChunk -> Sentence forall n. NamedIdea n => n -> Sentence phrase ConceptChunk mass freeFlightDesc :: Sentence freeFlightDesc :: Sentence freeFlightDesc = String -> Sentence S String "The flight" Sentence -> Sentence -> Sentence `S.is` String -> Sentence S String "free; there" Sentence -> Sentence -> Sentence `S.are` String -> Sentence S String "no" Sentence -> Sentence -> Sentence +:+ ConceptChunk -> Sentence forall n. NamedIdea n => n -> Sentence plural ConceptChunk collision Sentence -> Sentence -> Sentence +:+ String -> Sentence S String "during" Sentence -> Sentence -> Sentence +:+. (String -> Sentence S String "trajectory" Sentence -> Sentence -> Sentence `S.the_ofThe` ConceptChunk -> Sentence forall n. NamedIdea n => n -> Sentence phrase ConceptChunk projectile) neglectCurvDesc :: Sentence neglectCurvDesc :: Sentence neglectCurvDesc = NP -> Sentence forall n. NounPhrase n => n -> Sentence atStartNP (ConceptChunk -> NP forall c. NamedIdea c => c -> NP the ConceptChunk distance) Sentence -> Sentence -> Sentence `S.is` String -> Sentence S String "small enough that" Sentence -> Sentence -> Sentence +:+. (String -> Sentence S String "curvature" Sentence -> Sentence -> Sentence `S.the_ofThe` String -> Sentence S String "celestial body can be neglected") timeStartZeroDesc :: Sentence timeStartZeroDesc :: Sentence timeStartZeroDesc = ConceptChunk -> Sentence forall n. NamedIdea n => n -> Sentence atStart ConceptChunk time Sentence -> Sentence -> Sentence +:+. String -> Sentence S String "starts at zero" gravAccelValueDesc :: Sentence gravAccelValueDesc :: Sentence gravAccelValueDesc = NP -> Sentence forall n. NounPhrase n => n -> Sentence atStartNP (ConceptChunk -> NP forall c. NamedIdea c => c -> NP the ConceptChunk acceleration) Sentence -> Sentence -> Sentence +:+ String -> Sentence S String "due to" Sentence -> Sentence -> Sentence +:+ ConceptChunk -> Sentence forall n. NamedIdea n => n -> Sentence phrase ConceptChunk gravity Sentence -> Sentence -> Sentence +:+ String -> Sentence S String "is assumed to have the" Sentence -> Sentence -> Sentence +:+ IdeaDict -> Sentence forall n. NamedIdea n => n -> Sentence phrase IdeaDict value Sentence -> Sentence -> Sentence +:+ String -> Sentence S String "provided in the section for" Sentence -> Sentence -> Sentence +:+. Section -> Sentence -> Sentence forall r. (HasUID r, HasRefAddress r, HasShortName r) => r -> Sentence -> Sentence namedRef ([Contents] -> [Section] -> Section SRS.valsOfAuxCons [] []) (IdeaDict -> Sentence forall n. NamedIdea n => n -> Sentence titleize IdeaDict consVals)