diff --git a/code/drasil-example/glassbr/lib/Drasil/GlassBR/Choices.hs b/code/drasil-example/glassbr/lib/Drasil/GlassBR/Choices.hs index 39c372474fb..9e9fa85af0f 100644 --- a/code/drasil-example/glassbr/lib/Drasil/GlassBR/Choices.hs +++ b/code/drasil-example/glassbr/lib/Drasil/GlassBR/Choices.hs @@ -1,5 +1,6 @@ module Drasil.GlassBR.Choices where +import Language.Drasil (mkQuantDef, SimpleQDef, ExprC(..), LiteralC(..)) import Language.Drasil.Code (Choices(..), defaultChoices, Comments(..), Verbosity(..), ConstraintBehaviour(..), ImplementationType(..), Lang(..), Logging(..), Modularity(..), Structure(..), ConstantStructure(..), @@ -8,6 +9,8 @@ import Language.Drasil.Code (Choices(..), defaultChoices, Comments(..), import Utils.Drasil (RelativeFile, relativeFile) import Drasil.GlassBR.ModuleDefs (allMods) +import Drasil.GlassBR.Unitals (aspectRatio, standOffDist, stressDistFac, + demand, eqTNTWeight, dimlessLoad, sdfTol, tolLoad, interpY, interpZ) choices :: Choices choices = defaultChoices { @@ -20,8 +23,21 @@ choices = defaultChoices { [SampleInput "../../datafiles/glassbr/sampleInput.txt", ReadME], srsConstraints = makeConstraints Exception Exception, defaultConfigFiles = configFp, - extraMods = allMods + extraMods = allMods, + handWiredDefs = [strDisFacQD, demandQD, tolPreQD] } +strDisFacQD :: SimpleQDef +strDisFacQD = mkQuantDef stressDistFac + $ apply interpZ [str "SDF.txt", sy aspectRatio, sy dimlessLoad] + +demandQD :: SimpleQDef +demandQD = mkQuantDef demand + $ apply interpY [str "TSD.txt", sy standOffDist, sy eqTNTWeight] + +tolPreQD :: SimpleQDef +tolPreQD = mkQuantDef tolLoad + $ apply interpY [str "SDF.txt", sy aspectRatio, sy sdfTol] + configFp :: [RelativeFile] configFp = map relativeFile ["SDF.txt", "TSD.txt"] diff --git a/code/drasil-example/glassbr/lib/Drasil/GlassBR/DataDefs.hs b/code/drasil-example/glassbr/lib/Drasil/GlassBR/DataDefs.hs index 82784d5725b..ea86cf9c8b4 100644 --- a/code/drasil-example/glassbr/lib/Drasil/GlassBR/DataDefs.hs +++ b/code/drasil-example/glassbr/lib/Drasil/GlassBR/DataDefs.hs @@ -1,8 +1,7 @@ module Drasil.GlassBR.DataDefs (dataDefs, aspRat, glaTyFac, glaTyFacQD, gtfRef, - hFromt, hFromtQD, loadDFDD, standOffDis, eqTNTWDD, calofDemand, aGrtrThanB, + hFromt, hFromtQD, loadDFDD, standOffDis, eqTNTWDD, aGrtrThanB, arRef, hRef, stdVals) where -import Control.Lens ((^.)) import Prelude hiding (log, exp, sqrt) import Drasil.Database (HasUID) @@ -11,12 +10,10 @@ import Theory.Drasil (DataDefinition, ddE) import qualified Language.Drasil.Sentence.Combinators as S import Drasil.Sentence.Combinators (definedIn', definedIn) -import Data.Drasil.Concepts.Math (parameter) import Data.Drasil.Concepts.PhysicalProperties (dimension) import Drasil.GlassBR.Assumptions (assumpSV, assumpLDFC) import Drasil.GlassBR.Concepts (annealed, fullyT, glass, heatS) -import Drasil.GlassBR.LabelledContent (demandVsSDFig) import Drasil.GlassBR.References (astm2009) import Drasil.GlassBR.Unitals @@ -25,7 +22,7 @@ import Drasil.GlassBR.Unitals ---------------------- dataDefs :: [DataDefinition] -dataDefs = [hFromt, loadDFDD, glaTyFac, standOffDis, aspRat, eqTNTWDD, calofDemand] +dataDefs = [hFromt, loadDFDD, glaTyFac, standOffDis, aspRat, eqTNTWDD] {--} @@ -103,17 +100,6 @@ eqTNTWQD = mkQuantDef eqTNTWeight eqTNTWEq eqTNTWDD :: DataDefinition eqTNTWDD = ddE eqTNTWQD [dRef astm2009] Nothing "eqTNTW" [] -{--} - -calofDemandEq :: Expr -calofDemandEq = apply interpY [str "TSD.txt", sy standOffDist, sy eqTNTWeight] - -calofDemandQD :: SimpleQDef -calofDemandQD = mkQuantDef demand calofDemandEq - -calofDemand :: DataDefinition -calofDemand = ddE calofDemandQD [dRef astm2009] Nothing "calofDemand" [calofDemandDesc] - -- Additional Notes -- aGrtrThanB :: Sentence aGrtrThanB = ch plateLen `S.and_` ch plateWidth `S.are` @@ -128,15 +114,6 @@ hsGlass = glassTypeHelper heatS glassTypeHelper :: CI -> Sentence glassTypeHelper t = short t `S.is` phrase t +:+. phrase glass -calofDemandDesc :: Sentence -calofDemandDesc = - foldlSent [ch demand `sC` EmptyS `S.or_` phrase demandq `sC` EmptyS `S.isThe` - (demandq ^. defn), S "obtained from", refS demandVsSDFig, - S "by interpolation using", phrase standOffDist, sParen (ch standOffDist) - `S.and_` ch eqTNTWeight, S "as" +:+. plural parameter, ch eqTNTWeight, - S "is defined in" +:+. refS eqTNTWDD, ch standOffDist `S.isThe` - phrase standOffDist, S "as defined in", refS standOffDis] - hMin :: Sentence hMin = ch nomThick `S.is` S "a function that maps from the nominal thickness" +:+. (sParen (ch minThick) `S.toThe` phrase minThick) diff --git a/code/drasil-example/glassbr/lib/Drasil/GlassBR/IMods.hs b/code/drasil-example/glassbr/lib/Drasil/GlassBR/IMods.hs index bdf59e54fe3..98930969dd1 100644 --- a/code/drasil-example/glassbr/lib/Drasil/GlassBR/IMods.hs +++ b/code/drasil-example/glassbr/lib/Drasil/GlassBR/IMods.hs @@ -3,28 +3,26 @@ module Drasil.GlassBR.IMods (symb, iMods, pbIsSafe, lrIsSafe, instModIntro) wher import Control.Lens ((^.)) import Prelude hiding (exp) -import Drasil.Database (HasUID) import Drasil.Sentence.Combinators (definedIn', definedIn) import Language.Drasil import qualified Language.Drasil.Development as D -import Language.Drasil.Chunk.Concept.NamedCombinators +import Language.Drasil.Chunk.Concept.NamedCombinators (the) import qualified Language.Drasil.Sentence.Combinators as S import Theory.Drasil (InstanceModel, imNoDeriv, qwC, qwUC, equationalModelN, output) import Data.Drasil.Citations (campidelli) -import Data.Drasil.Concepts.Documentation (goal, user, datum) -import Data.Drasil.SI_Units +import Data.Drasil.Concepts.Documentation (goal, user) +import Data.Drasil.SI_Units (kilogram, metre) -import Drasil.GlassBR.DataDefs (aGrtrThanB, arRef, calofDemand, glaTyFac, +import Drasil.GlassBR.DataDefs (aGrtrThanB, glaTyFac, gtfRef, hRef, loadDFDD, stdVals) -import Drasil.GlassBR.LabelledContent (dimlessloadVsARFig) import Drasil.GlassBR.Goals (willBreakGS) import Drasil.GlassBR.References (astm2009, beasonEtAl1998) import Drasil.GlassBR.Unitals iMods :: [InstanceModel] -iMods = [risk, strDisFac, nonFL, dimLL, tolPre, tolStrDisFac, probOfBreak, - calofCapacity, pbIsSafe, lrIsSafe] +iMods = [risk, nonFL, dimLL, tolStrDisFac, probOfBreak, calofCapacity, + pbIsSafe, lrIsSafe] symb :: [UnitalChunk] symb = [ucuc plateLen metre, ucuc plateWidth metre, ucuc charWeight kilogram, @@ -34,9 +32,6 @@ abInputConstraints :: [(DefinedQuantityDict, Maybe (RealInterval Expr Expr))] abInputConstraints = [qwC plateLen $ UpFrom (Exc, exactDbl 0), qwC plateWidth $ Bounded (Exc, exactDbl 0) (Inc, sy plateLen)] -aspectRatioConstraint :: RealInterval Expr Expr -aspectRatioConstraint = UpFrom (Inc, exactDbl 1) - probConstraint :: RealInterval Expr Expr probConstraint = Bounded (Inc, exactDbl 0) (Inc, exactDbl 1) @@ -47,7 +42,7 @@ risk = imNoDeriv (equationalModelN (riskFun ^. term) riskQD) (qwUC modElas : qwUC loadDF : qwUC stressDistFac : map qwUC [sflawParamK, sflawParamM, minThick] ++ abInputConstraints) riskFun [] [dRef astm2009, dRefInfo beasonEtAl1998 $ Equation [4, 5], - dRefInfo campidelli $ Equation [14]] "riskFun" [aGrtrThanB, hRef, ldfRef, jRef] + dRefInfo campidelli $ Equation [14]] "riskFun" [aGrtrThanB, hRef, ldfRef] -- FIXME [4] !!! riskQD :: SimpleQDef @@ -57,28 +52,11 @@ riskQD = mkQuantDef riskFun ((sy sflawParamK $/ {--} -strDisFac :: InstanceModel -strDisFac = imNoDeriv (equationalModelN (stressDistFac ^. term) strDisFacQD) - (qwC aspectRatio aspectRatioConstraint : [qwUC dimlessLoad]) (dqdWr stressDistFac) - [Bounded (Inc, sy stressDistFacMin) (Inc, sy stressDistFacMax)] - [dRef astm2009] "stressDistFac" - [interpolating stressDistFac dimlessloadVsARFig, arRef, qHtRef] - -strDisFacQD :: SimpleQDef -strDisFacQD = mkQuantDef stressDistFac strDisFacEq - -strDisFacEq :: Expr --- strDisFacEq = apply (sy stressDistFac) --- [sy dimlessLoad, sy aspectRatio] -strDisFacEq = apply interpZ [str "SDF.txt", sy aspectRatio, sy dimlessLoad] - -{--} - nonFL :: InstanceModel nonFL = imNoDeriv (equationalModelN (nonFactorL ^. term) nonFLQD) (qwUC tolLoad : qwUC modElas : qwUC minThick : abInputConstraints) (dqdWr nonFactorL) [] [dRef astm2009] "nFL" - [qHtTlTolRef, stdVals [modElas], hRef, aGrtrThanB] + [stdVals [modElas], hRef, aGrtrThanB] nonFLEq :: Expr nonFLEq = (sy tolLoad $* sy modElas) $* (sy minThick $^ exactDbl 4) $/ @@ -93,7 +71,7 @@ dimLL :: InstanceModel dimLL = imNoDeriv (equationalModelN (dimlessLoad ^. term) dimLLQD) (qwUC demand : qwUC modElas : qwUC minThick : qwUC gTF : abInputConstraints) dimlessLoad [] [dRef astm2009, dRefInfo campidelli $ Equation [7]] - "dimlessLoad" [qRef, aGrtrThanB, stdVals [modElas], hRef, gtfRef] + "dimlessLoad" [aGrtrThanB, stdVals [modElas], hRef, gtfRef] dimLLEq :: Expr dimLLEq = sy demand $* square (sy plateLen $* sy plateWidth) @@ -104,21 +82,6 @@ dimLLQD = mkQuantDef dimlessLoad dimLLEq {--} -tolPre :: InstanceModel -tolPre = imNoDeriv (equationalModelN (tolLoad ^. term) tolPreQD) - [qwC aspectRatio aspectRatioConstraint, qwUC $ tolStrDisFac ^. output] tolLoad [] - [dRef astm2009] "tolLoad" [interpolating tolLoad dimlessloadVsARFig, arRef, - jtolRef] - -tolPreEq :: Expr ---tolPreEq = apply (sy tolLoad) [sy sdfTol, (sy plateLen) / (sy plateWidth)] -tolPreEq = apply interpY [str "SDF.txt", sy aspectRatio, sy sdfTol] - -tolPreQD :: SimpleQDef -tolPreQD = mkQuantDef tolLoad tolPreEq - -{--} - tolStrDisFac :: InstanceModel tolStrDisFac = imNoDeriv (equationalModelN (sdfTol ^. term) tolStrDisFacQD) ((loadDF, Nothing) : qwC pbTol probConstraint : qwUC modElas : abInputConstraints ++ @@ -169,7 +132,7 @@ lrIsSafe = imNoDeriv (equationalModelN (nounPhraseSP "Safety Req-LR") lrIsSafeQD [qwC lRe $ UpFrom (Exc, exactDbl 0), qwC demand $ UpFrom (Exc, exactDbl 0)] isSafeLR [] [dRef astm2009] "isSafeLR" - [lrIsSafeDesc, capRef, qRef] + [lrIsSafeDesc, capRef] lrIsSafeQD :: SimpleQDef lrIsSafeQD = mkQuantDef isSafeLR (sy lRe $> sy demand) @@ -191,9 +154,6 @@ lrCap = ch lRe +:+. S "is also called capacity" pbTolUsr :: Sentence pbTolUsr = ch pbTol `S.is` S "entered by the" +:+. phrase user -qRef :: Sentence -qRef = ch demand `S.isThe` (demandq ^. defn) `sC` S "as given in" +:+. refS calofDemand - lrIsSafeDesc :: Sentence lrIsSafeDesc = iModDesc isSafeLR (ch isSafePb +:+ fromSource pbIsSafe `S.and_` ch isSafeLR) @@ -202,19 +162,9 @@ pbIsSafeDesc :: Sentence pbIsSafeDesc = iModDesc isSafePb (ch isSafePb `S.and_` ch isSafeLR +:+ fromSource lrIsSafe) -capRef, jRef, jtolRef, ldfRef, nonFLRef, probBRRef, qHtRef, qHtTlTolRef, - riskRef :: Sentence +capRef, ldfRef, nonFLRef, probBRRef, riskRef :: Sentence capRef = definedIn' calofCapacity (S "and is also called capacity") -jRef = definedIn strDisFac -jtolRef = definedIn tolStrDisFac ldfRef = definedIn loadDFDD nonFLRef = definedIn nonFL probBRRef = definedIn probOfBreak -qHtRef = definedIn dimLL -qHtTlTolRef = definedIn tolPre riskRef = definedIn risk - --- Helper -- -interpolating :: (HasUID s, HasSymbol s, Referable f, HasShortName f) => s -> f -> Sentence -interpolating s f = foldlSent [ch s `S.is` S "obtained by interpolating from", - plural datum, S "shown" `S.in_` refS f] diff --git a/code/stable/glassbr/SRS/HTML/GlassBR_SRS.html b/code/stable/glassbr/SRS/HTML/GlassBR_SRS.html index 033a1e73cf4..a600eebca35 100644 --- a/code/stable/glassbr/SRS/HTML/GlassBR_SRS.html +++ b/code/stable/glassbr/SRS/HTML/GlassBR_SRS.html @@ -236,16 +236,6 @@
- IM:tolLoad and IM:stressDistFac -
-| Refname | -DD:calofDemand | -|
|---|---|---|
| Label | -Applied load (demand) |
- |
| Symbol | -q |
- |
| Units | -Pa |
- |
| Equation | -- \[q=\mathit{interpY}\left(\text{``TSD.txt''},\mathit{SD},{w_{\mathit{TNT}}}\right)\] - | -|
| Description | -- - | -|
| Notes | -
- - q, or applied load (demand), is the 3 second duration equivalent pressure obtained from Fig:demandVSsod by interpolation using stand off distance (SD) and wTNT as parameters. wTNT is defined in DD:eqTNTW. SD is the stand off distance as defined in DD:standOffDist. - - |
- |
| Source | -- | |
| RefBy | -
- - IM:isSafeLR and IM:dimlessLoad - - |
+
LDF is defined in DD:loadDurFactor.
-- J is defined in IM:stressDistFac. -
| Refname | -IM:stressDistFac | -
|---|---|
| Label | -
- Stress distribution factor (Function) - |
-
| Input | -AR, q̂ |
-
| Output | -J |
-
| Input Constraints | -\[\mathit{AR}\geq{}1\] | -
| Output Constraints | -\[{J_{\text{min}}}\leq{}J\leq{}{J_{\text{max}}}\] | -
| Equation | -- \[J=\mathit{interpZ}\left(\text{``SDF.txt''},\mathit{AR},\hat{q}\right)\] - | -
| Description | -- - | -
| Notes | -
- - J is obtained by interpolating from data shown in Fig:dimlessloadVSaspect. - -- AR is defined in DD:aspectRatio. - -- q̂ is defined in IM:dimlessLoad. - - |
-
| Source | -- |
| RefBy | -- - | -
| Notes |
- - q̂tol is defined in IM:tolLoad. - E comes from A:standardValues. @@ -1743,9 +1587,6 @@Instance Models |
|---|---|
| Notes |
- - q is the 3 second duration equivalent pressure, as given in DD:calofDemand. - a and b are the dimensions of the plate, where (a ≥ b). @@ -1770,84 +1611,7 @@Instance Models |
| RefBy | -
- - IM:stressDistFac - - |
-
| Refname | -IM:tolLoad | -|
|---|---|---|
| Label | -Tolerable load |
- |
| Input | -
- AR, Jtol - |
- |
| Output | -q̂tol |
- |
| Input Constraints | -\[\mathit{AR}\geq{}1\] | -|
| Output Constraints | -- | |
| Equation | -- \[{\hat{q}_{\text{tol}}}=\mathit{interpY}\left(\text{``SDF.txt''},\mathit{AR},{J_{\text{tol}}}\right)\] - | -|
| Description | -- - | -|
| Notes | -
- - q̂tol is obtained by interpolating from data shown in Fig:dimlessloadVSaspect. - -- AR is defined in DD:aspectRatio. - -- Jtol is defined in IM:sdfTol. - - |
- |
| Source | -- | |
| RefBy | -+ |
LR is defined in IM:calofCapacity and is also called capacity.
-- q is the 3 second duration equivalent pressure, as given in DD:calofDemand. -
Required Outputs
@@ -2911,17 +2658,6 @@diff --git a/code/stable/glassbr/SRS/Jupyter/GlassBR_SRS.ipynb b/code/stable/glassbr/SRS/Jupyter/GlassBR_SRS.ipynb index 887e53b7f21..e8af32e2b8b 100644 --- a/code/stable/glassbr/SRS/Jupyter/GlassBR_SRS.ipynb +++ b/code/stable/glassbr/SRS/Jupyter/GlassBR_SRS.ipynb @@ -102,8 +102,6 @@ "|$g$|Glass type|--|\n", "|$GTF$|Glass type factor|--|\n", "|$h$|Minimum thickness|$m$|\n", - "|$interpY$|InterpY|--|\n", - "|$interpZ$|InterpZ|--|\n", "|$isSafeLoad$|Load resistance safety requirement|--|\n", "|$isSafeLR$|3 second load equivalent resistance safety requirement|--|\n", "|$isSafePb$|Probability of glass breakage safety requirement|--|\n", @@ -747,7 +745,7 @@ "
| Refname | \n", - "\n", - "DD:calofDemand\n", - " | \n", - "
|---|---|
| Label | \n", - "\n", - "\n", - "Applied load (demand)\n", - " | \n", - "
| Symbol | \n", - "\n", - "\n", - "$q$\n", - " | \n", - "
| Units | \n", - "\n", - "\n", - "$Pa$\n", - " | \n", - "
| Equation | \n", - "\n", - "$$q=\\mathit{interpY}\\left(\\text{``TSD.txt''},\\mathit{SD},{w_{\\mathit{TNT}}}\\right)$$\n", - " | \n", - "
| Description | \n", - "\n",
- "\n",
- " | \n",
- "
| Notes | \n", - "\n", "\n", - "$q$, or applied load (demand), is the 3 second duration equivalent pressure obtained from [Fig:demandVSsod](#Figure:demandVSsod) by interpolation using stand off distance ($SD$) and $w_TNT$ as parameters. $w_TNT$ is defined in [DD:eqTNTW](#DD:eqTNTW). $SD$ is the stand off distance as defined in [DD:standOffDist](#DD:standOffDist).\n", - " | \n", - "
| Source | \n", - "\n", - "\n", - "astm2009 \n", - " | \n", - "
| RefBy | \n", - "\n", - "\n", - "[IM:isSafeLR](#IM:isSafeLR) and [IM:dimlessLoad](#IM:dimlessLoad)\n", " | \n", "
| Refname | \n", - "\n", - "IM:stressDistFac\n", - " | \n", - "
|---|---|
| Label | \n", - "\n", - "\n", - "Stress distribution factor (Function)\n", - " | \n", - "
| Input | \n", - "\n", - "\n", - "$AR$, $q̂$\n", - " | \n", - "
| Output | \n", - "\n", - "\n", - "$J$\n", - " | \n", - "
| Input Constraints | \n", - "\n", - "$$\\mathit{AR}\\geq{}1$$\n", - " | \n", - "
| Output Constraints | \n", - "\n", - "$${J_{\\text{min}}}\\leq{}J\\leq{}{J_{\\text{max}}}$$\n", - " | \n", - "
| Equation | \n", - "\n", - "$$J=\\mathit{interpZ}\\left(\\text{``SDF.txt''},\\mathit{AR},\\hat{q}\\right)$$\n", - " | \n", - "
| Description | \n", - "\n",
- "\n",
- " | \n",
- "
| Notes | \n", - "\n", - "\n", - "$J$ is obtained by interpolating from data shown in [Fig:dimlessloadVSaspect](#Figure:dimlessloadVSaspect).\n", - "\n", - "$AR$ is defined in [DD:aspectRatio](#DD:aspectRatio).\n", - "\n", - "$q̂$ is defined in [IM:dimlessLoad](#IM:dimlessLoad).\n", - " | \n", - "
| Source | \n", - "\n", - "\n", - "astm2009 \n", - " | \n", - "
| RefBy | \n", - "\n", - "\n", - "[IM:riskFun](#IM:riskFun)\n", - " | \n", - "
| Notes | \n", "\n", "\n", - "$q̂_tol$ is defined in [IM:tolLoad](#IM:tolLoad).\n", - "\n", "$E$ comes from [A:standardValues](#assumpSV).\n", "\n", "$h$ is defined in [DD:minThick](#DD:minThick) and is based on the nominal thicknesses.\n", @@ -1281,8 +1123,6 @@ " | Notes | \n", "\n", "\n", - "$q$ is the 3 second duration equivalent pressure, as given in [DD:calofDemand](#DD:calofDemand).\n", - "\n", "$a$ and $b$ are the dimensions of the plate, where ($a ≥ b$).\n", "\n", "$E$ comes from [A:standardValues](#assumpSV).\n", @@ -1303,90 +1143,7 @@ " | RefBy | \n", "\n", "\n", - "[IM:stressDistFac](#IM:stressDistFac)\n", - " | \n", - "
|---|
| Refname | \n", - "\n", - "IM:tolLoad\n", - " | \n", - "
|---|---|
| Label | \n", - "\n", - "\n", - "Tolerable load\n", - " | \n", - "
| Input | \n", - "\n", "\n", - "$AR$, $J_tol$\n", - " | \n", - "
| Output | \n", - "\n", - "\n", - "$q̂_tol$\n", - " | \n", - "
| Input Constraints | \n", - "\n", - "$$\\mathit{AR}\\geq{}1$$\n", - " | \n", - "
| Output Constraints | \n", - "\n", - " | \n", - "
| Equation | \n", - "\n", - "$${\\hat{q}_{\\text{tol}}}=\\mathit{interpY}\\left(\\text{``SDF.txt''},\\mathit{AR},{J_{\\text{tol}}}\\right)$$\n", - " | \n", - "
| Description | \n", - "\n",
- "\n",
- " | \n",
- "
| Notes | \n", - "\n", - "\n", - "$q̂_tol$ is obtained by interpolating from data shown in [Fig:dimlessloadVSaspect](#Figure:dimlessloadVSaspect).\n", - "\n", - "$AR$ is defined in [DD:aspectRatio](#DD:aspectRatio).\n", - "\n", - "$J_tol$ is defined in [IM:sdfTol](#IM:sdfTol).\n", - " | \n", - "
| Source | \n", - "\n", - "\n", - "astm2009 \n", - " | \n", - "
| RefBy | \n", - "\n", - "\n", - "[IM:nFL](#IM:nFL)\n", " | \n", "
Required Outputs
** diff --git a/code/stable/glassbr/SRS/mdBook/src/SecIMs.md b/code/stable/glassbr/SRS/mdBook/src/SecIMs.md index feb73e77120..8ad96f89d33 100644 --- a/code/stable/glassbr/SRS/mdBook/src/SecIMs.md +++ b/code/stable/glassbr/SRS/mdBook/src/SecIMs.md @@ -19,31 +19,12 @@ The goal [GS:Predict-Glass-Withstands-Explosion](./SecGoalStmt.md#willBreakGS) i |Output Constraints| | |Equation |\\[B=\frac{k}{\left(a\\,b\right)^{m-1}}\\,\left(E\\,h^{2}\right)^{m}\\,\mathit{LDF}\\,e^{J}\\] | |Description |Traceability Matrix Showing the Connections Between Items and Other Sections
** -| |[DD:minThick](./SecDDs.md#DD:minThick)|[DD:loadDurFactor](./SecDDs.md#DD:loadDurFactor)|[DD:gTF](./SecDDs.md#DD:gTF)|[DD:standOffDist](./SecDDs.md#DD:standOffDist)|[DD:aspectRatio](./SecDDs.md#DD:aspectRatio)|[DD:eqTNTW](./SecDDs.md#DD:eqTNTW)|[DD:calofDemand](./SecDDs.md#DD:calofDemand)|[TM:isSafeProb](./SecTMs.md#TM:isSafeProb)|[TM:isSafeLoad](./SecTMs.md#TM:isSafeLoad)|[IM:riskFun](./SecIMs.md#IM:riskFun)|[IM:stressDistFac](./SecIMs.md#IM:stressDistFac)|[IM:nFL](./SecIMs.md#IM:nFL)|[IM:dimlessLoad](./SecIMs.md#IM:dimlessLoad)|[IM:tolLoad](./SecIMs.md#IM:tolLoad)|[IM:sdfTol](./SecIMs.md#IM:sdfTol)|[IM:probOfBreak](./SecIMs.md#IM:probOfBreak)|[IM:calofCapacity](./SecIMs.md#IM:calofCapacity)|[IM:isSafePb](./SecIMs.md#IM:isSafePb)|[IM:isSafeLR](./SecIMs.md#IM:isSafeLR)|[FR:Input-Values](./SecFRs.md#inputValues)|[FR:System-Set-Values-Following-Assumptions](./SecFRs.md#sysSetValsFollowingAssumps)|[FR:Check-Input-with-Data_Constraints](./SecFRs.md#checkInputWithDataCons)|[FR:Output-Values-and-Known-Values](./SecFRs.md#outputValsAndKnownValues)|[FR:Check-Glass-Safety](./SecFRs.md#checkGlassSafety)|[FR:Output-Values](./SecFRs.md#outputValues)|[NFR:Correctness](./SecNFRs.md#correct)|[NFR:Verifiability](./SecNFRs.md#verifiable)|[NFR:Understandability](./SecNFRs.md#understandable)|[NFR:Reusability](./SecNFRs.md#reusable)|[NFR:Maintainability](./SecNFRs.md#maintainable)|[NFR:Portablity](./SecNFRs.md#portable)| -|:-----------------------------------------------------------------------------------|:-------------------------------------|:-----------------------------------------------|:---------------------------|:---------------------------------------------|:-------------------------------------------|:---------------------------------|:-------------------------------------------|:-----------------------------------------|:-----------------------------------------|:-----------------------------------|:-----------------------------------------------|:---------------------------|:-------------------------------------------|:-----------------------------------|:---------------------------------|:-------------------------------------------|:-----------------------------------------------|:-------------------------------------|:-------------------------------------|:-----------------------------------------|:-----------------------------------------------------------------------------------|:-------------------------------------------------------------------------|:------------------------------------------------------------------------|:----------------------------------------------------|:-------------------------------------------|:--------------------------------------|:-------------------------------------------|:---------------------------------------------------|:---------------------------------------|:-----------------------------------------------|:--------------------------------------| -|[GS:Predict-Glass-Withstands-Explosion](./SecGoalStmt.md#willBreakGS) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -|[FR:Input-Values](./SecFRs.md#inputValues) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -|[FR:System-Set-Values-Following-Assumptions](./SecFRs.md#sysSetValsFollowingAssumps)| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -|[FR:Check-Input-with-Data_Constraints](./SecFRs.md#checkInputWithDataCons) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -|[FR:Output-Values-and-Known-Values](./SecFRs.md#outputValsAndKnownValues) | | | | | | | | | | | | | | | | | | | |X |X | | | | | | | | | | | -|[FR:Check-Glass-Safety](./SecFRs.md#checkGlassSafety) | | | | | | | | | | | | | | | | | |X |X | | | | | | | | | | | | | -|[FR:Output-Values](./SecFRs.md#outputValues) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -|[NFR:Correctness](./SecNFRs.md#correct) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -|[NFR:Verifiability](./SecNFRs.md#verifiable) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -|[NFR:Understandability](./SecNFRs.md#understandable) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -|[NFR:Reusability](./SecNFRs.md#reusable) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -|[NFR:Maintainability](./SecNFRs.md#maintainable) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -|[NFR:Portablity](./SecNFRs.md#portable) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +| |[DD:minThick](./SecDDs.md#DD:minThick)|[DD:loadDurFactor](./SecDDs.md#DD:loadDurFactor)|[DD:gTF](./SecDDs.md#DD:gTF)|[DD:standOffDist](./SecDDs.md#DD:standOffDist)|[DD:aspectRatio](./SecDDs.md#DD:aspectRatio)|[DD:eqTNTW](./SecDDs.md#DD:eqTNTW)|[TM:isSafeProb](./SecTMs.md#TM:isSafeProb)|[TM:isSafeLoad](./SecTMs.md#TM:isSafeLoad)|[IM:riskFun](./SecIMs.md#IM:riskFun)|[IM:nFL](./SecIMs.md#IM:nFL)|[IM:dimlessLoad](./SecIMs.md#IM:dimlessLoad)|[IM:sdfTol](./SecIMs.md#IM:sdfTol)|[IM:probOfBreak](./SecIMs.md#IM:probOfBreak)|[IM:calofCapacity](./SecIMs.md#IM:calofCapacity)|[IM:isSafePb](./SecIMs.md#IM:isSafePb)|[IM:isSafeLR](./SecIMs.md#IM:isSafeLR)|[FR:Input-Values](./SecFRs.md#inputValues)|[FR:System-Set-Values-Following-Assumptions](./SecFRs.md#sysSetValsFollowingAssumps)|[FR:Check-Input-with-Data_Constraints](./SecFRs.md#checkInputWithDataCons)|[FR:Output-Values-and-Known-Values](./SecFRs.md#outputValsAndKnownValues)|[FR:Check-Glass-Safety](./SecFRs.md#checkGlassSafety)|[FR:Output-Values](./SecFRs.md#outputValues)|[NFR:Correctness](./SecNFRs.md#correct)|[NFR:Verifiability](./SecNFRs.md#verifiable)|[NFR:Understandability](./SecNFRs.md#understandable)|[NFR:Reusability](./SecNFRs.md#reusable)|[NFR:Maintainability](./SecNFRs.md#maintainable)|[NFR:Portablity](./SecNFRs.md#portable)| +|:-----------------------------------------------------------------------------------|:-------------------------------------|:-----------------------------------------------|:---------------------------|:---------------------------------------------|:-------------------------------------------|:---------------------------------|:-----------------------------------------|:-----------------------------------------|:-----------------------------------|:---------------------------|:-------------------------------------------|:---------------------------------|:-------------------------------------------|:-----------------------------------------------|:-------------------------------------|:-------------------------------------|:-----------------------------------------|:-----------------------------------------------------------------------------------|:-------------------------------------------------------------------------|:------------------------------------------------------------------------|:----------------------------------------------------|:-------------------------------------------|:--------------------------------------|:-------------------------------------------|:---------------------------------------------------|:---------------------------------------|:-----------------------------------------------|:--------------------------------------| +|[GS:Predict-Glass-Withstands-Explosion](./SecGoalStmt.md#willBreakGS) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +|[FR:Input-Values](./SecFRs.md#inputValues) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +|[FR:System-Set-Values-Following-Assumptions](./SecFRs.md#sysSetValsFollowingAssumps)| | | | | | | | | | | | | | | | | | | | | | | | | | | | | +|[FR:Check-Input-with-Data_Constraints](./SecFRs.md#checkInputWithDataCons) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +|[FR:Output-Values-and-Known-Values](./SecFRs.md#outputValsAndKnownValues) | | | | | | | | | | | | | | | | |X |X | | | | | | | | | | | +|[FR:Check-Glass-Safety](./SecFRs.md#checkGlassSafety) | | | | | | | | | | | | | | |X |X | | | | | | | | | | | | | +|[FR:Output-Values](./SecFRs.md#outputValues) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +|[NFR:Correctness](./SecNFRs.md#correct) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +|[NFR:Verifiability](./SecNFRs.md#verifiable) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +|[NFR:Understandability](./SecNFRs.md#understandable) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +|[NFR:Reusability](./SecNFRs.md#reusable) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +|[NFR:Maintainability](./SecNFRs.md#maintainable) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +|[NFR:Portablity](./SecNFRs.md#portable) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | **Traceability Matrix Showing the Connections Between Requirements, Goal Statements and Other Items
** diff --git a/code/stable/glassbr/TraceyGraph/allvsall.dot b/code/stable/glassbr/TraceyGraph/allvsall.dot index 6755cc4cb77..9a5f91ca1a5 100644 --- a/code/stable/glassbr/TraceyGraph/allvsall.dot +++ b/code/stable/glassbr/TraceyGraph/allvsall.dot @@ -2,22 +2,13 @@ digraph allvsall { instance:assumpLDFC -> instance:assumpSV; dataDefn:loadDurFactor -> instance:assumpSV; dataDefn:loadDurFactor -> instance:assumpLDFC; - dataDefn:demandq -> dataDefn:stdOffDist; - dataDefn:demandq -> dataDefn:eqTNTChar; theory:riskFun -> dataDefn:minThick; theory:riskFun -> dataDefn:loadDurFactor; - theory:riskFun -> theory:stressDistFac; - theory:stressDistFac -> dataDefn:aR; - theory:stressDistFac -> theory:dimlessLoad; theory:nFL -> instance:assumpSV; theory:nFL -> dataDefn:minThick; - theory:nFL -> theory:tolLoad; theory:dimlessLoad -> instance:assumpSV; theory:dimlessLoad -> dataDefn:minThick; theory:dimlessLoad -> dataDefn:glassTypeFac; - theory:dimlessLoad -> dataDefn:demandq; - theory:tolLoad -> dataDefn:aR; - theory:tolLoad -> theory:sdfTol; theory:sdfTol -> instance:assumpSV; theory:sdfTol -> dataDefn:minThick; theory:sdfTol -> dataDefn:loadDurFactor; @@ -26,7 +17,6 @@ digraph allvsall { theory:lResistance -> theory:nFL; theory:isSafePb -> theory:probBr; theory:isSafePb -> theory:isSafeLR; - theory:isSafeLR -> dataDefn:demandq; theory:isSafeLR -> theory:lResistance; theory:isSafeLR -> theory:isSafePb; instance:outputValsAndKnownValues -> instance:inputValues; @@ -62,11 +52,10 @@ digraph allvsall { dataDefn:stdOffDist [shape=box, color=black, style=filled, fillcolor=paleturquoise1, label="DD:standOffDist"]; dataDefn:aR [shape=box, color=black, style=filled, fillcolor=paleturquoise1, label="DD:aspectRatio"]; dataDefn:eqTNTChar [shape=box, color=black, style=filled, fillcolor=paleturquoise1, label="DD:eqTNTW"]; - dataDefn:demandq [shape=box, color=black, style=filled, fillcolor=paleturquoise1, label="DD:calofDemand"]; subgraph DD { rank="same" - {dataDefn:minThick, dataDefn:loadDurFactor, dataDefn:glassTypeFac, dataDefn:stdOffDist, dataDefn:aR, dataDefn:eqTNTChar, dataDefn:demandq} + {dataDefn:minThick, dataDefn:loadDurFactor, dataDefn:glassTypeFac, dataDefn:stdOffDist, dataDefn:aR, dataDefn:eqTNTChar} } theory:isSafeProb [shape=box, color=black, style=filled, fillcolor=pink, label="TM:isSafeProb"]; @@ -78,10 +67,8 @@ digraph allvsall { } theory:riskFun [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:riskFun"]; - theory:stressDistFac [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:stressDistFac"]; theory:nFL [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:nFL"]; theory:dimlessLoad [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:dimlessLoad"]; - theory:tolLoad [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:tolLoad"]; theory:sdfTol [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:sdfTol"]; theory:probBr [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:probOfBreak"]; theory:lResistance [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:calofCapacity"]; @@ -90,7 +77,7 @@ digraph allvsall { subgraph IM { rank="same" - {theory:riskFun, theory:stressDistFac, theory:nFL, theory:dimlessLoad, theory:tolLoad, theory:sdfTol, theory:probBr, theory:lResistance, theory:isSafePb, theory:isSafeLR} + {theory:riskFun, theory:nFL, theory:dimlessLoad, theory:sdfTol, theory:probBr, theory:lResistance, theory:isSafePb, theory:isSafeLR} } instance:inputValues [shape=box, color=black, style=filled, fillcolor=ivory, label="FR:inputValues"]; diff --git a/code/stable/glassbr/TraceyGraph/allvsr.dot b/code/stable/glassbr/TraceyGraph/allvsr.dot index 59ae60f7515..7f3c4f8792f 100644 --- a/code/stable/glassbr/TraceyGraph/allvsr.dot +++ b/code/stable/glassbr/TraceyGraph/allvsr.dot @@ -25,11 +25,10 @@ digraph allvsr { dataDefn:stdOffDist [shape=box, color=black, style=filled, fillcolor=paleturquoise1, label="DD:standOffDist"]; dataDefn:aR [shape=box, color=black, style=filled, fillcolor=paleturquoise1, label="DD:aspectRatio"]; dataDefn:eqTNTChar [shape=box, color=black, style=filled, fillcolor=paleturquoise1, label="DD:eqTNTW"]; - dataDefn:demandq [shape=box, color=black, style=filled, fillcolor=paleturquoise1, label="DD:calofDemand"]; subgraph DD { rank="same" - {dataDefn:minThick, dataDefn:loadDurFactor, dataDefn:glassTypeFac, dataDefn:stdOffDist, dataDefn:aR, dataDefn:eqTNTChar, dataDefn:demandq} + {dataDefn:minThick, dataDefn:loadDurFactor, dataDefn:glassTypeFac, dataDefn:stdOffDist, dataDefn:aR, dataDefn:eqTNTChar} } theory:isSafeProb [shape=box, color=black, style=filled, fillcolor=pink, label="TM:isSafeProb"]; @@ -41,10 +40,8 @@ digraph allvsr { } theory:riskFun [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:riskFun"]; - theory:stressDistFac [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:stressDistFac"]; theory:nFL [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:nFL"]; theory:dimlessLoad [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:dimlessLoad"]; - theory:tolLoad [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:tolLoad"]; theory:sdfTol [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:sdfTol"]; theory:probBr [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:probOfBreak"]; theory:lResistance [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:calofCapacity"]; @@ -53,7 +50,7 @@ digraph allvsr { subgraph IM { rank="same" - {theory:riskFun, theory:stressDistFac, theory:nFL, theory:dimlessLoad, theory:tolLoad, theory:sdfTol, theory:probBr, theory:lResistance, theory:isSafePb, theory:isSafeLR} + {theory:riskFun, theory:nFL, theory:dimlessLoad, theory:sdfTol, theory:probBr, theory:lResistance, theory:isSafePb, theory:isSafeLR} } instance:inputValues [shape=box, color=black, style=filled, fillcolor=ivory, label="FR:inputValues"]; diff --git a/code/stable/glassbr/TraceyGraph/avsall.dot b/code/stable/glassbr/TraceyGraph/avsall.dot index 6c73aa6091e..b73ad7e9184 100644 --- a/code/stable/glassbr/TraceyGraph/avsall.dot +++ b/code/stable/glassbr/TraceyGraph/avsall.dot @@ -33,11 +33,10 @@ digraph avsall { dataDefn:stdOffDist [shape=box, color=black, style=filled, fillcolor=paleturquoise1, label="DD:standOffDist"]; dataDefn:aR [shape=box, color=black, style=filled, fillcolor=paleturquoise1, label="DD:aspectRatio"]; dataDefn:eqTNTChar [shape=box, color=black, style=filled, fillcolor=paleturquoise1, label="DD:eqTNTW"]; - dataDefn:demandq [shape=box, color=black, style=filled, fillcolor=paleturquoise1, label="DD:calofDemand"]; subgraph DD { rank="same" - {dataDefn:minThick, dataDefn:loadDurFactor, dataDefn:glassTypeFac, dataDefn:stdOffDist, dataDefn:aR, dataDefn:eqTNTChar, dataDefn:demandq} + {dataDefn:minThick, dataDefn:loadDurFactor, dataDefn:glassTypeFac, dataDefn:stdOffDist, dataDefn:aR, dataDefn:eqTNTChar} } theory:isSafeProb [shape=box, color=black, style=filled, fillcolor=pink, label="TM:isSafeProb"]; @@ -49,10 +48,8 @@ digraph avsall { } theory:riskFun [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:riskFun"]; - theory:stressDistFac [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:stressDistFac"]; theory:nFL [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:nFL"]; theory:dimlessLoad [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:dimlessLoad"]; - theory:tolLoad [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:tolLoad"]; theory:sdfTol [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:sdfTol"]; theory:probBr [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:probOfBreak"]; theory:lResistance [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:calofCapacity"]; @@ -61,7 +58,7 @@ digraph avsall { subgraph IM { rank="same" - {theory:riskFun, theory:stressDistFac, theory:nFL, theory:dimlessLoad, theory:tolLoad, theory:sdfTol, theory:probBr, theory:lResistance, theory:isSafePb, theory:isSafeLR} + {theory:riskFun, theory:nFL, theory:dimlessLoad, theory:sdfTol, theory:probBr, theory:lResistance, theory:isSafePb, theory:isSafeLR} } instance:inputValues [shape=box, color=black, style=filled, fillcolor=ivory, label="FR:inputValues"]; diff --git a/code/stable/glassbr/TraceyGraph/refvsref.dot b/code/stable/glassbr/TraceyGraph/refvsref.dot index 7fdd2952c14..80354d86d17 100644 --- a/code/stable/glassbr/TraceyGraph/refvsref.dot +++ b/code/stable/glassbr/TraceyGraph/refvsref.dot @@ -1,18 +1,9 @@ digraph refvsref { - dataDefn:demandq -> dataDefn:stdOffDist; - dataDefn:demandq -> dataDefn:eqTNTChar; theory:riskFun -> dataDefn:minThick; theory:riskFun -> dataDefn:loadDurFactor; - theory:riskFun -> theory:stressDistFac; - theory:stressDistFac -> dataDefn:aR; - theory:stressDistFac -> theory:dimlessLoad; theory:nFL -> dataDefn:minThick; - theory:nFL -> theory:tolLoad; theory:dimlessLoad -> dataDefn:minThick; theory:dimlessLoad -> dataDefn:glassTypeFac; - theory:dimlessLoad -> dataDefn:demandq; - theory:tolLoad -> dataDefn:aR; - theory:tolLoad -> theory:sdfTol; theory:sdfTol -> dataDefn:minThick; theory:sdfTol -> dataDefn:loadDurFactor; theory:probBr -> theory:riskFun; @@ -20,7 +11,6 @@ digraph refvsref { theory:lResistance -> theory:nFL; theory:isSafePb -> theory:probBr; theory:isSafePb -> theory:isSafeLR; - theory:isSafeLR -> dataDefn:demandq; theory:isSafeLR -> theory:lResistance; theory:isSafeLR -> theory:isSafePb; @@ -31,11 +21,10 @@ digraph refvsref { dataDefn:stdOffDist [shape=box, color=black, style=filled, fillcolor=paleturquoise1, label="DD:standOffDist"]; dataDefn:aR [shape=box, color=black, style=filled, fillcolor=paleturquoise1, label="DD:aspectRatio"]; dataDefn:eqTNTChar [shape=box, color=black, style=filled, fillcolor=paleturquoise1, label="DD:eqTNTW"]; - dataDefn:demandq [shape=box, color=black, style=filled, fillcolor=paleturquoise1, label="DD:calofDemand"]; subgraph DD { rank="same" - {dataDefn:minThick, dataDefn:loadDurFactor, dataDefn:glassTypeFac, dataDefn:stdOffDist, dataDefn:aR, dataDefn:eqTNTChar, dataDefn:demandq} + {dataDefn:minThick, dataDefn:loadDurFactor, dataDefn:glassTypeFac, dataDefn:stdOffDist, dataDefn:aR, dataDefn:eqTNTChar} } theory:isSafeProb [shape=box, color=black, style=filled, fillcolor=pink, label="TM:isSafeProb"]; @@ -47,10 +36,8 @@ digraph refvsref { } theory:riskFun [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:riskFun"]; - theory:stressDistFac [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:stressDistFac"]; theory:nFL [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:nFL"]; theory:dimlessLoad [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:dimlessLoad"]; - theory:tolLoad [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:tolLoad"]; theory:sdfTol [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:sdfTol"]; theory:probBr [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:probOfBreak"]; theory:lResistance [shape=box, color=black, style=filled, fillcolor=khaki1, label="IM:calofCapacity"]; @@ -59,7 +46,7 @@ digraph refvsref { subgraph IM { rank="same" - {theory:riskFun, theory:stressDistFac, theory:nFL, theory:dimlessLoad, theory:tolLoad, theory:sdfTol, theory:probBr, theory:lResistance, theory:isSafePb, theory:isSafeLR} + {theory:riskFun, theory:nFL, theory:dimlessLoad, theory:sdfTol, theory:probBr, theory:lResistance, theory:isSafePb, theory:isSafeLR} } } diff --git a/code/stable/glassbr/src/cpp/Calculations.cpp b/code/stable/glassbr/src/cpp/Calculations.cpp index 5ab10fa664f..b6181fdbb70 100644 --- a/code/stable/glassbr/src/cpp/Calculations.cpp +++ b/code/stable/glassbr/src/cpp/Calculations.cpp @@ -65,34 +65,34 @@ double func_q_hat_tol(InputParameters &inParams, double J_tol) { return interpY("SDF.txt", inParams.AR, J_tol); } -double func_J(InputParameters &inParams, double q_hat) { +double func_NFL(InputParameters &inParams, double q_hat_tol) { ofstream outfile; outfile.open("log.txt", std::fstream::app); - outfile << "function func_J called with inputs: {" << std::endl; + outfile << "function func_NFL called with inputs: {" << std::endl; outfile << " inParams = "; outfile << "Instance of InputParameters object"; outfile << ", " << std::endl; - outfile << " q_hat = "; - outfile << q_hat << std::endl; + outfile << " q_hat_tol = "; + outfile << q_hat_tol << std::endl; outfile << " }" << std::endl; outfile.close(); - return interpZ("SDF.txt", inParams.AR, q_hat); + return q_hat_tol * 7.17e10 * pow(inParams.h, 4.0) / pow(inParams.a * inParams.b, 2.0); } -double func_NFL(InputParameters &inParams, double q_hat_tol) { +double func_J(InputParameters &inParams, double q_hat) { ofstream outfile; outfile.open("log.txt", std::fstream::app); - outfile << "function func_NFL called with inputs: {" << std::endl; + outfile << "function func_J called with inputs: {" << std::endl; outfile << " inParams = "; outfile << "Instance of InputParameters object"; outfile << ", " << std::endl; - outfile << " q_hat_tol = "; - outfile << q_hat_tol << std::endl; + outfile << " q_hat = "; + outfile << q_hat << std::endl; outfile << " }" << std::endl; outfile.close(); - return q_hat_tol * 7.17e10 * pow(inParams.h, 4.0) / pow(inParams.a * inParams.b, 2.0); + return interpZ("SDF.txt", inParams.AR, q_hat); } double func_B(InputParameters &inParams, double J) { diff --git a/code/stable/glassbr/src/cpp/Calculations.hpp b/code/stable/glassbr/src/cpp/Calculations.hpp index 33f24cdd647..24592785ce1 100644 --- a/code/stable/glassbr/src/cpp/Calculations.hpp +++ b/code/stable/glassbr/src/cpp/Calculations.hpp @@ -40,13 +40,6 @@ double func_q_hat(InputParameters &inParams, double q); */ double func_q_hat_tol(InputParameters &inParams, double J_tol); -/** \brief Calculates stress distribution factor (Function) - \param inParams structure holding the input values - \param q_hat dimensionless load - \return stress distribution factor (Function) -*/ -double func_J(InputParameters &inParams, double q_hat); - /** \brief Calculates non-factored load (Pa) \param inParams structure holding the input values \param q_hat_tol tolerable load @@ -54,6 +47,13 @@ double func_J(InputParameters &inParams, double q_hat); */ double func_NFL(InputParameters &inParams, double q_hat_tol); +/** \brief Calculates stress distribution factor (Function) + \param inParams structure holding the input values + \param q_hat dimensionless load + \return stress distribution factor (Function) +*/ +double func_J(InputParameters &inParams, double q_hat); + /** \brief Calculates risk of failure \param inParams structure holding the input values \param J stress distribution factor (Function) diff --git a/code/stable/glassbr/src/cpp/Control.cpp b/code/stable/glassbr/src/cpp/Control.cpp index 932d626e5f7..915710cecb2 100644 --- a/code/stable/glassbr/src/cpp/Control.cpp +++ b/code/stable/glassbr/src/cpp/Control.cpp @@ -53,18 +53,18 @@ int main(int argc, const char *argv[]) { outfile << q_hat_tol; outfile << " in module Control" << std::endl; outfile.close(); - double J = func_J(inParams, q_hat); - outfile.open("log.txt", std::fstream::app); - outfile << "var 'J' assigned "; - outfile << J; - outfile << " in module Control" << std::endl; - outfile.close(); double NFL = func_NFL(inParams, q_hat_tol); outfile.open("log.txt", std::fstream::app); outfile << "var 'NFL' assigned "; outfile << NFL; outfile << " in module Control" << std::endl; outfile.close(); + double J = func_J(inParams, q_hat); + outfile.open("log.txt", std::fstream::app); + outfile << "var 'J' assigned "; + outfile << J; + outfile << " in module Control" << std::endl; + outfile.close(); double B = func_B(inParams, J); outfile.open("log.txt", std::fstream::app); outfile << "var 'B' assigned "; diff --git a/code/stable/glassbr/src/csharp/Calculations.cs b/code/stable/glassbr/src/csharp/Calculations.cs index 7560c4d5ddb..41b705ee826 100644 --- a/code/stable/glassbr/src/csharp/Calculations.cs +++ b/code/stable/glassbr/src/csharp/Calculations.cs @@ -81,44 +81,44 @@ public static double func_q_hat_tol(InputParameters inParams, double J_tol) { return Interpolation.interpY("SDF.txt", inParams.AR, J_tol); } - /** \brief Calculates stress distribution factor (Function) + /** \brief Calculates non-factored load (Pa) \param inParams structure holding the input values - \param q_hat dimensionless load - \return stress distribution factor (Function) + \param q_hat_tol tolerable load + \return non-factored load (Pa) */ - public static double func_J(InputParameters inParams, double q_hat) { + public static double func_NFL(InputParameters inParams, double q_hat_tol) { StreamWriter outfile; outfile = new StreamWriter("log.txt", true); - outfile.WriteLine("function func_J called with inputs: {"); + outfile.WriteLine("function func_NFL called with inputs: {"); outfile.Write(" inParams = "); outfile.Write("Instance of InputParameters object"); outfile.WriteLine(", "); - outfile.Write(" q_hat = "); - outfile.WriteLine(q_hat); + outfile.Write(" q_hat_tol = "); + outfile.WriteLine(q_hat_tol); outfile.WriteLine(" }"); outfile.Close(); - return Interpolation.interpZ("SDF.txt", inParams.AR, q_hat); + return q_hat_tol * 7.17e10 * Math.Pow(inParams.h, 4.0) / Math.Pow(inParams.a * inParams.b, 2.0); } - /** \brief Calculates non-factored load (Pa) + /** \brief Calculates stress distribution factor (Function) \param inParams structure holding the input values - \param q_hat_tol tolerable load - \return non-factored load (Pa) + \param q_hat dimensionless load + \return stress distribution factor (Function) */ - public static double func_NFL(InputParameters inParams, double q_hat_tol) { + public static double func_J(InputParameters inParams, double q_hat) { StreamWriter outfile; outfile = new StreamWriter("log.txt", true); - outfile.WriteLine("function func_NFL called with inputs: {"); + outfile.WriteLine("function func_J called with inputs: {"); outfile.Write(" inParams = "); outfile.Write("Instance of InputParameters object"); outfile.WriteLine(", "); - outfile.Write(" q_hat_tol = "); - outfile.WriteLine(q_hat_tol); + outfile.Write(" q_hat = "); + outfile.WriteLine(q_hat); outfile.WriteLine(" }"); outfile.Close(); - return q_hat_tol * 7.17e10 * Math.Pow(inParams.h, 4.0) / Math.Pow(inParams.a * inParams.b, 2.0); + return Interpolation.interpZ("SDF.txt", inParams.AR, q_hat); } /** \brief Calculates risk of failure diff --git a/code/stable/glassbr/src/csharp/Control.cs b/code/stable/glassbr/src/csharp/Control.cs index 328cff9e88a..37335cb75f2 100644 --- a/code/stable/glassbr/src/csharp/Control.cs +++ b/code/stable/glassbr/src/csharp/Control.cs @@ -45,18 +45,18 @@ public static void Main(string[] args) { outfile.Write(q_hat_tol); outfile.WriteLine(" in module Control"); outfile.Close(); - double J = Calculations.func_J(inParams, q_hat); - outfile = new StreamWriter("log.txt", true); - outfile.Write("var 'J' assigned "); - outfile.Write(J); - outfile.WriteLine(" in module Control"); - outfile.Close(); double NFL = Calculations.func_NFL(inParams, q_hat_tol); outfile = new StreamWriter("log.txt", true); outfile.Write("var 'NFL' assigned "); outfile.Write(NFL); outfile.WriteLine(" in module Control"); outfile.Close(); + double J = Calculations.func_J(inParams, q_hat); + outfile = new StreamWriter("log.txt", true); + outfile.Write("var 'J' assigned "); + outfile.Write(J); + outfile.WriteLine(" in module Control"); + outfile.Close(); double B = Calculations.func_B(inParams, J); outfile = new StreamWriter("log.txt", true); outfile.Write("var 'B' assigned "); diff --git a/code/stable/glassbr/src/java/GlassBR/Calculations.java b/code/stable/glassbr/src/java/GlassBR/Calculations.java index 28965f49f4b..f6d32810a71 100644 --- a/code/stable/glassbr/src/java/GlassBR/Calculations.java +++ b/code/stable/glassbr/src/java/GlassBR/Calculations.java @@ -86,44 +86,44 @@ public static double func_q_hat_tol(InputParameters inParams, double J_tol) thro return Interpolation.interpY("SDF.txt", inParams.AR, J_tol); } - /** \brief Calculates stress distribution factor (Function) + /** \brief Calculates non-factored load (Pa) \param inParams structure holding the input values - \param q_hat dimensionless load - \return stress distribution factor (Function) + \param q_hat_tol tolerable load + \return non-factored load (Pa) */ - public static double func_J(InputParameters inParams, double q_hat) throws Exception, FileNotFoundException, IOException { + public static double func_NFL(InputParameters inParams, double q_hat_tol) throws IOException { PrintWriter outfile; outfile = new PrintWriter(new FileWriter(new File("log.txt"), true)); - outfile.println("function func_J called with inputs: {"); + outfile.println("function func_NFL called with inputs: {"); outfile.print(" inParams = "); outfile.print("Instance of InputParameters object"); outfile.println(", "); - outfile.print(" q_hat = "); - outfile.println(q_hat); + outfile.print(" q_hat_tol = "); + outfile.println(q_hat_tol); outfile.println(" }"); outfile.close(); - return Interpolation.interpZ("SDF.txt", inParams.AR, q_hat); + return q_hat_tol * 7.17e10 * Math.pow(inParams.h, 4.0) / Math.pow(inParams.a * inParams.b, 2.0); } - /** \brief Calculates non-factored load (Pa) + /** \brief Calculates stress distribution factor (Function) \param inParams structure holding the input values - \param q_hat_tol tolerable load - \return non-factored load (Pa) + \param q_hat dimensionless load + \return stress distribution factor (Function) */ - public static double func_NFL(InputParameters inParams, double q_hat_tol) throws IOException { + public static double func_J(InputParameters inParams, double q_hat) throws Exception, FileNotFoundException, IOException { PrintWriter outfile; outfile = new PrintWriter(new FileWriter(new File("log.txt"), true)); - outfile.println("function func_NFL called with inputs: {"); + outfile.println("function func_J called with inputs: {"); outfile.print(" inParams = "); outfile.print("Instance of InputParameters object"); outfile.println(", "); - outfile.print(" q_hat_tol = "); - outfile.println(q_hat_tol); + outfile.print(" q_hat = "); + outfile.println(q_hat); outfile.println(" }"); outfile.close(); - return q_hat_tol * 7.17e10 * Math.pow(inParams.h, 4.0) / Math.pow(inParams.a * inParams.b, 2.0); + return Interpolation.interpZ("SDF.txt", inParams.AR, q_hat); } /** \brief Calculates risk of failure diff --git a/code/stable/glassbr/src/java/GlassBR/Control.java b/code/stable/glassbr/src/java/GlassBR/Control.java index 0c6a33f7907..3cd089cc19d 100644 --- a/code/stable/glassbr/src/java/GlassBR/Control.java +++ b/code/stable/glassbr/src/java/GlassBR/Control.java @@ -50,18 +50,18 @@ public static void main(String[] args) throws Exception, FileNotFoundException, outfile.print(q_hat_tol); outfile.println(" in module Control"); outfile.close(); - double J = Calculations.func_J(inParams, q_hat); - outfile = new PrintWriter(new FileWriter(new File("log.txt"), true)); - outfile.print("var 'J' assigned "); - outfile.print(J); - outfile.println(" in module Control"); - outfile.close(); double NFL = Calculations.func_NFL(inParams, q_hat_tol); outfile = new PrintWriter(new FileWriter(new File("log.txt"), true)); outfile.print("var 'NFL' assigned "); outfile.print(NFL); outfile.println(" in module Control"); outfile.close(); + double J = Calculations.func_J(inParams, q_hat); + outfile = new PrintWriter(new FileWriter(new File("log.txt"), true)); + outfile.print("var 'J' assigned "); + outfile.print(J); + outfile.println(" in module Control"); + outfile.close(); double B = Calculations.func_B(inParams, J); outfile = new PrintWriter(new FileWriter(new File("log.txt"), true)); outfile.print("var 'B' assigned "); diff --git a/code/stable/glassbr/src/python/Calculations.py b/code/stable/glassbr/src/python/Calculations.py index 797d185fb7f..9b19b7cb1ce 100644 --- a/code/stable/glassbr/src/python/Calculations.py +++ b/code/stable/glassbr/src/python/Calculations.py @@ -67,39 +67,39 @@ def func_q_hat_tol(inParams, J_tol): return Interpolation.interpY("SDF.txt", inParams.AR, J_tol) -## \brief Calculates stress distribution factor (Function) +## \brief Calculates non-factored load (Pa) # \param inParams structure holding the input values -# \param q_hat dimensionless load -# \return stress distribution factor (Function) -def func_J(inParams, q_hat): +# \param q_hat_tol tolerable load +# \return non-factored load (Pa) +def func_NFL(inParams, q_hat_tol): outfile = open("log.txt", "a") - print("function func_J called with inputs: {", file=outfile) + print("function func_NFL called with inputs: {", file=outfile) print(" inParams = ", end="", file=outfile) print("Instance of InputParameters object", end="", file=outfile) print(", ", file=outfile) - print(" q_hat = ", end="", file=outfile) - print(q_hat, file=outfile) + print(" q_hat_tol = ", end="", file=outfile) + print(q_hat_tol, file=outfile) print(" }", file=outfile) outfile.close() - return Interpolation.interpZ("SDF.txt", inParams.AR, q_hat) + return q_hat_tol * 7.17e10 * inParams.h ** 4.0 / (inParams.a * inParams.b) ** 2.0 -## \brief Calculates non-factored load (Pa) +## \brief Calculates stress distribution factor (Function) # \param inParams structure holding the input values -# \param q_hat_tol tolerable load -# \return non-factored load (Pa) -def func_NFL(inParams, q_hat_tol): +# \param q_hat dimensionless load +# \return stress distribution factor (Function) +def func_J(inParams, q_hat): outfile = open("log.txt", "a") - print("function func_NFL called with inputs: {", file=outfile) + print("function func_J called with inputs: {", file=outfile) print(" inParams = ", end="", file=outfile) print("Instance of InputParameters object", end="", file=outfile) print(", ", file=outfile) - print(" q_hat_tol = ", end="", file=outfile) - print(q_hat_tol, file=outfile) + print(" q_hat = ", end="", file=outfile) + print(q_hat, file=outfile) print(" }", file=outfile) outfile.close() - return q_hat_tol * 7.17e10 * inParams.h ** 4.0 / (inParams.a * inParams.b) ** 2.0 + return Interpolation.interpZ("SDF.txt", inParams.AR, q_hat) ## \brief Calculates risk of failure # \param inParams structure holding the input values diff --git a/code/stable/glassbr/src/python/Control.py b/code/stable/glassbr/src/python/Control.py index 6c7054ffdbc..92d3ff80a06 100644 --- a/code/stable/glassbr/src/python/Control.py +++ b/code/stable/glassbr/src/python/Control.py @@ -40,18 +40,18 @@ print(q_hat_tol, end="", file=outfile) print(" in module Control", file=outfile) outfile.close() -J = Calculations.func_J(inParams, q_hat) -outfile = open("log.txt", "a") -print("var 'J' assigned ", end="", file=outfile) -print(J, end="", file=outfile) -print(" in module Control", file=outfile) -outfile.close() NFL = Calculations.func_NFL(inParams, q_hat_tol) outfile = open("log.txt", "a") print("var 'NFL' assigned ", end="", file=outfile) print(NFL, end="", file=outfile) print(" in module Control", file=outfile) outfile.close() +J = Calculations.func_J(inParams, q_hat) +outfile = open("log.txt", "a") +print("var 'J' assigned ", end="", file=outfile) +print(J, end="", file=outfile) +print(" in module Control", file=outfile) +outfile.close() B = Calculations.func_B(inParams, J) outfile = open("log.txt", "a") print("var 'B' assigned ", end="", file=outfile) diff --git a/code/stable/glassbr/src/swift/Calculations.swift b/code/stable/glassbr/src/swift/Calculations.swift index 81aaadd9229..2fcc75d22bb 100644 --- a/code/stable/glassbr/src/swift/Calculations.swift +++ b/code/stable/glassbr/src/swift/Calculations.swift @@ -216,12 +216,12 @@ func func_q_hat_tol(_ inParams: inout InputParameters, _ J_tol: Double) throws - return try interpY("SDF.txt", inParams.AR, J_tol) } -/** Calculates stress distribution factor (Function) +/** Calculates non-factored load (Pa) - Parameter inParams: structure holding the input values - - Parameter q_hat: dimensionless load - - Returns: stress distribution factor (Function) + - Parameter q_hat_tol: tolerable load + - Returns: non-factored load (Pa) */ -func func_J(_ inParams: inout InputParameters, _ q_hat: Double) throws -> Double { +func func_NFL(_ inParams: inout InputParameters, _ q_hat_tol: Double) throws -> Double { var outfile: FileHandle do { outfile = try FileHandle(forWritingTo: FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!.appendingPathComponent("log.txt")) @@ -230,7 +230,7 @@ func func_J(_ inParams: inout InputParameters, _ q_hat: Double) throws -> Double throw "Error opening file." } do { - try outfile.write(contentsOf: Data("function func_J called with inputs: {".utf8)) + try outfile.write(contentsOf: Data("function func_NFL called with inputs: {".utf8)) try outfile.write(contentsOf: Data("\n".utf8)) } catch { throw "Error printing to file." @@ -252,12 +252,12 @@ func func_J(_ inParams: inout InputParameters, _ q_hat: Double) throws -> Double throw "Error printing to file." } do { - try outfile.write(contentsOf: Data(" q_hat = ".utf8)) + try outfile.write(contentsOf: Data(" q_hat_tol = ".utf8)) } catch { throw "Error printing to file." } do { - try outfile.write(contentsOf: Data(String(q_hat).utf8)) + try outfile.write(contentsOf: Data(String(q_hat_tol).utf8)) try outfile.write(contentsOf: Data("\n".utf8)) } catch { throw "Error printing to file." @@ -274,15 +274,15 @@ func func_J(_ inParams: inout InputParameters, _ q_hat: Double) throws -> Double throw "Error closing file." } - return try interpZ("SDF.txt", inParams.AR, q_hat) + return q_hat_tol * 7.17e10 * pow(inParams.h, 4.0) / pow(inParams.a * inParams.b, 2.0) } -/** Calculates non-factored load (Pa) +/** Calculates stress distribution factor (Function) - Parameter inParams: structure holding the input values - - Parameter q_hat_tol: tolerable load - - Returns: non-factored load (Pa) + - Parameter q_hat: dimensionless load + - Returns: stress distribution factor (Function) */ -func func_NFL(_ inParams: inout InputParameters, _ q_hat_tol: Double) throws -> Double { +func func_J(_ inParams: inout InputParameters, _ q_hat: Double) throws -> Double { var outfile: FileHandle do { outfile = try FileHandle(forWritingTo: FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!.appendingPathComponent("log.txt")) @@ -291,7 +291,7 @@ func func_NFL(_ inParams: inout InputParameters, _ q_hat_tol: Double) throws -> throw "Error opening file." } do { - try outfile.write(contentsOf: Data("function func_NFL called with inputs: {".utf8)) + try outfile.write(contentsOf: Data("function func_J called with inputs: {".utf8)) try outfile.write(contentsOf: Data("\n".utf8)) } catch { throw "Error printing to file." @@ -313,12 +313,12 @@ func func_NFL(_ inParams: inout InputParameters, _ q_hat_tol: Double) throws -> throw "Error printing to file." } do { - try outfile.write(contentsOf: Data(" q_hat_tol = ".utf8)) + try outfile.write(contentsOf: Data(" q_hat = ".utf8)) } catch { throw "Error printing to file." } do { - try outfile.write(contentsOf: Data(String(q_hat_tol).utf8)) + try outfile.write(contentsOf: Data(String(q_hat).utf8)) try outfile.write(contentsOf: Data("\n".utf8)) } catch { throw "Error printing to file." @@ -335,7 +335,7 @@ func func_NFL(_ inParams: inout InputParameters, _ q_hat_tol: Double) throws -> throw "Error closing file." } - return q_hat_tol * 7.17e10 * pow(inParams.h, 4.0) / pow(inParams.a * inParams.b, 2.0) + return try interpZ("SDF.txt", inParams.AR, q_hat) } /** Calculates risk of failure diff --git a/code/stable/glassbr/src/swift/main.swift b/code/stable/glassbr/src/swift/main.swift index 151d51d00b0..65ede1bf81c 100644 --- a/code/stable/glassbr/src/swift/main.swift +++ b/code/stable/glassbr/src/swift/main.swift @@ -150,7 +150,7 @@ do { } catch { throw "Error closing file." } -var J: Double = try func_J(&inParams, q_hat) +var NFL: Double = try func_NFL(&inParams, q_hat_tol) do { outfile = try FileHandle(forWritingTo: FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!.appendingPathComponent("log.txt")) try outfile.seekToEnd() @@ -158,12 +158,12 @@ do { throw "Error opening file." } do { - try outfile.write(contentsOf: Data("var 'J' assigned ".utf8)) + try outfile.write(contentsOf: Data("var 'NFL' assigned ".utf8)) } catch { throw "Error printing to file." } do { - try outfile.write(contentsOf: Data(String(J).utf8)) + try outfile.write(contentsOf: Data(String(NFL).utf8)) } catch { throw "Error printing to file." } @@ -178,7 +178,7 @@ do { } catch { throw "Error closing file." } -var NFL: Double = try func_NFL(&inParams, q_hat_tol) +var J: Double = try func_J(&inParams, q_hat) do { outfile = try FileHandle(forWritingTo: FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!.appendingPathComponent("log.txt")) try outfile.seekToEnd() @@ -186,12 +186,12 @@ do { throw "Error opening file." } do { - try outfile.write(contentsOf: Data("var 'NFL' assigned ".utf8)) + try outfile.write(contentsOf: Data("var 'J' assigned ".utf8)) } catch { throw "Error printing to file." } do { - try outfile.write(contentsOf: Data(String(NFL).utf8)) + try outfile.write(contentsOf: Data(String(J).utf8)) } catch { throw "Error printing to file." }