diff --git a/code/drasil-example/Drasil/GamePhysics/DataDefs.hs b/code/drasil-example/Drasil/GamePhysics/DataDefs.hs index 9974de13ca..5c3dadfc2b 100644 --- a/code/drasil-example/Drasil/GamePhysics/DataDefs.hs +++ b/code/drasil-example/Drasil/GamePhysics/DataDefs.hs @@ -6,7 +6,7 @@ module Drasil.GamePhysics.DataDefs (qDefs, blockQDefs, dataDefs, import Language.Drasil import Database.Drasil (Block(Parallel)) -import Theory.Drasil (DataDefinition, ddNoRefs, mkQuantDef) +import Theory.Drasil (DataDefinition, ddNoRefs, mkQuantDef, mkQuantDef') import Utils.Drasil import Drasil.GamePhysics.Assumptions (assumpOT, assumpOD, assumpAD, assumpCT, assumpDI) @@ -226,11 +226,11 @@ dd8descr = (impulseScl ^. term) +:+ S "used to determine" +:+ -} ------------------------DD9 Chasles Theorem---------------------------------- chaslesDD :: DataDefinition -chaslesDD = ddNoRefs chasles Nothing "chalses" +chaslesDD = ddNoRefs chasles Nothing "chaslesThm" [chaslesThmDesc, makeRef2S assumpOT, makeRef2S assumpOD, makeRef2S assumpDI] chasles :: QDefinition -chasles = mkQuantDef velB chaslesEqn +chasles = mkQuantDef' velB (nounPhraseSP "Chasles' theorem") chaslesEqn -- The last two terms in the denominator should be cross products. chaslesEqn :: Expr diff --git a/code/drasil-theory/Theory/Drasil.hs b/code/drasil-theory/Theory/Drasil.hs index 0266d5fbd9..d6b0094094 100644 --- a/code/drasil-theory/Theory/Drasil.hs +++ b/code/drasil-theory/Theory/Drasil.hs @@ -1,7 +1,7 @@ {- re-export many things to simplify external use -} module Theory.Drasil ( -- DataDefinition - DataDefinition, mkQuantDef, dd, ddNoRefs, qdFromDD + DataDefinition, mkQuantDef, mkQuantDef', dd, ddNoRefs, qdFromDD -- GenDefn , GenDefn, gd, gdNoRefs -- InstanceModel @@ -12,7 +12,7 @@ module Theory.Drasil ( , Theory(..), TheoryModel, tm, tmNoRefs ) where -import Theory.Drasil.DataDefinition (DataDefinition, mkQuantDef, +import Theory.Drasil.DataDefinition (DataDefinition, mkQuantDef, mkQuantDef', dd, ddNoRefs, qdFromDD) import Theory.Drasil.GenDefn import Theory.Drasil.InstanceModel diff --git a/code/drasil-theory/Theory/Drasil/DataDefinition.hs b/code/drasil-theory/Theory/Drasil/DataDefinition.hs index fca7a4c2cf..0aa924ee99 100644 --- a/code/drasil-theory/Theory/Drasil/DataDefinition.hs +++ b/code/drasil-theory/Theory/Drasil/DataDefinition.hs @@ -60,3 +60,10 @@ mkQuantDef :: (Quantity c, MayHaveUnit c) => c -> Expr -> QDefinition mkQuantDef cncpt equation = datadef $ getUnit cncpt where datadef (Just a) = fromEqnSt (cncpt ^. uid) (cncpt ^. term) EmptyS (symbol cncpt) Real a equation datadef Nothing = fromEqnSt' (cncpt ^. uid) (cncpt ^. term) EmptyS (symbol cncpt) Real equation + +-- Used to help make Qdefinitions when uid and symbol come from the same source, with the term is separate +mkQuantDef' :: (Quantity c, MayHaveUnit c) => c -> NP -> Expr -> QDefinition +mkQuantDef' cncpt term equation = datadef $ getUnit cncpt + where datadef (Just a) = fromEqnSt (cncpt ^. uid) term EmptyS (symbol cncpt) Real a equation + datadef Nothing = fromEqnSt' (cncpt ^. uid) term EmptyS (symbol cncpt) Real equation + diff --git a/code/stable/gamephysics/SRS/GamePhysics_SRS.tex b/code/stable/gamephysics/SRS/GamePhysics_SRS.tex index 968b6a6f24..84896973ec 100644 --- a/code/stable/gamephysics/SRS/GamePhysics_SRS.tex +++ b/code/stable/gamephysics/SRS/GamePhysics_SRS.tex @@ -338,12 +338,12 @@ \subsubsection{Assumptions} This section simplifies the original problem and helps in developing the theoretical models by filling in the missing information for the physical system. The assumptions refine the scope by providing more detail. \begin{itemize} -\item[objectTy:\phantomsection\label{assumpOT}]{All objects are rigid bodies. (RefBy: \hyperref[DD:chalses]{DD: chalses}, \hyperref[DD:reVeInColl]{DD: reVeInColl}, \hyperref[IM:transMot]{IM: transMot}, \hyperref[IM:rotMot]{IM: rotMot}, \hyperref[DD:potEnergy]{DD: potEnergy}, \hyperref[DD:ctrOfMass]{DD: ctrOfMass}, \hyperref[DD:momentOfInertia]{DD: momentOfInertia}, \hyperref[DD:linVel]{DD: linVel}, \hyperref[DD:linDisp]{DD: linDisp}, \hyperref[DD:linAcc]{DD: linAcc}, \hyperref[DD:kEnergy]{DD: kEnergy}, \hyperref[DD:impulseV]{DD: impulseV}, \hyperref[DD:impulse]{DD: impulse}, \hyperref[IM:col2D]{IM: col2D}, \hyperref[TM:ChaslesThm]{TM: ChaslesThm}, \hyperref[DD:angVel]{DD: angVel}, \hyperref[DD:angDisp]{DD: angDisp}, and \hyperref[DD:angAccel]{DD: angAccel}.)} -\item[objectDimension:\phantomsection\label{assumpOD}]{All objects are 2D. (RefBy: \hyperref[DD:chalses]{DD: chalses}, \hyperref[IM:transMot]{IM: transMot}, \hyperref[IM:rotMot]{IM: rotMot}, \hyperref[DD:potEnergy]{DD: potEnergy}, \hyperref[DD:ctrOfMass]{DD: ctrOfMass}, \hyperref[TM:NewtonSecLawRotMot]{TM: NewtonSecLawRotMot}, \hyperref[DD:linVel]{DD: linVel}, \hyperref[DD:linDisp]{DD: linDisp}, \hyperref[DD:linAcc]{DD: linAcc}, \hyperref[DD:kEnergy]{DD: kEnergy}, \hyperref[DD:impulse]{DD: impulse}, \hyperref[IM:col2D]{IM: col2D}, \hyperref[DD:angVel]{DD: angVel}, \hyperref[DD:angDisp]{DD: angDisp}, and \hyperref[DD:angAccel]{DD: angAccel}.)} +\item[objectTy:\phantomsection\label{assumpOT}]{All objects are rigid bodies. (RefBy: \hyperref[DD:chaslesThm]{DD: chaslesThm}, \hyperref[DD:reVeInColl]{DD: reVeInColl}, \hyperref[IM:transMot]{IM: transMot}, \hyperref[IM:rotMot]{IM: rotMot}, \hyperref[DD:potEnergy]{DD: potEnergy}, \hyperref[DD:ctrOfMass]{DD: ctrOfMass}, \hyperref[DD:momentOfInertia]{DD: momentOfInertia}, \hyperref[DD:linVel]{DD: linVel}, \hyperref[DD:linDisp]{DD: linDisp}, \hyperref[DD:linAcc]{DD: linAcc}, \hyperref[DD:kEnergy]{DD: kEnergy}, \hyperref[DD:impulseV]{DD: impulseV}, \hyperref[DD:impulse]{DD: impulse}, \hyperref[IM:col2D]{IM: col2D}, \hyperref[TM:ChaslesThm]{TM: ChaslesThm}, \hyperref[DD:angVel]{DD: angVel}, \hyperref[DD:angDisp]{DD: angDisp}, and \hyperref[DD:angAccel]{DD: angAccel}.)} +\item[objectDimension:\phantomsection\label{assumpOD}]{All objects are 2D. (RefBy: \hyperref[DD:chaslesThm]{DD: chaslesThm}, \hyperref[IM:transMot]{IM: transMot}, \hyperref[IM:rotMot]{IM: rotMot}, \hyperref[DD:potEnergy]{DD: potEnergy}, \hyperref[DD:ctrOfMass]{DD: ctrOfMass}, \hyperref[TM:NewtonSecLawRotMot]{TM: NewtonSecLawRotMot}, \hyperref[DD:linVel]{DD: linVel}, \hyperref[DD:linDisp]{DD: linDisp}, \hyperref[DD:linAcc]{DD: linAcc}, \hyperref[DD:kEnergy]{DD: kEnergy}, \hyperref[DD:impulse]{DD: impulse}, \hyperref[IM:col2D]{IM: col2D}, \hyperref[DD:angVel]{DD: angVel}, \hyperref[DD:angDisp]{DD: angDisp}, and \hyperref[DD:angAccel]{DD: angAccel}.)} \item[coordinateSystemTy:\phantomsection\label{assumpCST}]{The library uses a Cartesian coordinate system.} \item[axesDefined:\phantomsection\label{assumpAD}]{The axes are defined using right-handed coordinate system. (RefBy: \hyperref[IM:rotMot]{IM: rotMot}, \hyperref[DD:impulse]{DD: impulse}, and \hyperref[IM:col2D]{IM: col2D}.)} \item[collisionType:\phantomsection\label{assumpCT}]{All rigid bodies collisions are vertex-to-edge collisions. (RefBy: \hyperref[lcEC]{LC: Expanded-Collisions}, \hyperref[DD:impulse]{DD: impulse}, and \hyperref[IM:col2D]{IM: col2D}.)} -\item[dampingInvolvement:\phantomsection\label{assumpDI}]{There is no damping involved throughout the simulation and this implies that there are no friction forces. (RefBy: \hyperref[DD:chalses]{DD: chalses}, \hyperref[IM:transMot]{IM: transMot}, \hyperref[IM:rotMot]{IM: rotMot}, \hyperref[DD:potEnergy]{DD: potEnergy}, \hyperref[DD:linVel]{DD: linVel}, \hyperref[DD:linDisp]{DD: linDisp}, \hyperref[DD:linAcc]{DD: linAcc}, \hyperref[lcID]{LC: Include-Dampening}, \hyperref[DD:kEnergy]{DD: kEnergy}, \hyperref[IM:col2D]{IM: col2D}, \hyperref[DD:angVel]{DD: angVel}, \hyperref[DD:angDisp]{DD: angDisp}, and \hyperref[DD:angAccel]{DD: angAccel}.)} +\item[dampingInvolvement:\phantomsection\label{assumpDI}]{There is no damping involved throughout the simulation and this implies that there are no friction forces. (RefBy: \hyperref[DD:chaslesThm]{DD: chaslesThm}, \hyperref[IM:transMot]{IM: transMot}, \hyperref[IM:rotMot]{IM: rotMot}, \hyperref[DD:potEnergy]{DD: potEnergy}, \hyperref[DD:linVel]{DD: linVel}, \hyperref[DD:linDisp]{DD: linDisp}, \hyperref[DD:linAcc]{DD: linAcc}, \hyperref[lcID]{LC: Include-Dampening}, \hyperref[DD:kEnergy]{DD: kEnergy}, \hyperref[IM:col2D]{IM: col2D}, \hyperref[DD:angVel]{DD: angVel}, \hyperref[DD:angDisp]{DD: angDisp}, and \hyperref[DD:angAccel]{DD: angAccel}.)} \item[constraintsAndJointsInvolvement:\phantomsection\label{assumpCAJI}]{There are no constraints and joints involved throughout the simulation. (RefBy: \hyperref[IM:transMot]{IM: transMot}, \hyperref[IM:rotMot]{IM: rotMot}, \hyperref[lcIJC]{LC: Include-Joints-Constraints}, and \hyperref[IM:col2D]{IM: col2D}.)} \end{itemize} \subsubsection{Theoretical Models} @@ -874,11 +874,11 @@ \subsubsection{Data Definitions} \noindent \begin{minipage}{\textwidth} \begin{tabular}{>{\raggedright}p{0.13\textwidth}>{\raggedright\arraybackslash}p{0.82\textwidth}} -\toprule \textbf{Refname} & \textbf{DD:chalses} +\toprule \textbf{Refname} & \textbf{DD:chaslesThm} \phantomsection -\label{DD:chalses} +\label{DD:chaslesThm} \\ \midrule \\ -Label & Velocity At Point B +Label & Chasles' theorem \\ \midrule \\ Symbol & ${\mathbf{v}_{\text{B}}}$ @@ -1548,7 +1548,7 @@ \section{Traceability Matrices and Graphs} \\ \hyperref[DD:impulse]{DD: impulse} & X & X & & X & X & & \\ -\hyperref[DD:chalses]{DD: chalses} & X & X & & & & X & +\hyperref[DD:chaslesThm]{DD: chaslesThm} & X & X & & & & X & \\ \hyperref[DD:torque]{DD: torque} & & & & & & & \\ @@ -1632,7 +1632,7 @@ \section{Traceability Matrices and Graphs} \end{longtable} \begin{longtable}{l l l l l l l l l l l l l l l l l l l l l l l l l} \toprule -\textbf{} & \textbf{\hyperref[DD:ctrOfMass]{DD: ctrOfMass}} & \textbf{\hyperref[DD:linDisp]{DD: linDisp}} & \textbf{\hyperref[DD:linVel]{DD: linVel}} & \textbf{\hyperref[DD:linAcc]{DD: linAcc}} & \textbf{\hyperref[DD:angDisp]{DD: angDisp}} & \textbf{\hyperref[DD:angVel]{DD: angVel}} & \textbf{\hyperref[DD:angAccel]{DD: angAccel}} & \textbf{\hyperref[DD:impulse]{DD: impulse}} & \textbf{\hyperref[DD:chalses]{DD: chalses}} & \textbf{\hyperref[DD:torque]{DD: torque}} & \textbf{\hyperref[DD:kEnergy]{DD: kEnergy}} & \textbf{\hyperref[DD:coeffRestitution]{DD: coeffRestitution}} & \textbf{\hyperref[DD:reVeInColl]{DD: reVeInColl}} & \textbf{\hyperref[DD:impulseV]{DD: impulseV}} & \textbf{\hyperref[DD:potEnergy]{DD: potEnergy}} & \textbf{\hyperref[DD:momentOfInertia]{DD: momentOfInertia}} & \textbf{\hyperref[TM:NewtonSecLawMot]{TM: NewtonSecLawMot}} & \textbf{\hyperref[TM:NewtonThirdLawMot]{TM: NewtonThirdLawMot}} & \textbf{\hyperref[TM:UniversalGravLaw]{TM: UniversalGravLaw}} & \textbf{\hyperref[TM:ChaslesThm]{TM: ChaslesThm}} & \textbf{\hyperref[TM:NewtonSecLawRotMot]{TM: NewtonSecLawRotMot}} & \textbf{\hyperref[IM:transMot]{IM: transMot}} & \textbf{\hyperref[IM:rotMot]{IM: rotMot}} & \textbf{\hyperref[IM:col2D]{IM: col2D}} +\textbf{} & \textbf{\hyperref[DD:ctrOfMass]{DD: ctrOfMass}} & \textbf{\hyperref[DD:linDisp]{DD: linDisp}} & \textbf{\hyperref[DD:linVel]{DD: linVel}} & \textbf{\hyperref[DD:linAcc]{DD: linAcc}} & \textbf{\hyperref[DD:angDisp]{DD: angDisp}} & \textbf{\hyperref[DD:angVel]{DD: angVel}} & \textbf{\hyperref[DD:angAccel]{DD: angAccel}} & \textbf{\hyperref[DD:impulse]{DD: impulse}} & \textbf{\hyperref[DD:chaslesThm]{DD: chaslesThm}} & \textbf{\hyperref[DD:torque]{DD: torque}} & \textbf{\hyperref[DD:kEnergy]{DD: kEnergy}} & \textbf{\hyperref[DD:coeffRestitution]{DD: coeffRestitution}} & \textbf{\hyperref[DD:reVeInColl]{DD: reVeInColl}} & \textbf{\hyperref[DD:impulseV]{DD: impulseV}} & \textbf{\hyperref[DD:potEnergy]{DD: potEnergy}} & \textbf{\hyperref[DD:momentOfInertia]{DD: momentOfInertia}} & \textbf{\hyperref[TM:NewtonSecLawMot]{TM: NewtonSecLawMot}} & \textbf{\hyperref[TM:NewtonThirdLawMot]{TM: NewtonThirdLawMot}} & \textbf{\hyperref[TM:UniversalGravLaw]{TM: UniversalGravLaw}} & \textbf{\hyperref[TM:ChaslesThm]{TM: ChaslesThm}} & \textbf{\hyperref[TM:NewtonSecLawRotMot]{TM: NewtonSecLawRotMot}} & \textbf{\hyperref[IM:transMot]{IM: transMot}} & \textbf{\hyperref[IM:rotMot]{IM: rotMot}} & \textbf{\hyperref[IM:col2D]{IM: col2D}} \\ \midrule \endhead @@ -1652,7 +1652,7 @@ \section{Traceability Matrices and Graphs} \\ \hyperref[DD:impulse]{DD: impulse} & & & & & & & & & & & & & & & & & & & & & & & & \\ -\hyperref[DD:chalses]{DD: chalses} & & & & & & & & & & & & & & & & & & & & & & & & +\hyperref[DD:chaslesThm]{DD: chaslesThm} & & & & & & & & & & & & & & & & & & & & & & & & \\ \hyperref[DD:torque]{DD: torque} & & & & & & & & & & & & & & & & & & & & & & & & \\ @@ -1690,7 +1690,7 @@ \section{Traceability Matrices and Graphs} \end{longtable} \begin{longtable}{l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l} \toprule -\textbf{} & \textbf{\hyperref[DD:ctrOfMass]{DD: ctrOfMass}} & \textbf{\hyperref[DD:linDisp]{DD: linDisp}} & \textbf{\hyperref[DD:linVel]{DD: linVel}} & \textbf{\hyperref[DD:linAcc]{DD: linAcc}} & \textbf{\hyperref[DD:angDisp]{DD: angDisp}} & \textbf{\hyperref[DD:angVel]{DD: angVel}} & \textbf{\hyperref[DD:angAccel]{DD: angAccel}} & \textbf{\hyperref[DD:impulse]{DD: impulse}} & \textbf{\hyperref[DD:chalses]{DD: chalses}} & \textbf{\hyperref[DD:torque]{DD: torque}} & \textbf{\hyperref[DD:kEnergy]{DD: kEnergy}} & \textbf{\hyperref[DD:coeffRestitution]{DD: coeffRestitution}} & \textbf{\hyperref[DD:reVeInColl]{DD: reVeInColl}} & \textbf{\hyperref[DD:impulseV]{DD: impulseV}} & \textbf{\hyperref[DD:potEnergy]{DD: potEnergy}} & \textbf{\hyperref[DD:momentOfInertia]{DD: momentOfInertia}} & \textbf{\hyperref[TM:NewtonSecLawMot]{TM: NewtonSecLawMot}} & \textbf{\hyperref[TM:NewtonThirdLawMot]{TM: NewtonThirdLawMot}} & \textbf{\hyperref[TM:UniversalGravLaw]{TM: UniversalGravLaw}} & \textbf{\hyperref[TM:ChaslesThm]{TM: ChaslesThm}} & \textbf{\hyperref[TM:NewtonSecLawRotMot]{TM: NewtonSecLawRotMot}} & \textbf{\hyperref[IM:transMot]{IM: transMot}} & \textbf{\hyperref[IM:rotMot]{IM: rotMot}} & \textbf{\hyperref[IM:col2D]{IM: col2D}} & \textbf{\hyperref[simSpace]{FR: Simulation-Space}} & \textbf{\hyperref[inputInitialConds]{FR: Input-Initial-Conditions}} & \textbf{\hyperref[inputSurfaceProps]{FR: Input-Surface-Properties}} & \textbf{\hyperref[verifyPhysCons]{FR: Verify-Physical\_Constraints}} & \textbf{\hyperref[calcTransOverTime]{FR: Calculate-Translation-Over-Time}} & \textbf{\hyperref[calcRotOverTime]{FR: Calculate-Rotation-Over-Time}} & \textbf{\hyperref[deterColls]{FR: Determine-Collisions}} & \textbf{\hyperref[deterCollRespOverTime]{FR: Determine-Collision-Response-Over-Time}} & \textbf{\hyperref[highPerformance]{NFR: High-Performance}} & \textbf{\hyperref[correct]{NFR: Correct}} & \textbf{\hyperref[understandable]{NFR: Understandable}} & \textbf{\hyperref[portable]{NFR: Portable}} & \textbf{\hyperref[reliable]{NFR: Reliable}} & \textbf{\hyperref[reusable]{NFR: Reusable}} & \textbf{\hyperref[maintainable]{NFR: Maintainable}} +\textbf{} & \textbf{\hyperref[DD:ctrOfMass]{DD: ctrOfMass}} & \textbf{\hyperref[DD:linDisp]{DD: linDisp}} & \textbf{\hyperref[DD:linVel]{DD: linVel}} & \textbf{\hyperref[DD:linAcc]{DD: linAcc}} & \textbf{\hyperref[DD:angDisp]{DD: angDisp}} & \textbf{\hyperref[DD:angVel]{DD: angVel}} & \textbf{\hyperref[DD:angAccel]{DD: angAccel}} & \textbf{\hyperref[DD:impulse]{DD: impulse}} & \textbf{\hyperref[DD:chaslesThm]{DD: chaslesThm}} & \textbf{\hyperref[DD:torque]{DD: torque}} & \textbf{\hyperref[DD:kEnergy]{DD: kEnergy}} & \textbf{\hyperref[DD:coeffRestitution]{DD: coeffRestitution}} & \textbf{\hyperref[DD:reVeInColl]{DD: reVeInColl}} & \textbf{\hyperref[DD:impulseV]{DD: impulseV}} & \textbf{\hyperref[DD:potEnergy]{DD: potEnergy}} & \textbf{\hyperref[DD:momentOfInertia]{DD: momentOfInertia}} & \textbf{\hyperref[TM:NewtonSecLawMot]{TM: NewtonSecLawMot}} & \textbf{\hyperref[TM:NewtonThirdLawMot]{TM: NewtonThirdLawMot}} & \textbf{\hyperref[TM:UniversalGravLaw]{TM: UniversalGravLaw}} & \textbf{\hyperref[TM:ChaslesThm]{TM: ChaslesThm}} & \textbf{\hyperref[TM:NewtonSecLawRotMot]{TM: NewtonSecLawRotMot}} & \textbf{\hyperref[IM:transMot]{IM: transMot}} & \textbf{\hyperref[IM:rotMot]{IM: rotMot}} & \textbf{\hyperref[IM:col2D]{IM: col2D}} & \textbf{\hyperref[simSpace]{FR: Simulation-Space}} & \textbf{\hyperref[inputInitialConds]{FR: Input-Initial-Conditions}} & \textbf{\hyperref[inputSurfaceProps]{FR: Input-Surface-Properties}} & \textbf{\hyperref[verifyPhysCons]{FR: Verify-Physical\_Constraints}} & \textbf{\hyperref[calcTransOverTime]{FR: Calculate-Translation-Over-Time}} & \textbf{\hyperref[calcRotOverTime]{FR: Calculate-Rotation-Over-Time}} & \textbf{\hyperref[deterColls]{FR: Determine-Collisions}} & \textbf{\hyperref[deterCollRespOverTime]{FR: Determine-Collision-Response-Over-Time}} & \textbf{\hyperref[highPerformance]{NFR: High-Performance}} & \textbf{\hyperref[correct]{NFR: Correct}} & \textbf{\hyperref[understandable]{NFR: Understandable}} & \textbf{\hyperref[portable]{NFR: Portable}} & \textbf{\hyperref[reliable]{NFR: Reliable}} & \textbf{\hyperref[reusable]{NFR: Reusable}} & \textbf{\hyperref[maintainable]{NFR: Maintainable}} \\ \midrule \endhead diff --git a/code/stable/gamephysics/Website/GamePhysics_SRS.html b/code/stable/gamephysics/Website/GamePhysics_SRS.html index 1ebb55ab13..7a21278fa1 100644 --- a/code/stable/gamephysics/Website/GamePhysics_SRS.html +++ b/code/stable/gamephysics/Website/GamePhysics_SRS.html @@ -665,12 +665,12 @@

Assumptions

- objectTy: All objects are rigid bodies. (RefBy: DD: chalses, DD: reVeInColl, IM: transMot, IM: rotMot, DD: potEnergy, DD: ctrOfMass, DD: momentOfInertia, DD: linVel, DD: linDisp, DD: linAcc, DD: kEnergy, DD: impulseV, DD: impulse, IM: col2D, TM: ChaslesThm, DD: angVel, DD: angDisp, and DD: angAccel.) + objectTy: All objects are rigid bodies. (RefBy: DD: chaslesThm, DD: reVeInColl, IM: transMot, IM: rotMot, DD: potEnergy, DD: ctrOfMass, DD: momentOfInertia, DD: linVel, DD: linDisp, DD: linAcc, DD: kEnergy, DD: impulseV, DD: impulse, IM: col2D, TM: ChaslesThm, DD: angVel, DD: angDisp, and DD: angAccel.)

- objectDimension: All objects are 2D. (RefBy: DD: chalses, IM: transMot, IM: rotMot, DD: potEnergy, DD: ctrOfMass, TM: NewtonSecLawRotMot, DD: linVel, DD: linDisp, DD: linAcc, DD: kEnergy, DD: impulse, IM: col2D, DD: angVel, DD: angDisp, and DD: angAccel.) + objectDimension: All objects are 2D. (RefBy: DD: chaslesThm, IM: transMot, IM: rotMot, DD: potEnergy, DD: ctrOfMass, TM: NewtonSecLawRotMot, DD: linVel, DD: linDisp, DD: linAcc, DD: kEnergy, DD: impulse, IM: col2D, DD: angVel, DD: angDisp, and DD: angAccel.)

@@ -690,7 +690,7 @@

Assumptions

- dampingInvolvement: There is no damping involved throughout the simulation and this implies that there are no friction forces. (RefBy: DD: chalses, IM: transMot, IM: rotMot, DD: potEnergy, DD: linVel, DD: linDisp, DD: linAcc, LC: Include-Dampening, DD: kEnergy, IM: col2D, DD: angVel, DD: angDisp, and DD: angAccel.) + dampingInvolvement: There is no damping involved throughout the simulation and this implies that there are no friction forces. (RefBy: DD: chaslesThm, IM: transMot, IM: rotMot, DD: potEnergy, DD: linVel, DD: linDisp, DD: linAcc, LC: Include-Dampening, DD: kEnergy, IM: col2D, DD: angVel, DD: angDisp, and DD: angAccel.)

@@ -1531,15 +1531,15 @@

Data Definitions

-
+
- + - + @@ -2769,7 +2769,7 @@

Traceability Matrices and Graphs

- + @@ -3187,7 +3187,7 @@

Traceability Matrices and Graphs

- + @@ -3421,7 +3421,7 @@

Traceability Matrices and Graphs

- + @@ -3869,7 +3869,7 @@

Traceability Matrices and Graphs

- +
RefnameDD:chalsesDD:chaslesThm
Label

Velocity At Point B

Chasles' theorem

Symbol
DD: chalsesDD: chaslesThm X X DD: angVel DD: angAccel DD: impulseDD: chalsesDD: chaslesThm DD: torque DD: kEnergy DD: coeffRestitution
DD: chalsesDD: chaslesThm DD: angVel DD: angAccel DD: impulseDD: chalsesDD: chaslesThm DD: torque DD: kEnergy DD: coeffRestitution