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

Table of Symbols

Minimum thickness m - - interpY - InterpY - -- - - - interpZ - InterpZ - -- - isSafeLoad Load resistance safety requirement @@ -1237,9 +1227,7 @@

Data Definitions

RefBy - -

DD:calofDemand

- +

@@ -1293,11 +1281,7 @@

Data Definitions

RefBy - -

- IM:tolLoad and IM:stressDistFac -

- +

@@ -1341,68 +1325,7 @@

Data Definitions

RefBy - -

DD:calofDemand

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
RefnameDD:calofDemand
Label

Applied load (demand)

Symbol

q

Units

Pa

Equation - \[q=\mathit{interpY}\left(\text{``TSD.txt''},\mathit{SD},{w_{\mathit{TNT}}}\right)\] -
Description -
    -
  • q is the applied load (demand) (Pa)
  • -
  • interpY is the interpY (Unitless)
  • -
  • SD is the stand off distance (m)
  • -
  • - wTNT is the equivalent TNT charge mass (kg) -
  • -
-
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

astm2009

RefBy -

- IM:isSafeLR and IM:dimlessLoad -

-

@@ -1496,9 +1419,6 @@

Instance Models

LDF is defined in DD:loadDurFactor.

-

- J is defined in IM:stressDistFac. -

@@ -1517,79 +1437,6 @@

Instance Models

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RefnameIM:stressDistFac
Label -

Stress distribution factor (Function)

-
Input

AR,

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 -
    -
  • - J is the stress distribution factor (Function) (Unitless) -
  • -
  • interpZ is the interpZ (Unitless)
  • -
  • AR is the aspect ratio (Unitless)
  • -
  • is the dimensionless load (Unitless)
  • -
-
Notes -

- J is obtained by interpolating from data shown in Fig:dimlessloadVSaspect. -

-

- AR is defined in DD:aspectRatio. -

-

- is defined in IM:dimlessLoad. -

-
Source

astm2009

RefBy -

IM:riskFun

-
-
@@ -1653,9 +1500,6 @@

Instance Models

- - -
Notes -

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

-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
RefnameIM:tolLoad
Label

Tolerable load

Input -

AR, Jtol

-
Output

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 -
    -
  • - tol is the tolerable load (Unitless) -
  • -
  • interpY is the interpY (Unitless)
  • -
  • AR is the aspect ratio (Unitless)
  • -
  • - Jtol is the tolerable stress distribution factor (Unitless) -
  • -
-
Notes -

- tol is obtained by interpolating from data shown in Fig:dimlessloadVSaspect. -

-

- AR is defined in DD:aspectRatio. -

-

- Jtol is defined in IM:sdfTol. -

-
Source

astm2009

RefBy

IM:nFL

@@ -1949,9 +1713,7 @@

Instance Models

RefBy - -

IM:tolLoad

- +

@@ -2224,9 +1986,6 @@

Instance Models

LR is defined in IM:calofCapacity and is also called capacity.

-

- q is the 3 second duration equivalent pressure, as given in DD:calofDemand. -

@@ -2578,12 +2337,6 @@

Functional Requirements

IM:isSafePb -- - - J - Stress distribution factor (Function) - IM:stressDistFac - -- - Jtol Tolerable stress distribution factor @@ -2614,12 +2367,6 @@

Functional Requirements

IM:dimlessLoad -- - - tol - Tolerable load - IM:tolLoad - -- -

Required Outputs

@@ -2911,17 +2658,6 @@

Traceability Matrices and Graphs

- - DD:calofDemand - - - - - - - - - TM:isSafeProb @@ -2955,17 +2691,6 @@

Traceability Matrices and Graphs

- - IM:stressDistFac - - - - - - - - - IM:nFL @@ -2988,17 +2713,6 @@

Traceability Matrices and Graphs

- - IM:tolLoad - - - - - - - - - IM:sdfTol @@ -3294,14 +3008,11 @@

Traceability Matrices and Graphs

DD:standOffDist DD:aspectRatio DD:eqTNTW - DD:calofDemand TM:isSafeProb TM:isSafeLoad IM:riskFun - IM:stressDistFac IM:nFL IM:dimlessLoad - IM:tolLoad IM:sdfTol IM:probOfBreak IM:calofCapacity @@ -3326,9 +3037,6 @@

Traceability Matrices and Graphs

- - - DD:loadDurFactor @@ -3348,9 +3056,6 @@

Traceability Matrices and Graphs

- - - DD:gTF @@ -3370,9 +3075,6 @@

Traceability Matrices and Graphs

- - - DD:standOffDist @@ -3392,9 +3094,6 @@

Traceability Matrices and Graphs

- - - DD:aspectRatio @@ -3414,9 +3113,6 @@

Traceability Matrices and Graphs

- - - DD:eqTNTW @@ -3436,31 +3132,6 @@

Traceability Matrices and Graphs

- - - - - - DD:calofDemand - - - - X - - X - - - - - - - - - - - - - TM:isSafeProb @@ -3480,9 +3151,6 @@

Traceability Matrices and Graphs

- - - TM:isSafeLoad @@ -3502,9 +3170,6 @@

Traceability Matrices and Graphs

- - - IM:riskFun @@ -3518,31 +3183,6 @@

Traceability Matrices and Graphs

- X - - - - - - - - - - - IM:stressDistFac - - - - - X - - - - - - - - X @@ -3565,9 +3205,6 @@

Traceability Matrices and Graphs

- X - - @@ -3580,9 +3217,6 @@

Traceability Matrices and Graphs

- X - - @@ -3594,28 +3228,6 @@

Traceability Matrices and Graphs

- - IM:tolLoad - - - - - X - - - - - - - - - - X - - - - - IM:sdfTol X @@ -3634,9 +3246,6 @@

Traceability Matrices and Graphs

- - - IM:probOfBreak @@ -3648,7 +3257,6 @@

Traceability Matrices and Graphs

- X @@ -3657,8 +3265,6 @@

Traceability Matrices and Graphs

- - IM:calofCapacity @@ -3671,8 +3277,6 @@

Traceability Matrices and Graphs

- - X @@ -3680,7 +3284,6 @@

Traceability Matrices and Graphs

- IM:isSafePb @@ -3696,9 +3299,6 @@

Traceability Matrices and Graphs

- - - X @@ -3712,9 +3312,6 @@

Traceability Matrices and Graphs

- X - - @@ -3741,14 +3338,11 @@

Traceability Matrices and Graphs

DD:standOffDist DD:aspectRatio DD:eqTNTW - DD:calofDemand TM:isSafeProb TM:isSafeLoad IM:riskFun - IM:stressDistFac IM:nFL IM:dimlessLoad - IM:tolLoad IM:sdfTol IM:probOfBreak IM:calofCapacity @@ -3805,9 +3399,6 @@

Traceability Matrices and Graphs

- - - FR:Input-Values @@ -3839,9 +3430,6 @@

Traceability Matrices and Graphs

- - - @@ -3875,9 +3463,6 @@

Traceability Matrices and Graphs

- - - @@ -3911,9 +3496,6 @@

Traceability Matrices and Graphs

- - - @@ -3935,9 +3517,6 @@

Traceability Matrices and Graphs

- - - X X @@ -3967,9 +3546,6 @@

Traceability Matrices and Graphs

- - - X X @@ -4015,9 +3591,6 @@

Traceability Matrices and Graphs

- - - NFR:Correctness @@ -4049,9 +3622,6 @@

Traceability Matrices and Graphs

- - - NFR:Verifiability @@ -4083,9 +3653,6 @@

Traceability Matrices and Graphs

- - - NFR:Understandability @@ -4117,9 +3684,6 @@

Traceability Matrices and Graphs

- - - NFR:Reusability @@ -4151,9 +3715,6 @@

Traceability Matrices and Graphs

- - - NFR:Maintainability @@ -4185,9 +3746,6 @@

Traceability Matrices and Graphs

- - - NFR:Portablity @@ -4219,9 +3777,6 @@

Traceability Matrices and Graphs

- - -

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 @@ "RefBy\n", "\n", "\n", - "[DD:calofDemand](#DD:calofDemand)\n", + "\n", "\n", "\n", "\n", @@ -814,7 +812,7 @@ "RefBy\n", "\n", "\n", - "[IM:tolLoad](#IM:tolLoad) and [IM:stressDistFac](#IM:stressDistFac)\n", + "\n", "\n", "\n", "\n", @@ -874,75 +872,7 @@ "RefBy\n", "\n", "\n", - "[DD:calofDemand](#DD:calofDemand)\n", - "\n", - "\n", - "\n", - "
\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", "\n", "
Refname\n", - "DD:calofDemand\n", - "
Label\n", - "\n", - "Applied load (demand)\n", - "
Symbol\n", - "\n", - "$q$\n", - "
Units\n", - "\n", - "$Pa$\n", - "
Equation\n", - "$$q=\\mathit{interpY}\\left(\\text{``TSD.txt''},\\mathit{SD},{w_{\\mathit{TNT}}}\\right)$$\n", - "
Description\n", - "\n", - "
  • $q$ is the applied load (demand) ($Pa$)
  • \n", - "
  • $interpY$ is the interpY (Unitless)
  • \n", - "
  • $SD$ is the stand off distance ($m$)
  • \n", - "
  • $w_TNT$ is the equivalent TNT charge mass ($kg$)
  • \n", - "
    Notes\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", - "
    Source\n", - "\n", - "astm2009 \n", - "
    RefBy\n", - "\n", - "[IM:isSafeLR](#IM:isSafeLR) and [IM:dimlessLoad](#IM:dimlessLoad)\n", "
    \n", @@ -1025,8 +955,6 @@ "$h$ is defined in [DD:minThick](#DD:minThick) and is based on the nominal thicknesses.\n", "\n", "$LDF$ is defined in [DD:loadDurFactor](#DD:loadDurFactor).\n", - "\n", - "$J$ is defined in [IM:stressDistFac](#IM:stressDistFac).\n", "\n", "\n", "\n", @@ -1045,90 +973,6 @@ "\n", "\n", "
    \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
    Refname\n", - "IM:stressDistFac\n", - "
    Label\n", - "\n", - "Stress distribution factor (Function)\n", - "
    Input\n", - "\n", - "$AR$, $q̂$\n", - "
    Output\n", - "\n", - "$J$\n", - "
    Input Constraints\n", - "$$\\mathit{AR}\\geq{}1$$\n", - "
    Output Constraints\n", - "$${J_{\\text{min}}}\\leq{}J\\leq{}{J_{\\text{max}}}$$\n", - "
    Equation\n", - "$$J=\\mathit{interpZ}\\left(\\text{``SDF.txt''},\\mathit{AR},\\hat{q}\\right)$$\n", - "
    Description\n", - "\n", - "
  • $J$ is the stress distribution factor (Function) (Unitless)
  • \n", - "
  • $interpZ$ is the interpZ (Unitless)
  • \n", - "
  • $AR$ is the aspect ratio (Unitless)
  • \n", - "
  • $q̂$ is the dimensionless load (Unitless)
  • \n", - "
    Notes\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", - "
    Source\n", - "\n", - "astm2009 \n", - "
    RefBy\n", - "\n", - "[IM:riskFun](#IM:riskFun)\n", - "
    \n", - "
    \n", "\n", "\n", "\n", @@ -1192,8 +1036,6 @@ "\n", "\n", "\n", "\n", - "\n", - "
    Notes\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", - "$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", - "[IM:stressDistFac](#IM:stressDistFac)\n", - "
    \n", - "
    \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", "\n", "
    Refname\n", - "IM:tolLoad\n", - "
    Label\n", - "\n", - "Tolerable load\n", - "
    Input\n", "\n", - "$AR$, $J_tol$\n", - "
    Output\n", - "\n", - "$q̂_tol$\n", - "
    Input Constraints\n", - "$$\\mathit{AR}\\geq{}1$$\n", - "
    Output Constraints\n", - "
    Equation\n", - "$${\\hat{q}_{\\text{tol}}}=\\mathit{interpY}\\left(\\text{``SDF.txt''},\\mathit{AR},{J_{\\text{tol}}}\\right)$$\n", - "
    Description\n", - "\n", - "
  • $q̂_tol$ is the tolerable load (Unitless)
  • \n", - "
  • $interpY$ is the interpY (Unitless)
  • \n", - "
  • $AR$ is the aspect ratio (Unitless)
  • \n", - "
  • $J_tol$ is the tolerable stress distribution factor (Unitless)
  • \n", - "
    Notes\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", - "
    Source\n", - "\n", - "astm2009 \n", - "
    RefBy\n", - "\n", - "[IM:nFL](#IM:nFL)\n", "
    \n", @@ -1480,7 +1237,7 @@ "RefBy\n", "\n", "\n", - "[IM:tolLoad](#IM:tolLoad)\n", + "\n", "\n", "\n", "\n", @@ -1790,8 +1547,6 @@ "If $isSafeLR$, the glass is considered safe. $isSafePb$ (from [IM:isSafePb](#IM:isSafePb)) and $isSafeLR$ are either both True or both False.\n", "\n", "$LR$ is defined in [IM:calofCapacity](#IM:calofCapacity) and is also called capacity.\n", - "\n", - "$q$ is the 3 second duration equivalent pressure, as given in [DD:calofDemand](#DD:calofDemand).\n", "\n", "\n", "\n", @@ -1918,13 +1673,11 @@ "|$h$|Minimum thickness|[DD:minThick](#DD:minThick)|$m$|\n", "|$isSafeLR$|3 second load equivalent resistance safety requirement|[IM:isSafeLR](#IM:isSafeLR)|--|\n", "|$isSafePb$|Probability of glass breakage safety requirement|[IM:isSafePb](#IM:isSafePb)|--|\n", - "|$J$|Stress distribution factor (Function)|[IM:stressDistFac](#IM:stressDistFac)|--|\n", "|$J_tol$|Tolerable stress distribution factor|[IM:sdfTol](#IM:sdfTol)|--|\n", "|$LR$|Load resistance|[IM:calofCapacity](#IM:calofCapacity)|$Pa$|\n", "|$NFL$|Non-factored load|[IM:nFL](#IM:nFL)|$Pa$|\n", "|$P_b$|Probability of breakage|[IM:probOfBreak](#IM:probOfBreak)|--|\n", "|$q̂$|Dimensionless load|[IM:dimlessLoad](#IM:dimlessLoad)|--|\n", - "|$q̂_tol$|Tolerable load|[IM:tolLoad](#IM:tolLoad)|--|\n", "\n", "\n", "## Non-Functional Requirements\n", @@ -2026,14 +1779,11 @@ "|[DD:standOffDist](#DD:standOffDist)|||||||||\n", "|[DD:aspectRatio](#DD:aspectRatio)|||||||||\n", "|[DD:eqTNTW](#DD:eqTNTW)|||||||||\n", - "|[DD:calofDemand](#DD:calofDemand)|||||||||\n", "|[TM:isSafeProb](#TM:isSafeProb)|||||||||\n", "|[TM:isSafeLoad](#TM:isSafeLoad)|||||||||\n", "|[IM:riskFun](#IM:riskFun)|||||||||\n", - "|[IM:stressDistFac](#IM:stressDistFac)|||||||||\n", "|[IM:nFL](#IM:nFL)||||X|||||\n", "|[IM:dimlessLoad](#IM:dimlessLoad)||||X|||||\n", - "|[IM:tolLoad](#IM:tolLoad)|||||||||\n", "|[IM:sdfTol](#IM:sdfTol)||||X|||||\n", "|[IM:probOfBreak](#IM:probOfBreak)|||||||||\n", "|[IM:calofCapacity](#IM:calofCapacity)|||||||||\n", @@ -2062,46 +1812,43 @@ "\n", "\n", "\n", - "||[DD:minThick](#DD:minThick)|[DD:loadDurFactor](#DD:loadDurFactor)|[DD:gTF](#DD:gTF)|[DD:standOffDist](#DD:standOffDist)|[DD:aspectRatio](#DD:aspectRatio)|[DD:eqTNTW](#DD:eqTNTW)|[DD:calofDemand](#DD:calofDemand)|[TM:isSafeProb](#TM:isSafeProb)|[TM:isSafeLoad](#TM:isSafeLoad)|[IM:riskFun](#IM:riskFun)|[IM:stressDistFac](#IM:stressDistFac)|[IM:nFL](#IM:nFL)|[IM:dimlessLoad](#IM:dimlessLoad)|[IM:tolLoad](#IM:tolLoad)|[IM:sdfTol](#IM:sdfTol)|[IM:probOfBreak](#IM:probOfBreak)|[IM:calofCapacity](#IM:calofCapacity)|[IM:isSafePb](#IM:isSafePb)|[IM:isSafeLR](#IM:isSafeLR)|\n", - "|:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |\n", - "|[DD:minThick](#DD:minThick)||||||||||||||||||||\n", - "|[DD:loadDurFactor](#DD:loadDurFactor)||||||||||||||||||||\n", - "|[DD:gTF](#DD:gTF)||||||||||||||||||||\n", - "|[DD:standOffDist](#DD:standOffDist)||||||||||||||||||||\n", - "|[DD:aspectRatio](#DD:aspectRatio)||||||||||||||||||||\n", - "|[DD:eqTNTW](#DD:eqTNTW)||||||||||||||||||||\n", - "|[DD:calofDemand](#DD:calofDemand)||||X||X||||||||||||||\n", - "|[TM:isSafeProb](#TM:isSafeProb)||||||||||||||||||||\n", - "|[TM:isSafeLoad](#TM:isSafeLoad)||||||||||||||||||||\n", - "|[IM:riskFun](#IM:riskFun)|X|X|||||||||X|||||||||\n", - "|[IM:stressDistFac](#IM:stressDistFac)|||||X||||||||X|||||||\n", - "|[IM:nFL](#IM:nFL)|X|||||||||||||X||||||\n", - "|[IM:dimlessLoad](#IM:dimlessLoad)|X||X||||X|||||||||||||\n", - "|[IM:tolLoad](#IM:tolLoad)|||||X||||||||||X|||||\n", - "|[IM:sdfTol](#IM:sdfTol)|X|X||||||||||||||||||\n", - "|[IM:probOfBreak](#IM:probOfBreak)||||||||||X||||||||||\n", - "|[IM:calofCapacity](#IM:calofCapacity)|||X|||||||||X||||||||\n", - "|[IM:isSafePb](#IM:isSafePb)||||||||||||||||X|||X|\n", - "|[IM:isSafeLR](#IM:isSafeLR)|||||||X||||||||||X|X||\n", + "||[DD:minThick](#DD:minThick)|[DD:loadDurFactor](#DD:loadDurFactor)|[DD:gTF](#DD:gTF)|[DD:standOffDist](#DD:standOffDist)|[DD:aspectRatio](#DD:aspectRatio)|[DD:eqTNTW](#DD:eqTNTW)|[TM:isSafeProb](#TM:isSafeProb)|[TM:isSafeLoad](#TM:isSafeLoad)|[IM:riskFun](#IM:riskFun)|[IM:nFL](#IM:nFL)|[IM:dimlessLoad](#IM:dimlessLoad)|[IM:sdfTol](#IM:sdfTol)|[IM:probOfBreak](#IM:probOfBreak)|[IM:calofCapacity](#IM:calofCapacity)|[IM:isSafePb](#IM:isSafePb)|[IM:isSafeLR](#IM:isSafeLR)|\n", + "|:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |\n", + "|[DD:minThick](#DD:minThick)|||||||||||||||||\n", + "|[DD:loadDurFactor](#DD:loadDurFactor)|||||||||||||||||\n", + "|[DD:gTF](#DD:gTF)|||||||||||||||||\n", + "|[DD:standOffDist](#DD:standOffDist)|||||||||||||||||\n", + "|[DD:aspectRatio](#DD:aspectRatio)|||||||||||||||||\n", + "|[DD:eqTNTW](#DD:eqTNTW)|||||||||||||||||\n", + "|[TM:isSafeProb](#TM:isSafeProb)|||||||||||||||||\n", + "|[TM:isSafeLoad](#TM:isSafeLoad)|||||||||||||||||\n", + "|[IM:riskFun](#IM:riskFun)|X|X|||||||||||||||\n", + "|[IM:nFL](#IM:nFL)|X||||||||||||||||\n", + "|[IM:dimlessLoad](#IM:dimlessLoad)|X||X||||||||||||||\n", + "|[IM:sdfTol](#IM:sdfTol)|X|X|||||||||||||||\n", + "|[IM:probOfBreak](#IM:probOfBreak)|||||||||X||||||||\n", + "|[IM:calofCapacity](#IM:calofCapacity)|||X|||||||X|||||||\n", + "|[IM:isSafePb](#IM:isSafePb)|||||||||||||X|||X|\n", + "|[IM:isSafeLR](#IM:isSafeLR)||||||||||||||X|X||\n", "\n", "\n", "\n", "\n", - "||[DD:minThick](#DD:minThick)|[DD:loadDurFactor](#DD:loadDurFactor)|[DD:gTF](#DD:gTF)|[DD:standOffDist](#DD:standOffDist)|[DD:aspectRatio](#DD:aspectRatio)|[DD:eqTNTW](#DD:eqTNTW)|[DD:calofDemand](#DD:calofDemand)|[TM:isSafeProb](#TM:isSafeProb)|[TM:isSafeLoad](#TM:isSafeLoad)|[IM:riskFun](#IM:riskFun)|[IM:stressDistFac](#IM:stressDistFac)|[IM:nFL](#IM:nFL)|[IM:dimlessLoad](#IM:dimlessLoad)|[IM:tolLoad](#IM:tolLoad)|[IM:sdfTol](#IM:sdfTol)|[IM:probOfBreak](#IM:probOfBreak)|[IM:calofCapacity](#IM:calofCapacity)|[IM:isSafePb](#IM:isSafePb)|[IM:isSafeLR](#IM:isSafeLR)|[FR:Input-Values](#inputValues)|[FR:System-Set-Values-Following-Assumptions](#sysSetValsFollowingAssumps)|[FR:Check-Input-with-Data_Constraints](#checkInputWithDataCons)|[FR:Output-Values-and-Known-Values](#outputValsAndKnownValues)|[FR:Check-Glass-Safety](#checkGlassSafety)|[FR:Output-Values](#outputValues)|[NFR:Correctness](#correct)|[NFR:Verifiability](#verifiable)|[NFR:Understandability](#understandable)|[NFR:Reusability](#reusable)|[NFR:Maintainability](#maintainable)|[NFR:Portablity](#portable)|\n", - "|:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |\n", - "|[GS:Predict-Glass-Withstands-Explosion](#willBreakGS)||||||||||||||||||||||||||||||||\n", - "|[FR:Input-Values](#inputValues)||||||||||||||||||||||||||||||||\n", - "|[FR:System-Set-Values-Following-Assumptions](#sysSetValsFollowingAssumps)||||||||||||||||||||||||||||||||\n", - "|[FR:Check-Input-with-Data_Constraints](#checkInputWithDataCons)||||||||||||||||||||||||||||||||\n", - "|[FR:Output-Values-and-Known-Values](#outputValsAndKnownValues)||||||||||||||||||||X|X|||||||||||\n", - "|[FR:Check-Glass-Safety](#checkGlassSafety)||||||||||||||||||X|X|||||||||||||\n", - "|[FR:Output-Values](#outputValues)||||||||||||||||||||||||||||||||\n", - "|[NFR:Correctness](#correct)||||||||||||||||||||||||||||||||\n", - "|[NFR:Verifiability](#verifiable)||||||||||||||||||||||||||||||||\n", - "|[NFR:Understandability](#understandable)||||||||||||||||||||||||||||||||\n", - "|[NFR:Reusability](#reusable)||||||||||||||||||||||||||||||||\n", - "|[NFR:Maintainability](#maintainable)||||||||||||||||||||||||||||||||\n", - "|[NFR:Portablity](#portable)||||||||||||||||||||||||||||||||\n", + "||[DD:minThick](#DD:minThick)|[DD:loadDurFactor](#DD:loadDurFactor)|[DD:gTF](#DD:gTF)|[DD:standOffDist](#DD:standOffDist)|[DD:aspectRatio](#DD:aspectRatio)|[DD:eqTNTW](#DD:eqTNTW)|[TM:isSafeProb](#TM:isSafeProb)|[TM:isSafeLoad](#TM:isSafeLoad)|[IM:riskFun](#IM:riskFun)|[IM:nFL](#IM:nFL)|[IM:dimlessLoad](#IM:dimlessLoad)|[IM:sdfTol](#IM:sdfTol)|[IM:probOfBreak](#IM:probOfBreak)|[IM:calofCapacity](#IM:calofCapacity)|[IM:isSafePb](#IM:isSafePb)|[IM:isSafeLR](#IM:isSafeLR)|[FR:Input-Values](#inputValues)|[FR:System-Set-Values-Following-Assumptions](#sysSetValsFollowingAssumps)|[FR:Check-Input-with-Data_Constraints](#checkInputWithDataCons)|[FR:Output-Values-and-Known-Values](#outputValsAndKnownValues)|[FR:Check-Glass-Safety](#checkGlassSafety)|[FR:Output-Values](#outputValues)|[NFR:Correctness](#correct)|[NFR:Verifiability](#verifiable)|[NFR:Understandability](#understandable)|[NFR:Reusability](#reusable)|[NFR:Maintainability](#maintainable)|[NFR:Portablity](#portable)|\n", + "|:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |:--- |\n", + "|[GS:Predict-Glass-Withstands-Explosion](#willBreakGS)|||||||||||||||||||||||||||||\n", + "|[FR:Input-Values](#inputValues)|||||||||||||||||||||||||||||\n", + "|[FR:System-Set-Values-Following-Assumptions](#sysSetValsFollowingAssumps)|||||||||||||||||||||||||||||\n", + "|[FR:Check-Input-with-Data_Constraints](#checkInputWithDataCons)|||||||||||||||||||||||||||||\n", + "|[FR:Output-Values-and-Known-Values](#outputValsAndKnownValues)|||||||||||||||||X|X|||||||||||\n", + "|[FR:Check-Glass-Safety](#checkGlassSafety)|||||||||||||||X|X|||||||||||||\n", + "|[FR:Output-Values](#outputValues)|||||||||||||||||||||||||||||\n", + "|[NFR:Correctness](#correct)|||||||||||||||||||||||||||||\n", + "|[NFR:Verifiability](#verifiable)|||||||||||||||||||||||||||||\n", + "|[NFR:Understandability](#understandable)|||||||||||||||||||||||||||||\n", + "|[NFR:Reusability](#reusable)|||||||||||||||||||||||||||||\n", + "|[NFR:Maintainability](#maintainable)|||||||||||||||||||||||||||||\n", + "|[NFR:Portablity](#portable)|||||||||||||||||||||||||||||\n", "\n", "\n", "The purpose of the traceability graphs is also to provide easy references on what has to be additionally modified if a certain component is changed. The arrows in the graphs represent dependencies. The component at the tail of an arrow is depended on by the component at the head of that arrow. Therefore, if a component is changed, the components that it points to should also be changed. [Fig:TraceGraphAvsA](#Figure:TraceGraphAvsA) shows the dependencies of assumptions on each other. [Fig:TraceGraphAvsAll](#Figure:TraceGraphAvsAll) shows the dependencies of data definitions, theoretical models, general definitions, instance models, requirements, likely changes, and unlikely changes on the assumptions. [Fig:TraceGraphRefvsRef](#Figure:TraceGraphRefvsRef) shows the dependencies of data definitions, theoretical models, general definitions, and instance models on each other. [Fig:TraceGraphAllvsR](#Figure:TraceGraphAllvsR) shows the dependencies of requirements and goal statements on the data definitions, theoretical models, general definitions, and instance models. [Fig:TraceGraphAllvsAll](#Figure:TraceGraphAllvsAll) shows the dependencies of dependencies of assumptions, models, definitions, requirements, goals, and changes with each other.\n", diff --git a/code/stable/glassbr/SRS/PDF/GlassBR_SRS.tex b/code/stable/glassbr/SRS/PDF/GlassBR_SRS.tex index 27894d93a32..c4e67263138 100644 --- a/code/stable/glassbr/SRS/PDF/GlassBR_SRS.tex +++ b/code/stable/glassbr/SRS/PDF/GlassBR_SRS.tex @@ -91,10 +91,6 @@ \subsection{Table of Symbols} \\ $h$ & Minimum thickness & ${\text{m}}$ \\ -$\mathit{interpY}$ & InterpY & -- -\\ -$\mathit{interpZ}$ & InterpZ & -- -\\ $\mathit{isSafeLoad}$ & Load resistance safety requirement & -- \\ $\mathit{isSafeLR}$ & 3 second load equivalent resistance safety requirement & -- @@ -631,8 +627,7 @@ \subsubsection{Data Definitions} Source & \cite{astm2009} \\ \midrule -RefBy & \hyperref[DD:calofDemand]{DD:calofDemand} - +RefBy & \\ \bottomrule \end{tabular} \end{minipage} @@ -670,8 +665,7 @@ \subsubsection{Data Definitions} Source & \cite{astm2009} \\ \midrule -RefBy & \hyperref[IM:tolLoad]{IM:tolLoad} and \hyperref[IM:stressDistFac]{IM:stressDistFac} - +RefBy & \\ \bottomrule \end{tabular} \end{minipage} @@ -706,48 +700,7 @@ \subsubsection{Data Definitions} Source & \cite{astm2009} \\ \midrule -RefBy & \hyperref[DD:calofDemand]{DD:calofDemand} - -\\ \bottomrule -\end{tabular} -\end{minipage} - -\medskip -\noindent -\begin{minipage}{\textwidth} -\begin{tabular}{>{\raggedright}p{0.13\textwidth}>{\raggedright\arraybackslash}p{0.82\textwidth}} -\toprule \textbf{Refname} & \textbf{DD:calofDemand} -\phantomsection -\label{DD:calofDemand} -\\ \midrule -Label & Applied load (demand) - -\\ \midrule -Symbol & $q$ - -\\ \midrule -Units & ${\text{Pa}}$ - -\\ \midrule -Equation & \begin{displaymath} - \resizeExpression{q=\mathit{interpY}\left(\text{``TSD.txt''},\mathit{SD},{w_{\mathit{TNT}}}\right)} - \end{displaymath} -\\ \midrule -Description & \begin{symbDescription} - \item{$q$ is the applied load (demand) (${\text{Pa}}$)} - \item{$\mathit{interpY}$ is the interpY (Unitless)} - \item{$\mathit{SD}$ is the stand off distance (${\text{m}}$)} - \item{${w_{\mathit{TNT}}}$ is the equivalent TNT charge mass (${\text{kg}}$)} - \end{symbDescription} -\\ \midrule -Notes & $q$, or applied load (demand), is the 3 second duration equivalent pressure obtained from \hyperref[Figure:demandVSsod]{Fig:demandVSsod} by interpolation using stand off distance ($\mathit{SD}$) and ${w_{\mathit{TNT}}}$ as parameters. ${w_{\mathit{TNT}}}$ is defined in \hyperref[DD:eqTNTW]{DD:eqTNTW}. $\mathit{SD}$ is the stand off distance as defined in \hyperref[DD:standOffDist]{DD:standOffDist}. - -\\ \midrule -Source & \cite{astm2009} - -\\ \midrule -RefBy & \hyperref[IM:isSafeLR]{IM:isSafeLR} and \hyperref[IM:dimlessLoad]{IM:dimlessLoad} - +RefBy & \\ \bottomrule \end{tabular} \end{minipage} @@ -806,8 +759,6 @@ \subsubsection{Instance Models} $\mathit{LDF}$ is defined in \hyperref[DD:loadDurFactor]{DD:loadDurFactor}. - $J$ is defined in \hyperref[IM:stressDistFac]{IM:stressDistFac}. - \\ \midrule Source & \cite{astm2009}, \cite[(Eqs. 4-5)]{beasonEtAl1998}, and \cite[(Eq. 14)]{campidelli} @@ -818,58 +769,6 @@ \subsubsection{Instance Models} \end{tabular} \end{minipage} -\medskip -\noindent -\begin{minipage}{\textwidth} -\begin{tabular}{>{\raggedright}p{0.13\textwidth}>{\raggedright\arraybackslash}p{0.82\textwidth}} -\toprule \textbf{Refname} & \textbf{IM:stressDistFac} -\phantomsection -\label{IM:stressDistFac} -\\ \midrule -Label & Stress distribution factor (Function) - -\\ \midrule -Input & $\mathit{AR}$, $\hat{q}$ - -\\ \midrule -Output & $J$ - -\\ \midrule -Input Constraints & \begin{displaymath} - \resizeExpression{\mathit{AR}\geq{}1} - \end{displaymath} -\\ \midrule -Output Constraints & \begin{displaymath} - \resizeExpression{{J_{\text{min}}}\leq{}J\leq{}{J_{\text{max}}}} - \end{displaymath} -\\ \midrule -Equation & \begin{displaymath} - \resizeExpression{J=\mathit{interpZ}\left(\text{``SDF.txt''},\mathit{AR},\hat{q}\right)} - \end{displaymath} -\\ \midrule -Description & \begin{symbDescription} - \item{$J$ is the stress distribution factor (Function) (Unitless)} - \item{$\mathit{interpZ}$ is the interpZ (Unitless)} - \item{$\mathit{AR}$ is the aspect ratio (Unitless)} - \item{$\hat{q}$ is the dimensionless load (Unitless)} - \end{symbDescription} -\\ \midrule -Notes & $J$ is obtained by interpolating from data shown in \hyperref[Figure:dimlessloadVSaspect]{Fig:dimlessloadVSaspect}. - - $\mathit{AR}$ is defined in \hyperref[DD:aspectRatio]{DD:aspectRatio}. - - $\hat{q}$ is defined in \hyperref[IM:dimlessLoad]{IM:dimlessLoad}. - -\\ \midrule -Source & \cite{astm2009} - -\\ \midrule -RefBy & \hyperref[IM:riskFun]{IM:riskFun} - -\\ \bottomrule -\end{tabular} -\end{minipage} - \medskip \noindent \begin{minipage}{\textwidth} @@ -909,9 +808,7 @@ \subsubsection{Instance Models} \item{$b$ is the plate width (short dimension) (${\text{m}}$)} \end{symbDescription} \\ \midrule -Notes & ${\hat{q}_{\text{tol}}}$ is defined in \hyperref[IM:tolLoad]{IM:tolLoad}. - - $E$ comes from \hyperref[assumpSV]{A:standardValues}. +Notes & $E$ comes from \hyperref[assumpSV]{A:standardValues}. $h$ is defined in \hyperref[DD:minThick]{DD:minThick} and is based on the nominal thicknesses. @@ -967,9 +864,7 @@ \subsubsection{Instance Models} \item{$\mathit{GTF}$ is the glass type factor (Unitless)} \end{symbDescription} \\ \midrule -Notes & $q$ is the 3 second duration equivalent pressure, as given in \hyperref[DD:calofDemand]{DD:calofDemand}. - - $a$ and $b$ are the dimensions of the plate, where ($a\geq{}b$). +Notes & $a$ and $b$ are the dimensions of the plate, where ($a\geq{}b$). $E$ comes from \hyperref[assumpSV]{A:standardValues}. @@ -981,58 +876,7 @@ \subsubsection{Instance Models} Source & \cite{astm2009} and \cite[(Eq. 7)]{campidelli} \\ \midrule -RefBy & \hyperref[IM:stressDistFac]{IM:stressDistFac} - -\\ \bottomrule -\end{tabular} -\end{minipage} - -\medskip -\noindent -\begin{minipage}{\textwidth} -\begin{tabular}{>{\raggedright}p{0.13\textwidth}>{\raggedright\arraybackslash}p{0.82\textwidth}} -\toprule \textbf{Refname} & \textbf{IM:tolLoad} -\phantomsection -\label{IM:tolLoad} -\\ \midrule -Label & Tolerable load - -\\ \midrule -Input & $\mathit{AR}$, ${J_{\text{tol}}}$ - -\\ \midrule -Output & ${\hat{q}_{\text{tol}}}$ - -\\ \midrule -Input Constraints & \begin{displaymath} - \resizeExpression{\mathit{AR}\geq{}1} - \end{displaymath} -\\ \midrule -Output Constraints & -\\ \midrule -Equation & \begin{displaymath} - \resizeExpression{{\hat{q}_{\text{tol}}}=\mathit{interpY}\left(\text{``SDF.txt''},\mathit{AR},{J_{\text{tol}}}\right)} - \end{displaymath} -\\ \midrule -Description & \begin{symbDescription} - \item{${\hat{q}_{\text{tol}}}$ is the tolerable load (Unitless)} - \item{$\mathit{interpY}$ is the interpY (Unitless)} - \item{$\mathit{AR}$ is the aspect ratio (Unitless)} - \item{${J_{\text{tol}}}$ is the tolerable stress distribution factor (Unitless)} - \end{symbDescription} -\\ \midrule -Notes & ${\hat{q}_{\text{tol}}}$ is obtained by interpolating from data shown in \hyperref[Figure:dimlessloadVSaspect]{Fig:dimlessloadVSaspect}. - - $\mathit{AR}$ is defined in \hyperref[DD:aspectRatio]{DD:aspectRatio}. - - ${J_{\text{tol}}}$ is defined in \hyperref[IM:sdfTol]{IM:sdfTol}. - -\\ \midrule -Source & \cite{astm2009} - -\\ \midrule -RefBy & \hyperref[IM:nFL]{IM:nFL} - +RefBy & \\ \bottomrule \end{tabular} \end{minipage} @@ -1096,8 +940,7 @@ \subsubsection{Instance Models} Source & \cite{astm2009} \\ \midrule -RefBy & \hyperref[IM:tolLoad]{IM:tolLoad} - +RefBy & \\ \bottomrule \end{tabular} \end{minipage} @@ -1286,8 +1129,6 @@ \subsubsection{Instance Models} $\mathit{LR}$ is defined in \hyperref[IM:calofCapacity]{IM:calofCapacity} and is also called capacity. - $q$ is the 3 second duration equivalent pressure, as given in \hyperref[DD:calofDemand]{DD:calofDemand}. - \\ \midrule Source & \cite{astm2009} @@ -1421,8 +1262,6 @@ \subsection{Functional Requirements} \\ $\mathit{isSafePb}$ & Probability of glass breakage safety requirement & \hyperref[IM:isSafePb]{IM:isSafePb} & -- \\ -$J$ & Stress distribution factor (Function) & \hyperref[IM:stressDistFac]{IM:stressDistFac} & -- -\\ ${J_{\text{tol}}}$ & Tolerable stress distribution factor & \hyperref[IM:sdfTol]{IM:sdfTol} & -- \\ $\mathit{LR}$ & Load resistance & \hyperref[IM:calofCapacity]{IM:calofCapacity} & ${\text{Pa}}$ @@ -1432,8 +1271,6 @@ \subsection{Functional Requirements} ${P_{\text{b}}}$ & Probability of breakage & \hyperref[IM:probOfBreak]{IM:probOfBreak} & -- \\ $\hat{q}$ & Dimensionless load & \hyperref[IM:dimlessLoad]{IM:dimlessLoad} & -- -\\ -${\hat{q}_{\text{tol}}}$ & Tolerable load & \hyperref[IM:tolLoad]{IM:tolLoad} & -- \label{Table:ReqOutputs} \end{longtblr} \subsection{Non-Functional Requirements} @@ -1510,22 +1347,16 @@ \section{Traceability Matrices and Graphs} \\ \hyperref[DD:eqTNTW]{DD:eqTNTW} & & & & & & & & \\ -\hyperref[DD:calofDemand]{DD:calofDemand} & & & & & & & & -\\ \hyperref[TM:isSafeProb]{TM:isSafeProb} & & & & & & & & \\ \hyperref[TM:isSafeLoad]{TM:isSafeLoad} & & & & & & & & \\ \hyperref[IM:riskFun]{IM:riskFun} & & & & & & & & \\ -\hyperref[IM:stressDistFac]{IM:stressDistFac} & & & & & & & & -\\ \hyperref[IM:nFL]{IM:nFL} & & & & X & & & & \\ \hyperref[IM:dimlessLoad]{IM:dimlessLoad} & & & & X & & & & \\ -\hyperref[IM:tolLoad]{IM:tolLoad} & & & & & & & & -\\ \hyperref[IM:sdfTol]{IM:sdfTol} & & & & X & & & & \\ \hyperref[IM:probOfBreak]{IM:probOfBreak} & & & & & & & & @@ -1577,78 +1408,72 @@ \section{Traceability Matrices and Graphs} \end{longtblr} \begin{longtblr} [caption={Traceability Matrix Showing the Connections Between Items and Other Sections}] -{colspec={l l l l l l l l l l l l l l l l l l l l}, rowhead=1, hline{1,Z}=\heavyrulewidth, hline{2}=\lightrulewidth} -\textbf{} & \textbf{\hyperref[DD:minThick]{DD:minThick}} & \textbf{\hyperref[DD:loadDurFactor]{DD:loadDurFactor}} & \textbf{\hyperref[DD:gTF]{DD:gTF}} & \textbf{\hyperref[DD:standOffDist]{DD:standOffDist}} & \textbf{\hyperref[DD:aspectRatio]{DD:aspectRatio}} & \textbf{\hyperref[DD:eqTNTW]{DD:eqTNTW}} & \textbf{\hyperref[DD:calofDemand]{DD:calofDemand}} & \textbf{\hyperref[TM:isSafeProb]{TM:isSafeProb}} & \textbf{\hyperref[TM:isSafeLoad]{TM:isSafeLoad}} & \textbf{\hyperref[IM:riskFun]{IM:riskFun}} & \textbf{\hyperref[IM:stressDistFac]{IM:stressDistFac}} & \textbf{\hyperref[IM:nFL]{IM:nFL}} & \textbf{\hyperref[IM:dimlessLoad]{IM:dimlessLoad}} & \textbf{\hyperref[IM:tolLoad]{IM:tolLoad}} & \textbf{\hyperref[IM:sdfTol]{IM:sdfTol}} & \textbf{\hyperref[IM:probOfBreak]{IM:probOfBreak}} & \textbf{\hyperref[IM:calofCapacity]{IM:calofCapacity}} & \textbf{\hyperref[IM:isSafePb]{IM:isSafePb}} & \textbf{\hyperref[IM:isSafeLR]{IM:isSafeLR}} -\\ -\hyperref[DD:minThick]{DD:minThick} & & & & & & & & & & & & & & & & & & & -\\ -\hyperref[DD:loadDurFactor]{DD:loadDurFactor} & & & & & & & & & & & & & & & & & & & -\\ -\hyperref[DD:gTF]{DD:gTF} & & & & & & & & & & & & & & & & & & & +{colspec={l l l l l l l l l l l l l l l l l}, rowhead=1, hline{1,Z}=\heavyrulewidth, hline{2}=\lightrulewidth} +\textbf{} & \textbf{\hyperref[DD:minThick]{DD:minThick}} & \textbf{\hyperref[DD:loadDurFactor]{DD:loadDurFactor}} & \textbf{\hyperref[DD:gTF]{DD:gTF}} & \textbf{\hyperref[DD:standOffDist]{DD:standOffDist}} & \textbf{\hyperref[DD:aspectRatio]{DD:aspectRatio}} & \textbf{\hyperref[DD:eqTNTW]{DD:eqTNTW}} & \textbf{\hyperref[TM:isSafeProb]{TM:isSafeProb}} & \textbf{\hyperref[TM:isSafeLoad]{TM:isSafeLoad}} & \textbf{\hyperref[IM:riskFun]{IM:riskFun}} & \textbf{\hyperref[IM:nFL]{IM:nFL}} & \textbf{\hyperref[IM:dimlessLoad]{IM:dimlessLoad}} & \textbf{\hyperref[IM:sdfTol]{IM:sdfTol}} & \textbf{\hyperref[IM:probOfBreak]{IM:probOfBreak}} & \textbf{\hyperref[IM:calofCapacity]{IM:calofCapacity}} & \textbf{\hyperref[IM:isSafePb]{IM:isSafePb}} & \textbf{\hyperref[IM:isSafeLR]{IM:isSafeLR}} \\ -\hyperref[DD:standOffDist]{DD:standOffDist} & & & & & & & & & & & & & & & & & & & +\hyperref[DD:minThick]{DD:minThick} & & & & & & & & & & & & & & & & \\ -\hyperref[DD:aspectRatio]{DD:aspectRatio} & & & & & & & & & & & & & & & & & & & +\hyperref[DD:loadDurFactor]{DD:loadDurFactor} & & & & & & & & & & & & & & & & \\ -\hyperref[DD:eqTNTW]{DD:eqTNTW} & & & & & & & & & & & & & & & & & & & +\hyperref[DD:gTF]{DD:gTF} & & & & & & & & & & & & & & & & \\ -\hyperref[DD:calofDemand]{DD:calofDemand} & & & & X & & X & & & & & & & & & & & & & +\hyperref[DD:standOffDist]{DD:standOffDist} & & & & & & & & & & & & & & & & \\ -\hyperref[TM:isSafeProb]{TM:isSafeProb} & & & & & & & & & & & & & & & & & & & +\hyperref[DD:aspectRatio]{DD:aspectRatio} & & & & & & & & & & & & & & & & \\ -\hyperref[TM:isSafeLoad]{TM:isSafeLoad} & & & & & & & & & & & & & & & & & & & +\hyperref[DD:eqTNTW]{DD:eqTNTW} & & & & & & & & & & & & & & & & \\ -\hyperref[IM:riskFun]{IM:riskFun} & X & X & & & & & & & & & X & & & & & & & & +\hyperref[TM:isSafeProb]{TM:isSafeProb} & & & & & & & & & & & & & & & & \\ -\hyperref[IM:stressDistFac]{IM:stressDistFac} & & & & & X & & & & & & & & X & & & & & & +\hyperref[TM:isSafeLoad]{TM:isSafeLoad} & & & & & & & & & & & & & & & & \\ -\hyperref[IM:nFL]{IM:nFL} & X & & & & & & & & & & & & & X & & & & & +\hyperref[IM:riskFun]{IM:riskFun} & X & X & & & & & & & & & & & & & & \\ -\hyperref[IM:dimlessLoad]{IM:dimlessLoad} & X & & X & & & & X & & & & & & & & & & & & +\hyperref[IM:nFL]{IM:nFL} & X & & & & & & & & & & & & & & & \\ -\hyperref[IM:tolLoad]{IM:tolLoad} & & & & & X & & & & & & & & & & X & & & & +\hyperref[IM:dimlessLoad]{IM:dimlessLoad} & X & & X & & & & & & & & & & & & & \\ -\hyperref[IM:sdfTol]{IM:sdfTol} & X & X & & & & & & & & & & & & & & & & & +\hyperref[IM:sdfTol]{IM:sdfTol} & X & X & & & & & & & & & & & & & & \\ -\hyperref[IM:probOfBreak]{IM:probOfBreak} & & & & & & & & & & X & & & & & & & & & +\hyperref[IM:probOfBreak]{IM:probOfBreak} & & & & & & & & & X & & & & & & & \\ -\hyperref[IM:calofCapacity]{IM:calofCapacity} & & & X & & & & & & & & & X & & & & & & & +\hyperref[IM:calofCapacity]{IM:calofCapacity} & & & X & & & & & & & X & & & & & & \\ -\hyperref[IM:isSafePb]{IM:isSafePb} & & & & & & & & & & & & & & & & X & & & X +\hyperref[IM:isSafePb]{IM:isSafePb} & & & & & & & & & & & & & X & & & X \\ -\hyperref[IM:isSafeLR]{IM:isSafeLR} & & & & & & & X & & & & & & & & & & X & X & +\hyperref[IM:isSafeLR]{IM:isSafeLR} & & & & & & & & & & & & & & X & X & \label{Table:TraceMatRefvsRef} \end{longtblr} \begin{longtblr} [caption={Traceability Matrix Showing the Connections Between Requirements, Goal Statements and Other Items}] -{colspec={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}, rowhead=1, hline{1,Z}=\heavyrulewidth, hline{2}=\lightrulewidth} -\textbf{} & \textbf{\hyperref[DD:minThick]{DD:minThick}} & \textbf{\hyperref[DD:loadDurFactor]{DD:loadDurFactor}} & \textbf{\hyperref[DD:gTF]{DD:gTF}} & \textbf{\hyperref[DD:standOffDist]{DD:standOffDist}} & \textbf{\hyperref[DD:aspectRatio]{DD:aspectRatio}} & \textbf{\hyperref[DD:eqTNTW]{DD:eqTNTW}} & \textbf{\hyperref[DD:calofDemand]{DD:calofDemand}} & \textbf{\hyperref[TM:isSafeProb]{TM:isSafeProb}} & \textbf{\hyperref[TM:isSafeLoad]{TM:isSafeLoad}} & \textbf{\hyperref[IM:riskFun]{IM:riskFun}} & \textbf{\hyperref[IM:stressDistFac]{IM:stressDistFac}} & \textbf{\hyperref[IM:nFL]{IM:nFL}} & \textbf{\hyperref[IM:dimlessLoad]{IM:dimlessLoad}} & \textbf{\hyperref[IM:tolLoad]{IM:tolLoad}} & \textbf{\hyperref[IM:sdfTol]{IM:sdfTol}} & \textbf{\hyperref[IM:probOfBreak]{IM:probOfBreak}} & \textbf{\hyperref[IM:calofCapacity]{IM:calofCapacity}} & \textbf{\hyperref[IM:isSafePb]{IM:isSafePb}} & \textbf{\hyperref[IM:isSafeLR]{IM:isSafeLR}} & \textbf{\hyperref[inputValues]{FR:Input-Values}} & \textbf{\hyperref[sysSetValsFollowingAssumps]{FR:System-Set-Values-Following-Assumptions}} & \textbf{\hyperref[checkInputWithDataCons]{FR:Check-Input-with-Data\_Constraints}} & \textbf{\hyperref[outputValsAndKnownValues]{FR:Output-Values-and-Known-Values}} & \textbf{\hyperref[checkGlassSafety]{FR:Check-Glass-Safety}} & \textbf{\hyperref[outputValues]{FR:Output-Values}} & \textbf{\hyperref[correct]{NFR:Correctness}} & \textbf{\hyperref[verifiable]{NFR:Verifiability}} & \textbf{\hyperref[understandable]{NFR:Understandability}} & \textbf{\hyperref[reusable]{NFR:Reusability}} & \textbf{\hyperref[maintainable]{NFR:Maintainability}} & \textbf{\hyperref[portable]{NFR:Portablity}} +{colspec={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}, rowhead=1, hline{1,Z}=\heavyrulewidth, hline{2}=\lightrulewidth} +\textbf{} & \textbf{\hyperref[DD:minThick]{DD:minThick}} & \textbf{\hyperref[DD:loadDurFactor]{DD:loadDurFactor}} & \textbf{\hyperref[DD:gTF]{DD:gTF}} & \textbf{\hyperref[DD:standOffDist]{DD:standOffDist}} & \textbf{\hyperref[DD:aspectRatio]{DD:aspectRatio}} & \textbf{\hyperref[DD:eqTNTW]{DD:eqTNTW}} & \textbf{\hyperref[TM:isSafeProb]{TM:isSafeProb}} & \textbf{\hyperref[TM:isSafeLoad]{TM:isSafeLoad}} & \textbf{\hyperref[IM:riskFun]{IM:riskFun}} & \textbf{\hyperref[IM:nFL]{IM:nFL}} & \textbf{\hyperref[IM:dimlessLoad]{IM:dimlessLoad}} & \textbf{\hyperref[IM:sdfTol]{IM:sdfTol}} & \textbf{\hyperref[IM:probOfBreak]{IM:probOfBreak}} & \textbf{\hyperref[IM:calofCapacity]{IM:calofCapacity}} & \textbf{\hyperref[IM:isSafePb]{IM:isSafePb}} & \textbf{\hyperref[IM:isSafeLR]{IM:isSafeLR}} & \textbf{\hyperref[inputValues]{FR:Input-Values}} & \textbf{\hyperref[sysSetValsFollowingAssumps]{FR:System-Set-Values-Following-Assumptions}} & \textbf{\hyperref[checkInputWithDataCons]{FR:Check-Input-with-Data\_Constraints}} & \textbf{\hyperref[outputValsAndKnownValues]{FR:Output-Values-and-Known-Values}} & \textbf{\hyperref[checkGlassSafety]{FR:Check-Glass-Safety}} & \textbf{\hyperref[outputValues]{FR:Output-Values}} & \textbf{\hyperref[correct]{NFR:Correctness}} & \textbf{\hyperref[verifiable]{NFR:Verifiability}} & \textbf{\hyperref[understandable]{NFR:Understandability}} & \textbf{\hyperref[reusable]{NFR:Reusability}} & \textbf{\hyperref[maintainable]{NFR:Maintainability}} & \textbf{\hyperref[portable]{NFR:Portablity}} \\ -\hyperref[willBreakGS]{GS:Predict-Glass-Withstands-Explosion} & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & +\hyperref[willBreakGS]{GS:Predict-Glass-Withstands-Explosion} & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ -\hyperref[inputValues]{FR:Input-Values} & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & +\hyperref[inputValues]{FR:Input-Values} & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ -\hyperref[sysSetValsFollowingAssumps]{FR:System-Set-Values-Following-Assumptions} & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & +\hyperref[sysSetValsFollowingAssumps]{FR:System-Set-Values-Following-Assumptions} & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ -\hyperref[checkInputWithDataCons]{FR:Check-Input-with-Data\_Constraints} & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & +\hyperref[checkInputWithDataCons]{FR:Check-Input-with-Data\_Constraints} & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ -\hyperref[outputValsAndKnownValues]{FR:Output-Values-and-Known-Values} & & & & & & & & & & & & & & & & & & & & X & X & & & & & & & & & & +\hyperref[outputValsAndKnownValues]{FR:Output-Values-and-Known-Values} & & & & & & & & & & & & & & & & & X & X & & & & & & & & & & \\ -\hyperref[checkGlassSafety]{FR:Check-Glass-Safety} & & & & & & & & & & & & & & & & & & X & X & & & & & & & & & & & & +\hyperref[checkGlassSafety]{FR:Check-Glass-Safety} & & & & & & & & & & & & & & & X & X & & & & & & & & & & & & \\ -\hyperref[outputValues]{FR:Output-Values} & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & +\hyperref[outputValues]{FR:Output-Values} & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ -\hyperref[correct]{NFR:Correctness} & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & +\hyperref[correct]{NFR:Correctness} & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ -\hyperref[verifiable]{NFR:Verifiability} & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & +\hyperref[verifiable]{NFR:Verifiability} & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ -\hyperref[understandable]{NFR:Understandability} & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & +\hyperref[understandable]{NFR:Understandability} & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ -\hyperref[reusable]{NFR:Reusability} & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & +\hyperref[reusable]{NFR:Reusability} & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ -\hyperref[maintainable]{NFR:Maintainability} & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & +\hyperref[maintainable]{NFR:Maintainability} & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ -\hyperref[portable]{NFR:Portablity} & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & +\hyperref[portable]{NFR:Portablity} & & & & & & & & & & & & & & & & & & & & & & & & & & & & \label{Table:TraceMatAllvsR} \end{longtblr} The purpose of the traceability graphs is also to provide easy references on what has to be additionally modified if a certain component is changed. The arrows in the graphs represent dependencies. The component at the tail of an arrow is depended on by the component at the head of that arrow. Therefore, if a component is changed, the components that it points to should also be changed. \hyperref[Figure:TraceGraphAvsA]{Fig:TraceGraphAvsA} shows the dependencies of assumptions on each other. \hyperref[Figure:TraceGraphAvsAll]{Fig:TraceGraphAvsAll} shows the dependencies of data definitions, theoretical models, general definitions, instance models, requirements, likely changes, and unlikely changes on the assumptions. \hyperref[Figure:TraceGraphRefvsRef]{Fig:TraceGraphRefvsRef} shows the dependencies of data definitions, theoretical models, general definitions, and instance models on each other. \hyperref[Figure:TraceGraphAllvsR]{Fig:TraceGraphAllvsR} shows the dependencies of requirements and goal statements on the data definitions, theoretical models, general definitions, and instance models. \hyperref[Figure:TraceGraphAllvsAll]{Fig:TraceGraphAllvsAll} shows the dependencies of dependencies of assumptions, models, definitions, requirements, goals, and changes with each other. diff --git a/code/stable/glassbr/SRS/mdBook/src/SecDDs.md b/code/stable/glassbr/SRS/mdBook/src/SecDDs.md index fc5de77b614..73ae796561d 100644 --- a/code/stable/glassbr/SRS/mdBook/src/SecDDs.md +++ b/code/stable/glassbr/SRS/mdBook/src/SecDDs.md @@ -67,7 +67,7 @@ This section collects and defines all the data needed to build the instance mode |Equation |\\[\mathit{SD}=\sqrt{{\mathit{SD}\_{\text{x}}}^{2}+{\mathit{SD}\_{\text{y}}}^{2}+{\mathit{SD}\_{\text{z}}}^{2}}\\] | |Description|

    | |Source |[astm2009](./SecReferences.md#astm2009) | -|RefBy |[DD:calofDemand](./SecDDs.md#DD:calofDemand) | +|RefBy | |
    @@ -84,7 +84,7 @@ This section collects and defines all the data needed to build the instance mode |Description|| |Notes | | |Source |[astm2009](./SecReferences.md#astm2009) | -|RefBy |[IM:tolLoad](./SecIMs.md#IM:tolLoad) and [IM:stressDistFac](./SecIMs.md#IM:stressDistFac) | +|RefBy | |
    @@ -100,21 +100,4 @@ This section collects and defines all the data needed to build the instance mode |Equation |\\[{w\_{\mathit{TNT}}}=w\\,\mathit{TNT}\\] | |Description|| |Source |[astm2009](./SecReferences.md#astm2009) | -|RefBy |[DD:calofDemand](./SecDDs.md#DD:calofDemand) | - -
    - -## Applied load (demand) {#DD:calofDemand} - -
    - -|Refname |DD:calofDemand | -|:----------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -|Label |Applied load (demand) | -|Symbol |\\(q\\) | -|Units |\\({\text{Pa}}\\) | -|Equation |\\[q=\mathit{interpY}\left(\text{\\(\``\\)TSD.txt''},\mathit{SD},{w\_{\mathit{TNT}}}\right)\\] | -|Description| | -|Notes || -|Source |[astm2009](./SecReferences.md#astm2009) | -|RefBy |[IM:isSafeLR](./SecIMs.md#IM:isSafeLR) and [IM:dimlessLoad](./SecIMs.md#IM:dimlessLoad) | +|RefBy | | diff --git a/code/stable/glassbr/SRS/mdBook/src/SecFRs.md b/code/stable/glassbr/SRS/mdBook/src/SecFRs.md index 322a748d04b..50c7bd041e8 100644 --- a/code/stable/glassbr/SRS/mdBook/src/SecFRs.md +++ b/code/stable/glassbr/SRS/mdBook/src/SecFRs.md @@ -62,20 +62,18 @@ Output-Values: Output the values from the table for [Required Outputs](./SecFRs.
    -|Symbol |Description |Source |Units | -|:----------------------------|:-----------------------------------------------------|:-----------------------------------------------|:----------------| -|\\(\mathit{AR}\\) |Aspect ratio |[DD:aspectRatio](./SecDDs.md#DD:aspectRatio) |-- | -|\\(B\\) |Risk of failure |[IM:riskFun](./SecIMs.md#IM:riskFun) |-- | -|\\(\mathit{GTF}\\) |Glass type factor |[DD:gTF](./SecDDs.md#DD:gTF) |-- | -|\\(h\\) |Minimum thickness |[DD:minThick](./SecDDs.md#DD:minThick) |\\({\text{m}}\\) | -|\\(\mathit{isSafeLR}\\) |3 second load equivalent resistance safety requirement|[IM:isSafeLR](./SecIMs.md#IM:isSafeLR) |-- | -|\\(\mathit{isSafePb}\\) |Probability of glass breakage safety requirement |[IM:isSafePb](./SecIMs.md#IM:isSafePb) |-- | -|\\(J\\) |Stress distribution factor (Function) |[IM:stressDistFac](./SecIMs.md#IM:stressDistFac)|-- | -|\\({J\_{\text{tol}}}\\) |Tolerable stress distribution factor |[IM:sdfTol](./SecIMs.md#IM:sdfTol) |-- | -|\\(\mathit{LR}\\) |Load resistance |[IM:calofCapacity](./SecIMs.md#IM:calofCapacity)|\\({\text{Pa}}\\)| -|\\(\mathit{NFL}\\) |Non-factored load |[IM:nFL](./SecIMs.md#IM:nFL) |\\({\text{Pa}}\\)| -|\\({P\_{\text{b}}}\\) |Probability of breakage |[IM:probOfBreak](./SecIMs.md#IM:probOfBreak) |-- | -|\\(\hat{q}\\) |Dimensionless load |[IM:dimlessLoad](./SecIMs.md#IM:dimlessLoad) |-- | -|\\({\hat{q}\_{\text{tol}}}\\)|Tolerable load |[IM:tolLoad](./SecIMs.md#IM:tolLoad) |-- | +|Symbol |Description |Source |Units | +|:----------------------|:-----------------------------------------------------|:-----------------------------------------------|:----------------| +|\\(\mathit{AR}\\) |Aspect ratio |[DD:aspectRatio](./SecDDs.md#DD:aspectRatio) |-- | +|\\(B\\) |Risk of failure |[IM:riskFun](./SecIMs.md#IM:riskFun) |-- | +|\\(\mathit{GTF}\\) |Glass type factor |[DD:gTF](./SecDDs.md#DD:gTF) |-- | +|\\(h\\) |Minimum thickness |[DD:minThick](./SecDDs.md#DD:minThick) |\\({\text{m}}\\) | +|\\(\mathit{isSafeLR}\\)|3 second load equivalent resistance safety requirement|[IM:isSafeLR](./SecIMs.md#IM:isSafeLR) |-- | +|\\(\mathit{isSafePb}\\)|Probability of glass breakage safety requirement |[IM:isSafePb](./SecIMs.md#IM:isSafePb) |-- | +|\\({J\_{\text{tol}}}\\)|Tolerable stress distribution factor |[IM:sdfTol](./SecIMs.md#IM:sdfTol) |-- | +|\\(\mathit{LR}\\) |Load resistance |[IM:calofCapacity](./SecIMs.md#IM:calofCapacity)|\\({\text{Pa}}\\)| +|\\(\mathit{NFL}\\) |Non-factored load |[IM:nFL](./SecIMs.md#IM:nFL) |\\({\text{Pa}}\\)| +|\\({P\_{\text{b}}}\\) |Probability of breakage |[IM:probOfBreak](./SecIMs.md#IM:probOfBreak) |-- | +|\\(\hat{q}\\) |Dimensionless load |[IM:dimlessLoad](./SecIMs.md#IM:dimlessLoad) |-- | **

    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 || -|Notes | | +|Notes | | |Source |[astm2009](./SecReferences.md#astm2009), [beasonEtAl1998](./SecReferences.md#beasonEtAl1998) (Eqs. 4-5), and [campidelli](./SecReferences.md#campidelli) (Eq. 14) | |RefBy |[IM:probOfBreak](./SecIMs.md#IM:probOfBreak) |
    -## Stress distribution factor (Function) {#IM:stressDistFac} - -
    - -|Refname |IM:stressDistFac | -|:-----------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -|Label |Stress distribution factor (Function) | -|Input |\\(\mathit{AR}\\), \\(\hat{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 || -|Source |[astm2009](./SecReferences.md#astm2009) | -|RefBy |[IM:riskFun](./SecIMs.md#IM:riskFun) | - -
    - ## Non-factored load {#IM:nFL}
    @@ -57,7 +38,7 @@ The goal [GS:Predict-Glass-Withstands-Explosion](./SecGoalStmt.md#willBreakGS) i |Output Constraints| | |Equation |\\[\mathit{NFL}=\frac{{\hat{q}\_{\text{tol}}}\\,E\\,h^{4}}{\left(a\\,b\right)^{2}}\\] | |Description || -|Notes | | +|Notes | | |Source |[astm2009](./SecReferences.md#astm2009) | |RefBy |[IM:calofCapacity](./SecIMs.md#IM:calofCapacity) | @@ -76,28 +57,9 @@ The goal [GS:Predict-Glass-Withstands-Explosion](./SecGoalStmt.md#willBreakGS) i |Output Constraints| | |Equation |\\[\hat{q}=\frac{q\\,\left(a\\,b\right)^{2}}{E\\,h^{4}\\,\mathit{GTF}}\\] | |Description || -|Notes | | +|Notes | | |Source |[astm2009](./SecReferences.md#astm2009) and [campidelli](./SecReferences.md#campidelli) (Eq. 7) | -|RefBy |[IM:stressDistFac](./SecIMs.md#IM:stressDistFac) | - -
    - -## Tolerable load {#IM:tolLoad} - -
    - -|Refname |IM:tolLoad | -|:-----------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -|Label |Tolerable load | -|Input |\\(\mathit{AR}\\), \\({J\_{\text{tol}}}\\) | -|Output |\\({\hat{q}\_{\text{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 || -|Source |[astm2009](./SecReferences.md#astm2009) | -|RefBy |[IM:nFL](./SecIMs.md#IM:nFL) | +|RefBy | |
    @@ -116,7 +78,7 @@ The goal [GS:Predict-Glass-Withstands-Explosion](./SecGoalStmt.md#willBreakGS) i |Description |
    • \\({J\_{\text{tol}}}\\) is the tolerable stress distribution factor (Unitless)
    • \\({P\_{\text{b}\text{tol}}}\\) is the tolerable probability of breakage (Unitless)
    • \\(a\\) is the plate length (long dimension) (\\({\text{m}}\\))
    • \\(b\\) is the plate width (short dimension) (\\({\text{m}}\\))
    • \\(m\\) is the surface flaw parameter (\\(\frac{\text{m}^{12}}{\text{N}^{7}}\\))
    • \\(k\\) is the surface flaw parameter (\\(\frac{\text{m}^{12}}{\text{N}^{7}}\\))
    • \\(E\\) is the modulus of elasticity of glass (\\({\text{Pa}}\\))
    • \\(h\\) is the minimum thickness (\\({\text{m}}\\))
    • \\(\mathit{LDF}\\) is the load duration factor (Unitless)
    | |Notes |
    • \\({P\_{\text{b}\text{tol}}}\\) is entered by the user.
    • \\(a\\) and \\(b\\) are the dimensions of the plate, where (\\(a\geq{}b\\)).
    • \\(m\\), \\(k\\), and \\(E\\) come from [A:standardValues](./SecAssumps.md#assumpSV).
    • \\(h\\) is defined in [DD:minThick](./SecDDs.md#DD:minThick) and is based on the nominal thicknesses.
    • \\(\mathit{LDF}\\) is defined in [DD:loadDurFactor](./SecDDs.md#DD:loadDurFactor).
    | |Source |[astm2009](./SecReferences.md#astm2009) | -|RefBy |[IM:tolLoad](./SecIMs.md#IM:tolLoad) | +|RefBy | |
    @@ -181,15 +143,15 @@ The goal [GS:Predict-Glass-Withstands-Explosion](./SecGoalStmt.md#willBreakGS) i
    -|Refname |IM:isSafeLR | -|:-----------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -|Label |Safety Req-LR | -|Input |\\(\mathit{LR}\\), \\(q\\) | -|Output |\\(\mathit{isSafeLR}\\) | -|Input Constraints |\\[\mathit{LR}\gt{}0\\]\\[q\gt{}0\\] | -|Output Constraints| | -|Equation |\\[\mathit{isSafeLR}=\mathit{LR}\gt{}q\\] | -|Description |
    • \\(\mathit{isSafeLR}\\) is the 3 second load equivalent resistance safety requirement (Unitless)
    • \\(\mathit{LR}\\) is the load resistance (\\({\text{Pa}}\\))
    • \\(q\\) is the applied load (demand) (\\({\text{Pa}}\\))
    | -|Notes |
    • If \\(\mathit{isSafeLR}\\), the glass is considered safe. \\(\mathit{isSafePb}\\) (from [IM:isSafePb](./SecIMs.md#IM:isSafePb)) and \\(\mathit{isSafeLR}\\) are either both True or both False.
    • \\(\mathit{LR}\\) is defined in [IM:calofCapacity](./SecIMs.md#IM:calofCapacity) and is also called capacity.
    • \\(q\\) is the 3 second duration equivalent pressure, as given in [DD:calofDemand](./SecDDs.md#DD:calofDemand).
    | -|Source |[astm2009](./SecReferences.md#astm2009) | -|RefBy |[IM:isSafePb](./SecIMs.md#IM:isSafePb) and [FR:Check-Glass-Safety](./SecFRs.md#checkGlassSafety) | +|Refname |IM:isSafeLR | +|:-----------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +|Label |Safety Req-LR | +|Input |\\(\mathit{LR}\\), \\(q\\) | +|Output |\\(\mathit{isSafeLR}\\) | +|Input Constraints |\\[\mathit{LR}\gt{}0\\]\\[q\gt{}0\\] | +|Output Constraints| | +|Equation |\\[\mathit{isSafeLR}=\mathit{LR}\gt{}q\\] | +|Description |
    • \\(\mathit{isSafeLR}\\) is the 3 second load equivalent resistance safety requirement (Unitless)
    • \\(\mathit{LR}\\) is the load resistance (\\({\text{Pa}}\\))
    • \\(q\\) is the applied load (demand) (\\({\text{Pa}}\\))
    | +|Notes |
    • If \\(\mathit{isSafeLR}\\), the glass is considered safe. \\(\mathit{isSafePb}\\) (from [IM:isSafePb](./SecIMs.md#IM:isSafePb)) and \\(\mathit{isSafeLR}\\) are either both True or both False.
    • \\(\mathit{LR}\\) is defined in [IM:calofCapacity](./SecIMs.md#IM:calofCapacity) and is also called capacity.
    | +|Source |[astm2009](./SecReferences.md#astm2009) | +|RefBy |[IM:isSafePb](./SecIMs.md#IM:isSafePb) and [FR:Check-Glass-Safety](./SecFRs.md#checkGlassSafety) | diff --git a/code/stable/glassbr/SRS/mdBook/src/SecToS.md b/code/stable/glassbr/SRS/mdBook/src/SecToS.md index 726a3e07741..713e3be40ca 100644 --- a/code/stable/glassbr/SRS/mdBook/src/SecToS.md +++ b/code/stable/glassbr/SRS/mdBook/src/SecToS.md @@ -18,8 +18,6 @@ The symbols used in this document are summarized in the [Table of Symbols](./Sec |\\(g\\) |Glass type |-- | |\\(\mathit{GTF}\\) |Glass type factor |-- | |\\(h\\) |Minimum thickness |\\({\text{m}}\\) | -|\\(\mathit{interpY}\\) |InterpY |-- | -|\\(\mathit{interpZ}\\) |InterpZ |-- | |\\(\mathit{isSafeLoad}\\) |Load resistance safety requirement |-- | |\\(\mathit{isSafeLR}\\) |3 second load equivalent resistance safety requirement |-- | |\\(\mathit{isSafePb}\\) |Probability of glass breakage safety requirement |-- | diff --git a/code/stable/glassbr/SRS/mdBook/src/SecTraceMatrices.md b/code/stable/glassbr/SRS/mdBook/src/SecTraceMatrices.md index 8b8d95677cd..d8cc3ba39b3 100644 --- a/code/stable/glassbr/SRS/mdBook/src/SecTraceMatrices.md +++ b/code/stable/glassbr/SRS/mdBook/src/SecTraceMatrices.md @@ -27,14 +27,11 @@ The purpose of the traceability matrices is to provide easy references on what h |[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) | | | |X | | | | | |[IM:dimlessLoad](./SecIMs.md#IM:dimlessLoad) | | | |X | | | | | -|[IM:tolLoad](./SecIMs.md#IM:tolLoad) | | | | | | | | | |[IM:sdfTol](./SecIMs.md#IM:sdfTol) | | | |X | | | | | |[IM:probOfBreak](./SecIMs.md#IM:probOfBreak) | | | | | | | | | |[IM:calofCapacity](./SecIMs.md#IM:calofCapacity) | | | | | | | | | @@ -64,47 +61,44 @@ The purpose of the traceability matrices is to provide easy references on what h
    -| |[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)| -|:-----------------------------------------------|:-------------------------------------|:-----------------------------------------------|:---------------------------|:---------------------------------------------|:-------------------------------------------|:---------------------------------|:-------------------------------------------|:-----------------------------------------|:-----------------------------------------|:-----------------------------------|:-----------------------------------------------|:---------------------------|:-------------------------------------------|:-----------------------------------|:---------------------------------|:-------------------------------------------|:-----------------------------------------------|:-------------------------------------|:-------------------------------------| -|[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) | | | |X | |X | | | | | | | | | | | | | | -|[TM:isSafeProb](./SecTMs.md#TM:isSafeProb) | | | | | | | | | | | | | | | | | | | | -|[TM:isSafeLoad](./SecTMs.md#TM:isSafeLoad) | | | | | | | | | | | | | | | | | | | | -|[IM:riskFun](./SecIMs.md#IM:riskFun) |X |X | | | | | | | | |X | | | | | | | | | -|[IM:stressDistFac](./SecIMs.md#IM:stressDistFac)| | | | |X | | | | | | | |X | | | | | | | -|[IM:nFL](./SecIMs.md#IM:nFL) |X | | | | | | | | | | | | |X | | | | | | -|[IM:dimlessLoad](./SecIMs.md#IM:dimlessLoad) |X | |X | | | |X | | | | | | | | | | | | | -|[IM:tolLoad](./SecIMs.md#IM:tolLoad) | | | | |X | | | | | | | | | |X | | | | | -|[IM:sdfTol](./SecIMs.md#IM:sdfTol) |X |X | | | | | | | | | | | | | | | | | | -|[IM:probOfBreak](./SecIMs.md#IM:probOfBreak) | | | | | | | | | |X | | | | | | | | | | -|[IM:calofCapacity](./SecIMs.md#IM:calofCapacity)| | |X | | | | | | | | |X | | | | | | | | -|[IM:isSafePb](./SecIMs.md#IM:isSafePb) | | | | | | | | | | | | | | | |X | | |X | -|[IM:isSafeLR](./SecIMs.md#IM:isSafeLR) | | | | | | |X | | | | | | | | | |X |X | | +| |[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)| +|:-----------------------------------------------|:-------------------------------------|:-----------------------------------------------|:---------------------------|:---------------------------------------------|:-------------------------------------------|:---------------------------------|:-----------------------------------------|:-----------------------------------------|:-----------------------------------|:---------------------------|:-------------------------------------------|:---------------------------------|:-------------------------------------------|:-----------------------------------------------|:-------------------------------------|:-------------------------------------| +|[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) |X |X | | | | | | | | | | | | | | | +|[IM:nFL](./SecIMs.md#IM:nFL) |X | | | | | | | | | | | | | | | | +|[IM:dimlessLoad](./SecIMs.md#IM:dimlessLoad) |X | |X | | | | | | | | | | | | | | +|[IM:sdfTol](./SecIMs.md#IM:sdfTol) |X |X | | | | | | | | | | | | | | | +|[IM:probOfBreak](./SecIMs.md#IM:probOfBreak) | | | | | | | | |X | | | | | | | | +|[IM:calofCapacity](./SecIMs.md#IM:calofCapacity)| | |X | | | | | | |X | | | | | | | +|[IM:isSafePb](./SecIMs.md#IM:isSafePb) | | | | | | | | | | | | |X | | |X | +|[IM:isSafeLR](./SecIMs.md#IM:isSafeLR) | | | | | | | | | | | | | |X |X | | **

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