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. -

-
- +
+
- + - - - - @@ -834,7 +822,14 @@

General Definitions

RefnameGD:nwtnCoolingTM:nwtnCooling
Label

Newton's law of cooling

Units

W/m2

Equation
q(t) = h ΔT(t)
-

+
+
+
+
+

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

- + @@ -2205,7 +2200,7 @@

Traceability Matrices and Graphs

- + @@ -2255,7 +2250,7 @@

Traceability Matrices and Graphs

- + @@ -2311,7 +2306,7 @@

Traceability Matrices and Graphs

- + 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

GD: nwtnCoolingTM: nwtnCooling X DD: balanceDecayRate TM: consThermE TM: sensHtEGD: nwtnCoolingTM: nwtnCooling GD: rocTempSimp IM: eBalanceOnWtr IM: heatEInWtr
GD: nwtnCoolingTM: nwtnCooling DD: balanceDecayRate TM: consThermE TM: sensHtEGD: nwtnCoolingTM: nwtnCooling GD: rocTempSimp IM: eBalanceOnWtr IM: heatEInWtr
-
-
-
-
-

General Definitions

-

- This section collects the laws and equations that will be used to build the instance models. -

-
- +
+
- + - - - - @@ -1151,7 +1139,14 @@

General Definitions

RefnameGD:nwtnCoolingTM:nwtnCooling
Label

Newton's law of cooling

Units

W/m2

Equation
q(t) = h ΔT(t)
-

+
+
+
+
+

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

- + @@ -4265,7 +4260,7 @@

Traceability Matrices and Graphs

- + @@ -4525,7 +4520,7 @@

Traceability Matrices and Graphs

- + @@ -4671,7 +4666,7 @@

Traceability Matrices and Graphs

- + 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.)

- Temp-Heating-Coil-Constant-over-Time: The temperature of the heating coil is constant over time. (RefBy: LC: Temperature-Coil-Variable-Over-Day and DD: htFluxC.) + Temp-Heating-Coil-Constant-over-Time: The temperature of the heating coil is constant over time. (RefBy: LC: Temperature-Coil-Variable-Over-Day and GD: htFluxWaterFromCoil.)

@@ -960,19 +960,11 @@

- - -
-
-

Data Definitions

-

- This section collects and defines all the data needed to build the instance models. -

-
-

GD: nwtnCoolingTM: nwtnCooling X TM: consThermE TM: sensHtE TM: latentHtEGD: nwtnCoolingTM: nwtnCooling GD: rocTempSimp IM: eBalanceOnWtr IM: eBalanceOnPCM
GD: nwtnCoolingTM: nwtnCooling TM: consThermE TM: sensHtE TM: latentHtEGD: nwtnCoolingTM: nwtnCooling GD: rocTempSimp IM: eBalanceOnWtr IM: eBalanceOnPCM
+
+
- + @@ -980,10 +972,6 @@

Data Definitions

Heat flux into the water from the coil

- - - - @@ -1044,6 +1032,14 @@

Data Definitions

RefnameDD:htFluxCGD:htFluxWaterFromCoil
Label
Symbol

qC

Units

W/m2

+
+
+
+
+

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:

mW CW
@@ -1775,22 +1771,6 @@

Traceability Matrices and Graphs

- - - - - - - - - - - - - - - - @@ -1871,6 +1851,24 @@

Traceability Matrices and Graphs

+ + + + + + + + + + + + + + + + @@ -2196,17 +2194,19 @@

Traceability Matrices and Graphs

A: Atmospheric-Pressure-Tank
DD: htFluxCXX
DD: balanceDecayRate
+ GD: htFluxWaterFromCoil + XX
IM: eBalanceOnWtr
- + - + @@ -2217,7 +2217,7 @@

Traceability Matrices and Graphs

- + @@ -2228,7 +2228,7 @@

Traceability Matrices and Graphs

- + @@ -2239,7 +2239,7 @@

Traceability Matrices and Graphs

- + @@ -2250,35 +2250,37 @@

Traceability Matrices and Graphs

- - - + + + - + + + - - - + @@ -2286,12 +2288,12 @@

Traceability Matrices and Graphs

- +
DD: htFluxC DD: balanceDecayRate TM: consThermE TM: sensHtE TM: nwtnCooling GD: rocTempSimp + GD: htFluxWaterFromCoil + IM: eBalanceOnWtr IM: heatEInWtr
DD: htFluxCDD: balanceDecayRate
DD: balanceDecayRateTM: consThermE
TM: consThermETM: sensHtE
TM: sensHtETM: nwtnCooling
TM: nwtnCoolingGD: rocTempSimp X X
GD: rocTempSimp + GD: htFluxWaterFromCoil + X X
IM: eBalanceOnWtr XX XX
IM: heatEInWtr X

@@ -2302,12 +2304,14 @@

Traceability Matrices and Graphs

- + @@ -2446,7 +2450,6 @@

Traceability Matrices and Graphs

- @@ -2454,6 +2457,7 @@

Traceability Matrices and Graphs

+ 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.)

- Temp-Heating-Coil-Constant-over-Time: The temperature of the heating coil is constant over time. (RefBy: LC: Temperature-Coil-Variable-Over-Day and DD: htFluxC.) + Temp-Heating-Coil-Constant-over-Time: The temperature of the heating coil is constant over time. (RefBy: LC: Temperature-Coil-Variable-Over-Day and GD: htFluxWaterFromCoil.)

@@ -1277,19 +1277,11 @@

- - -
-
-

Data Definitions

-

- This section collects and defines all the data needed to build the instance models. -

-
-

DD: htFluxC DD: balanceDecayRate TM: consThermE TM: sensHtE TM: nwtnCooling GD: rocTempSimp + GD: htFluxWaterFromCoil + IM: eBalanceOnWtr IM: heatEInWtr FR: Input-Initial-Quantities FR: Output-Input-Derived-Quantities X X X
+
+
- + @@ -1297,10 +1289,6 @@

Data Definitions

Heat flux into the water from the coil

- - - - @@ -1361,20 +1349,16 @@

Data Definitions

RefnameDD:htFluxCGD:htFluxWaterFromCoil
Label
Symbol

qC

Units

W/m2

-
- +
+
- + - - - - @@ -1432,6 +1416,14 @@

Data Definitions

RefnameDD:htFluxPGD:htFluxPCMFromWater
Label

Heat flux into the PCM from water

Symbol

qP

Units

W/m2

+
+
+
+
+

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

- + + + - - @@ -3250,14 +3242,14 @@

Traceability Matrices and Graphs

- + + - @@ -3273,7 +3265,7 @@

Traceability Matrices and Graphs

- + @@ -3296,7 +3288,7 @@

Traceability Matrices and Graphs

- + @@ -3319,7 +3311,7 @@

Traceability Matrices and Graphs

- + @@ -3342,7 +3334,7 @@

Traceability Matrices and Graphs

- + @@ -3365,7 +3357,7 @@

Traceability Matrices and Graphs

- + @@ -3388,8 +3380,8 @@

Traceability Matrices and Graphs

- - + + @@ -3411,7 +3403,7 @@

Traceability Matrices and Graphs

- + @@ -3434,8 +3426,8 @@

Traceability Matrices and Graphs

- - + + @@ -3457,9 +3449,9 @@

Traceability Matrices and Graphs

- - + + @@ -3480,13 +3472,13 @@

Traceability Matrices and Graphs

- - - - - + + + + + @@ -3503,15 +3495,17 @@

Traceability Matrices and Graphs

- - - + + + @@ -3526,15 +3520,15 @@

Traceability Matrices and Graphs

- + + + - - - - + + @@ -4248,8 +4242,6 @@

Traceability Matrices and Graphs

A: Volume-Coil-Negligible
DD: htFluxCDD: balanceDecayRate XX
DD: htFluxPDD: balanceDecayTime X
DD: balanceDecayRateDD: balanceSolidPCM
DD: balanceDecayTimeDD: balanceLiquidPCM
DD: balanceSolidPCMDD: htFusion
DD: balanceLiquidPCMDD: meltFrac
DD: htFusionDD: aspectRatio
DD: meltFracTM: consThermEX
DD: aspectRatioTM: sensHtE
TM: consThermEXTM: latentHtE
TM: sensHtETM: nwtnCooling X
TM: latentHtEGD: rocTempSimp XXXX
TM: nwtnCoolingX + GD: htFluxWaterFromCoil + XX
GD: rocTempSimpGD: htFluxPCMFromWater XXXX X
- - @@ -4262,13 +4254,17 @@

Traceability Matrices and Graphs

+ + - + @@ -4289,7 +4285,7 @@

Traceability Matrices and Graphs

- + @@ -4310,7 +4306,7 @@

Traceability Matrices and Graphs

- + @@ -4331,7 +4327,7 @@

Traceability Matrices and Graphs

- + @@ -4352,7 +4348,7 @@

Traceability Matrices and Graphs

- + @@ -4373,12 +4369,12 @@

Traceability Matrices and Graphs

- - + + @@ -4394,7 +4390,7 @@

Traceability Matrices and Graphs

- + @@ -4415,14 +4411,14 @@

Traceability Matrices and Graphs

- + + - @@ -4436,8 +4432,7 @@

Traceability Matrices and Graphs

- - + @@ -4447,6 +4442,7 @@

Traceability Matrices and Graphs

+ @@ -4457,13 +4453,13 @@

Traceability Matrices and Graphs

- - + + @@ -4478,7 +4474,8 @@

Traceability Matrices and Graphs

- + + @@ -4490,7 +4487,6 @@

Traceability Matrices and Graphs

- @@ -4499,7 +4495,7 @@

Traceability Matrices and Graphs

- + @@ -4511,7 +4507,7 @@

Traceability Matrices and Graphs

- + @@ -4520,7 +4516,9 @@

Traceability Matrices and Graphs

- + @@ -4541,7 +4539,9 @@

Traceability Matrices and Graphs

- + + + @@ -4551,11 +4551,9 @@

Traceability Matrices and Graphs

- - @@ -4565,8 +4563,6 @@

Traceability Matrices and Graphs

- - @@ -4579,14 +4575,14 @@

Traceability Matrices and Graphs

+ + - - @@ -4598,6 +4594,8 @@

Traceability Matrices and Graphs

+ + @@ -4613,9 +4611,9 @@

Traceability Matrices and Graphs

+ - @@ -4630,8 +4628,6 @@

Traceability Matrices and Graphs

- - @@ -4644,6 +4640,8 @@

Traceability Matrices and Graphs

+ +
DD: htFluxCDD: htFluxP DD: balanceDecayRate DD: balanceDecayTime DD: balanceSolidPCMTM: latentHtE TM: nwtnCooling GD: rocTempSimp + GD: htFluxWaterFromCoil + GD: htFluxPCMFromWater IM: eBalanceOnWtr IM: eBalanceOnPCM IM: heatEInWtr IM: heatEInPCM
DD: htFluxCDD: balanceDecayRate
DD: htFluxPDD: balanceDecayTime
DD: balanceDecayRateDD: balanceSolidPCM
DD: balanceDecayTimeDD: balanceLiquidPCM
DD: balanceSolidPCMDD: htFusion
DD: balanceLiquidPCMDD: meltFrac X
DD: htFusionDD: aspectRatio
DD: meltFracTM: consThermE X
DD: aspectRatioTM: sensHtE X
TM: consThermETM: latentHtE X
TM: sensHtETM: nwtnCooling X
TM: latentHtEGD: rocTempSimp X
TM: nwtnCooling + GD: htFluxWaterFromCoil +
GD: rocTempSimpGD: htFluxPCMFromWater X X IM: eBalanceOnWtr X XXX X X XXX
IM: eBalanceOnPCM X X X XX X X X X

@@ -4654,8 +4652,6 @@

Traceability Matrices and Graphs

- - @@ -4668,6 +4664,10 @@

Traceability Matrices and Graphs

+ + @@ -4972,8 +4972,6 @@

Traceability Matrices and Graphs

- - @@ -4990,6 +4988,8 @@

Traceability Matrices and Graphs

+ + 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

- +
DD: htFluxCDD: htFluxP DD: balanceDecayRate DD: balanceDecayTime DD: balanceSolidPCM TM: latentHtE TM: nwtnCooling GD: rocTempSimp + GD: htFluxWaterFromCoil + GD: htFluxPCMFromWater IM: eBalanceOnWtr IM: eBalanceOnPCM IM: heatEInWtr FR: Output-Input-Derived-Quantities X X X X X
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