From f83a3672251b7ec98087bd2bad064bd897492c38 Mon Sep 17 00:00:00 2001
From: Sam Crawford
Date: Mon, 10 Jun 2019 13:58:23 -0400
Subject: [PATCH 1/4] Improved SWHS TM Notes sections; as per #1476
---
code/drasil-example/Drasil/SWHS/TMods.hs | 85 ++++++++----------------
code/stable/nopcm/SRS/NoPCM_SRS.tex | 4 +-
code/stable/nopcm/Website/NoPCM_SRS.html | 5 +-
code/stable/swhs/SRS/SWHS_SRS.tex | 22 ++++--
code/stable/swhs/Website/SWHS_SRS.html | 41 ++++++++----
5 files changed, 78 insertions(+), 79 deletions(-)
diff --git a/code/drasil-example/Drasil/SWHS/TMods.hs b/code/drasil-example/Drasil/SWHS/TMods.hs
index 7d76f5f331..5d90fc7434 100644
--- a/code/drasil-example/Drasil/SWHS/TMods.hs
+++ b/code/drasil-example/Drasil/SWHS/TMods.hs
@@ -17,10 +17,9 @@ import Data.Drasil.Quantities.Physics (energy, time)
import Data.Drasil.Quantities.Thermodynamics (temp, heatCapSpec,
latentHeat, meltPt, boilPt, sensHeat, heatCapSpec)
-import Data.Drasil.SI_Units (joule)
import Drasil.SWHS.Assumptions (assumpTEO)
import Drasil.SWHS.Concepts (transient)
-import Drasil.SWHS.DataDefs (ddHtFusion)
+import Drasil.SWHS.DataDefs (ddMeltFrac)
import Drasil.SWHS.Unitals (meltFrac, tau, deltaT, htCapV, htCapS,
htCapL, volHtGen, thFluxVect)
@@ -34,11 +33,11 @@ consThermE :: TheoryModel
consThermE = tm consThermERC
[qw thFluxVect, qw gradient, qw volHtGen,
qw density, qw heatCapSpec, qw temp, qw time] ([] :: [ConceptChunk])
- [] [consThermERel] [] [consThemESrc] "consThermE" [consThermEdesc]
+ [] [consThermERel] [] [consThemESrc] "consThermE" consThermENotes
consThermERC :: RelationConcept
consThermERC = makeRC "consThermERC"
- (nounPhraseSP "Conservation of thermal energy") consThermEdesc consThermERel
+ (nounPhraseSP "Conservation of thermal energy") (lawConsEnergy ^. defn) consThermERel
consThermERel :: Relation
consThermERel = negate (sy gradient) $. sy thFluxVect + sy volHtGen $=
@@ -50,19 +49,13 @@ consThemESrc = makeURI "consThemESrc"
"http://www.efunda.com/formulae/heat_transfer/conduction/overview_cond.cfm" $
shortname' "Fourier Law of Heat Conduction and Heat Equation"
-consThermEdesc :: Sentence
-consThermEdesc = foldlSent [
- S "The above", phrase equation, S "gives the", phrase lawConsEnergy, S "for",
- phrase transient, phrase heatTrans, S "in a material of", phrase heatCapSpec,
- ch heatCapSpec, sParen (Sy (unit_symb heatCapSpec)) `sAnd` phrase density `sC`
- ch density, sParen (Sy (unit_symb density)) `sC` S "where" +:+.
- foldlList Comma List [ch thFluxVect `isThe` phrase thFluxVect +:+ sParen (Sy (unit_symb thFluxVect)),
- ch volHtGen `isThe` phrase volHtGen +:+ sParen (Sy (unit_symb volHtGen)),
- ch temp `isThe` phrase temp +:+ sParen (Sy (unit_symb temp)),
- ch time +:+ S "is" +:+ phrase time +:+ sParen (Sy (unit_symb time)), ch gradient +:+
- S "is the" +:+ (gradient ^. defn)], S "For this", phrase equation, S "to apply" `sC`
- S "other forms of", phrase energy `sC` S "such as", phrase mechEnergy `sC`
- S "are assumed to be negligible in the", phrase system, sParen (makeRef2S assumpTEO)]
+consThermENotes :: [Sentence]
+consThermENotes = map foldlSent [
+ [S "The above", phrase equation, S "gives the", phrase lawConsEnergy,
+ S "for", phrase transient, phrase heatTrans, S "in a given material"],
+ [S "For this", phrase equation, S "to apply" `sC` S "other forms" `sOf`
+ phrase energy `sC` S "such as", phrase mechEnergy `sC` S "are assumed",
+ S "to be negligible in the", phrase system, sParen (makeRef2S assumpTEO)]]
-------------------------
-- Theoretical Model 2 --
@@ -108,26 +101,10 @@ sensHtEEqn pChange = sy sensHeat $= case pChange of
-- were implemented incorrectly.
sensHtEdesc :: Sentence
sensHtEdesc = foldlSent [
- ch sensHeat `isThe` S "change in",
- phrase sensHeat, phrase energy +:+. sParen (Sy (usymb joule)),
- ch htCapS `sC` ch htCapL `sC` ch htCapV, S "are the",
- phrase htCapS `sC` phrase htCapL `sC` S "and", phrase htCapV `sC`
- S "respectively" +:+. sParen (Sy (unit_symb heatCapSpec)),
- ch mass `isThe` phrase mass +:+. sParen (Sy (unit_symb mass)),
- ch temp `isThe` phrase temp,
- sParen (Sy (unit_symb temp)) `sC` S "and", ch deltaT `isThe`
- phrase deltaT +:+. sParen (Sy (unit_symb deltaT)),
- ch meltPt `sAnd` ch boilPt,
- S "are the", phrase meltPt `sAnd` phrase boilPt `sC`
- S "respectively" +:+. sParen (Sy (unit_symb temp)),
- atStart sensHeat :+: S "ing occurs as long as the material does",
- S "not reach a", phrase temp, S "where a" +:+
- phrase phaseChange, S "occurs. A",
- phrase phaseChange, S "occurs if",
- ch temp :+: S "=" :+: ch boilPt,
- S "or", ch temp :+: S "=" +:+. ch meltPt,
- S "If this" `isThe` S "case, refer to",
- makeRef2S latentHtE `sC` atStart latentHeat, phrase energy]
+ atStart sensHeat :+: S "ing occurs as long as the material does not reach a",
+ phrase temp, S "where a", phrase phaseChange, S "occurs. A", phrase phaseChange,
+ S "occurs if" +:+. (E (sy temp $= sy boilPt) `sOr` E (sy temp $= sy meltPt)),
+ S "If this is the case" `sC` S "refer to", makeRef2S latentHtE]
--How to have new lines in the description?
--Can't have relation and eqn chunks together since they are called in a list
@@ -142,11 +119,11 @@ sensHtEdesc = foldlSent [
latentHtE :: TheoryModel
latentHtE = tm latentHtERC
[qw latentHeat, qw time, qw tau] ([] :: [ConceptChunk])
- [] [latHtEEqn] [] [latHtESrc] "latentHtE" [latentHtEdesc]
+ [] [latHtEEqn] [] [latHtESrc] "latentHtE" latentHtENotes
latentHtERC :: RelationConcept
latentHtERC = makeRC "latentHtERC"
- (nounPhraseSP "Latent heat energy") latentHtEdesc latHtEEqn
+ (nounPhraseSP "Latent heat energy") (latentHeat ^. defn) latHtEEqn
latHtEEqn :: Relation
latHtEEqn = apply1 latentHeat time $=
@@ -158,22 +135,14 @@ latHtESrc :: Reference
latHtESrc = makeURI "latHtESrc" "http://en.wikipedia.org/wiki/Latent_heat" $
shortname' "Definition of Latent Heat"
-latentHtEdesc :: Sentence
-latentHtEdesc = foldlSent [
- ch latentHeat `isThe` S "change in",
- phrase thermalEnergy, sParen (Sy (usymb joule)) `sC`
- phrase latentHeat +:+. phrase energy,
- E latHtEEqn `isThe` phrase rOfChng, S "of",
- ch latentHeat, S "with respect to", phrase time,
- ch tau +:+. sParen (Sy (unit_symb tau)), ch time `isThe`
- phrase time, sParen (Sy (unit_symb time)),
- S "elapsed, as long as the",
- phrase phaseChange, S "is not complete. The status of",
- S "the", phrase phaseChange,
- S "depends on the", phrase meltFrac `sC`
- makeRef2S ddHtFusion :+: S ".",
- ch meltPt `sAnd` ch boilPt, S "are the",
- phrase meltPt `sAnd` phrase boilPt `sC`
- S "respectively" +:+. sParen (Sy (unit_symb temp)),
- atStart latentHeat :+: S "ing stops when all material has",
- S "changed to the new phase"]
+latentHtENotes :: [Sentence]
+latentHtENotes = map foldlSent [
+ [ch latentHeat `isThe` S "change" `sIn` phrase thermalEnergy,
+ sParen (phrase latentHeat +:+ phrase energy)],
+ [E latHtEEqn `isThe` phrase rOfChng `sOf` ch latentHeat,
+ S "with respect to", phrase time, ch tau],
+ [ch time `isThe` phrase time, S "elapsed" `sC` S "as long as the",
+ phrase phaseChange, S "is not complete"],
+ [S "status" `ofThe'` phrase phaseChange, S "depends on the",
+ phrase meltFrac, sParen (S "from" +:+ makeRef2S ddMeltFrac)],
+ [atStart latentHeat :+: S "ing stops when all material has changed to the new phase"]]
diff --git a/code/stable/nopcm/SRS/NoPCM_SRS.tex b/code/stable/nopcm/SRS/NoPCM_SRS.tex
index a5efb3675c..8f0df56da9 100644
--- a/code/stable/nopcm/SRS/NoPCM_SRS.tex
+++ b/code/stable/nopcm/SRS/NoPCM_SRS.tex
@@ -348,7 +348,9 @@ \subsubsection{Theoretical Models}
\item{$T$ is the temperature (${}^{\circ}$C)}
\end{symbDescription}
\\ \midrule \\
-Notes & The above equation gives the law of conservation of energy for transient heat transfer in a material of specific heat capacity $C$ ($\frac{\text{J}}{(\text{kg}{}^{\circ}\text{C})}$) and density, $ρ$ ($\frac{\text{kg}}{\text{m}^{3}}$), where $\mathbf{q}$ is the thermal flux vector ($\frac{\text{W}}{\text{m}^{2}}$), $g$ is the volumetric heat generation per unit volume ($\frac{\text{W}}{\text{m}^{3}}$), $T$ is the temperature (${}^{\circ}$C), $t$ is time (s), and $∇$ is the degree of steepness of a graph at any point. For this equation to apply, other forms of energy, such as mechanical energy, are assumed to be negligible in the system (\hyperref[assumpTEO]{A: Thermal-Energy-Only}).
+Notes & The above equation gives the law of conservation of energy for transient heat transfer in a given material.
+
+ For this equation to apply, other forms of energy, such as mechanical energy, are assumed to be negligible in the system (\hyperref[assumpTEO]{A: Thermal-Energy-Only}).
\\ \midrule \\
Source & \hyperref{http://www.efunda.com/formulae/heat_transfer/conduction/overview_cond.cfm}{}{}{Fourier Law of Heat Conduction and Heat Equation}
diff --git a/code/stable/nopcm/Website/NoPCM_SRS.html b/code/stable/nopcm/Website/NoPCM_SRS.html
index a2744dd8b5..f1652d2274 100644
--- a/code/stable/nopcm/Website/NoPCM_SRS.html
+++ b/code/stable/nopcm/Website/NoPCM_SRS.html
@@ -685,7 +685,10 @@ Theoretical Models
Notes |
- The above equation gives the law of conservation of energy for transient heat transfer in a material of specific heat capacity C (J/(kg⋅°C)) and density, ρ (kg/m3), where q is the thermal flux vector (W/m2), g is the volumetric heat generation per unit volume (W/m3), T is the temperature (°C), t is time (s), and ∇ is the degree of steepness of a graph at any point. For this equation to apply, other forms of energy, such as mechanical energy, are assumed to be negligible in the system (A: Thermal-Energy-Only).
+ The above equation gives the law of conservation of energy for transient heat transfer in a given material.
+
+
+ For this equation to apply, other forms of energy, such as mechanical energy, are assumed to be negligible in the system (A: Thermal-Energy-Only).
|
diff --git a/code/stable/swhs/SRS/SWHS_SRS.tex b/code/stable/swhs/SRS/SWHS_SRS.tex
index 36cde5f6a3..e6136f9ef0 100644
--- a/code/stable/swhs/SRS/SWHS_SRS.tex
+++ b/code/stable/swhs/SRS/SWHS_SRS.tex
@@ -419,7 +419,9 @@ \subsubsection{Theoretical Models}
\item{$T$ is the temperature (${}^{\circ}$C)}
\end{symbDescription}
\\ \midrule \\
-Notes & The above equation gives the law of conservation of energy for transient heat transfer in a material of specific heat capacity $C$ ($\frac{\text{J}}{(\text{kg}{}^{\circ}\text{C})}$) and density, $ρ$ ($\frac{\text{kg}}{\text{m}^{3}}$), where $\mathbf{q}$ is the thermal flux vector ($\frac{\text{W}}{\text{m}^{2}}$), $g$ is the volumetric heat generation per unit volume ($\frac{\text{W}}{\text{m}^{3}}$), $T$ is the temperature (${}^{\circ}$C), $t$ is time (s), and $∇$ is the degree of steepness of a graph at any point. For this equation to apply, other forms of energy, such as mechanical energy, are assumed to be negligible in the system (\hyperref[assumpTEO]{A: Thermal-Energy-Only}).
+Notes & The above equation gives the law of conservation of energy for transient heat transfer in a given material.
+
+ For this equation to apply, other forms of energy, such as mechanical energy, are assumed to be negligible in the system (\hyperref[assumpTEO]{A: Thermal-Energy-Only}).
\\ \midrule \\
Source & \hyperref{http://www.efunda.com/formulae/heat_transfer/conduction/overview_cond.cfm}{}{}{Fourier Law of Heat Conduction and Heat Equation}
@@ -461,7 +463,7 @@ \subsubsection{Theoretical Models}
\item{${T_{\text{boil}}}$ is the boiling point temperature (${}^{\circ}$C)}
\end{symbDescription}
\\ \midrule \\
-Notes & $E$ is the change in sensible heat energy (J). ${C^{\text{S}}}$, ${C^{\text{L}}}$, ${C^{\text{V}}}$ are the specific heat capacity of a solid, specific heat capacity of a liquid, and specific heat capacity of a vapour, respectively ($\frac{\text{J}}{(\text{kg}{}^{\circ}\text{C})}$). $m$ is the mass (kg). $T$ is the temperature (${}^{\circ}$C), and $ΔT$ is the change in temperature (${}^{\circ}$C). ${T_{\text{melt}}}$ and ${T_{\text{boil}}}$ are the melting point temperature and boiling point temperature, respectively (${}^{\circ}$C). Sensible heating occurs as long as the material does not reach a temperature where a phase change occurs. A phase change occurs if $T$=${T_{\text{boil}}}$ or $T$= ${T_{\text{melt}}}$. If this is the case, refer to \hyperref[TM:latentHtE]{TM: latentHtE}, Latent heat energy.
+Notes & Sensible heating occurs as long as the material does not reach a temperature where a phase change occurs. A phase change occurs if $T={T_{\text{boil}}}$ or $T={T_{\text{melt}}}$. If this is the case, refer to \hyperref[TM:latentHtE]{TM: latentHtE}.
\\ \midrule \\
Source & \hyperref{http://en.wikipedia.org/wiki/Sensible_heat}{}{}{Definition of Sensible Heat}
@@ -493,7 +495,15 @@ \subsubsection{Theoretical Models}
\item{$τ$ is the dummy variable for integration over time (s)}
\end{symbDescription}
\\ \midrule \\
-Notes & $Q$ is the change in thermal energy (J), latent heat energy. $Q\left(t\right)=\int_{0}^{t}{\frac{\,dQ\left(τ\right)}{\,dτ}}\,dτ$ is the rate of change of $Q$ with respect to time $τ$ (s). $t$ is the time (s) elapsed, as long as the phase change is not complete. The status of the phase change depends on the melt fraction, \hyperref[DD:htFusion]{DD: htFusion}. ${T_{\text{melt}}}$ and ${T_{\text{boil}}}$ are the melting point temperature and boiling point temperature, respectively (${}^{\circ}$C). Latent heating stops when all material has changed to the new phase.
+Notes & $Q$ is the change in thermal energy (latent heat energy).
+
+ $Q\left(t\right)=\int_{0}^{t}{\frac{\,dQ\left(τ\right)}{\,dτ}}\,dτ$ is the rate of change of $Q$ with respect to time $τ$.
+
+ $t$ is the time elapsed, as long as the phase change is not complete.
+
+ The status of the phase change depends on the melt fraction (from \hyperref[DD:meltFrac]{DD: meltFrac}).
+
+ Latent heating stops when all material has changed to the new phase.
\\ \midrule \\
Source & \hyperref{http://en.wikipedia.org/wiki/Latent_heat}{}{}{Definition of Latent Heat}
@@ -884,7 +894,7 @@ \subsubsection{Data Definitions}
Source & \cite[(pg. 282)]{bueche1986}
\\ \midrule \\
-RefBy & \hyperref[DD:meltFrac]{DD: meltFrac}, \hyperref[TM:latentHtE]{TM: latentHtE}, and \hyperref[IM:heatEInPCM]{IM: heatEInPCM}
+RefBy & \hyperref[DD:meltFrac]{DD: meltFrac} and \hyperref[IM:heatEInPCM]{IM: heatEInPCM}
\\ \bottomrule
\end{tabular}
@@ -926,7 +936,7 @@ \subsubsection{Data Definitions}
Source & \cite{koothoor2013}
\\ \midrule \\
-RefBy & \hyperref[IM:eBalanceOnPCM]{IM: eBalanceOnPCM}
+RefBy & \hyperref[TM:latentHtE]{TM: latentHtE} and \hyperref[IM:eBalanceOnPCM]{IM: eBalanceOnPCM}
\\ \bottomrule
\end{tabular}
@@ -1600,7 +1610,7 @@ \section{Traceability Matrices and Graphs}
\\
\hyperref[TM:sensHtE]{TM: sensHtE} & & & & & & & & & & & & X & & & & & &
\\
-\hyperref[TM:latentHtE]{TM: latentHtE} & & & & & & & X & & & & & & & & & & &
+\hyperref[TM:latentHtE]{TM: latentHtE} & & & & & & & & X & & & & & & & & & &
\\
\hyperref[GD:nwtnCooling]{GD: nwtnCooling} & & & & & & & & & & & & & & & & & &
\\
diff --git a/code/stable/swhs/Website/SWHS_SRS.html b/code/stable/swhs/Website/SWHS_SRS.html
index 11a442e03b..05c1dd67dd 100644
--- a/code/stable/swhs/Website/SWHS_SRS.html
+++ b/code/stable/swhs/Website/SWHS_SRS.html
@@ -890,7 +890,10 @@ Theoretical Models
Notes |
- The above equation gives the law of conservation of energy for transient heat transfer in a material of specific heat capacity C (J/(kg⋅°C)) and density, ρ (kg/m3), where q is the thermal flux vector (W/m2), g is the volumetric heat generation per unit volume (W/m3), T is the temperature (°C), t is time (s), and ∇ is the degree of steepness of a graph at any point. For this equation to apply, other forms of energy, such as mechanical energy, are assumed to be negligible in the system (A: Thermal-Energy-Only).
+ The above equation gives the law of conservation of energy for transient heat transfer in a given material.
+
+
+ For this equation to apply, other forms of energy, such as mechanical energy, are assumed to be negligible in the system (A: Thermal-Energy-Only).
|
@@ -977,7 +980,7 @@ Theoretical Models
Notes |
- E is the change in sensible heat energy (J). CS, CL, CV are the specific heat capacity of a solid, specific heat capacity of a liquid, and specific heat capacity of a vapour, respectively (J/(kg⋅°C)). m is the mass (kg). T is the temperature (°C), and ΔT is the change in temperature (°C). Tmelt and Tboil are the melting point temperature and boiling point temperature, respectively (°C). Sensible heating occurs as long as the material does not reach a temperature where a phase change occurs. A phase change occurs if T=Tboil or T= Tmelt. If this is the case, refer to TM: latentHtE, Latent heat energy.
+ Sensible heating occurs as long as the material does not reach a temperature where a phase change occurs. A phase change occurs if T = Tboil or T = Tmelt. If this is the case, refer to TM: latentHtE.
|
@@ -1040,14 +1043,26 @@ Theoretical Models
Notes |
- Q is the change in thermal energy (J), latent heat energy. Q(t) = ∫0t
-
- dQ(τ)
-
-
- dτ
-
- dτ is the rate of change of Q with respect to time τ (s). t is the time (s) elapsed, as long as the phase change is not complete. The status of the phase change depends on the melt fraction, DD: htFusion. Tmelt and Tboil are the melting point temperature and boiling point temperature, respectively (°C). Latent heating stops when all material has changed to the new phase.
+ Q is the change in thermal energy (latent heat energy).
+
+
+ Q(t) = ∫0t
+
+ dQ(τ)
+
+
+ dτ
+
+ dτ is the rate of change of Q with respect to time τ.
+
+
+ t is the time elapsed, as long as the phase change is not complete.
+
+
+ The status of the phase change depends on the melt fraction (from DD: meltFrac).
+
+
+ Latent heating stops when all material has changed to the new phase.
|
@@ -1775,7 +1790,7 @@ Data Definitions
RefBy |
- DD: meltFrac, TM: latentHtE, and IM: heatEInPCM
+ DD: meltFrac and IM: heatEInPCM
|
@@ -1847,7 +1862,7 @@ Data Definitions
RefBy |
- IM: eBalanceOnPCM
+ TM: latentHtE and IM: eBalanceOnPCM
|
@@ -4496,8 +4511,8 @@ Traceability Matrices and Graphs
|
|
|
- X |
|
+ X |
|
|
|
From 6c278f903e28b6874472a31a1b7d5c9a596b29f3 Mon Sep 17 00:00:00 2001
From: Sam Crawford
Date: Mon, 12 Aug 2019 15:35:28 -0400
Subject: [PATCH 2/4] Moved Newton's law of cooling from GD to TM; as per #1479
---
code/drasil-example/Drasil/NoPCM/Body.hs | 8 +--
code/drasil-example/Drasil/NoPCM/GenDefs.hs | 4 +-
code/drasil-example/Drasil/SWHS/Body.hs | 9 ++--
code/drasil-example/Drasil/SWHS/GenDefs.hs | 56 ++++-----------------
code/drasil-example/Drasil/SWHS/TMods.hs | 51 ++++++++++++++-----
code/stable/nopcm/SRS/NoPCM_SRS.tex | 24 ++++-----
code/stable/nopcm/Website/NoPCM_SRS.html | 37 ++++++--------
code/stable/swhs/SRS/SWHS_SRS.tex | 24 ++++-----
code/stable/swhs/Website/SWHS_SRS.html | 37 ++++++--------
9 files changed, 111 insertions(+), 139 deletions(-)
diff --git a/code/drasil-example/Drasil/NoPCM/Body.hs b/code/drasil-example/Drasil/NoPCM/Body.hs
index 9d1ba4bc92..e95e1b5d43 100644
--- a/code/drasil-example/Drasil/NoPCM/Body.hs
+++ b/code/drasil-example/Drasil/NoPCM/Body.hs
@@ -54,7 +54,7 @@ import Drasil.SWHS.Body (charsOfReader, dataContMid, introEnd, introStart,
import Drasil.SWHS.Changes (likeChgTCVOD, likeChgTCVOL, likeChgTLH)
import Drasil.SWHS.Concepts (acronyms, coil, progName, sWHT, tank, transient, water, con)
import Drasil.SWHS.Requirements (nfRequirements)
-import Drasil.SWHS.TMods (consThermE, sensHtETemplate, PhaseChange(Liquid))
+import Drasil.SWHS.TMods (PhaseChange(Liquid), consThermE, nwtnCooling, sensHtETemplate)
import Drasil.SWHS.Unitals (coilSAMax, deltaT, eta, htFluxC, htFluxIn,
htFluxOut, htCapL, htTransCoeff, inSA, outSA, tankVol, tau, tauW, tempEnv,
tempW, thFluxVect, volHtGen, watE, wMass, wVol, unitalChuncks, absTol, relTol)
@@ -202,7 +202,7 @@ symbMap = cdb symbolsAll (map nw symbols ++ map nw acronyms ++ map nw thermocon
++ map nw physicalcon ++ map nw unitalChuncks ++ [nw srsSWHS, nw algorithm, nw htTrans]
++ map nw [absTol, relTol] ++ [nw materialProprty])
(map cw symbols ++ srsDomains) units NoPCM.dataDefs NoPCM.iMods genDefs
- theoreticalModels concIns section labCon
+ tMods concIns section labCon
usedDB :: ChunkDB
usedDB = cdb ([] :: [QuantityDict]) (map nw symbols ++ map nw acronyms)
@@ -297,8 +297,8 @@ goalInputs = [phrase temp `ofThe` phrase coil,
--Section 4.2 : SOLUTION CHARACTERISTICS SPECIFICATION
------------------------------------------------------
-theoreticalModels :: [TheoryModel]
-theoreticalModels = [consThermE, sensHtE]
+tMods :: [TheoryModel]
+tMods = [consThermE, sensHtE, nwtnCooling]
sensHtE :: TheoryModel
sensHtE = sensHtETemplate Liquid sensHtEdesc
diff --git a/code/drasil-example/Drasil/NoPCM/GenDefs.hs b/code/drasil-example/Drasil/NoPCM/GenDefs.hs
index 91d2deae63..2908455eed 100644
--- a/code/drasil-example/Drasil/NoPCM/GenDefs.hs
+++ b/code/drasil-example/Drasil/NoPCM/GenDefs.hs
@@ -5,10 +5,10 @@ import Theory.Drasil (GenDefn, gdNoRefs)
import Drasil.NoPCM.Assumptions (assumpDWCoW, assumpSHECoW)
import Drasil.SWHS.Assumptions (assumpCWTAT)
-import Drasil.SWHS.GenDefs (nwtnCooling, rocTempSimpRC, rocTempSimpDeriv)
+import Drasil.SWHS.GenDefs (rocTempSimpRC, rocTempSimpDeriv)
genDefs :: [GenDefn]
-genDefs = [nwtnCooling, rocTempSimp]
+genDefs = [rocTempSimp]
rocTempSimp :: GenDefn
rocTempSimp = gdNoRefs rocTempSimpRC (Nothing :: Maybe UnitDefn)
diff --git a/code/drasil-example/Drasil/SWHS/Body.hs b/code/drasil-example/Drasil/SWHS/Body.hs
index 7f114f024c..f7a7fae824 100755
--- a/code/drasil-example/Drasil/SWHS/Body.hs
+++ b/code/drasil-example/Drasil/SWHS/Body.hs
@@ -6,7 +6,7 @@ import Database.Drasil (Block, ChunkDB, ReferenceDB,
SystemInformation(SI), cdb, rdb, refdb, _authors, _concepts, _constants,
_constraints, _datadefs, _definitions, _defSequence, _inputs, _kind, _outputs,
_quants, _sys, _sysinfodb, _usedinfodb)
-import Theory.Drasil (DataDefinition, InstanceModel, TheoryModel)
+import Theory.Drasil (DataDefinition, InstanceModel)
import Utils.Drasil
import Control.Lens ((^.))
@@ -61,7 +61,7 @@ import Drasil.SWHS.IMods (eBalanceOnWtr, eBalanceOnPCM, heatEInWtr, heatEInPCM,
import Drasil.SWHS.References (parnas1972, parnasClements1984, citations)
import Drasil.SWHS.Requirements (funcReqs, inputInitQuantsTable, nfRequirements,
verifyEnergyOutput)
-import Drasil.SWHS.TMods (consThermE, latentHtE, sensHtE)
+import Drasil.SWHS.TMods (tMods)
import Drasil.SWHS.Unitals (absTol, coilHTC, coilSA, consTol, constrained,
htFluxC, htFluxP, inputs, inputConstraints, outputs, pcmE, pcmHTC, pcmSA,
relTol, simTime, specParamValList, symbols, symbolsAll, tempC, tempPCM,
@@ -111,7 +111,7 @@ symbMap = cdb (qw heatEInPCM : symbolsAll) -- heatEInPCM ?
++ map nw fundamentals ++ map nw educon ++ map nw derived ++ map nw physicalcon ++ map nw unitalChuncks
++ [nw swhsPCM, nw algorithm] ++ map nw compcon ++ [nw materialProprty])
(cw heatEInPCM : map cw symbols ++ srsDomains) -- FIXME: heatEInPCM?
- (units ++ [m_2, m_3]) SWHS.dataDefs insModel genDefs theory concIns section labCon
+ (units ++ [m_2, m_3]) SWHS.dataDefs insModel genDefs tMods concIns section labCon
usedDB :: ChunkDB
usedDB = cdb ([] :: [QuantityDict]) (map nw symbols ++ map nw acronymsFull)
@@ -170,9 +170,6 @@ tSymbIntro = [TSPurpose, SymbConvention
insModel :: [InstanceModel]
insModel = [eBalanceOnWtr, eBalanceOnPCM, heatEInWtr, heatEInPCM]
-theory :: [TheoryModel]
-theory = [consThermE, sensHtE, latentHtE]
-
concIns :: [ConceptInstance]
concIns = goals ++ assumptions ++ likelyChgs ++ unlikelyChgs ++ funcReqs
++ nfRequirements
diff --git a/code/drasil-example/Drasil/SWHS/GenDefs.hs b/code/drasil-example/Drasil/SWHS/GenDefs.hs
index 563af45e63..3853d4103c 100644
--- a/code/drasil-example/Drasil/SWHS/GenDefs.hs
+++ b/code/drasil-example/Drasil/SWHS/GenDefs.hs
@@ -1,30 +1,20 @@
-module Drasil.SWHS.GenDefs (genDefs, nwtnCooling, rocTempSimp,
- rocTempSimpDeriv, nwtnCoolingDesc, rocTempSimpRC) where
-
-import Prelude hiding (sin, cos, tan)
+module Drasil.SWHS.GenDefs (genDefs, rocTempSimp, rocTempSimpDeriv, rocTempSimpRC) where
import Language.Drasil
-import Theory.Drasil (GenDefn, gd, gdNoRefs)
+import Theory.Drasil (GenDefn, gdNoRefs)
import Utils.Drasil
-import Data.Drasil.Concepts.Math (rate, rOfChng, unit_)
-import Data.Drasil.Concepts.Thermodynamics (lawConvCooling)
+import Data.Drasil.Concepts.Math (rOfChng, unit_)
import Data.Drasil.Quantities.Math (uNormalVect, surface, gradient)
import Data.Drasil.Quantities.PhysicalProperties as QPP (vol, mass, density)
import Data.Drasil.Quantities.Physics as QP (time)
-import Data.Drasil.Quantities.Thermodynamics as QT (htFlux, heatCapSpec,
- temp)
-
-import Data.Drasil.Units.Thermodynamics (thermalFlux)
+import Data.Drasil.Quantities.Thermodynamics as QT (heatCapSpec, temp)
-import Drasil.SWHS.Assumptions (assumpHTCC, assumpCWTAT, assumpTPCAV,
- assumpDWPCoV, assumpSHECoV)
+import Drasil.SWHS.Assumptions (assumpCWTAT, assumpTPCAV, assumpDWPCoV, assumpSHECoV)
import Drasil.SWHS.Concepts (gaussDiv)
-import Drasil.SWHS.References (incroperaEtAl2007)
import Drasil.SWHS.TMods (consThermE)
-import Drasil.SWHS.Unitals (deltaT, htFluxIn, htFluxOut, htTransCoeff, inSA,
- outSA, tempEnv, thFluxVect, volHtGen)
+import Drasil.SWHS.Unitals (htFluxIn, htFluxOut, inSA, outSA, thFluxVect, volHtGen)
---------------------------
-- General Definitions --
@@ -35,37 +25,13 @@ import Drasil.SWHS.Unitals (deltaT, htFluxIn, htFluxOut, htTransCoeff, inSA,
--stabilized yet (since RelationConcept isn't an instance of --
--the Referable class. --
genDefs :: [GenDefn]
-genDefs = [nwtnCooling, rocTempSimp]
-
-nwtnCooling, rocTempSimp :: GenDefn
-nwtnCooling = gd nwtnCoolingRC (Just thermalFlux) Nothing
- [makeCiteInfo incroperaEtAl2007 $ Page [8]] "nwtnCooling" nwtnCoolingDesc
+genDefs = [rocTempSimp]
+rocTempSimp :: GenDefn
rocTempSimp = gdNoRefs rocTempSimpRC (Nothing :: Maybe UnitDefn)
(Just $ rocTempSimpDeriv rocTempDerivConsFlxSWHS [assumpCWTAT, assumpTPCAV, assumpDWPCoV, assumpSHECoV])
"rocTempSimp" [{-Notes-}]
---
-
-nwtnCoolingRC :: RelationConcept
-nwtnCoolingRC = makeRC "nwtnCooling" (nounPhraseSP "Newton's law of cooling")
- EmptyS nwtnCoolingRel -- nwtnCoolingL
-
-nwtnCoolingRel :: Relation
-nwtnCoolingRel = apply1 htFlux QP.time $= sy htTransCoeff *
- apply1 deltaT QP.time
-
-nwtnCoolingDesc :: [Sentence]
-nwtnCoolingDesc = map foldlSent [
- [atStart lawConvCooling +:+. S "describes convective cooling from a surface" +:
- S "The law is stated as", S "the", phrase rate `sOf` S "heat loss from a body" `sIs`
- S "proportional to the difference in", plural temp, S "between the body and its surroundings"],
- [ch htTransCoeff, S "is assumed to be independent" `sOf` ch QT.temp,
- sParen (S "from" +:+ makeRef2S assumpHTCC)],
- [E (apply1 deltaT QP.time $= apply1 temp QP.time - apply1 tempEnv QP.time) `isThe`
- S "time-dependant thermal gradient between the environment and the object"]]
-
---
rocTempSimpRC :: RelationConcept
rocTempSimpRC = makeRC "rocTempSimp" (nounPhraseSP $ "Simplified rate " ++
"of change of temperature") EmptyS rocTempSimpRel -- rocTempSimpL
@@ -75,9 +41,9 @@ rocTempSimpRel = sy QPP.mass * sy QT.heatCapSpec *
deriv (sy QT.temp) QP.time $= sy htFluxIn * sy inSA -
sy htFluxOut * sy outSA + sy volHtGen * sy QPP.vol
----------------------------------------
--- General Definitions Derivation --
----------------------------------------
+--------------------------------------
+-- General Definitions Derivation --
+--------------------------------------
rocTempSimpDeriv :: Sentence -> [ConceptInstance] -> Derivation
rocTempSimpDeriv s a = mkDerivName (S "simplified" +:+ phrase rOfChng `sOf` phrase temp)
diff --git a/code/drasil-example/Drasil/SWHS/TMods.hs b/code/drasil-example/Drasil/SWHS/TMods.hs
index 5d90fc7434..7d70d7182b 100644
--- a/code/drasil-example/Drasil/SWHS/TMods.hs
+++ b/code/drasil-example/Drasil/SWHS/TMods.hs
@@ -1,4 +1,5 @@
-module Drasil.SWHS.TMods (tMods, consThermE, sensHtE, sensHtETemplate, latentHtE, PhaseChange(Liquid)) where
+module Drasil.SWHS.TMods (PhaseChange(Liquid), consThermE, latentHtE,
+ nwtnCooling, sensHtE, sensHtETemplate, tMods) where
import Language.Drasil
import Control.Lens ((^.))
@@ -6,25 +7,26 @@ import Theory.Drasil (TheoryModel, tm)
import Utils.Drasil
import Data.Drasil.Concepts.Documentation (system)
-import Data.Drasil.Concepts.Math (equation, rOfChng)
+import Data.Drasil.Concepts.Math (equation, rate, rOfChng)
import Data.Drasil.Concepts.Physics (mechEnergy)
-import Data.Drasil.Concepts.Thermodynamics (phaseChange, thermalEnergy,
- heatTrans, lawConsEnergy)
+import Data.Drasil.Concepts.Thermodynamics (heatTrans, lawConsEnergy,
+ lawConvCooling, phaseChange, thermalEnergy)
import Data.Drasil.Quantities.Math (gradient)
-import Data.Drasil.Quantities.PhysicalProperties (mass, density)
+import Data.Drasil.Quantities.PhysicalProperties (density, mass)
import Data.Drasil.Quantities.Physics (energy, time)
-import Data.Drasil.Quantities.Thermodynamics (temp, heatCapSpec,
- latentHeat, meltPt, boilPt, sensHeat, heatCapSpec)
+import Data.Drasil.Quantities.Thermodynamics (boilPt, heatCapSpec,
+ htFlux, latentHeat, meltPt, sensHeat, temp)
-import Drasil.SWHS.Assumptions (assumpTEO)
+import Drasil.SWHS.Assumptions (assumpHTCC, assumpTEO)
import Drasil.SWHS.Concepts (transient)
import Drasil.SWHS.DataDefs (ddMeltFrac)
-import Drasil.SWHS.Unitals (meltFrac, tau, deltaT, htCapV, htCapS,
- htCapL, volHtGen, thFluxVect)
+import Drasil.SWHS.References (incroperaEtAl2007)
+import Drasil.SWHS.Unitals (deltaT, htCapL, htCapS, htCapV, htTransCoeff,
+ meltFrac, tau, tempEnv, thFluxVect, volHtGen)
tMods :: [TheoryModel]
-tMods = [consThermE, sensHtE, latentHtE]
+tMods = [consThermE, sensHtE, latentHtE, nwtnCooling]
-------------------------
-- Theoretical Model 1 --
@@ -60,7 +62,6 @@ consThermENotes = map foldlSent [
-------------------------
-- Theoretical Model 2 --
-------------------------
-
sensHtE :: TheoryModel
sensHtE = sensHtETemplate AllPhases sensHtEdesc
@@ -146,3 +147,29 @@ latentHtENotes = map foldlSent [
[S "status" `ofThe'` phrase phaseChange, S "depends on the",
phrase meltFrac, sParen (S "from" +:+ makeRef2S ddMeltFrac)],
[atStart latentHeat :+: S "ing stops when all material has changed to the new phase"]]
+
+-------------------------
+-- Theoretical Model 4 --
+-------------------------
+nwtnCooling :: TheoryModel
+nwtnCooling = tm nwtnCoolingRC
+ [qw latentHeat, qw time, qw htTransCoeff, qw deltaT] ([] :: [ConceptChunk])
+ [] [nwtnCoolingEqn] [] [makeCiteInfo incroperaEtAl2007 $ Page [8]]
+ "nwtnCooling" nwtnCoolingNotes
+
+nwtnCoolingRC :: RelationConcept
+nwtnCoolingRC = makeRC "nwtnCoolingRC" (nounPhraseSP "Newton's law of cooling")
+ EmptyS nwtnCoolingEqn -- nwtnCoolingL
+
+nwtnCoolingEqn :: Relation
+nwtnCoolingEqn = apply1 htFlux time $= sy htTransCoeff * apply1 deltaT time
+
+nwtnCoolingNotes :: [Sentence]
+nwtnCoolingNotes = map foldlSent [
+ [atStart lawConvCooling +:+. S "describes convective cooling from a surface" +:
+ S "The law is stated as", S "the", phrase rate `sOf` S "heat loss from a body" `sIs`
+ S "proportional to the difference in", plural temp, S "between the body and its surroundings"],
+ [ch htTransCoeff, S "is assumed to be independent" `sOf` ch temp,
+ sParen (S "from" +:+ makeRef2S assumpHTCC)],
+ [E (apply1 deltaT time $= apply1 temp time - apply1 tempEnv time) `isThe`
+ S "time-dependant thermal gradient between the environment and the object"]]
diff --git a/code/stable/nopcm/SRS/NoPCM_SRS.tex b/code/stable/nopcm/SRS/NoPCM_SRS.tex
index 8f0df56da9..811f393e86 100644
--- a/code/stable/nopcm/SRS/NoPCM_SRS.tex
+++ b/code/stable/nopcm/SRS/NoPCM_SRS.tex
@@ -306,7 +306,7 @@ \subsubsection{Assumptions}
\begin{itemize}
\item[Thermal-Energy-Only:\phantomsection\label{assumpTEO}]{The only form of energy that is relevant for this problem is thermal energy. All other forms of energy, such as mechanical energy, are assumed to be negligible. (RefBy: \hyperref[TM:consThermE]{TM: consThermE}.)}
-\item[Heat-Transfer-Coeffs-Constant:\phantomsection\label{assumpHTCC}]{All heat transfer coefficients are constant over time. (RefBy: \hyperref[GD:nwtnCooling]{GD: nwtnCooling}.)}
+\item[Heat-Transfer-Coeffs-Constant:\phantomsection\label{assumpHTCC}]{All heat transfer coefficients are constant over time. (RefBy: \hyperref[TM:nwtnCooling]{TM: nwtnCooling}.)}
\item[Constant-Water-Temp-Across-Tank:\phantomsection\label{assumpCWTAT}]{The water in the tank is fully mixed, so the temperature of the water is the same throughout the entire tank. (RefBy: \hyperref[GD:rocTempSimp]{GD: rocTempSimp}.)}
\item[Density-Water-Constant-over-Volume:\phantomsection\label{assumpDWCoW}]{The density of water has no spatial variation; that is, it is constant over their entire volume. (RefBy: \hyperref[GD:rocTempSimp]{GD: rocTempSimp}.)}
\item[Specific-Heat-Energy-Constant-over-Volume:\phantomsection\label{assumpSHECoW}]{The specific heat capacity of water has no spatial variation; that is, it is constant over its entire volume. (RefBy: \hyperref[GD:rocTempSimp]{GD: rocTempSimp}.)}
@@ -394,23 +394,16 @@ \subsubsection{Theoretical Models}
\\ \bottomrule
\end{tabular}
\end{minipage}
-\subsubsection{General Definitions}
-\label{Sec:GDs}
-This section collects the laws and equations that will be used to build the instance models.
-
\vspace{\baselineskip}
\noindent
\begin{minipage}{\textwidth}
\begin{tabular}{>{\raggedright}p{0.13\textwidth}>{\raggedright\arraybackslash}p{0.82\textwidth}}
-\toprule \textbf{Refname} & \textbf{GD:nwtnCooling}
+\toprule \textbf{Refname} & \textbf{TM:nwtnCooling}
\phantomsection
-\label{GD:nwtnCooling}
+\label{TM:nwtnCooling}
\\ \midrule \\
Label & Newton's law of cooling
-\\ \midrule \\
-Units & $\frac{\text{W}}{\text{m}^{2}}$
-
\\ \midrule \\
Equation & \begin{displaymath}
q\left(t\right)=h ΔT\left(t\right)
@@ -437,6 +430,9 @@ \subsubsection{General Definitions}
\\ \bottomrule
\end{tabular}
\end{minipage}
+\subsubsection{General Definitions}
+\label{Sec:GDs}
+This section collects the laws and equations that will be used to build the instance models.
\vspace{\baselineskip}
\noindent
@@ -864,7 +860,7 @@ \section{Traceability Matrices and Graphs}
\\
\hyperref[TM:sensHtE]{TM: sensHtE} & & & & & & & & & & X & & &
\\
-\hyperref[GD:nwtnCooling]{GD: nwtnCooling} & & X & & & & & & & & & & &
+\hyperref[TM:nwtnCooling]{TM: nwtnCooling} & & X & & & & & & & & & & &
\\
\hyperref[GD:rocTempSimp]{GD: rocTempSimp} & & & X & X & X & & & & & & & &
\\
@@ -912,7 +908,7 @@ \section{Traceability Matrices and Graphs}
\end{longtable}
\begin{longtable}{l l l l l l l l l}
\toprule
-\textbf{} & \textbf{\hyperref[DD:htFluxC]{DD: htFluxC}} & \textbf{\hyperref[DD:balanceDecayRate]{DD: balanceDecayRate}} & \textbf{\hyperref[TM:consThermE]{TM: consThermE}} & \textbf{\hyperref[TM:sensHtE]{TM: sensHtE}} & \textbf{\hyperref[GD:nwtnCooling]{GD: nwtnCooling}} & \textbf{\hyperref[GD:rocTempSimp]{GD: rocTempSimp}} & \textbf{\hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr}} & \textbf{\hyperref[IM:heatEInWtr]{IM: heatEInWtr}}
+\textbf{} & \textbf{\hyperref[DD:htFluxC]{DD: htFluxC}} & \textbf{\hyperref[DD:balanceDecayRate]{DD: balanceDecayRate}} & \textbf{\hyperref[TM:consThermE]{TM: consThermE}} & \textbf{\hyperref[TM:sensHtE]{TM: sensHtE}} & \textbf{\hyperref[TM:nwtnCooling]{TM: nwtnCooling}} & \textbf{\hyperref[GD:rocTempSimp]{GD: rocTempSimp}} & \textbf{\hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr}} & \textbf{\hyperref[IM:heatEInWtr]{IM: heatEInWtr}}
\\
\midrule
\endhead
@@ -924,7 +920,7 @@ \section{Traceability Matrices and Graphs}
\\
\hyperref[TM:sensHtE]{TM: sensHtE} & & & & & & & &
\\
-\hyperref[GD:nwtnCooling]{GD: nwtnCooling} & & & & & & & &
+\hyperref[TM:nwtnCooling]{TM: nwtnCooling} & & & & & & & &
\\
\hyperref[GD:rocTempSimp]{GD: rocTempSimp} & & & X & & & X & &
\\
@@ -938,7 +934,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}
\toprule
-\textbf{} & \textbf{\hyperref[DD:htFluxC]{DD: htFluxC}} & \textbf{\hyperref[DD:balanceDecayRate]{DD: balanceDecayRate}} & \textbf{\hyperref[TM:consThermE]{TM: consThermE}} & \textbf{\hyperref[TM:sensHtE]{TM: sensHtE}} & \textbf{\hyperref[GD:nwtnCooling]{GD: nwtnCooling}} & \textbf{\hyperref[GD:rocTempSimp]{GD: rocTempSimp}} & \textbf{\hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr}} & \textbf{\hyperref[IM:heatEInWtr]{IM: heatEInWtr}} & \textbf{\hyperref[inputInitQuants]{FR: Input-Initial-Quantities}} & \textbf{\hyperref[findMass]{FR: Find-Mass}} & \textbf{\hyperref[checkWithPhysConsts]{FR: Check-Input-with-Physical\_Constraints}} & \textbf{\hyperref[outputInputDerivQuants]{FR: Output-Input-Derived-Quantities}} & \textbf{\hyperref[calcTempWtrOverTime]{FR: Calculate-Temperature-Water-Over-Time}} & \textbf{\hyperref[calcChgHeatEnergyWtrOverTime]{FR: Calculate-Change-Heat\_Energy-Water-Over-Time}} & \textbf{\hyperref[correct]{NFR: Correct}} & \textbf{\hyperref[verifiable]{NFR: Verifiable}} & \textbf{\hyperref[understandable]{NFR: Understandable}} & \textbf{\hyperref[reusable]{NFR: Reusable}} & \textbf{\hyperref[maintainable]{NFR: Maintainable}}
+\textbf{} & \textbf{\hyperref[DD:htFluxC]{DD: htFluxC}} & \textbf{\hyperref[DD:balanceDecayRate]{DD: balanceDecayRate}} & \textbf{\hyperref[TM:consThermE]{TM: consThermE}} & \textbf{\hyperref[TM:sensHtE]{TM: sensHtE}} & \textbf{\hyperref[TM:nwtnCooling]{TM: nwtnCooling}} & \textbf{\hyperref[GD:rocTempSimp]{GD: rocTempSimp}} & \textbf{\hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr}} & \textbf{\hyperref[IM:heatEInWtr]{IM: heatEInWtr}} & \textbf{\hyperref[inputInitQuants]{FR: Input-Initial-Quantities}} & \textbf{\hyperref[findMass]{FR: Find-Mass}} & \textbf{\hyperref[checkWithPhysConsts]{FR: Check-Input-with-Physical\_Constraints}} & \textbf{\hyperref[outputInputDerivQuants]{FR: Output-Input-Derived-Quantities}} & \textbf{\hyperref[calcTempWtrOverTime]{FR: Calculate-Temperature-Water-Over-Time}} & \textbf{\hyperref[calcChgHeatEnergyWtrOverTime]{FR: Calculate-Change-Heat\_Energy-Water-Over-Time}} & \textbf{\hyperref[correct]{NFR: Correct}} & \textbf{\hyperref[verifiable]{NFR: Verifiable}} & \textbf{\hyperref[understandable]{NFR: Understandable}} & \textbf{\hyperref[reusable]{NFR: Reusable}} & \textbf{\hyperref[maintainable]{NFR: Maintainable}}
\\
\midrule
\endhead
diff --git a/code/stable/nopcm/Website/NoPCM_SRS.html b/code/stable/nopcm/Website/NoPCM_SRS.html
index f1652d2274..4c7785de0b 100644
--- a/code/stable/nopcm/Website/NoPCM_SRS.html
+++ b/code/stable/nopcm/Website/NoPCM_SRS.html
@@ -569,7 +569,7 @@ Assumptions
- Heat-Transfer-Coeffs-Constant: All heat transfer coefficients are constant over time. (RefBy:
GD: nwtnCooling.)
+ Heat-Transfer-Coeffs-Constant: All heat transfer coefficients are constant over time. (RefBy:
TM: nwtnCooling.)
@@ -767,28 +767,16 @@
Theoretical Models
-
-
-
-
-
General Definitions
-
- This section collects the laws and equations that will be used to build the instance models.
-
-
-
+
+
Refname |
- GD:nwtnCooling |
+ TM:nwtnCooling |
Label |
Newton's law of cooling |
-
- Units |
- W/m2 |
-
Equation |
q(t) = h ΔT(t) |
@@ -834,7 +822,14 @@ General Definitions
-
+
+
+
+
+
General Definitions
+
+ This section collects the laws and equations that will be used to build the instance models.
+
@@ -1845,7 +1840,7 @@ Traceability Matrices and Graphs
|
- GD: nwtnCooling |
+ TM: nwtnCooling |
|
X |
|
@@ -2205,7 +2200,7 @@ Traceability Matrices and Graphs
DD: balanceDecayRate |
TM: consThermE |
TM: sensHtE |
- GD: nwtnCooling |
+ TM: nwtnCooling |
GD: rocTempSimp |
IM: eBalanceOnWtr |
IM: heatEInWtr |
@@ -2255,7 +2250,7 @@ Traceability Matrices and Graphs
|
- GD: nwtnCooling |
+ TM: nwtnCooling |
|
|
|
@@ -2311,7 +2306,7 @@ Traceability Matrices and Graphs
DD: balanceDecayRate |
TM: consThermE |
TM: sensHtE |
- GD: nwtnCooling |
+ TM: nwtnCooling |
GD: rocTempSimp |
IM: eBalanceOnWtr |
IM: heatEInWtr |
diff --git a/code/stable/swhs/SRS/SWHS_SRS.tex b/code/stable/swhs/SRS/SWHS_SRS.tex
index e6136f9ef0..e2dc78d573 100644
--- a/code/stable/swhs/SRS/SWHS_SRS.tex
+++ b/code/stable/swhs/SRS/SWHS_SRS.tex
@@ -370,7 +370,7 @@ \subsubsection{Assumptions}
\begin{itemize}
\item[Thermal-Energy-Only:\phantomsection\label{assumpTEO}]{The only form of energy that is relevant for this problem is thermal energy. All other forms of energy, such as mechanical energy, are assumed to be negligible. (RefBy: \hyperref[TM:consThermE]{TM: consThermE}.)}
-\item[Heat-Transfer-Coeffs-Constant:\phantomsection\label{assumpHTCC}]{All heat transfer coefficients are constant over time. (RefBy: \hyperref[GD:nwtnCooling]{GD: nwtnCooling}.)}
+\item[Heat-Transfer-Coeffs-Constant:\phantomsection\label{assumpHTCC}]{All heat transfer coefficients are constant over time. (RefBy: \hyperref[TM:nwtnCooling]{TM: nwtnCooling}.)}
\item[Constant-Water-Temp-Across-Tank:\phantomsection\label{assumpCWTAT}]{The water in the tank is fully mixed, so the temperature of the water is the same throughout the entire tank. (RefBy: \hyperref[GD:rocTempSimp]{GD: rocTempSimp}, \hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr}, and \hyperref[IM:eBalanceOnPCM]{IM: eBalanceOnPCM}.)}
\item[Temp-PCM-Constant-Across-Volume:\phantomsection\label{assumpTPCAV}]{The temperature of the phase change material is the same throughout the volume of PCM. (RefBy: \hyperref[GD:rocTempSimp]{GD: rocTempSimp}, \hyperref[likeChgUTP]{LC: Uniform-Temperature-PCM}, \hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr}, and \hyperref[IM:eBalanceOnPCM]{IM: eBalanceOnPCM}.)}
\item[Density-Water-PCM-Constant-over-Volume:\phantomsection\label{assumpDWPCoV}]{The density of water and density of PCM have no spatial variation; that is, they are each constant over their entire volume. (RefBy: \hyperref[GD:rocTempSimp]{GD: rocTempSimp}.)}
@@ -514,23 +514,16 @@ \subsubsection{Theoretical Models}
\\ \bottomrule
\end{tabular}
\end{minipage}
-\subsubsection{General Definitions}
-\label{Sec:GDs}
-This section collects the laws and equations that will be used to build the instance models.
-
\vspace{\baselineskip}
\noindent
\begin{minipage}{\textwidth}
\begin{tabular}{>{\raggedright}p{0.13\textwidth}>{\raggedright\arraybackslash}p{0.82\textwidth}}
-\toprule \textbf{Refname} & \textbf{GD:nwtnCooling}
+\toprule \textbf{Refname} & \textbf{TM:nwtnCooling}
\phantomsection
-\label{GD:nwtnCooling}
+\label{TM:nwtnCooling}
\\ \midrule \\
Label & Newton's law of cooling
-\\ \midrule \\
-Units & $\frac{\text{W}}{\text{m}^{2}}$
-
\\ \midrule \\
Equation & \begin{displaymath}
q\left(t\right)=h ΔT\left(t\right)
@@ -557,6 +550,9 @@ \subsubsection{General Definitions}
\\ \bottomrule
\end{tabular}
\end{minipage}
+\subsubsection{General Definitions}
+\label{Sec:GDs}
+This section collects the laws and equations that will be used to build the instance models.
\vspace{\baselineskip}
\noindent
@@ -1516,7 +1512,7 @@ \section{Traceability Matrices and Graphs}
\\
\hyperref[TM:latentHtE]{TM: latentHtE} & & & & & & & & & & & & & & & & & & & &
\\
-\hyperref[GD:nwtnCooling]{GD: nwtnCooling} & & X & & & & & & & & & & & & & & & & & &
+\hyperref[TM:nwtnCooling]{TM: nwtnCooling} & & X & & & & & & & & & & & & & & & & & &
\\
\hyperref[GD:rocTempSimp]{GD: rocTempSimp} & & & X & X & X & X & & & & & & & & & & & & & &
\\
@@ -1584,7 +1580,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}
\toprule
-\textbf{} & \textbf{\hyperref[DD:htFluxC]{DD: htFluxC}} & \textbf{\hyperref[DD:htFluxP]{DD: htFluxP}} & \textbf{\hyperref[DD:balanceDecayRate]{DD: balanceDecayRate}} & \textbf{\hyperref[DD:balanceDecayTime]{DD: balanceDecayTime}} & \textbf{\hyperref[DD:balanceSolidPCM]{DD: balanceSolidPCM}} & \textbf{\hyperref[DD:balanceLiquidPCM]{DD: balanceLiquidPCM}} & \textbf{\hyperref[DD:htFusion]{DD: htFusion}} & \textbf{\hyperref[DD:meltFrac]{DD: meltFrac}} & \textbf{\hyperref[DD:aspectRatio]{DD: aspectRatio}} & \textbf{\hyperref[TM:consThermE]{TM: consThermE}} & \textbf{\hyperref[TM:sensHtE]{TM: sensHtE}} & \textbf{\hyperref[TM:latentHtE]{TM: latentHtE}} & \textbf{\hyperref[GD:nwtnCooling]{GD: nwtnCooling}} & \textbf{\hyperref[GD:rocTempSimp]{GD: rocTempSimp}} & \textbf{\hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr}} & \textbf{\hyperref[IM:eBalanceOnPCM]{IM: eBalanceOnPCM}} & \textbf{\hyperref[IM:heatEInWtr]{IM: heatEInWtr}} & \textbf{\hyperref[IM:heatEInPCM]{IM: heatEInPCM}}
+\textbf{} & \textbf{\hyperref[DD:htFluxC]{DD: htFluxC}} & \textbf{\hyperref[DD:htFluxP]{DD: htFluxP}} & \textbf{\hyperref[DD:balanceDecayRate]{DD: balanceDecayRate}} & \textbf{\hyperref[DD:balanceDecayTime]{DD: balanceDecayTime}} & \textbf{\hyperref[DD:balanceSolidPCM]{DD: balanceSolidPCM}} & \textbf{\hyperref[DD:balanceLiquidPCM]{DD: balanceLiquidPCM}} & \textbf{\hyperref[DD:htFusion]{DD: htFusion}} & \textbf{\hyperref[DD:meltFrac]{DD: meltFrac}} & \textbf{\hyperref[DD:aspectRatio]{DD: aspectRatio}} & \textbf{\hyperref[TM:consThermE]{TM: consThermE}} & \textbf{\hyperref[TM:sensHtE]{TM: sensHtE}} & \textbf{\hyperref[TM:latentHtE]{TM: latentHtE}} & \textbf{\hyperref[TM:nwtnCooling]{TM: nwtnCooling}} & \textbf{\hyperref[GD:rocTempSimp]{GD: rocTempSimp}} & \textbf{\hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr}} & \textbf{\hyperref[IM:eBalanceOnPCM]{IM: eBalanceOnPCM}} & \textbf{\hyperref[IM:heatEInWtr]{IM: heatEInWtr}} & \textbf{\hyperref[IM:heatEInPCM]{IM: heatEInPCM}}
\\
\midrule
\endhead
@@ -1612,7 +1608,7 @@ \section{Traceability Matrices and Graphs}
\\
\hyperref[TM:latentHtE]{TM: latentHtE} & & & & & & & & X & & & & & & & & & &
\\
-\hyperref[GD:nwtnCooling]{GD: nwtnCooling} & & & & & & & & & & & & & & & & & &
+\hyperref[TM:nwtnCooling]{TM: nwtnCooling} & & & & & & & & & & & & & & & & & &
\\
\hyperref[GD:rocTempSimp]{GD: rocTempSimp} & & & & & & & & & & X & & & & X & & & &
\\
@@ -1630,7 +1626,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}
\toprule
-\textbf{} & \textbf{\hyperref[DD:htFluxC]{DD: htFluxC}} & \textbf{\hyperref[DD:htFluxP]{DD: htFluxP}} & \textbf{\hyperref[DD:balanceDecayRate]{DD: balanceDecayRate}} & \textbf{\hyperref[DD:balanceDecayTime]{DD: balanceDecayTime}} & \textbf{\hyperref[DD:balanceSolidPCM]{DD: balanceSolidPCM}} & \textbf{\hyperref[DD:balanceLiquidPCM]{DD: balanceLiquidPCM}} & \textbf{\hyperref[DD:htFusion]{DD: htFusion}} & \textbf{\hyperref[DD:meltFrac]{DD: meltFrac}} & \textbf{\hyperref[DD:aspectRatio]{DD: aspectRatio}} & \textbf{\hyperref[TM:consThermE]{TM: consThermE}} & \textbf{\hyperref[TM:sensHtE]{TM: sensHtE}} & \textbf{\hyperref[TM:latentHtE]{TM: latentHtE}} & \textbf{\hyperref[GD:nwtnCooling]{GD: nwtnCooling}} & \textbf{\hyperref[GD:rocTempSimp]{GD: rocTempSimp}} & \textbf{\hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr}} & \textbf{\hyperref[IM:eBalanceOnPCM]{IM: eBalanceOnPCM}} & \textbf{\hyperref[IM:heatEInWtr]{IM: heatEInWtr}} & \textbf{\hyperref[IM:heatEInPCM]{IM: heatEInPCM}} & \textbf{\hyperref[inputInitQuants]{FR: Input-Initial-Quantities}} & \textbf{\hyperref[findMass]{FR: Find-Mass}} & \textbf{\hyperref[checkWithPhysConsts]{FR: Check-Input-with-Physical\_Constraints}} & \textbf{\hyperref[outputInputDerivQuants]{FR: Output-Input-Derived-Quantities}} & \textbf{\hyperref[calcTempWtrOverTime]{FR: Calculate-Temperature-Water-Over-Time}} & \textbf{\hyperref[calcTempPCMOverTime]{FR: Calculate-Temperature-PCM-Over-Time}} & \textbf{\hyperref[calcChgHeatEnergyWtrOverTime]{FR: Calculate-Change-Heat\_Energy-Water-Over-Time}} & \textbf{\hyperref[calcChgHeatEnergyPCMOverTime]{FR: Calculate-Change-Heat\_Energy-PCM-Over-Time}} & \textbf{\hyperref[verifyEnergyOutput]{FR: Verify-Energy-Output-Follow-Conservation-of-Energy}} & \textbf{\hyperref[calcPCMMeltBegin]{FR: Calculate-PCM-Melt-Begin-Time}} & \textbf{\hyperref[calcPCMMeltEnd]{FR: Calculate-PCM-Melt-End-Time}} & \textbf{\hyperref[correct]{NFR: Correct}} & \textbf{\hyperref[verifiable]{NFR: Verifiable}} & \textbf{\hyperref[understandable]{NFR: Understandable}} & \textbf{\hyperref[reusable]{NFR: Reusable}} & \textbf{\hyperref[maintainable]{NFR: Maintainable}}
+\textbf{} & \textbf{\hyperref[DD:htFluxC]{DD: htFluxC}} & \textbf{\hyperref[DD:htFluxP]{DD: htFluxP}} & \textbf{\hyperref[DD:balanceDecayRate]{DD: balanceDecayRate}} & \textbf{\hyperref[DD:balanceDecayTime]{DD: balanceDecayTime}} & \textbf{\hyperref[DD:balanceSolidPCM]{DD: balanceSolidPCM}} & \textbf{\hyperref[DD:balanceLiquidPCM]{DD: balanceLiquidPCM}} & \textbf{\hyperref[DD:htFusion]{DD: htFusion}} & \textbf{\hyperref[DD:meltFrac]{DD: meltFrac}} & \textbf{\hyperref[DD:aspectRatio]{DD: aspectRatio}} & \textbf{\hyperref[TM:consThermE]{TM: consThermE}} & \textbf{\hyperref[TM:sensHtE]{TM: sensHtE}} & \textbf{\hyperref[TM:latentHtE]{TM: latentHtE}} & \textbf{\hyperref[TM:nwtnCooling]{TM: nwtnCooling}} & \textbf{\hyperref[GD:rocTempSimp]{GD: rocTempSimp}} & \textbf{\hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr}} & \textbf{\hyperref[IM:eBalanceOnPCM]{IM: eBalanceOnPCM}} & \textbf{\hyperref[IM:heatEInWtr]{IM: heatEInWtr}} & \textbf{\hyperref[IM:heatEInPCM]{IM: heatEInPCM}} & \textbf{\hyperref[inputInitQuants]{FR: Input-Initial-Quantities}} & \textbf{\hyperref[findMass]{FR: Find-Mass}} & \textbf{\hyperref[checkWithPhysConsts]{FR: Check-Input-with-Physical\_Constraints}} & \textbf{\hyperref[outputInputDerivQuants]{FR: Output-Input-Derived-Quantities}} & \textbf{\hyperref[calcTempWtrOverTime]{FR: Calculate-Temperature-Water-Over-Time}} & \textbf{\hyperref[calcTempPCMOverTime]{FR: Calculate-Temperature-PCM-Over-Time}} & \textbf{\hyperref[calcChgHeatEnergyWtrOverTime]{FR: Calculate-Change-Heat\_Energy-Water-Over-Time}} & \textbf{\hyperref[calcChgHeatEnergyPCMOverTime]{FR: Calculate-Change-Heat\_Energy-PCM-Over-Time}} & \textbf{\hyperref[verifyEnergyOutput]{FR: Verify-Energy-Output-Follow-Conservation-of-Energy}} & \textbf{\hyperref[calcPCMMeltBegin]{FR: Calculate-PCM-Melt-Begin-Time}} & \textbf{\hyperref[calcPCMMeltEnd]{FR: Calculate-PCM-Melt-End-Time}} & \textbf{\hyperref[correct]{NFR: Correct}} & \textbf{\hyperref[verifiable]{NFR: Verifiable}} & \textbf{\hyperref[understandable]{NFR: Understandable}} & \textbf{\hyperref[reusable]{NFR: Reusable}} & \textbf{\hyperref[maintainable]{NFR: Maintainable}}
\\
\midrule
\endhead
diff --git a/code/stable/swhs/Website/SWHS_SRS.html b/code/stable/swhs/Website/SWHS_SRS.html
index 05c1dd67dd..1127966eaa 100644
--- a/code/stable/swhs/Website/SWHS_SRS.html
+++ b/code/stable/swhs/Website/SWHS_SRS.html
@@ -739,7 +739,7 @@ Assumptions
- Heat-Transfer-Coeffs-Constant: All heat transfer coefficients are constant over time. (RefBy:
GD: nwtnCooling.)
+ Heat-Transfer-Coeffs-Constant: All heat transfer coefficients are constant over time. (RefBy:
TM: nwtnCooling.)
@@ -1084,28 +1084,16 @@
Theoretical Models
-
-
-
-
-
General Definitions
-
- This section collects the laws and equations that will be used to build the instance models.
-
-
-
+
+
Refname |
- GD:nwtnCooling |
+ TM:nwtnCooling |
Label |
Newton's law of cooling |
-
- Units |
- W/m2 |
-
Equation |
q(t) = h ΔT(t) |
@@ -1151,7 +1139,14 @@ General Definitions
-
+
+
+
+
+
General Definitions
+
+ This section collects the laws and equations that will be used to build the instance models.
+
@@ -3508,7 +3503,7 @@ Traceability Matrices and Graphs
|
- GD: nwtnCooling |
+ TM: nwtnCooling |
|
X |
|
@@ -4265,7 +4260,7 @@ Traceability Matrices and Graphs
TM: consThermE |
TM: sensHtE |
TM: latentHtE |
- GD: nwtnCooling |
+ TM: nwtnCooling |
GD: rocTempSimp |
IM: eBalanceOnWtr |
IM: eBalanceOnPCM |
@@ -4525,7 +4520,7 @@ Traceability Matrices and Graphs
|
- GD: nwtnCooling |
+ TM: nwtnCooling |
|
|
|
@@ -4671,7 +4666,7 @@ Traceability Matrices and Graphs
TM: consThermE |
TM: sensHtE |
TM: latentHtE |
- GD: nwtnCooling |
+ TM: nwtnCooling |
GD: rocTempSimp |
IM: eBalanceOnWtr |
IM: eBalanceOnPCM |
From 8c16b327f636e492f89449fe81171895ef78bebf Mon Sep 17 00:00:00 2001
From: Sam Crawford
Date: Mon, 12 Aug 2019 16:40:47 -0400
Subject: [PATCH 3/4] Moved some DDs to GDs as per #1479
---
code/drasil-example/Drasil/NoPCM/DataDefs.hs | 6 +-
code/drasil-example/Drasil/NoPCM/GenDefs.hs | 4 +-
code/drasil-example/Drasil/NoPCM/IMods.hs | 16 +-
code/drasil-example/Drasil/SWHS/Body.hs | 16 +-
code/drasil-example/Drasil/SWHS/DataDefs.hs | 40 +---
code/drasil-example/Drasil/SWHS/GenDefs.hs | 51 ++++-
code/drasil-example/Drasil/SWHS/IMods.hs | 33 ++--
code/stable/nopcm/SRS/NoPCM_SRS.tex | 43 ++---
code/stable/nopcm/Website/NoPCM_SRS.html | 104 +++++-----
code/stable/swhs/SRS/SWHS_SRS.tex | 74 ++++----
code/stable/swhs/Website/SWHS_SRS.html | 188 +++++++++----------
11 files changed, 289 insertions(+), 286 deletions(-)
diff --git a/code/drasil-example/Drasil/NoPCM/DataDefs.hs b/code/drasil-example/Drasil/NoPCM/DataDefs.hs
index de5c8bf6ee..68923d03b5 100644
--- a/code/drasil-example/Drasil/NoPCM/DataDefs.hs
+++ b/code/drasil-example/Drasil/NoPCM/DataDefs.hs
@@ -3,10 +3,10 @@ module Drasil.NoPCM.DataDefs where --exports all of it
import Language.Drasil
import Theory.Drasil (DataDefinition)
-import Drasil.SWHS.DataDefs (ddHtFluxC, ddHtFluxCQD, balanceDecayRate, balanceDecayRateQD)
+import Drasil.SWHS.DataDefs (balanceDecayRate, balanceDecayRateQD)
qDefs :: [QDefinition]
-qDefs = [ddHtFluxCQD, balanceDecayRateQD]
+qDefs = [balanceDecayRateQD]
dataDefs :: [DataDefinition]
-dataDefs = [ddHtFluxC, balanceDecayRate]
+dataDefs = [balanceDecayRate]
diff --git a/code/drasil-example/Drasil/NoPCM/GenDefs.hs b/code/drasil-example/Drasil/NoPCM/GenDefs.hs
index 2908455eed..7e38e25c33 100644
--- a/code/drasil-example/Drasil/NoPCM/GenDefs.hs
+++ b/code/drasil-example/Drasil/NoPCM/GenDefs.hs
@@ -5,10 +5,10 @@ import Theory.Drasil (GenDefn, gdNoRefs)
import Drasil.NoPCM.Assumptions (assumpDWCoW, assumpSHECoW)
import Drasil.SWHS.Assumptions (assumpCWTAT)
-import Drasil.SWHS.GenDefs (rocTempSimpRC, rocTempSimpDeriv)
+import Drasil.SWHS.GenDefs (htFluxWaterFromCoil, rocTempSimpRC, rocTempSimpDeriv)
genDefs :: [GenDefn]
-genDefs = [rocTempSimp]
+genDefs = [rocTempSimp, htFluxWaterFromCoil]
rocTempSimp :: GenDefn
rocTempSimp = gdNoRefs rocTempSimpRC (Nothing :: Maybe UnitDefn)
diff --git a/code/drasil-example/Drasil/NoPCM/IMods.hs b/code/drasil-example/Drasil/NoPCM/IMods.hs
index 2e024f1323..2da7c6c1a2 100644
--- a/code/drasil-example/Drasil/NoPCM/IMods.hs
+++ b/code/drasil-example/Drasil/NoPCM/IMods.hs
@@ -13,12 +13,12 @@ import Data.Drasil.Concepts.Thermodynamics (melting, boilPt)
import Data.Drasil.Quantities.Physics (energy, time)
import Drasil.SWHS.Concepts (water)
-import Drasil.SWHS.DataDefs (ddHtFluxC, balanceDecayRate)
-import Drasil.SWHS.IMods (eBalanceOnWtrDerivDesc1, eBalanceOnWtrDerivDesc2,
- eBalanceOnWtrDerivDesc3, heatEInWtr)
+import Drasil.SWHS.DataDefs (balanceDecayRate)
+import Drasil.SWHS.GenDefs (htFluxWaterFromCoil)
+import Drasil.SWHS.IMods (eBalanceOnWtrDerivDesc1, eBalanceOnWtrDerivDesc3, heatEInWtr)
import Drasil.SWHS.References (koothoor2013)
-import Drasil.SWHS.Unitals (tempW, tempC, tauW, wMass, htCapW, coilHTC,
- coilSA, tempInit, timeFinal, htFluxC)
+import Drasil.SWHS.Unitals (coilHTC, coilSA, htCapW, htFluxC, tauW, tempC,
+ tempInit, tempW, timeFinal, wMass)
import Drasil.NoPCM.Assumptions (assumpNIHGBW, assumpWAL)
import Drasil.NoPCM.Goals (waterTempGS, waterEnergyGS)
@@ -66,7 +66,11 @@ eBalanceOnWtrDeriv = mkDerivName (S "the" +:+ phrase energy +:+ S "balance on wa
eBalanceOnWtrDerivSentences :: [Sentence]
eBalanceOnWtrDerivSentences = [eBalanceOnWtrDerivDesc1 EmptyS (S "over area" +:+ ch coilSA) EmptyS assumpNIHGBW,
- eBalanceOnWtrDerivDesc2 [ddHtFluxC], eBalanceOnWtrDerivDesc3, eBalanceOnWtrDerivDesc4]
+ eBalanceOnWtrDerivDesc2, eBalanceOnWtrDerivDesc3, eBalanceOnWtrDerivDesc4]
+
+eBalanceOnWtrDerivDesc2 :: Sentence
+eBalanceOnWtrDerivDesc2 = foldlSentCol [S "Using", makeRef2S htFluxWaterFromCoil, S "for",
+ ch htFluxC `sC` S "this can be written as"]
eBalanceOnWtrDerivDesc4 :: Sentence
eBalanceOnWtrDerivDesc4 = substitute [balanceDecayRate]
diff --git a/code/drasil-example/Drasil/SWHS/Body.hs b/code/drasil-example/Drasil/SWHS/Body.hs
index f7a7fae824..4d5f911f5f 100755
--- a/code/drasil-example/Drasil/SWHS/Body.hs
+++ b/code/drasil-example/Drasil/SWHS/Body.hs
@@ -6,7 +6,7 @@ import Database.Drasil (Block, ChunkDB, ReferenceDB,
SystemInformation(SI), cdb, rdb, refdb, _authors, _concepts, _constants,
_constraints, _datadefs, _definitions, _defSequence, _inputs, _kind, _outputs,
_quants, _sys, _sysinfodb, _usedinfodb)
-import Theory.Drasil (DataDefinition, InstanceModel)
+import Theory.Drasil (GenDefn, InstanceModel)
import Utils.Drasil
import Control.Lens ((^.))
@@ -52,9 +52,9 @@ import Drasil.SWHS.Assumptions (assumpPIS, assumptions)
import Drasil.SWHS.Changes (likelyChgs, unlikelyChgs)
import Drasil.SWHS.Concepts (acronymsFull, coil, con, phaseChangeMaterial,
phsChgMtrl, progName, rightSide, sWHT, swhsPCM, tank, tankPCM, transient, water)
-import Drasil.SWHS.DataDefs (ddHtFluxC, ddHtFluxP, qDefs)
+import Drasil.SWHS.DataDefs (qDefs)
import qualified Drasil.SWHS.DataDefs as SWHS (dataDefs)
-import Drasil.SWHS.GenDefs (genDefs)
+import Drasil.SWHS.GenDefs (genDefs, htFluxWaterFromCoil, htFluxPCMFromWater)
import Drasil.SWHS.Goals (goals)
import Drasil.SWHS.IMods (eBalanceOnWtr, eBalanceOnPCM, heatEInWtr, heatEInPCM,
iMods, instModIntro)
@@ -537,22 +537,22 @@ outputConstraints = [tempW, tempPCM, watE, pcmE] --FIXME: add "(by A11)" in Phys
propsDeriv :: [Contents]
propsDeriv = [
propCorSolDeriv1 lawConsEnergy watE energy coil phsChgMtrl
- ddHtFluxC ddHtFluxP surface heatTrans,
+ htFluxWaterFromCoil htFluxPCMFromWater surface heatTrans,
propCorSolDeriv2,
propCorSolDeriv3 pcmE energy phsChgMtrl water,
propCorSolDeriv4,
propCorSolDeriv5 equation progName rightSide]
-propCorSolDeriv1 :: (NamedIdea b, NamedIdea h) => ConceptChunk -> b -> UnitalChunk -> ConceptChunk ->
- CI -> DataDefinition -> DataDefinition -> h -> ConceptChunk -> Contents
-propCorSolDeriv1 lce ewat en co pcmat d1hfc d2hfp su ht =
+propCorSolDeriv1 :: (NamedIdea b, NamedIdea h) => ConceptChunk -> b -> UnitalChunk ->
+ ConceptChunk -> CI -> GenDefn -> GenDefn -> h -> ConceptChunk -> Contents
+propCorSolDeriv1 lce ewat en co pcmat g1hfc g2hfp su ht =
foldlSPCol [S "A", phrase corSol, S "must exhibit the" +:+.
phrase lce, S "This means that the", phrase ewat,
S "should equal the difference between the total", phrase en,
phrase input_, S "from the", phrase co `sAnd` S "the",
phrase en, phrase output_, S "to the" +:+. short pcmat,
S "This can be shown as an", phrase equation, S "by taking",
- makeRef2S d1hfc `sAnd` makeRef2S d2hfp `sC`
+ makeRef2S g1hfc `sAnd` makeRef2S g2hfp `sC`
S "multiplying each by their respective", phrase su,
S "area of", phrase ht `sC` S "and integrating each",
S "over the", phrase simTime `sC` S "as follows"]
diff --git a/code/drasil-example/Drasil/SWHS/DataDefs.hs b/code/drasil-example/Drasil/SWHS/DataDefs.hs
index 21aabccf95..bdda6fd500 100644
--- a/code/drasil-example/Drasil/SWHS/DataDefs.hs
+++ b/code/drasil-example/Drasil/SWHS/DataDefs.hs
@@ -8,56 +8,30 @@ import Utils.Drasil
import Data.Drasil.Concepts.Documentation (value)
import Data.Drasil.Concepts.Thermodynamics (heat)
-import Data.Drasil.Quantities.Physics (energy, pressure, time)
+import Data.Drasil.Quantities.Physics (energy, pressure)
import Data.Drasil.Quantities.PhysicalProperties (mass)
import Data.Drasil.Quantities.Thermodynamics (latentHeat)
-import Drasil.SWHS.Assumptions (assumpLCCCW, assumpTHCCoT)
import Drasil.SWHS.References (bueche1986, koothoor2013, lightstone2012)
import Drasil.SWHS.Unitals (aspectRatio, coilHTC, coilSA, diam, eta, htCapLP,
- htCapSP, htCapW, htFluxC, htFluxP, htFusion, latentEP, meltFrac, pcmHTC,
- pcmMass, pcmSA, tankLength, tauLP, tauSP, tauW, tempC, tempPCM, tempW, wMass)
+ htCapSP, htCapW, htFusion, latentEP, meltFrac, pcmHTC, pcmMass, pcmSA,
+ tankLength, tauLP, tauSP, tauW, wMass)
refMDB :: ModelDB
refMDB = mdb [] [] dataDefs []
qDefs :: [QDefinition]
-qDefs = [ddHtFluxCQD, ddHtFluxPQD, balanceDecayRateQD, balanceDecayTimeQD,
- balanceSolidPCMQD, balanceLiquidPCMQD, ddHtFusionQD, ddMeltFracQD, aspRatQD]
+qDefs = [balanceDecayRateQD, balanceDecayTimeQD, balanceSolidPCMQD,
+ balanceLiquidPCMQD, ddHtFusionQD, ddMeltFracQD, aspRatQD]
dataDefs :: [DataDefinition]
-dataDefs = [ddHtFluxC, ddHtFluxP, balanceDecayRate, balanceDecayTime,
- balanceSolidPCM, balanceLiquidPCM, ddHtFusion, ddMeltFrac, aspRat]
+dataDefs = [balanceDecayRate, balanceDecayTime, balanceSolidPCM,
+ balanceLiquidPCM, ddHtFusion, ddMeltFrac, aspRat]
-- FIXME? This section looks strange. Some data defs are created using
-- terms, some using defns, and some with a brand new description.
-- I think this will need an overhaul after we fix Data Definitions.
-ddHtFluxCQD :: QDefinition
-ddHtFluxCQD = mkQuantDef htFluxC htFluxCEqn
-
-htFluxCEqn :: Expr
-htFluxCEqn = sy coilHTC * (sy tempC - apply1 tempW time)
-
-ddHtFluxC :: DataDefinition
-ddHtFluxC = dd ddHtFluxCQD [makeCite koothoor2013]
- Nothing "htFluxC" [makeRef2S assumpLCCCW, makeRef2S assumpTHCCoT]
-
---Can't include info in description beyond definition of variables?
-----
-
-ddHtFluxPQD :: QDefinition
-ddHtFluxPQD = mkQuantDef htFluxP htFluxPEqn
-
-htFluxPEqn :: Expr
-htFluxPEqn = sy pcmHTC * (apply1 tempW time - apply1 tempPCM time)
-
-ddHtFluxP :: DataDefinition
-ddHtFluxP = dd ddHtFluxPQD [makeCite koothoor2013]
- Nothing "htFluxP" [makeRef2S assumpLCCCW]
-
-----
-
balanceDecayRateQD :: QDefinition
balanceDecayRateQD = mkQuantDef tauW balanceDecayRateEqn
diff --git a/code/drasil-example/Drasil/SWHS/GenDefs.hs b/code/drasil-example/Drasil/SWHS/GenDefs.hs
index 3853d4103c..2af4f8f61a 100644
--- a/code/drasil-example/Drasil/SWHS/GenDefs.hs
+++ b/code/drasil-example/Drasil/SWHS/GenDefs.hs
@@ -1,9 +1,12 @@
-module Drasil.SWHS.GenDefs (genDefs, rocTempSimp, rocTempSimpDeriv, rocTempSimpRC) where
+module Drasil.SWHS.GenDefs (genDefs, htFluxWaterFromCoil, htFluxPCMFromWater,
+ rocTempSimp, rocTempSimpDeriv, rocTempSimpRC) where
import Language.Drasil
-import Theory.Drasil (GenDefn, gdNoRefs)
+import Theory.Drasil (GenDefn, gd, gdNoRefs)
import Utils.Drasil
+import Control.Lens ((^.))
+
import Data.Drasil.Concepts.Math (rOfChng, unit_)
import Data.Drasil.Quantities.Math (uNormalVect, surface, gradient)
@@ -11,10 +14,13 @@ import Data.Drasil.Quantities.PhysicalProperties as QPP (vol, mass, density)
import Data.Drasil.Quantities.Physics as QP (time)
import Data.Drasil.Quantities.Thermodynamics as QT (heatCapSpec, temp)
-import Drasil.SWHS.Assumptions (assumpCWTAT, assumpTPCAV, assumpDWPCoV, assumpSHECoV)
+import Drasil.SWHS.Assumptions (assumpCWTAT, assumpLCCCW, assumpTPCAV,
+ assumpDWPCoV, assumpSHECoV, assumpTHCCoT)
import Drasil.SWHS.Concepts (gaussDiv)
+import Drasil.SWHS.References (koothoor2013)
import Drasil.SWHS.TMods (consThermE)
-import Drasil.SWHS.Unitals (htFluxIn, htFluxOut, inSA, outSA, thFluxVect, volHtGen)
+import Drasil.SWHS.Unitals (coilHTC, htFluxC, htFluxIn, htFluxOut, htFluxP,
+ inSA, outSA, pcmHTC, tempC, tempPCM, tempW, thFluxVect, volHtGen)
---------------------------
-- General Definitions --
@@ -25,22 +31,51 @@ import Drasil.SWHS.Unitals (htFluxIn, htFluxOut, inSA, outSA, thFluxVect, volHtG
--stabilized yet (since RelationConcept isn't an instance of --
--the Referable class. --
genDefs :: [GenDefn]
-genDefs = [rocTempSimp]
+genDefs = [rocTempSimp, htFluxWaterFromCoil, htFluxPCMFromWater]
rocTempSimp :: GenDefn
rocTempSimp = gdNoRefs rocTempSimpRC (Nothing :: Maybe UnitDefn)
- (Just $ rocTempSimpDeriv rocTempDerivConsFlxSWHS [assumpCWTAT, assumpTPCAV, assumpDWPCoV, assumpSHECoV])
+ (Just $ rocTempSimpDeriv rocTempDerivConsFlxSWHS
+ [assumpCWTAT, assumpTPCAV, assumpDWPCoV, assumpSHECoV])
"rocTempSimp" [{-Notes-}]
rocTempSimpRC :: RelationConcept
-rocTempSimpRC = makeRC "rocTempSimp" (nounPhraseSP $ "Simplified rate " ++
- "of change of temperature") EmptyS rocTempSimpRel -- rocTempSimpL
+rocTempSimpRC = makeRC "rocTempSimpRC" (nounPhraseSP $ "Simplified rate " ++
+ "of change of temperature") EmptyS rocTempSimpRel
rocTempSimpRel :: Relation
rocTempSimpRel = sy QPP.mass * sy QT.heatCapSpec *
deriv (sy QT.temp) QP.time $= sy htFluxIn * sy inSA -
sy htFluxOut * sy outSA + sy volHtGen * sy QPP.vol
+----
+
+htFluxWaterFromCoil :: GenDefn
+htFluxWaterFromCoil = gd htFluxWaterFromCoilRC (getUnit htFluxC) Nothing
+ [makeCite koothoor2013] "htFluxWaterFromCoil"
+ [makeRef2S assumpLCCCW, makeRef2S assumpTHCCoT]
+
+htFluxWaterFromCoilRC :: RelationConcept
+htFluxWaterFromCoilRC = makeRC "htFluxWaterFromCoilRC" (htFluxC ^. term)
+ EmptyS htFluxWaterFromCoilRel
+
+htFluxWaterFromCoilRel :: Relation
+htFluxWaterFromCoilRel = sy htFluxC $= sy coilHTC * (sy tempC - apply1 tempW time)
+
+--Can't include info in description beyond definition of variables?
+----
+
+htFluxPCMFromWater :: GenDefn
+htFluxPCMFromWater = gd htFluxPCMFromWaterRC (getUnit htFluxP) Nothing
+ [makeCite koothoor2013] "htFluxPCMFromWater" [makeRef2S assumpLCCCW]
+
+htFluxPCMFromWaterRC :: RelationConcept
+htFluxPCMFromWaterRC = makeRC "htFluxPCMFromWaterRC" (htFluxP ^. term)
+ EmptyS htFluxPCMFromWaterRel
+
+htFluxPCMFromWaterRel :: Relation
+htFluxPCMFromWaterRel = sy htFluxP $= sy pcmHTC * (apply1 tempW time - apply1 tempPCM time)
+
--------------------------------------
-- General Definitions Derivation --
--------------------------------------
diff --git a/code/drasil-example/Drasil/SWHS/IMods.hs b/code/drasil-example/Drasil/SWHS/IMods.hs
index 249257e355..9cb5c1c60d 100644
--- a/code/drasil-example/Drasil/SWHS/IMods.hs
+++ b/code/drasil-example/Drasil/SWHS/IMods.hs
@@ -1,9 +1,8 @@
module Drasil.SWHS.IMods (iMods, eBalanceOnWtr, eBalanceOnWtrDerivDesc1,
- eBalanceOnWtrDerivDesc2, eBalanceOnWtrDerivDesc3, eBalanceOnPCM,
- heatEInWtr, heatEInPCM, instModIntro) where
+ eBalanceOnWtrDerivDesc3, eBalanceOnPCM, heatEInWtr, heatEInPCM, instModIntro) where
import Language.Drasil
-import Theory.Drasil (DataDefinition, InstanceModel, im, imNoDeriv)
+import Theory.Drasil (InstanceModel, im, imNoDeriv)
import Utils.Drasil
import Control.Lens((^.))
@@ -19,8 +18,9 @@ import Drasil.SWHS.Assumptions (assumpCTNOD, assumpSITWP, assumpPIS, assumpWAL,
assumpPIT, assumpNIHGBWP, assumpVCMPN, assumpNGSP, assumpAPT, assumpTHCCoL,
assumpCWTAT, assumpTPCAV)
import Drasil.SWHS.Concepts (coil, phsChgMtrl, rightSide, tank, water)
-import Drasil.SWHS.DataDefs (ddHtFluxC, ddHtFluxP, ddHtFusion, ddMeltFrac,
- balanceDecayRate, balanceDecayTime, balanceSolidPCM, balanceLiquidPCM)
+import Drasil.SWHS.DataDefs (ddHtFusion, ddMeltFrac, balanceDecayRate,
+ balanceDecayTime, balanceSolidPCM, balanceLiquidPCM)
+import Drasil.SWHS.GenDefs (htFluxWaterFromCoil, htFluxPCMFromWater, rocTempSimp)
import Drasil.SWHS.Goals (waterTempGS, pcmTempGS, waterEnergyGS, pcmEnergyGS)
import Drasil.SWHS.References (koothoor2013)
import Drasil.SWHS.TMods (sensHtE, latentHtE)
@@ -28,7 +28,6 @@ import Drasil.SWHS.Unitals (coilHTC, coilSA, eta, htFluxC, htFluxP, htCapLP,
htCapSP, htCapW, htFusion, latentEP, meltFrac, pcmE, pcmHTC, pcmInitMltE,
pcmMass, pcmSA, pcmVol, tInitMelt, tauLP, tauSP, tauW, tempC, tempInit,
tempMeltP, tempPCM, tempW, timeFinal, volHtGen, watE, wMass, wVol)
-import Drasil.SWHS.GenDefs (rocTempSimp)
iMods :: [InstanceModel]
iMods = [eBalanceOnWtr, eBalanceOnPCM, heatEInWtr, heatEInPCM]
@@ -78,12 +77,8 @@ eBalanceOnWtrDeriv = mkDerivName (S "the" +:+ phrase energy +:+ S "balance on wa
eBalanceOnWtrDerivSentences :: [Sentence]
eBalanceOnWtrDerivSentences = [eBalanceOnWtrDerivDesc1 htTransEnd overAreas extraAssumps assumpNIHGBWP,
- eBalanceOnWtrDerivDesc2 [ddHtFluxC, ddHtFluxP],
- eBalanceOnWtrDerivDesc3,
- eBalanceOnWtrDerivDesc4,
- eBalanceOnWtrDerivDesc5,
- eBalanceOnWtrDerivDesc6,
- eBalanceOnWtrDerivDesc7 eq2]
+ eBalanceOnWtrDerivDesc2, eBalanceOnWtrDerivDesc3, eBalanceOnWtrDerivDesc4,
+ eBalanceOnWtrDerivDesc5, eBalanceOnWtrDerivDesc6, eBalanceOnWtrDerivDesc7 eq2]
eBalanceOnWtrDerivDesc1 :: Sentence -> Sentence-> Sentence -> ConceptInstance -> Sentence
eBalanceOnWtrDerivDesc1 htEnd oa ea htA = foldlSentCol [
@@ -93,7 +88,7 @@ eBalanceOnWtrDerivDesc1 htEnd oa ea htA = foldlSentCol [
phrase tank, (E $ sy wVol) `sC` S "which has", phrase mass +:+. ((E $ sy wMass) `sAnd`
phrase heatCapSpec `sC` (E $ sy htCapW)), atStart heatTrans, S "occurs in the",
phrase water, S "from the", phrase coil, S "as", E $ sy htFluxC,
- sParen (makeRef2S ddHtFluxC) +:+ htEnd `sC` EmptyS +:+. oa, ea, S "No", phrase heatTrans, S "occurs to", S "outside" `ofThe`
+ sParen (makeRef2S htFluxWaterFromCoil) +:+ htEnd `sC` EmptyS +:+. oa, ea, S "No", phrase heatTrans, S "occurs to", S "outside" `ofThe`
phrase tank `sC` S "since it has been assumed to be perfectly insulated" +:+.
sParen (makeRef2S assumpPIT), S "Since the", phrase assumption,
S "is made that no internal heat is generated" +:+. (sParen (makeRef2S htA) `sC`
@@ -102,7 +97,7 @@ eBalanceOnWtrDerivDesc1 htEnd oa ea htA = foldlSentCol [
htTransEnd :: Sentence
htTransEnd = foldlSent_ [S "and from the", phrase water, S "into the",
- getAcc phsChgMtrl, S "as", ch htFluxP, sParen (makeRef2S ddHtFluxP)]
+ getAcc phsChgMtrl, S "as", ch htFluxP, sParen (makeRef2S htFluxPCMFromWater)]
overAreas :: Sentence
overAreas = S "over areas" +:+ ch coilSA `sAnd` ch pcmSA `sC` S "respectively"
@@ -115,9 +110,9 @@ extraAssumps = foldlSent [S "The thermal flux is constant over", ch coilSA `sC`
S "same throughout its", phrase vol, sParen (makeRef2S assumpTPCAV) `andThe`
phrase water `sIs` S "fully mixed", sParen (makeRef2S assumpCWTAT)]
-eBalanceOnWtrDerivDesc2 :: [DataDefinition] -> Sentence
-eBalanceOnWtrDerivDesc2 dds = foldlSentCol [S "Using", foldlList Comma List
- (map (\x -> makeRef2S x +:+ S "for" +:+ ch x) dds) `sC` S "this can be written as"]
+eBalanceOnWtrDerivDesc2 :: Sentence
+eBalanceOnWtrDerivDesc2 = foldlSentCol [S "Using", makeRef2S htFluxWaterFromCoil, S "for",
+ ch htFluxC `sAnd` makeRef2S htFluxPCMFromWater, S "for", ch htFluxP `sC` S "this can be written as"]
eBalanceOnWtrDerivDesc3 :: Sentence
eBalanceOnWtrDerivDesc3 = foldlSentCol [S "Dividing", eqN 2, S "by", E eq1 `sC` S "we obtain"]
@@ -241,7 +236,7 @@ eBalanceOnPCMDerivDesc1 = foldlSentCol [
S "being considered" `isThe` phrase pcmVol +:+. sParen (ch pcmVol),
S "The derivation that follows is initially for the solid" +:+. getAcc phsChgMtrl,
S "The" +:+. (phrase pcmMass `sIs` ch pcmMass `andThe` phrase htCapSP `sIs` ch htCapSP),
- S "The", phrase htFluxP `sIs` ch htFluxP, sParen (makeRef2S ddHtFluxP),
+ S "The", phrase htFluxP `sIs` ch htFluxP, sParen (makeRef2S htFluxPCMFromWater),
S "over", phrase pcmSA +:+. ch pcmSA, S "The thermal flux is constant over",
ch pcmSA `sC` S "since", phrase temp `ofThe` getAcc phsChgMtrl `isThe`
S "same throughout its", phrase vol, sParen (makeRef2S assumpTPCAV) `andThe`
@@ -252,7 +247,7 @@ eBalanceOnPCMDerivDesc1 = foldlSentCol [
S "the equation for", makeRef2S rocTempSimp, S "can be written as"]
eBalanceOnPCMDerivDesc2 :: Sentence
-eBalanceOnPCMDerivDesc2 = foldlSentCol [S "Using", makeRef2S ddHtFluxP, S "for",
+eBalanceOnPCMDerivDesc2 = foldlSentCol [S "Using", makeRef2S htFluxPCMFromWater, S "for",
ch htFluxP `sC` S "this", phrase equation, S "can be written as"]
eBalanceOnPCMDerivDesc3 :: Sentence
diff --git a/code/stable/nopcm/SRS/NoPCM_SRS.tex b/code/stable/nopcm/SRS/NoPCM_SRS.tex
index 811f393e86..f01db52b71 100644
--- a/code/stable/nopcm/SRS/NoPCM_SRS.tex
+++ b/code/stable/nopcm/SRS/NoPCM_SRS.tex
@@ -310,8 +310,8 @@ \subsubsection{Assumptions}
\item[Constant-Water-Temp-Across-Tank:\phantomsection\label{assumpCWTAT}]{The water in the tank is fully mixed, so the temperature of the water is the same throughout the entire tank. (RefBy: \hyperref[GD:rocTempSimp]{GD: rocTempSimp}.)}
\item[Density-Water-Constant-over-Volume:\phantomsection\label{assumpDWCoW}]{The density of water has no spatial variation; that is, it is constant over their entire volume. (RefBy: \hyperref[GD:rocTempSimp]{GD: rocTempSimp}.)}
\item[Specific-Heat-Energy-Constant-over-Volume:\phantomsection\label{assumpSHECoW}]{The specific heat capacity of water has no spatial variation; that is, it is constant over its entire volume. (RefBy: \hyperref[GD:rocTempSimp]{GD: rocTempSimp}.)}
-\item[Newton-Law-Convective-Cooling-Coil-Water:\phantomsection\label{assumpLCCCW}]{Newton's law of convective cooling applies between the heating coil and the water. (RefBy: \hyperref[DD:htFluxC]{DD: htFluxC}.)}
-\item[Temp-Heating-Coil-Constant-over-Time:\phantomsection\label{assumpTHCCoT}]{The temperature of the heating coil is constant over time. (RefBy: \hyperref[likeChgTCVOD]{LC: Temperature-Coil-Variable-Over-Day} and \hyperref[DD:htFluxC]{DD: htFluxC}.)}
+\item[Newton-Law-Convective-Cooling-Coil-Water:\phantomsection\label{assumpLCCCW}]{Newton's law of convective cooling applies between the heating coil and the water. (RefBy: \hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil}.)}
+\item[Temp-Heating-Coil-Constant-over-Time:\phantomsection\label{assumpTHCCoT}]{The temperature of the heating coil is constant over time. (RefBy: \hyperref[likeChgTCVOD]{LC: Temperature-Coil-Variable-Over-Day} and \hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil}.)}
\item[Temp-Heating-Coil-Constant-over-Length:\phantomsection\label{assumpTHCCoL}]{The temperature of the heating coil does not vary along its length. (RefBy: \hyperref[likeChgTCVOL]{LC: Temperature-Coil-Variable-Over-Length}.)}
\item[Charging-Tank-No-Temp-Discharge:\phantomsection\label{assumpCTNTD}]{The model only accounts for charging of the tank, not discharging. The temperature of the water can only increase, or remain constant; it cannot decrease. This implies that the initial temperature is less than (or equal to) the temperature of the heating coil. (RefBy: \hyperref[likeChgDT]{LC: Discharging-Tank}.)}
\item[Water-Always-Liquid:\phantomsection\label{assumpWAL}]{The operating temperature range of the system is such that the material (water in this case) is always in liquid state. That is, the temperature will not drop below the melting point temperature of water, or rise above its boiling point temperature. (RefBy: \hyperref[unlikeChgWFS]{UC: Water-Fixed-States}, \hyperref[TM:sensHtE]{TM: sensHtE}, \hyperref[IM:heatEInWtr]{IM: heatEInWtr}, and \hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr}.)}
@@ -497,23 +497,16 @@ \subsubsection{General Definitions}
\begin{displaymath}
m C \frac{\,dT}{\,dt}={q_{\text{in}}} {A_{\text{in}}}-{q_{\text{out}}} {A_{\text{out}}}+g V
\end{displaymath}
-\subsubsection{Data Definitions}
-\label{Sec:DDs}
-This section collects and defines all the data needed to build the instance models.
-
\vspace{\baselineskip}
\noindent
\begin{minipage}{\textwidth}
\begin{tabular}{>{\raggedright}p{0.13\textwidth}>{\raggedright\arraybackslash}p{0.82\textwidth}}
-\toprule \textbf{Refname} & \textbf{DD:htFluxC}
+\toprule \textbf{Refname} & \textbf{GD:htFluxWaterFromCoil}
\phantomsection
-\label{DD:htFluxC}
+\label{GD:htFluxWaterFromCoil}
\\ \midrule \\
Label & Heat flux into the water from the coil
-\\ \midrule \\
-Symbol & ${q_{\text{C}}}$
-
\\ \midrule \\
Units & $\frac{\text{W}}{\text{m}^{2}}$
@@ -544,6 +537,10 @@ \subsubsection{Data Definitions}
\end{tabular}
\end{minipage}
+\subsubsection{Data Definitions}
+\label{Sec:DDs}
+This section collects and defines all the data needed to build the instance models.
+
\vspace{\baselineskip}
\noindent
\begin{minipage}{\textwidth}
@@ -639,12 +636,12 @@ \subsubsection{Instance Models}
\end{minipage}
\paragraph{Detailed derivation of the energy balance on water:}
\label{IM:eBalanceOnWtrDeriv}
-To find the rate of change of ${T_{\text{W}}}$, we look at the energy balance on water. The volume being considered is the volume of water in the tank ${V_{\text{W}}}$, which has mass ${m_{\text{W}}}$ and specific heat capacity, ${C_{\text{W}}}$. Heat transfer occurs in the water from the heating coil as ${q_{\text{C}}}$ (\hyperref[DD:htFluxC]{DD: htFluxC}), over area ${A_{\text{C}}}$. No heat transfer occurs to the outside of the tank, since it has been assumed to be perfectly insulated (\hyperref[assumpPIT]{A: Perfect-Insulation-Tank}). Since the assumption is made that no internal heat is generated (\hyperref[assumpNIHGBW]{A: No-Internal-Heat-Generation-By-Water}), $g=0$. Therefore, the equation for \hyperref[GD:rocTempSimp]{GD: rocTempSimp} can be written as:
+To find the rate of change of ${T_{\text{W}}}$, we look at the energy balance on water. The volume being considered is the volume of water in the tank ${V_{\text{W}}}$, which has mass ${m_{\text{W}}}$ and specific heat capacity, ${C_{\text{W}}}$. Heat transfer occurs in the water from the heating coil as ${q_{\text{C}}}$ (\hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil}), over area ${A_{\text{C}}}$. No heat transfer occurs to the outside of the tank, since it has been assumed to be perfectly insulated (\hyperref[assumpPIT]{A: Perfect-Insulation-Tank}). Since the assumption is made that no internal heat is generated (\hyperref[assumpNIHGBW]{A: No-Internal-Heat-Generation-By-Water}), $g=0$. Therefore, the equation for \hyperref[GD:rocTempSimp]{GD: rocTempSimp} can be written as:
\begin{displaymath}
{m_{\text{W}}} {C_{\text{W}}} \frac{\,d{T_{\text{W}}}}{\,dt}={q_{\text{C}}} {A_{\text{C}}}
\end{displaymath}
-Using \hyperref[DD:htFluxC]{DD: htFluxC} for ${q_{\text{C}}}$, this can be written as:
+Using \hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil} for ${q_{\text{C}}}$, this can be written as:
\begin{displaymath}
{m_{\text{W}}} {C_{\text{W}}} \frac{\,d{T_{\text{W}}}}{\,dt}={h_{\text{C}}} {A_{\text{C}}} \left({T_{\text{C}}}-{T_{\text{W}}}\right)
@@ -852,8 +849,6 @@ \section{Traceability Matrices and Graphs}
\\
\midrule
\endhead
-\hyperref[DD:htFluxC]{DD: htFluxC} & & & & & & X & X & & & & & &
-\\
\hyperref[DD:balanceDecayRate]{DD: balanceDecayRate} & & & & & & & & & & & & &
\\
\hyperref[TM:consThermE]{TM: consThermE} & X & & & & & & & & & & & &
@@ -864,6 +859,8 @@ \section{Traceability Matrices and Graphs}
\\
\hyperref[GD:rocTempSimp]{GD: rocTempSimp} & & & X & X & X & & & & & & & &
\\
+\hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil} & & & & & & X & X & & & & & &
+\\
\hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr} & & & & & & & & & & X & X & X &
\\
\hyperref[IM:heatEInWtr]{IM: heatEInWtr} & & & & & & & & & & X & & & X
@@ -908,12 +905,10 @@ \section{Traceability Matrices and Graphs}
\end{longtable}
\begin{longtable}{l l l l l l l l l}
\toprule
-\textbf{} & \textbf{\hyperref[DD:htFluxC]{DD: htFluxC}} & \textbf{\hyperref[DD:balanceDecayRate]{DD: balanceDecayRate}} & \textbf{\hyperref[TM:consThermE]{TM: consThermE}} & \textbf{\hyperref[TM:sensHtE]{TM: sensHtE}} & \textbf{\hyperref[TM:nwtnCooling]{TM: nwtnCooling}} & \textbf{\hyperref[GD:rocTempSimp]{GD: rocTempSimp}} & \textbf{\hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr}} & \textbf{\hyperref[IM:heatEInWtr]{IM: heatEInWtr}}
+\textbf{} & \textbf{\hyperref[DD:balanceDecayRate]{DD: balanceDecayRate}} & \textbf{\hyperref[TM:consThermE]{TM: consThermE}} & \textbf{\hyperref[TM:sensHtE]{TM: sensHtE}} & \textbf{\hyperref[TM:nwtnCooling]{TM: nwtnCooling}} & \textbf{\hyperref[GD:rocTempSimp]{GD: rocTempSimp}} & \textbf{\hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil}} & \textbf{\hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr}} & \textbf{\hyperref[IM:heatEInWtr]{IM: heatEInWtr}}
\\
\midrule
\endhead
-\hyperref[DD:htFluxC]{DD: htFluxC} & & & & & & & &
-\\
\hyperref[DD:balanceDecayRate]{DD: balanceDecayRate} & & & & & & & &
\\
\hyperref[TM:consThermE]{TM: consThermE} & & & & & & & &
@@ -922,11 +917,13 @@ \section{Traceability Matrices and Graphs}
\\
\hyperref[TM:nwtnCooling]{TM: nwtnCooling} & & & & & & & &
\\
-\hyperref[GD:rocTempSimp]{GD: rocTempSimp} & & & X & & & X & &
+\hyperref[GD:rocTempSimp]{GD: rocTempSimp} & & X & & & X & & &
+\\
+\hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil} & & & & & & & &
\\
-\hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr} & X & X & & & & X & &
+\hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr} & X & & & & X & X & &
\\
-\hyperref[IM:heatEInWtr]{IM: heatEInWtr} & & & & X & & & &
+\hyperref[IM:heatEInWtr]{IM: heatEInWtr} & & & X & & & & &
\\
\bottomrule
\caption{Traceability Matrix Showing the Connections Between Items and Other Sections}
@@ -934,7 +931,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}
\toprule
-\textbf{} & \textbf{\hyperref[DD:htFluxC]{DD: htFluxC}} & \textbf{\hyperref[DD:balanceDecayRate]{DD: balanceDecayRate}} & \textbf{\hyperref[TM:consThermE]{TM: consThermE}} & \textbf{\hyperref[TM:sensHtE]{TM: sensHtE}} & \textbf{\hyperref[TM:nwtnCooling]{TM: nwtnCooling}} & \textbf{\hyperref[GD:rocTempSimp]{GD: rocTempSimp}} & \textbf{\hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr}} & \textbf{\hyperref[IM:heatEInWtr]{IM: heatEInWtr}} & \textbf{\hyperref[inputInitQuants]{FR: Input-Initial-Quantities}} & \textbf{\hyperref[findMass]{FR: Find-Mass}} & \textbf{\hyperref[checkWithPhysConsts]{FR: Check-Input-with-Physical\_Constraints}} & \textbf{\hyperref[outputInputDerivQuants]{FR: Output-Input-Derived-Quantities}} & \textbf{\hyperref[calcTempWtrOverTime]{FR: Calculate-Temperature-Water-Over-Time}} & \textbf{\hyperref[calcChgHeatEnergyWtrOverTime]{FR: Calculate-Change-Heat\_Energy-Water-Over-Time}} & \textbf{\hyperref[correct]{NFR: Correct}} & \textbf{\hyperref[verifiable]{NFR: Verifiable}} & \textbf{\hyperref[understandable]{NFR: Understandable}} & \textbf{\hyperref[reusable]{NFR: Reusable}} & \textbf{\hyperref[maintainable]{NFR: Maintainable}}
+\textbf{} & \textbf{\hyperref[DD:balanceDecayRate]{DD: balanceDecayRate}} & \textbf{\hyperref[TM:consThermE]{TM: consThermE}} & \textbf{\hyperref[TM:sensHtE]{TM: sensHtE}} & \textbf{\hyperref[TM:nwtnCooling]{TM: nwtnCooling}} & \textbf{\hyperref[GD:rocTempSimp]{GD: rocTempSimp}} & \textbf{\hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil}} & \textbf{\hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr}} & \textbf{\hyperref[IM:heatEInWtr]{IM: heatEInWtr}} & \textbf{\hyperref[inputInitQuants]{FR: Input-Initial-Quantities}} & \textbf{\hyperref[findMass]{FR: Find-Mass}} & \textbf{\hyperref[checkWithPhysConsts]{FR: Check-Input-with-Physical\_Constraints}} & \textbf{\hyperref[outputInputDerivQuants]{FR: Output-Input-Derived-Quantities}} & \textbf{\hyperref[calcTempWtrOverTime]{FR: Calculate-Temperature-Water-Over-Time}} & \textbf{\hyperref[calcChgHeatEnergyWtrOverTime]{FR: Calculate-Change-Heat\_Energy-Water-Over-Time}} & \textbf{\hyperref[correct]{NFR: Correct}} & \textbf{\hyperref[verifiable]{NFR: Verifiable}} & \textbf{\hyperref[understandable]{NFR: Understandable}} & \textbf{\hyperref[reusable]{NFR: Reusable}} & \textbf{\hyperref[maintainable]{NFR: Maintainable}}
\\
\midrule
\endhead
@@ -948,7 +945,7 @@ \section{Traceability Matrices and Graphs}
\\
\hyperref[checkWithPhysConsts]{FR: Check-Input-with-Physical\_Constraints} & & & & & & & & & & & & & & & & & & &
\\
-\hyperref[outputInputDerivQuants]{FR: Output-Input-Derived-Quantities} & & X & & & & & & & X & X & & & & & & & & &
+\hyperref[outputInputDerivQuants]{FR: Output-Input-Derived-Quantities} & X & & & & & & & & X & X & & & & & & & & &
\\
\hyperref[calcTempWtrOverTime]{FR: Calculate-Temperature-Water-Over-Time} & & & & & & & X & & & & & & & & & & & &
\\
diff --git a/code/stable/nopcm/Website/NoPCM_SRS.html b/code/stable/nopcm/Website/NoPCM_SRS.html
index 4c7785de0b..e53332b7e4 100644
--- a/code/stable/nopcm/Website/NoPCM_SRS.html
+++ b/code/stable/nopcm/Website/NoPCM_SRS.html
@@ -589,12 +589,12 @@ Assumptions
- Newton-Law-Convective-Cooling-Coil-Water: Newton's law of convective cooling applies between the heating coil and the water. (RefBy:
DD: htFluxC.)
+ Newton-Law-Convective-Cooling-Coil-Water: Newton's law of convective cooling applies between the heating coil and the water. (RefBy:
GD: htFluxWaterFromCoil.)
@@ -960,19 +960,11 @@
-
-
-
-
-
Data Definitions
-
- This section collects and defines all the data needed to build the instance models.
-
-
-
+
+
Refname |
- DD:htFluxC |
+ GD:htFluxWaterFromCoil |
Label |
@@ -980,10 +972,6 @@ Data Definitions
Heat flux into the water from the coil
-
- Symbol |
- qC |
-
Units |
W/m2 |
@@ -1044,6 +1032,14 @@ Data Definitions
+
+
+
+
+
Data Definitions
+
+ This section collects and defines all the data needed to build the instance models.
+
@@ -1235,7 +1231,7 @@ Instance Models
Detailed derivation of the energy balance on water:
- To find the rate of change of TW, we look at the energy balance on water. The volume being considered is the volume of water in the tank VW, which has mass mW and specific heat capacity, CW. Heat transfer occurs in the water from the heating coil as qC (DD: htFluxC), over area AC. No heat transfer occurs to the outside of the tank, since it has been assumed to be perfectly insulated (A: Perfect-Insulation-Tank). Since the assumption is made that no internal heat is generated (A: No-Internal-Heat-Generation-By-Water), g = 0. Therefore, the equation for GD: rocTempSimp can be written as:
+ To find the rate of change of TW, we look at the energy balance on water. The volume being considered is the volume of water in the tank VW, which has mass mW and specific heat capacity, CW. Heat transfer occurs in the water from the heating coil as qC (GD: htFluxWaterFromCoil), over area AC. No heat transfer occurs to the outside of the tank, since it has been assumed to be perfectly insulated (A: Perfect-Insulation-Tank). Since the assumption is made that no internal heat is generated (A: No-Internal-Heat-Generation-By-Water), g = 0. Therefore, the equation for GD: rocTempSimp can be written as:
mW CW
@@ -1248,7 +1244,7 @@
Detailed derivation of the energy balance on water:
= qC AC
- Using DD: htFluxC for qC, this can be written as:
+ Using GD: htFluxWaterFromCoil for qC, this can be written as:
-
- DD: htFluxC |
- |
- |
- |
- |
- |
- X |
- X |
- |
- |
- |
- |
- |
- |
-
DD: balanceDecayRate |
|
@@ -1871,6 +1851,24 @@ Traceability Matrices and Graphs
|
|
+
+
+ GD: htFluxWaterFromCoil
+ |
+ |
+ |
+ |
+ |
+ |
+ X |
+ X |
+ |
+ |
+ |
+ |
+ |
+ |
+
IM: eBalanceOnWtr |
|
@@ -2196,17 +2194,19 @@ Traceability Matrices and Graphs
|
- DD: htFluxC |
DD: balanceDecayRate |
TM: consThermE |
TM: sensHtE |
TM: nwtnCooling |
GD: rocTempSimp |
+
+ GD: htFluxWaterFromCoil
+ |
IM: eBalanceOnWtr |
IM: heatEInWtr |
- DD: htFluxC |
+ DD: balanceDecayRate |
|
|
|
@@ -2217,7 +2217,7 @@ Traceability Matrices and Graphs
|
- DD: balanceDecayRate |
+ TM: consThermE |
|
|
|
@@ -2228,7 +2228,7 @@ Traceability Matrices and Graphs
|
- TM: consThermE |
+ TM: sensHtE |
|
|
|
@@ -2239,7 +2239,7 @@ Traceability Matrices and Graphs
|
- TM: sensHtE |
+ TM: nwtnCooling |
|
|
|
@@ -2250,35 +2250,37 @@ Traceability Matrices and Graphs
|
- TM: nwtnCooling |
- |
- |
+ GD: rocTempSimp |
|
+ X |
|
|
+ X |
|
|
|
- GD: rocTempSimp |
+
+ GD: htFluxWaterFromCoil
+ |
+ |
+ |
|
|
- X |
|
|
- X |
|
|
IM: eBalanceOnWtr |
X |
- X |
|
|
|
X |
+ X |
|
|
@@ -2286,12 +2288,12 @@ Traceability Matrices and Graphs
IM: heatEInWtr |
|
|
- |
X |
|
|
|
|
+ |
@@ -2302,12 +2304,14 @@
Traceability Matrices and Graphs
|
- DD: htFluxC |
DD: balanceDecayRate |
TM: consThermE |
TM: sensHtE |
TM: nwtnCooling |
GD: rocTempSimp |
+
+ GD: htFluxWaterFromCoil
+ |
IM: eBalanceOnWtr |
IM: heatEInWtr |
FR: Input-Initial-Quantities |
@@ -2446,7 +2450,6 @@ Traceability Matrices and Graphs
FR: Output-Input-Derived-Quantities
|
- |
X |
|
|
@@ -2454,6 +2457,7 @@ Traceability Matrices and Graphs
|
|
|
+ |
X |
X |
|
diff --git a/code/stable/swhs/SRS/SWHS_SRS.tex b/code/stable/swhs/SRS/SWHS_SRS.tex
index e2dc78d573..2343ff945c 100644
--- a/code/stable/swhs/SRS/SWHS_SRS.tex
+++ b/code/stable/swhs/SRS/SWHS_SRS.tex
@@ -375,8 +375,8 @@ \subsubsection{Assumptions}
\item[Temp-PCM-Constant-Across-Volume:\phantomsection\label{assumpTPCAV}]{The temperature of the phase change material is the same throughout the volume of PCM. (RefBy: \hyperref[GD:rocTempSimp]{GD: rocTempSimp}, \hyperref[likeChgUTP]{LC: Uniform-Temperature-PCM}, \hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr}, and \hyperref[IM:eBalanceOnPCM]{IM: eBalanceOnPCM}.)}
\item[Density-Water-PCM-Constant-over-Volume:\phantomsection\label{assumpDWPCoV}]{The density of water and density of PCM have no spatial variation; that is, they are each constant over their entire volume. (RefBy: \hyperref[GD:rocTempSimp]{GD: rocTempSimp}.)}
\item[Specific-Heat-Energy-Constant-over-Volume:\phantomsection\label{assumpSHECov}]{The specific heat capacity of water, specific heat capacity of PCM as a solid, and specific heat capacity of PCM as a liquid have no spatial variation; that is, they are each constant over their entire volume. (RefBy: \hyperref[GD:rocTempSimp]{GD: rocTempSimp}.)}
-\item[Newton-Law-Convective-Cooling-Coil-Water:\phantomsection\label{assumpLCCCW}]{Newton's law of convective cooling applies between the heating coil and the water. (RefBy: \hyperref[DD:htFluxP]{DD: htFluxP} and \hyperref[DD:htFluxC]{DD: htFluxC}.)}
-\item[Temp-Heating-Coil-Constant-over-Time:\phantomsection\label{assumpTHCCoT}]{The temperature of the heating coil is constant over time. (RefBy: \hyperref[likeChgTCVOD]{LC: Temperature-Coil-Variable-Over-Day} and \hyperref[DD:htFluxC]{DD: htFluxC}.)}
+\item[Newton-Law-Convective-Cooling-Coil-Water:\phantomsection\label{assumpLCCCW}]{Newton's law of convective cooling applies between the heating coil and the water. (RefBy: \hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil} and \hyperref[GD:htFluxPCMFromWater]{GD: htFluxPCMFromWater}.)}
+\item[Temp-Heating-Coil-Constant-over-Time:\phantomsection\label{assumpTHCCoT}]{The temperature of the heating coil is constant over time. (RefBy: \hyperref[likeChgTCVOD]{LC: Temperature-Coil-Variable-Over-Day} and \hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil}.)}
\item[Temp-Heating-Coil-Constant-over-Length:\phantomsection\label{assumpTHCCoL}]{The temperature of the heating coil does not vary along its length. (RefBy: \hyperref[likeChgTCVOL]{LC: Temperature-Coil-Variable-Over-Length} and \hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr}.)}
\item[Law-Convective-Cooling-Water-PCM:\phantomsection\label{assumpLCCWP}]{Newton's law of convective cooling applies between the water and the PCM.}
\item[Charging-Tank-No-Temp-Discharge:\phantomsection\label{assumpCTNOD}]{The model only accounts for charging of the tank, not discharging. The temperature of the water and temperature of the phase change material can only increase, or remain constant; they do not decrease. This implies that the initial temperature \hyperref[assumpSITWP]{A: Same-Initial-Temp-Water-PCM} is less than (or equal) to the temperature of the heating coil. (RefBy: \hyperref[likeChgDT]{LC: Discharging-Tank} and \hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr}.)}
@@ -617,23 +617,16 @@ \subsubsection{General Definitions}
\begin{displaymath}
m C \frac{\,dT}{\,dt}={q_{\text{in}}} {A_{\text{in}}}-{q_{\text{out}}} {A_{\text{out}}}+g V
\end{displaymath}
-\subsubsection{Data Definitions}
-\label{Sec:DDs}
-This section collects and defines all the data needed to build the instance models.
-
\vspace{\baselineskip}
\noindent
\begin{minipage}{\textwidth}
\begin{tabular}{>{\raggedright}p{0.13\textwidth}>{\raggedright\arraybackslash}p{0.82\textwidth}}
-\toprule \textbf{Refname} & \textbf{DD:htFluxC}
+\toprule \textbf{Refname} & \textbf{GD:htFluxWaterFromCoil}
\phantomsection
-\label{DD:htFluxC}
+\label{GD:htFluxWaterFromCoil}
\\ \midrule \\
Label & Heat flux into the water from the coil
-\\ \midrule \\
-Symbol & ${q_{\text{C}}}$
-
\\ \midrule \\
Units & $\frac{\text{W}}{\text{m}^{2}}$
@@ -668,15 +661,12 @@ \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:htFluxP}
+\toprule \textbf{Refname} & \textbf{GD:htFluxPCMFromWater}
\phantomsection
-\label{DD:htFluxP}
+\label{GD:htFluxPCMFromWater}
\\ \midrule \\
Label & Heat flux into the PCM from water
-\\ \midrule \\
-Symbol & ${q_{\text{P}}}$
-
\\ \midrule \\
Units & $\frac{\text{W}}{\text{m}^{2}}$
@@ -705,6 +695,10 @@ \subsubsection{Data Definitions}
\end{tabular}
\end{minipage}
+\subsubsection{Data Definitions}
+\label{Sec:DDs}
+This section collects and defines all the data needed to build the instance models.
+
\vspace{\baselineskip}
\noindent
\begin{minipage}{\textwidth}
@@ -1040,12 +1034,12 @@ \subsubsection{Instance Models}
\end{minipage}
\paragraph{Detailed derivation of the energy balance on water:}
\label{IM:eBalanceOnWtrDeriv}
-To find the rate of change of ${T_{\text{W}}}$, we look at the energy balance on water. The volume being considered is the volume of water in the tank ${V_{\text{W}}}$, which has mass ${m_{\text{W}}}$ and specific heat capacity, ${C_{\text{W}}}$. Heat transfer occurs in the water from the heating coil as ${q_{\text{C}}}$ (\hyperref[DD:htFluxC]{DD: htFluxC}) and from the water into the PCM as ${q_{\text{P}}}$ (\hyperref[DD:htFluxP]{DD: htFluxP}), over areas ${A_{\text{C}}}$ and ${A_{\text{P}}}$, respectively. The thermal flux is constant over ${A_{\text{C}}}$, since the temperature of the heating coil is assumed to not vary along its length (\hyperref[assumpTHCCoL]{A: Temp-Heating-Coil-Constant-over-Length}), and the thermal flux is constant over ${A_{\text{P}}}$, since the temperature of the PCM is the same throughout its volume (\hyperref[assumpTPCAV]{A: Temp-PCM-Constant-Across-Volume}) and the water is fully mixed (\hyperref[assumpCWTAT]{A: Constant-Water-Temp-Across-Tank}). No heat transfer occurs to the outside of the tank, since it has been assumed to be perfectly insulated (\hyperref[assumpPIT]{A: Perfect-Insulation-Tank}). Since the assumption is made that no internal heat is generated (\hyperref[assumpNIHGBWP]{A: No-Internal-Heat-Generation-By-Water-PCM}), $g=0$. Therefore, the equation for \hyperref[GD:rocTempSimp]{GD: rocTempSimp} can be written as:
+To find the rate of change of ${T_{\text{W}}}$, we look at the energy balance on water. The volume being considered is the volume of water in the tank ${V_{\text{W}}}$, which has mass ${m_{\text{W}}}$ and specific heat capacity, ${C_{\text{W}}}$. Heat transfer occurs in the water from the heating coil as ${q_{\text{C}}}$ (\hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil}) and from the water into the PCM as ${q_{\text{P}}}$ (\hyperref[GD:htFluxPCMFromWater]{GD: htFluxPCMFromWater}), over areas ${A_{\text{C}}}$ and ${A_{\text{P}}}$, respectively. The thermal flux is constant over ${A_{\text{C}}}$, since the temperature of the heating coil is assumed to not vary along its length (\hyperref[assumpTHCCoL]{A: Temp-Heating-Coil-Constant-over-Length}), and the thermal flux is constant over ${A_{\text{P}}}$, since the temperature of the PCM is the same throughout its volume (\hyperref[assumpTPCAV]{A: Temp-PCM-Constant-Across-Volume}) and the water is fully mixed (\hyperref[assumpCWTAT]{A: Constant-Water-Temp-Across-Tank}). No heat transfer occurs to the outside of the tank, since it has been assumed to be perfectly insulated (\hyperref[assumpPIT]{A: Perfect-Insulation-Tank}). Since the assumption is made that no internal heat is generated (\hyperref[assumpNIHGBWP]{A: No-Internal-Heat-Generation-By-Water-PCM}), $g=0$. Therefore, the equation for \hyperref[GD:rocTempSimp]{GD: rocTempSimp} can be written as:
\begin{displaymath}
{m_{\text{W}}} {C_{\text{W}}} \frac{\,d{T_{\text{W}}}}{\,dt}={q_{\text{C}}} {A_{\text{C}}}-{q_{\text{P}}} {A_{\text{P}}}
\end{displaymath}
-Using \hyperref[DD:htFluxC]{DD: htFluxC} for ${q_{\text{C}}}$ and \hyperref[DD:htFluxP]{DD: htFluxP} for ${q_{\text{P}}}$, this can be written as:
+Using \hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil} for ${q_{\text{C}}}$ and \hyperref[GD:htFluxPCMFromWater]{GD: htFluxPCMFromWater} for ${q_{\text{P}}}$, this can be written as:
\begin{displaymath}
{m_{\text{W}}} {C_{\text{W}}} \frac{\,d{T_{\text{W}}}}{\,dt}={h_{\text{C}}} {A_{\text{C}}} \left({T_{\text{C}}}-{T_{\text{W}}}\right)-{h_{\text{P}}} {A_{\text{P}}} \left({T_{\text{W}}}-{T_{\text{P}}}\right)
@@ -1141,12 +1135,12 @@ \subsubsection{Instance Models}
\end{minipage}
\paragraph{Detailed derivation of the energy balance on the PCM during sensible heating phase:}
\label{IM:eBalanceOnPCMDeriv}
-To find the rate of change of ${T_{\text{P}}}$, we look at the energy balance on the PCM. The volume being considered is the volume of PCM (${V_{\text{P}}}$). The derivation that follows is initially for the solid PCM. The mass of phase change material is ${m_{\text{P}}}$ and the specific heat capacity of PCM as a solid is ${{C_{\text{P}}}^{\text{S}}}$. The heat flux into the PCM from water is ${q_{\text{P}}}$ (\hyperref[DD:htFluxP]{DD: htFluxP}) over phase change material surface area ${A_{\text{P}}}$. The thermal flux is constant over ${A_{\text{P}}}$, since the temperature of the PCM is the same throughout its volume (\hyperref[assumpTPCAV]{A: Temp-PCM-Constant-Across-Volume}) and the water is fully mixed (\hyperref[assumpCWTAT]{A: Constant-Water-Temp-Across-Tank}). There is no heat flux output from the PCM. Assuming no volumetric heat generation per unit volume (\hyperref[assumpNIHGBWP]{A: No-Internal-Heat-Generation-By-Water-PCM}), $g=0$, the equation for \hyperref[GD:rocTempSimp]{GD: rocTempSimp} can be written as:
+To find the rate of change of ${T_{\text{P}}}$, we look at the energy balance on the PCM. The volume being considered is the volume of PCM (${V_{\text{P}}}$). The derivation that follows is initially for the solid PCM. The mass of phase change material is ${m_{\text{P}}}$ and the specific heat capacity of PCM as a solid is ${{C_{\text{P}}}^{\text{S}}}$. The heat flux into the PCM from water is ${q_{\text{P}}}$ (\hyperref[GD:htFluxPCMFromWater]{GD: htFluxPCMFromWater}) over phase change material surface area ${A_{\text{P}}}$. The thermal flux is constant over ${A_{\text{P}}}$, since the temperature of the PCM is the same throughout its volume (\hyperref[assumpTPCAV]{A: Temp-PCM-Constant-Across-Volume}) and the water is fully mixed (\hyperref[assumpCWTAT]{A: Constant-Water-Temp-Across-Tank}). There is no heat flux output from the PCM. Assuming no volumetric heat generation per unit volume (\hyperref[assumpNIHGBWP]{A: No-Internal-Heat-Generation-By-Water-PCM}), $g=0$, the equation for \hyperref[GD:rocTempSimp]{GD: rocTempSimp} can be written as:
\begin{displaymath}
{m_{\text{P}}} {{C_{\text{P}}}^{\text{S}}} \frac{\,d{T_{\text{P}}}}{\,dt}={q_{\text{P}}} {A_{\text{P}}}
\end{displaymath}
-Using \hyperref[DD:htFluxP]{DD: htFluxP} for ${q_{\text{P}}}$, this equation can be written as:
+Using \hyperref[GD:htFluxPCMFromWater]{GD: htFluxPCMFromWater} for ${q_{\text{P}}}$, this equation can be written as:
\begin{displaymath}
{m_{\text{P}}} {{C_{\text{P}}}^{\text{S}}} \frac{\,d{T_{\text{P}}}}{\,dt}={h_{\text{P}}} {A_{\text{P}}} \left({T_{\text{W}}}-{T_{\text{P}}}\right)
@@ -1363,7 +1357,7 @@ \subsubsection{Properties of a Correct Solution}
\caption{Output Data Constraints}
\label{Table:OutDataConstraints}
\end{longtable}
-A correct solution must exhibit the law of conservation of energy. This means that the change in heat energy in the water should equal the difference between the total energy input from the heating coil and the energy output to the PCM. This can be shown as an equation by taking \hyperref[DD:htFluxC]{DD: htFluxC} and \hyperref[DD:htFluxP]{DD: htFluxP}, multiplying each by their respective surface area of heat transfer, and integrating each over the simulation time, as follows:
+A correct solution must exhibit the law of conservation of energy. This means that the change in heat energy in the water should equal the difference between the total energy input from the heating coil and the energy output to the PCM. This can be shown as an equation by taking \hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil} and \hyperref[GD:htFluxPCMFromWater]{GD: htFluxPCMFromWater}, multiplying each by their respective surface area of heat transfer, and integrating each over the simulation time, as follows:
\begin{displaymath}
{E_{\text{W}}}=\int_{0}^{t}{{h_{\text{C}}} {A_{\text{C}}} \left({T_{\text{C}}}-{T_{\text{W}}}\left(t\right)\right)}\,dt-\int_{0}^{t}{{h_{\text{P}}} {A_{\text{P}}} \left({T_{\text{W}}}\left(t\right)-{T_{\text{P}}}\left(t\right)\right)}\,dt
@@ -1488,10 +1482,6 @@ \section{Traceability Matrices and Graphs}
\\
\midrule
\endhead
-\hyperref[DD:htFluxC]{DD: htFluxC} & & & & & & & X & X & & & & & & & & & & & &
-\\
-\hyperref[DD:htFluxP]{DD: htFluxP} & & & & & & & X & & & & & & & & & & & & &
-\\
\hyperref[DD:balanceDecayRate]{DD: balanceDecayRate} & & & & & & & & & & & & & & & & & & & &
\\
\hyperref[DD:balanceDecayTime]{DD: balanceDecayTime} & & & & & & & & & & & & & & & & & & & &
@@ -1516,6 +1506,10 @@ \section{Traceability Matrices and Graphs}
\\
\hyperref[GD:rocTempSimp]{GD: rocTempSimp} & & & X & X & X & X & & & & & & & & & & & & & &
\\
+\hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil} & & & & & & & X & X & & & & & & & & & & & &
+\\
+\hyperref[GD:htFluxPCMFromWater]{GD: htFluxPCMFromWater} & & & & & & & X & & & & & & & & & & & & &
+\\
\hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr} & & & X & X & & & & & X & & X & X & & X & X & X & & & X &
\\
\hyperref[IM:eBalanceOnPCM]{IM: eBalanceOnPCM} & & & X & X & & & & & & & & X & X & & & X & X & X & &
@@ -1580,14 +1574,10 @@ \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}
\toprule
-\textbf{} & \textbf{\hyperref[DD:htFluxC]{DD: htFluxC}} & \textbf{\hyperref[DD:htFluxP]{DD: htFluxP}} & \textbf{\hyperref[DD:balanceDecayRate]{DD: balanceDecayRate}} & \textbf{\hyperref[DD:balanceDecayTime]{DD: balanceDecayTime}} & \textbf{\hyperref[DD:balanceSolidPCM]{DD: balanceSolidPCM}} & \textbf{\hyperref[DD:balanceLiquidPCM]{DD: balanceLiquidPCM}} & \textbf{\hyperref[DD:htFusion]{DD: htFusion}} & \textbf{\hyperref[DD:meltFrac]{DD: meltFrac}} & \textbf{\hyperref[DD:aspectRatio]{DD: aspectRatio}} & \textbf{\hyperref[TM:consThermE]{TM: consThermE}} & \textbf{\hyperref[TM:sensHtE]{TM: sensHtE}} & \textbf{\hyperref[TM:latentHtE]{TM: latentHtE}} & \textbf{\hyperref[TM:nwtnCooling]{TM: nwtnCooling}} & \textbf{\hyperref[GD:rocTempSimp]{GD: rocTempSimp}} & \textbf{\hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr}} & \textbf{\hyperref[IM:eBalanceOnPCM]{IM: eBalanceOnPCM}} & \textbf{\hyperref[IM:heatEInWtr]{IM: heatEInWtr}} & \textbf{\hyperref[IM:heatEInPCM]{IM: heatEInPCM}}
+\textbf{} & \textbf{\hyperref[DD:balanceDecayRate]{DD: balanceDecayRate}} & \textbf{\hyperref[DD:balanceDecayTime]{DD: balanceDecayTime}} & \textbf{\hyperref[DD:balanceSolidPCM]{DD: balanceSolidPCM}} & \textbf{\hyperref[DD:balanceLiquidPCM]{DD: balanceLiquidPCM}} & \textbf{\hyperref[DD:htFusion]{DD: htFusion}} & \textbf{\hyperref[DD:meltFrac]{DD: meltFrac}} & \textbf{\hyperref[DD:aspectRatio]{DD: aspectRatio}} & \textbf{\hyperref[TM:consThermE]{TM: consThermE}} & \textbf{\hyperref[TM:sensHtE]{TM: sensHtE}} & \textbf{\hyperref[TM:latentHtE]{TM: latentHtE}} & \textbf{\hyperref[TM:nwtnCooling]{TM: nwtnCooling}} & \textbf{\hyperref[GD:rocTempSimp]{GD: rocTempSimp}} & \textbf{\hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil}} & \textbf{\hyperref[GD:htFluxPCMFromWater]{GD: htFluxPCMFromWater}} & \textbf{\hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr}} & \textbf{\hyperref[IM:eBalanceOnPCM]{IM: eBalanceOnPCM}} & \textbf{\hyperref[IM:heatEInWtr]{IM: heatEInWtr}} & \textbf{\hyperref[IM:heatEInPCM]{IM: heatEInPCM}}
\\
\midrule
\endhead
-\hyperref[DD:htFluxC]{DD: htFluxC} & & & & & & & & & & & & & & & & & &
-\\
-\hyperref[DD:htFluxP]{DD: htFluxP} & & & & & & & & & & & & & & & & & &
-\\
\hyperref[DD:balanceDecayRate]{DD: balanceDecayRate} & & & & & & & & & & & & & & & & & &
\\
\hyperref[DD:balanceDecayTime]{DD: balanceDecayTime} & & & & & & & & & & & & & & & & & &
@@ -1598,27 +1588,31 @@ \section{Traceability Matrices and Graphs}
\\
\hyperref[DD:htFusion]{DD: htFusion} & & & & & & & & & & & & & & & & & &
\\
-\hyperref[DD:meltFrac]{DD: meltFrac} & & & & & & & X & & & & & & & & & & &
+\hyperref[DD:meltFrac]{DD: meltFrac} & & & & & X & & & & & & & & & & & & &
\\
\hyperref[DD:aspectRatio]{DD: aspectRatio} & & & & & & & & & & & & & & & & & &
\\
\hyperref[TM:consThermE]{TM: consThermE} & & & & & & & & & & & & & & & & & &
\\
-\hyperref[TM:sensHtE]{TM: sensHtE} & & & & & & & & & & & & X & & & & & &
+\hyperref[TM:sensHtE]{TM: sensHtE} & & & & & & & & & & X & & & & & & & &
\\
-\hyperref[TM:latentHtE]{TM: latentHtE} & & & & & & & & X & & & & & & & & & &
+\hyperref[TM:latentHtE]{TM: latentHtE} & & & & & & X & & & & & & & & & & & &
\\
\hyperref[TM:nwtnCooling]{TM: nwtnCooling} & & & & & & & & & & & & & & & & & &
\\
-\hyperref[GD:rocTempSimp]{GD: rocTempSimp} & & & & & & & & & & X & & & & X & & & &
+\hyperref[GD:rocTempSimp]{GD: rocTempSimp} & & & & & & & & X & & & & X & & & & & &
+\\
+\hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil} & & & & & & & & & & & & & & & & & &
+\\
+\hyperref[GD:htFluxPCMFromWater]{GD: htFluxPCMFromWater} & & & & & & & & & & & & & & & & & &
\\
-\hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr} & X & X & X & X & & & & & & & & & & X & X & X & &
+\hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr} & X & X & & & & & & & & & & X & X & X & X & X & &
\\
-\hyperref[IM:eBalanceOnPCM]{IM: eBalanceOnPCM} & & X & & & X & X & & X & & & & & & X & X & & & X
+\hyperref[IM:eBalanceOnPCM]{IM: eBalanceOnPCM} & & & X & X & & X & & & & & & X & & X & X & & & X
\\
-\hyperref[IM:heatEInWtr]{IM: heatEInWtr} & & & & & & & & & & & X & & & & & & &
+\hyperref[IM:heatEInWtr]{IM: heatEInWtr} & & & & & & & & & X & & & & & & & & &
\\
-\hyperref[IM:heatEInPCM]{IM: heatEInPCM} & & & & & & & X & & & & X & X & & & & & &
+\hyperref[IM:heatEInPCM]{IM: heatEInPCM} & & & & & X & & & & X & X & & & & & & & &
\\
\bottomrule
\caption{Traceability Matrix Showing the Connections Between Items and Other Sections}
@@ -1626,7 +1620,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}
\toprule
-\textbf{} & \textbf{\hyperref[DD:htFluxC]{DD: htFluxC}} & \textbf{\hyperref[DD:htFluxP]{DD: htFluxP}} & \textbf{\hyperref[DD:balanceDecayRate]{DD: balanceDecayRate}} & \textbf{\hyperref[DD:balanceDecayTime]{DD: balanceDecayTime}} & \textbf{\hyperref[DD:balanceSolidPCM]{DD: balanceSolidPCM}} & \textbf{\hyperref[DD:balanceLiquidPCM]{DD: balanceLiquidPCM}} & \textbf{\hyperref[DD:htFusion]{DD: htFusion}} & \textbf{\hyperref[DD:meltFrac]{DD: meltFrac}} & \textbf{\hyperref[DD:aspectRatio]{DD: aspectRatio}} & \textbf{\hyperref[TM:consThermE]{TM: consThermE}} & \textbf{\hyperref[TM:sensHtE]{TM: sensHtE}} & \textbf{\hyperref[TM:latentHtE]{TM: latentHtE}} & \textbf{\hyperref[TM:nwtnCooling]{TM: nwtnCooling}} & \textbf{\hyperref[GD:rocTempSimp]{GD: rocTempSimp}} & \textbf{\hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr}} & \textbf{\hyperref[IM:eBalanceOnPCM]{IM: eBalanceOnPCM}} & \textbf{\hyperref[IM:heatEInWtr]{IM: heatEInWtr}} & \textbf{\hyperref[IM:heatEInPCM]{IM: heatEInPCM}} & \textbf{\hyperref[inputInitQuants]{FR: Input-Initial-Quantities}} & \textbf{\hyperref[findMass]{FR: Find-Mass}} & \textbf{\hyperref[checkWithPhysConsts]{FR: Check-Input-with-Physical\_Constraints}} & \textbf{\hyperref[outputInputDerivQuants]{FR: Output-Input-Derived-Quantities}} & \textbf{\hyperref[calcTempWtrOverTime]{FR: Calculate-Temperature-Water-Over-Time}} & \textbf{\hyperref[calcTempPCMOverTime]{FR: Calculate-Temperature-PCM-Over-Time}} & \textbf{\hyperref[calcChgHeatEnergyWtrOverTime]{FR: Calculate-Change-Heat\_Energy-Water-Over-Time}} & \textbf{\hyperref[calcChgHeatEnergyPCMOverTime]{FR: Calculate-Change-Heat\_Energy-PCM-Over-Time}} & \textbf{\hyperref[verifyEnergyOutput]{FR: Verify-Energy-Output-Follow-Conservation-of-Energy}} & \textbf{\hyperref[calcPCMMeltBegin]{FR: Calculate-PCM-Melt-Begin-Time}} & \textbf{\hyperref[calcPCMMeltEnd]{FR: Calculate-PCM-Melt-End-Time}} & \textbf{\hyperref[correct]{NFR: Correct}} & \textbf{\hyperref[verifiable]{NFR: Verifiable}} & \textbf{\hyperref[understandable]{NFR: Understandable}} & \textbf{\hyperref[reusable]{NFR: Reusable}} & \textbf{\hyperref[maintainable]{NFR: Maintainable}}
+\textbf{} & \textbf{\hyperref[DD:balanceDecayRate]{DD: balanceDecayRate}} & \textbf{\hyperref[DD:balanceDecayTime]{DD: balanceDecayTime}} & \textbf{\hyperref[DD:balanceSolidPCM]{DD: balanceSolidPCM}} & \textbf{\hyperref[DD:balanceLiquidPCM]{DD: balanceLiquidPCM}} & \textbf{\hyperref[DD:htFusion]{DD: htFusion}} & \textbf{\hyperref[DD:meltFrac]{DD: meltFrac}} & \textbf{\hyperref[DD:aspectRatio]{DD: aspectRatio}} & \textbf{\hyperref[TM:consThermE]{TM: consThermE}} & \textbf{\hyperref[TM:sensHtE]{TM: sensHtE}} & \textbf{\hyperref[TM:latentHtE]{TM: latentHtE}} & \textbf{\hyperref[TM:nwtnCooling]{TM: nwtnCooling}} & \textbf{\hyperref[GD:rocTempSimp]{GD: rocTempSimp}} & \textbf{\hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil}} & \textbf{\hyperref[GD:htFluxPCMFromWater]{GD: htFluxPCMFromWater}} & \textbf{\hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr}} & \textbf{\hyperref[IM:eBalanceOnPCM]{IM: eBalanceOnPCM}} & \textbf{\hyperref[IM:heatEInWtr]{IM: heatEInWtr}} & \textbf{\hyperref[IM:heatEInPCM]{IM: heatEInPCM}} & \textbf{\hyperref[inputInitQuants]{FR: Input-Initial-Quantities}} & \textbf{\hyperref[findMass]{FR: Find-Mass}} & \textbf{\hyperref[checkWithPhysConsts]{FR: Check-Input-with-Physical\_Constraints}} & \textbf{\hyperref[outputInputDerivQuants]{FR: Output-Input-Derived-Quantities}} & \textbf{\hyperref[calcTempWtrOverTime]{FR: Calculate-Temperature-Water-Over-Time}} & \textbf{\hyperref[calcTempPCMOverTime]{FR: Calculate-Temperature-PCM-Over-Time}} & \textbf{\hyperref[calcChgHeatEnergyWtrOverTime]{FR: Calculate-Change-Heat\_Energy-Water-Over-Time}} & \textbf{\hyperref[calcChgHeatEnergyPCMOverTime]{FR: Calculate-Change-Heat\_Energy-PCM-Over-Time}} & \textbf{\hyperref[verifyEnergyOutput]{FR: Verify-Energy-Output-Follow-Conservation-of-Energy}} & \textbf{\hyperref[calcPCMMeltBegin]{FR: Calculate-PCM-Melt-Begin-Time}} & \textbf{\hyperref[calcPCMMeltEnd]{FR: Calculate-PCM-Melt-End-Time}} & \textbf{\hyperref[correct]{NFR: Correct}} & \textbf{\hyperref[verifiable]{NFR: Verifiable}} & \textbf{\hyperref[understandable]{NFR: Understandable}} & \textbf{\hyperref[reusable]{NFR: Reusable}} & \textbf{\hyperref[maintainable]{NFR: Maintainable}}
\\
\midrule
\endhead
@@ -1644,7 +1638,7 @@ \section{Traceability Matrices and Graphs}
\\
\hyperref[checkWithPhysConsts]{FR: Check-Input-with-Physical\_Constraints} & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
\\
-\hyperref[outputInputDerivQuants]{FR: Output-Input-Derived-Quantities} & & & X & X & X & X & & & & & & & & & & & & & X & X & & & & & & & & & & & & & &
+\hyperref[outputInputDerivQuants]{FR: Output-Input-Derived-Quantities} & X & X & X & X & & & & & & & & & & & & & & & X & X & & & & & & & & & & & & & &
\\
\hyperref[calcTempWtrOverTime]{FR: Calculate-Temperature-Water-Over-Time} & & & & & & & & & & & & & & & X & & & & & & & & & & & & & & & & & & &
\\
diff --git a/code/stable/swhs/Website/SWHS_SRS.html b/code/stable/swhs/Website/SWHS_SRS.html
index 1127966eaa..d414b4e953 100644
--- a/code/stable/swhs/Website/SWHS_SRS.html
+++ b/code/stable/swhs/Website/SWHS_SRS.html
@@ -764,12 +764,12 @@ Assumptions
- Newton-Law-Convective-Cooling-Coil-Water: Newton's law of convective cooling applies between the heating coil and the water. (RefBy:
DD: htFluxP and
DD: htFluxC.)
+ Newton-Law-Convective-Cooling-Coil-Water: Newton's law of convective cooling applies between the heating coil and the water. (RefBy:
GD: htFluxWaterFromCoil and
GD: htFluxPCMFromWater.)
@@ -1277,19 +1277,11 @@
-
-
-
-
-
Data Definitions
-
- This section collects and defines all the data needed to build the instance models.
-
-
-
+
+
Refname |
- DD:htFluxC |
+ GD:htFluxWaterFromCoil |
Label |
@@ -1297,10 +1289,6 @@ Data Definitions
Heat flux into the water from the coil
-
- Symbol |
- qC |
-
Units |
W/m2 |
@@ -1361,20 +1349,16 @@ Data Definitions
-
-
+
+
Refname |
- DD:htFluxP |
+ GD:htFluxPCMFromWater |
Label |
Heat flux into the PCM from water |
-
- Symbol |
- qP |
-
Units |
W/m2 |
@@ -1432,6 +1416,14 @@ Data Definitions
+
+
+
+
+
Data Definitions
+
+ This section collects and defines all the data needed to build the instance models.
+
@@ -2047,7 +2039,7 @@ Instance Models
Detailed derivation of the energy balance on water:
- To find the rate of change of TW, we look at the energy balance on water. The volume being considered is the volume of water in the tank VW, which has mass mW and specific heat capacity, CW. Heat transfer occurs in the water from the heating coil as qC (DD: htFluxC) and from the water into the PCM as qP (DD: htFluxP), over areas AC and AP, respectively. The thermal flux is constant over AC, since the temperature of the heating coil is assumed to not vary along its length (A: Temp-Heating-Coil-Constant-over-Length), and the thermal flux is constant over AP, since the temperature of the PCM is the same throughout its volume (A: Temp-PCM-Constant-Across-Volume) and the water is fully mixed (A: Constant-Water-Temp-Across-Tank). No heat transfer occurs to the outside of the tank, since it has been assumed to be perfectly insulated (A: Perfect-Insulation-Tank). Since the assumption is made that no internal heat is generated (A: No-Internal-Heat-Generation-By-Water-PCM), g = 0. Therefore, the equation for GD: rocTempSimp can be written as:
+ To find the rate of change of TW, we look at the energy balance on water. The volume being considered is the volume of water in the tank VW, which has mass mW and specific heat capacity, CW. Heat transfer occurs in the water from the heating coil as qC (GD: htFluxWaterFromCoil) and from the water into the PCM as qP (GD: htFluxPCMFromWater), over areas AC and AP, respectively. The thermal flux is constant over AC, since the temperature of the heating coil is assumed to not vary along its length (A: Temp-Heating-Coil-Constant-over-Length), and the thermal flux is constant over AP, since the temperature of the PCM is the same throughout its volume (A: Temp-PCM-Constant-Across-Volume) and the water is fully mixed (A: Constant-Water-Temp-Across-Tank). No heat transfer occurs to the outside of the tank, since it has been assumed to be perfectly insulated (A: Perfect-Insulation-Tank). Since the assumption is made that no internal heat is generated (A: No-Internal-Heat-Generation-By-Water-PCM), g = 0. Therefore, the equation for GD: rocTempSimp can be written as:
mW CW
@@ -2060,7 +2052,7 @@
Detailed derivation of the energy balance on water:
= qC AC−qP AP
- Using DD: htFluxC for qC and DD: htFluxP for qP, this can be written as:
+ Using GD: htFluxWaterFromCoil for qC and GD: htFluxPCMFromWater for qP, this can be written as:
mW CW
@@ -2322,7 +2314,7 @@
Detailed derivation of the energy balance on the PCM during sensible heating phase:
- To find the rate of change of TP, we look at the energy balance on the PCM. The volume being considered is the volume of PCM (VP). The derivation that follows is initially for the solid PCM. The mass of phase change material is mP and the specific heat capacity of PCM as a solid is CPS. The heat flux into the PCM from water is qP (DD: htFluxP) over phase change material surface area AP. The thermal flux is constant over AP, since the temperature of the PCM is the same throughout its volume (A: Temp-PCM-Constant-Across-Volume) and the water is fully mixed (A: Constant-Water-Temp-Across-Tank). There is no heat flux output from the PCM. Assuming no volumetric heat generation per unit volume (A: No-Internal-Heat-Generation-By-Water-PCM), g = 0, the equation for GD: rocTempSimp can be written as:
+ To find the rate of change of TP, we look at the energy balance on the PCM. The volume being considered is the volume of PCM (VP). The derivation that follows is initially for the solid PCM. The mass of phase change material is mP and the specific heat capacity of PCM as a solid is CPS. The heat flux into the PCM from water is qP (GD: htFluxPCMFromWater) over phase change material surface area AP. The thermal flux is constant over AP, since the temperature of the PCM is the same throughout its volume (A: Temp-PCM-Constant-Across-Volume) and the water is fully mixed (A: Constant-Water-Temp-Across-Tank). There is no heat flux output from the PCM. Assuming no volumetric heat generation per unit volume (A: No-Internal-Heat-Generation-By-Water-PCM), g = 0, the equation for GD: rocTempSimp can be written as:
mP CPS
@@ -2335,7 +2327,7 @@
= qP AP
- Using DD: htFluxP for qP, this equation can be written as:
+ Using GD: htFluxPCMFromWater for qP, this equation can be written as:
mP CPS
@@ -2863,7 +2855,7 @@
Properties of a Correct Solution
Output Data Constraints
- A correct solution must exhibit the law of conservation of energy. This means that the change in heat energy in the water should equal the difference between the total energy input from the heating coil and the energy output to the PCM. This can be shown as an equation by taking DD: htFluxC and DD: htFluxP, multiplying each by their respective surface area of heat transfer, and integrating each over the simulation time, as follows:
+ A correct solution must exhibit the law of conservation of energy. This means that the change in heat energy in the water should equal the difference between the total energy input from the heating coil and the energy output to the PCM. This can be shown as an equation by taking GD: htFluxWaterFromCoil and GD: htFluxPCMFromWater, multiplying each by their respective surface area of heat transfer, and integrating each over the simulation time, as follows:
EW = ∫0thC AC (TC−TW(t)) dt−∫0thP AP (TW(t)−TP(t)) dt
@@ -3227,15 +3219,15 @@
Traceability Matrices and Graphs
A: Volume-Coil-Negligible |
- DD: htFluxC |
+ DD: balanceDecayRate |
+ |
+ |
|
|
|
|
|
|
- X |
- X |
|
|
|
@@ -3250,14 +3242,14 @@ Traceability Matrices and Graphs
|
- DD: htFluxP |
+ DD: balanceDecayTime |
+ |
|
|
|
|
|
|
- X |
|
|
|
@@ -3273,7 +3265,7 @@ Traceability Matrices and Graphs
|
- DD: balanceDecayRate |
+ DD: balanceSolidPCM |
|
|
|
@@ -3296,7 +3288,7 @@ Traceability Matrices and Graphs
|
- DD: balanceDecayTime |
+ DD: balanceLiquidPCM |
|
|
|
@@ -3319,7 +3311,7 @@ Traceability Matrices and Graphs
|
- DD: balanceSolidPCM |
+ DD: htFusion |
|
|
|
@@ -3342,7 +3334,7 @@ Traceability Matrices and Graphs
|
- DD: balanceLiquidPCM |
+ DD: meltFrac |
|
|
|
@@ -3365,7 +3357,7 @@ Traceability Matrices and Graphs
|
- DD: htFusion |
+ DD: aspectRatio |
|
|
|
@@ -3388,8 +3380,8 @@ Traceability Matrices and Graphs
|
- DD: meltFrac |
- |
+ TM: consThermE |
+ X |
|
|
|
@@ -3411,7 +3403,7 @@ Traceability Matrices and Graphs
|
- DD: aspectRatio |
+ TM: sensHtE |
|
|
|
@@ -3434,8 +3426,8 @@ Traceability Matrices and Graphs
|
- TM: consThermE |
- X |
+ TM: latentHtE |
+ |
|
|
|
@@ -3457,9 +3449,9 @@ Traceability Matrices and Graphs
|
- TM: sensHtE |
- |
+ TM: nwtnCooling |
|
+ X |
|
|
|
@@ -3480,13 +3472,13 @@ Traceability Matrices and Graphs
|
- TM: latentHtE |
- |
- |
- |
- |
+ GD: rocTempSimp |
|
|
+ X |
+ X |
+ X |
+ X |
|
|
|
@@ -3503,15 +3495,17 @@ Traceability Matrices and Graphs
|
- TM: nwtnCooling |
- |
- X |
+
+ GD: htFluxWaterFromCoil
+ |
|
|
|
|
|
|
+ X |
+ X |
|
|
|
@@ -3526,15 +3520,15 @@ Traceability Matrices and Graphs
|
- GD: rocTempSimp |
+ GD: htFluxPCMFromWater |
+ |
+ |
|
|
- X |
- X |
- X |
- X |
|
|
+ X |
+ |
|
|
|
@@ -4248,8 +4242,6 @@ Traceability Matrices and Graphs
|
- DD: htFluxC |
- DD: htFluxP |
DD: balanceDecayRate |
DD: balanceDecayTime |
DD: balanceSolidPCM |
@@ -4262,13 +4254,17 @@ Traceability Matrices and Graphs
TM: latentHtE |
TM: nwtnCooling |
GD: rocTempSimp |
+
+ GD: htFluxWaterFromCoil
+ |
+ GD: htFluxPCMFromWater |
IM: eBalanceOnWtr |
IM: eBalanceOnPCM |
IM: heatEInWtr |
IM: heatEInPCM |
- DD: htFluxC |
+ DD: balanceDecayRate |
|
|
|
@@ -4289,7 +4285,7 @@ Traceability Matrices and Graphs
|
- DD: htFluxP |
+ DD: balanceDecayTime |
|
|
|
@@ -4310,7 +4306,7 @@ Traceability Matrices and Graphs
|
- DD: balanceDecayRate |
+ DD: balanceSolidPCM |
|
|
|
@@ -4331,7 +4327,7 @@ Traceability Matrices and Graphs
|
- DD: balanceDecayTime |
+ DD: balanceLiquidPCM |
|
|
|
@@ -4352,7 +4348,7 @@ Traceability Matrices and Graphs
|
- DD: balanceSolidPCM |
+ DD: htFusion |
|
|
|
@@ -4373,12 +4369,12 @@ Traceability Matrices and Graphs
|
- DD: balanceLiquidPCM |
- |
+ DD: meltFrac |
|
|
|
|
+ X |
|
|
|
@@ -4394,7 +4390,7 @@ Traceability Matrices and Graphs
|
- DD: htFusion |
+ DD: aspectRatio |
|
|
|
@@ -4415,14 +4411,14 @@ Traceability Matrices and Graphs
|
- DD: meltFrac |
+ TM: consThermE |
+ |
|
|
|
|
|
|
- X |
|
|
|
@@ -4436,8 +4432,7 @@ Traceability Matrices and Graphs
|
- DD: aspectRatio |
- |
+ TM: sensHtE |
|
|
|
@@ -4447,6 +4442,7 @@ Traceability Matrices and Graphs
|
|
|
+ X |
|
|
|
@@ -4457,13 +4453,13 @@ Traceability Matrices and Graphs
|
- TM: consThermE |
- |
+ TM: latentHtE |
|
|
|
|
|
+ X |
|
|
|
@@ -4478,7 +4474,8 @@ Traceability Matrices and Graphs
|
- TM: sensHtE |
+ TM: nwtnCooling |
+ |
|
|
|
@@ -4490,7 +4487,6 @@ Traceability Matrices and Graphs
|
|
|
- X |
|
|
|
@@ -4499,7 +4495,7 @@ Traceability Matrices and Graphs
|
- TM: latentHtE |
+ GD: rocTempSimp |
|
|
|
@@ -4511,7 +4507,7 @@ Traceability Matrices and Graphs
|
|
|
- |
+ X |
|
|
|
@@ -4520,7 +4516,9 @@ Traceability Matrices and Graphs
|
- TM: nwtnCooling |
+
+ GD: htFluxWaterFromCoil
+ |
|
|
|
@@ -4541,7 +4539,9 @@ Traceability Matrices and Graphs
|
- GD: rocTempSimp |
+ GD: htFluxPCMFromWater |
+ |
+ |
|
|
|
@@ -4551,11 +4551,9 @@ Traceability Matrices and Graphs
|
|
|
- X |
|
|
|
- X |
|
|
|
@@ -4565,8 +4563,6 @@ Traceability Matrices and Graphs
IM: eBalanceOnWtr |
X |
X |
- X |
- X |
|
|
|
@@ -4579,14 +4575,14 @@ Traceability Matrices and Graphs
X |
X |
X |
+ X |
+ X |
|
|
IM: eBalanceOnPCM |
|
- X |
- |
|
X |
X |
@@ -4598,6 +4594,8 @@ Traceability Matrices and Graphs
|
|
X |
+ |
+ X |
X |
|
|
@@ -4613,9 +4611,9 @@ Traceability Matrices and Graphs
|
|
|
+ X |
|
|
- X |
|
|
|
@@ -4630,8 +4628,6 @@ Traceability Matrices and Graphs
|
|
|
- |
- |
X |
|
|
@@ -4644,6 +4640,8 @@ Traceability Matrices and Graphs
|
|
|
+ |
+ |
@@ -4654,8 +4652,6 @@
Traceability Matrices and Graphs
|
- DD: htFluxC |
- DD: htFluxP |
DD: balanceDecayRate |
DD: balanceDecayTime |
DD: balanceSolidPCM |
@@ -4668,6 +4664,10 @@ Traceability Matrices and Graphs
TM: latentHtE |
TM: nwtnCooling |
GD: rocTempSimp |
+
+ GD: htFluxWaterFromCoil
+ |
+ GD: htFluxPCMFromWater |
IM: eBalanceOnWtr |
IM: eBalanceOnPCM |
IM: heatEInWtr |
@@ -4972,8 +4972,6 @@ Traceability Matrices and Graphs
FR: Output-Input-Derived-Quantities
|
- |
- |
X |
X |
X |
@@ -4990,6 +4988,8 @@ Traceability Matrices and Graphs
|
|
|
+ |
+ |
X |
X |
|
From e4bb4f58b539b3f11f8bfae1b7ad225157d68bc1 Mon Sep 17 00:00:00 2001
From: Sam Crawford
Date: Mon, 12 Aug 2019 17:13:46 -0400
Subject: [PATCH 4/4] Added Notes of new GDs; closes #1479
---
code/drasil-example/Drasil/SWHS/GenDefs.hs | 20 ++++++++++++++------
code/stable/nopcm/SRS/NoPCM_SRS.tex | 7 ++++---
code/stable/nopcm/Website/NoPCM_SRS.html | 10 +++++++---
code/stable/swhs/SRS/SWHS_SRS.tex | 17 +++++++++--------
code/stable/swhs/Website/SWHS_SRS.html | 20 ++++++++++++--------
5 files changed, 46 insertions(+), 28 deletions(-)
diff --git a/code/drasil-example/Drasil/SWHS/GenDefs.hs b/code/drasil-example/Drasil/SWHS/GenDefs.hs
index 2af4f8f61a..632e23d6bd 100644
--- a/code/drasil-example/Drasil/SWHS/GenDefs.hs
+++ b/code/drasil-example/Drasil/SWHS/GenDefs.hs
@@ -8,17 +8,18 @@ import Utils.Drasil
import Control.Lens ((^.))
import Data.Drasil.Concepts.Math (rOfChng, unit_)
+import Data.Drasil.Concepts.Thermodynamics (lawConvCooling)
import Data.Drasil.Quantities.Math (uNormalVect, surface, gradient)
import Data.Drasil.Quantities.PhysicalProperties as QPP (vol, mass, density)
import Data.Drasil.Quantities.Physics as QP (time)
import Data.Drasil.Quantities.Thermodynamics as QT (heatCapSpec, temp)
-import Drasil.SWHS.Assumptions (assumpCWTAT, assumpLCCCW, assumpTPCAV,
- assumpDWPCoV, assumpSHECoV, assumpTHCCoT)
-import Drasil.SWHS.Concepts (gaussDiv)
+import Drasil.SWHS.Assumptions (assumpCWTAT, assumpLCCCW, assumpLCCWP,
+ assumpTPCAV, assumpDWPCoV, assumpSHECoV, assumpTHCCoT)
+import Drasil.SWHS.Concepts (coil, gaussDiv, phaseChangeMaterial)
import Drasil.SWHS.References (koothoor2013)
-import Drasil.SWHS.TMods (consThermE)
+import Drasil.SWHS.TMods (consThermE, nwtnCooling)
import Drasil.SWHS.Unitals (coilHTC, htFluxC, htFluxIn, htFluxOut, htFluxP,
inSA, outSA, pcmHTC, tempC, tempPCM, tempW, thFluxVect, volHtGen)
@@ -53,7 +54,7 @@ rocTempSimpRel = sy QPP.mass * sy QT.heatCapSpec *
htFluxWaterFromCoil :: GenDefn
htFluxWaterFromCoil = gd htFluxWaterFromCoilRC (getUnit htFluxC) Nothing
[makeCite koothoor2013] "htFluxWaterFromCoil"
- [makeRef2S assumpLCCCW, makeRef2S assumpTHCCoT]
+ [newtonLawNote htFluxC assumpLCCCW coil, makeRef2S assumpTHCCoT]
htFluxWaterFromCoilRC :: RelationConcept
htFluxWaterFromCoilRC = makeRC "htFluxWaterFromCoilRC" (htFluxC ^. term)
@@ -67,7 +68,8 @@ htFluxWaterFromCoilRel = sy htFluxC $= sy coilHTC * (sy tempC - apply1 tempW tim
htFluxPCMFromWater :: GenDefn
htFluxPCMFromWater = gd htFluxPCMFromWaterRC (getUnit htFluxP) Nothing
- [makeCite koothoor2013] "htFluxPCMFromWater" [makeRef2S assumpLCCCW]
+ [makeCite koothoor2013] "htFluxPCMFromWater"
+ [newtonLawNote htFluxP assumpLCCWP phaseChangeMaterial]
htFluxPCMFromWaterRC :: RelationConcept
htFluxPCMFromWaterRC = makeRC "htFluxPCMFromWaterRC" (htFluxP ^. term)
@@ -76,6 +78,12 @@ htFluxPCMFromWaterRC = makeRC "htFluxPCMFromWaterRC" (htFluxP ^. term)
htFluxPCMFromWaterRel :: Relation
htFluxPCMFromWaterRel = sy htFluxP $= sy pcmHTC * (apply1 tempW time - apply1 tempPCM time)
+newtonLawNote :: UnitalChunk -> ConceptInstance -> ConceptChunk -> Sentence
+newtonLawNote u a c = foldlSent [ch u `sIs` S "found by assuming that",
+ phrase lawConvCooling, S "applies" +:+. sParen (makeRef2S a), S "This law",
+ sParen (S "defined" `sIn` makeRef2S nwtnCooling) `sIs` S "used on",
+ phrase surface `ofThe` phrase c]
+
--------------------------------------
-- General Definitions Derivation --
--------------------------------------
diff --git a/code/stable/nopcm/SRS/NoPCM_SRS.tex b/code/stable/nopcm/SRS/NoPCM_SRS.tex
index f01db52b71..96633dc807 100644
--- a/code/stable/nopcm/SRS/NoPCM_SRS.tex
+++ b/code/stable/nopcm/SRS/NoPCM_SRS.tex
@@ -426,7 +426,8 @@ \subsubsection{Theoretical Models}
Source & \cite[(pg. 8)]{incroperaEtAl2007}
\\ \midrule \\
-RefBy &
+RefBy & \hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil}
+
\\ \bottomrule
\end{tabular}
\end{minipage}
@@ -523,7 +524,7 @@ \subsubsection{General Definitions}
\item{$t$ is the time (s)}
\end{symbDescription}
\\ \midrule \\
-Notes & \hyperref[assumpLCCCW]{A: Newton-Law-Convective-Cooling-Coil-Water}
+Notes & ${q_{\text{C}}}$ is found by assuming that Newton's law of cooling applies (\hyperref[assumpLCCCW]{A: Newton-Law-Convective-Cooling-Coil-Water}). This law (defined in \hyperref[TM:nwtnCooling]{TM: nwtnCooling}) is used on the surface of the heating coil.
\hyperref[assumpTHCCoT]{A: Temp-Heating-Coil-Constant-over-Time}
@@ -919,7 +920,7 @@ \section{Traceability Matrices and Graphs}
\\
\hyperref[GD:rocTempSimp]{GD: rocTempSimp} & & X & & & X & & &
\\
-\hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil} & & & & & & & &
+\hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil} & & & & X & & & &
\\
\hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr} & X & & & & X & X & &
\\
diff --git a/code/stable/nopcm/Website/NoPCM_SRS.html b/code/stable/nopcm/Website/NoPCM_SRS.html
index e53332b7e4..14cb7e5567 100644
--- a/code/stable/nopcm/Website/NoPCM_SRS.html
+++ b/code/stable/nopcm/Website/NoPCM_SRS.html
@@ -818,7 +818,11 @@ Theoretical Models
RefBy |
- |
+
+
+ GD: htFluxWaterFromCoil
+
+ |
@@ -1008,7 +1012,7 @@
Notes |
- A: Newton-Law-Convective-Cooling-Coil-Water
+ qC is found by assuming that Newton's law of cooling applies (A: Newton-Law-Convective-Cooling-Coil-Water). This law (defined in TM: nwtnCooling) is used on the surface of the heating coil.
A: Temp-Heating-Coil-Constant-over-Time
@@ -2267,7 +2271,7 @@ Traceability Matrices and Graphs
| |
|
|
- |
+ X |
|
|
|
diff --git a/code/stable/swhs/SRS/SWHS_SRS.tex b/code/stable/swhs/SRS/SWHS_SRS.tex
index 2343ff945c..987bae9220 100644
--- a/code/stable/swhs/SRS/SWHS_SRS.tex
+++ b/code/stable/swhs/SRS/SWHS_SRS.tex
@@ -375,10 +375,10 @@ \subsubsection{Assumptions}
\item[Temp-PCM-Constant-Across-Volume:\phantomsection\label{assumpTPCAV}]{The temperature of the phase change material is the same throughout the volume of PCM. (RefBy: \hyperref[GD:rocTempSimp]{GD: rocTempSimp}, \hyperref[likeChgUTP]{LC: Uniform-Temperature-PCM}, \hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr}, and \hyperref[IM:eBalanceOnPCM]{IM: eBalanceOnPCM}.)}
\item[Density-Water-PCM-Constant-over-Volume:\phantomsection\label{assumpDWPCoV}]{The density of water and density of PCM have no spatial variation; that is, they are each constant over their entire volume. (RefBy: \hyperref[GD:rocTempSimp]{GD: rocTempSimp}.)}
\item[Specific-Heat-Energy-Constant-over-Volume:\phantomsection\label{assumpSHECov}]{The specific heat capacity of water, specific heat capacity of PCM as a solid, and specific heat capacity of PCM as a liquid have no spatial variation; that is, they are each constant over their entire volume. (RefBy: \hyperref[GD:rocTempSimp]{GD: rocTempSimp}.)}
-\item[Newton-Law-Convective-Cooling-Coil-Water:\phantomsection\label{assumpLCCCW}]{Newton's law of convective cooling applies between the heating coil and the water. (RefBy: \hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil} and \hyperref[GD:htFluxPCMFromWater]{GD: htFluxPCMFromWater}.)}
+\item[Newton-Law-Convective-Cooling-Coil-Water:\phantomsection\label{assumpLCCCW}]{Newton's law of convective cooling applies between the heating coil and the water. (RefBy: \hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil}.)}
\item[Temp-Heating-Coil-Constant-over-Time:\phantomsection\label{assumpTHCCoT}]{The temperature of the heating coil is constant over time. (RefBy: \hyperref[likeChgTCVOD]{LC: Temperature-Coil-Variable-Over-Day} and \hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil}.)}
\item[Temp-Heating-Coil-Constant-over-Length:\phantomsection\label{assumpTHCCoL}]{The temperature of the heating coil does not vary along its length. (RefBy: \hyperref[likeChgTCVOL]{LC: Temperature-Coil-Variable-Over-Length} and \hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr}.)}
-\item[Law-Convective-Cooling-Water-PCM:\phantomsection\label{assumpLCCWP}]{Newton's law of convective cooling applies between the water and the PCM.}
+\item[Law-Convective-Cooling-Water-PCM:\phantomsection\label{assumpLCCWP}]{Newton's law of convective cooling applies between the water and the PCM. (RefBy: \hyperref[GD:htFluxPCMFromWater]{GD: htFluxPCMFromWater}.)}
\item[Charging-Tank-No-Temp-Discharge:\phantomsection\label{assumpCTNOD}]{The model only accounts for charging of the tank, not discharging. The temperature of the water and temperature of the phase change material can only increase, or remain constant; they do not decrease. This implies that the initial temperature \hyperref[assumpSITWP]{A: Same-Initial-Temp-Water-PCM} is less than (or equal) to the temperature of the heating coil. (RefBy: \hyperref[likeChgDT]{LC: Discharging-Tank} and \hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr}.)}
\item[Same-Initial-Temp-Water-PCM:\phantomsection\label{assumpSITWP}]{The initial temperature of the water and the PCM is the same. (RefBy: \hyperref[likeChgDITPW]{LC: Different-Initial-Temps-PCM-Water}, \hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr}, \hyperref[IM:eBalanceOnPCM]{IM: eBalanceOnPCM}, and \hyperref[assumpCTNOD]{A: Charging-Tank-No-Temp-Discharge}.)}
\item[PCM-Initially-Solid:\phantomsection\label{assumpPIS}]{The simulation will start with the PCM in a solid state. (RefBy: \hyperref[IM:heatEInPCM]{IM: heatEInPCM} and \hyperref[IM:eBalanceOnPCM]{IM: eBalanceOnPCM}.)}
@@ -546,7 +546,8 @@ \subsubsection{Theoretical Models}
Source & \cite[(pg. 8)]{incroperaEtAl2007}
\\ \midrule \\
-RefBy &
+RefBy & \hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil} and \hyperref[GD:htFluxPCMFromWater]{GD: htFluxPCMFromWater}
+
\\ \bottomrule
\end{tabular}
\end{minipage}
@@ -643,7 +644,7 @@ \subsubsection{General Definitions}
\item{$t$ is the time (s)}
\end{symbDescription}
\\ \midrule \\
-Notes & \hyperref[assumpLCCCW]{A: Newton-Law-Convective-Cooling-Coil-Water}
+Notes & ${q_{\text{C}}}$ is found by assuming that Newton's law of cooling applies (\hyperref[assumpLCCCW]{A: Newton-Law-Convective-Cooling-Coil-Water}). This law (defined in \hyperref[TM:nwtnCooling]{TM: nwtnCooling}) is used on the surface of the heating coil.
\hyperref[assumpTHCCoT]{A: Temp-Heating-Coil-Constant-over-Time}
@@ -683,7 +684,7 @@ \subsubsection{General Definitions}
\item{${T_{\text{P}}}$ is the temperature of the phase change material (${}^{\circ}$C)}
\end{symbDescription}
\\ \midrule \\
-Notes & \hyperref[assumpLCCCW]{A: Newton-Law-Convective-Cooling-Coil-Water}
+Notes & ${q_{\text{P}}}$ is found by assuming that Newton's law of cooling applies (\hyperref[assumpLCCWP]{A: Law-Convective-Cooling-Water-PCM}). This law (defined in \hyperref[TM:nwtnCooling]{TM: nwtnCooling}) is used on the surface of the phase change material.
\\ \midrule \\
Source & \cite{koothoor2013}
@@ -1508,7 +1509,7 @@ \section{Traceability Matrices and Graphs}
\\
\hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil} & & & & & & & X & X & & & & & & & & & & & &
\\
-\hyperref[GD:htFluxPCMFromWater]{GD: htFluxPCMFromWater} & & & & & & & X & & & & & & & & & & & & &
+\hyperref[GD:htFluxPCMFromWater]{GD: htFluxPCMFromWater} & & & & & & & & & & X & & & & & & & & & &
\\
\hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr} & & & X & X & & & & & X & & X & X & & X & X & X & & & X &
\\
@@ -1602,9 +1603,9 @@ \section{Traceability Matrices and Graphs}
\\
\hyperref[GD:rocTempSimp]{GD: rocTempSimp} & & & & & & & & X & & & & X & & & & & &
\\
-\hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil} & & & & & & & & & & & & & & & & & &
+\hyperref[GD:htFluxWaterFromCoil]{GD: htFluxWaterFromCoil} & & & & & & & & & & & X & & & & & & &
\\
-\hyperref[GD:htFluxPCMFromWater]{GD: htFluxPCMFromWater} & & & & & & & & & & & & & & & & & &
+\hyperref[GD:htFluxPCMFromWater]{GD: htFluxPCMFromWater} & & & & & & & & & & & X & & & & & & &
\\
\hyperref[IM:eBalanceOnWtr]{IM: eBalanceOnWtr} & X & X & & & & & & & & & & X & X & X & X & X & &
\\
diff --git a/code/stable/swhs/Website/SWHS_SRS.html b/code/stable/swhs/Website/SWHS_SRS.html
index d414b4e953..14dc0b8355 100644
--- a/code/stable/swhs/Website/SWHS_SRS.html
+++ b/code/stable/swhs/Website/SWHS_SRS.html
@@ -764,7 +764,7 @@ Assumptions
- Newton-Law-Convective-Cooling-Coil-Water: Newton's law of convective cooling applies between the heating coil and the water. (RefBy:
GD: htFluxWaterFromCoil and
GD: htFluxPCMFromWater.)
+ Newton-Law-Convective-Cooling-Coil-Water: Newton's law of convective cooling applies between the heating coil and the water. (RefBy:
GD: htFluxWaterFromCoil.)
@@ -779,7 +779,7 @@
Assumptions
- Law-Convective-Cooling-Water-PCM: Newton's law of convective cooling applies between the water and the PCM.
+ Law-Convective-Cooling-Water-PCM: Newton's law of convective cooling applies between the water and the PCM. (RefBy:
GD: htFluxPCMFromWater.)
@@ -1135,7 +1135,11 @@
Theoretical Models
RefBy |
- |
+
+
+ GD: htFluxWaterFromCoil and GD: htFluxPCMFromWater
+
+ |
@@ -1325,7 +1329,7 @@
Notes |
- A: Newton-Law-Convective-Cooling-Coil-Water
+ qC is found by assuming that Newton's law of cooling applies (A: Newton-Law-Convective-Cooling-Coil-Water). This law (defined in TM: nwtnCooling) is used on the surface of the heating coil.
A: Temp-Heating-Coil-Constant-over-Time
@@ -1395,7 +1399,7 @@
Notes |
- A: Newton-Law-Convective-Cooling-Coil-Water
+ qP is found by assuming that Newton's law of cooling applies (A: Law-Convective-Cooling-Water-PCM). This law (defined in TM: nwtnCooling) is used on the surface of the phase change material.
|
@@ -3527,10 +3531,10 @@ Traceability Matrices and Graphs
|
|
|
- X |
|
|
|
+ X |
|
|
|
@@ -4529,7 +4533,7 @@ Traceability Matrices and Graphs
|
|
|
- |
+ X |
|
|
|
@@ -4550,7 +4554,7 @@ Traceability Matrices and Graphs
|
|
|
- |
+ X |
|
|
|
|