module Drasil.HGHC.HeatTransfer where
import Language.Drasil
import Language.Drasil.ShortHands
import Theory.Drasil (DataDefinition, ddENoRefs)
import Data.Drasil.Units.Thermodynamics (heatTransferCoef)
symbols :: [QuantityDict]
symbols :: [QuantityDict]
symbols = [QuantityDict]
htOutputs [QuantityDict] -> [QuantityDict] -> [QuantityDict]
forall a. [a] -> [a] -> [a]
++ [QuantityDict]
htInputs
dataDefs :: [DataDefinition]
dataDefs :: [DataDefinition]
dataDefs = [DataDefinition
htTransCladFuelDD, DataDefinition
htTransCladCoolDD]
qDefs :: [SimpleQDef]
qDefs :: [SimpleQDef]
qDefs = [SimpleQDef
htTransCladFuel, SimpleQDef
htTransCladCool]
htVars :: [QuantityDict]
htVars :: [QuantityDict]
htVars = [QuantityDict
cladThick, QuantityDict
coolFilmCond, QuantityDict
gapFilmCond, QuantityDict
cladCond]
htInputs, htOutputs :: [QuantityDict]
htInputs :: [QuantityDict]
htInputs = (QuantityDict -> QuantityDict) -> [QuantityDict] -> [QuantityDict]
forall a b. (a -> b) -> [a] -> [b]
map QuantityDict -> QuantityDict
forall q. (Quantity q, MayHaveUnit q) => q -> QuantityDict
qw [QuantityDict]
htVars
htOutputs :: [QuantityDict]
htOutputs = (SimpleQDef -> QuantityDict) -> [SimpleQDef] -> [QuantityDict]
forall a b. (a -> b) -> [a] -> [b]
map SimpleQDef -> QuantityDict
forall q. (Quantity q, MayHaveUnit q) => q -> QuantityDict
qw [SimpleQDef]
qDefs
cladThick, coolFilmCond, gapFilmCond, cladCond :: QuantityDict
cladThick :: QuantityDict
cladThick = String -> NP -> Symbol -> Space -> QuantityDict
vc "cladThick" (String -> NP
cn''' "clad thickness")
(Symbol -> Symbol -> Symbol
sub Symbol
lTau Symbol
lClad) Space
Real
coolFilmCond :: QuantityDict
coolFilmCond = String -> NP -> Symbol -> Space -> QuantityDict
vc "coolFilmCond" (String -> NP
cn' "initial coolant film conductance")
(Symbol -> Symbol -> Symbol
sub Symbol
lH Symbol
lCoolant) Space
Real
gapFilmCond :: QuantityDict
gapFilmCond = String -> NP -> Symbol -> Space -> QuantityDict
vc "gapFilmCond" (String -> NP
cn' "initial gap film conductance")
(Symbol -> Symbol -> Symbol
sub Symbol
lH Symbol
lGap) Space
Real
cladCond :: QuantityDict
cladCond = String -> NP -> Symbol -> Space -> QuantityDict
vc "cladCond" (String -> NP
cnIES "clad conductivity") (Symbol -> Symbol -> Symbol
sub Symbol
lK Symbol
lClad) Space
Real
htTransCladCoolEq, htTransCladFuelEq :: Expr
htTransCladCool, htTransCladFuel :: SimpleQDef
htTransCladCoolDD :: DataDefinition
htTransCladCoolDD :: DataDefinition
htTransCladCoolDD = SimpleQDef
-> Maybe Derivation -> String -> [Sentence] -> DataDefinition
ddENoRefs SimpleQDef
htTransCladCool Maybe Derivation
forall a. Maybe a
Nothing "htTransCladCool"
[]
htTransCladCool :: SimpleQDef
htTransCladCool = String
-> NP
-> Sentence
-> Symbol
-> Space
-> UnitDefn
-> Expr
-> SimpleQDef
forall u e.
IsUnit u =>
String
-> NP -> Sentence -> Symbol -> Space -> u -> e -> QDefinition e
fromEqn "htTransCladCool" (String -> NP
nounPhraseSP
"convective heat transfer coefficient between clad and coolant")
Sentence
EmptyS (Symbol -> Symbol -> Symbol
sub Symbol
lH Symbol
lClad) Space
Real UnitDefn
heatTransferCoef Expr
htTransCladCoolEq
htTransCladCoolEq :: Expr
htTransCladCoolEq =
Integer -> Expr
forall r. LiteralC r => Integer -> r
exactDbl 2 Expr -> Expr -> Expr
forall r. ExprC r => r -> r -> r
`mulRe` QuantityDict -> Expr
forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r
sy QuantityDict
cladCond Expr -> Expr -> Expr
forall r. ExprC r => r -> r -> r
`mulRe` QuantityDict -> Expr
forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r
sy QuantityDict
coolFilmCond Expr -> Expr -> Expr
forall r. ExprC r => r -> r -> r
$/ (Integer -> Expr
forall r. LiteralC r => Integer -> r
exactDbl 2 Expr -> Expr -> Expr
forall r. ExprC r => r -> r -> r
`mulRe` QuantityDict -> Expr
forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r
sy QuantityDict
cladCond Expr -> Expr -> Expr
forall r. ExprC r => r -> r -> r
`addRe` (QuantityDict -> Expr
forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r
sy QuantityDict
cladThick
Expr -> Expr -> Expr
forall r. ExprC r => r -> r -> r
`mulRe` QuantityDict -> Expr
forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r
sy QuantityDict
coolFilmCond))
htTransCladFuelDD :: DataDefinition
htTransCladFuelDD :: DataDefinition
htTransCladFuelDD = SimpleQDef
-> Maybe Derivation -> String -> [Sentence] -> DataDefinition
ddENoRefs SimpleQDef
htTransCladFuel Maybe Derivation
forall a. Maybe a
Nothing "htTransCladFuel"
[]
htTransCladFuel :: SimpleQDef
htTransCladFuel = String
-> NP
-> Sentence
-> Symbol
-> Space
-> UnitDefn
-> Expr
-> SimpleQDef
forall u e.
IsUnit u =>
String
-> NP -> Sentence -> Symbol -> Space -> u -> e -> QDefinition e
fromEqn "htTransCladFuel" (String -> NP
nounPhraseSP
"effective heat transfer coefficient between clad and fuel surface")
Sentence
EmptyS (Symbol -> Symbol -> Symbol
sub Symbol
lH Symbol
lEffective) Space
Real UnitDefn
heatTransferCoef Expr
htTransCladFuelEq
htTransCladFuelEq :: Expr
htTransCladFuelEq = (Integer -> Expr
forall r. LiteralC r => Integer -> r
exactDbl 2 Expr -> Expr -> Expr
forall r. ExprC r => r -> r -> r
`mulRe` QuantityDict -> Expr
forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r
sy QuantityDict
cladCond Expr -> Expr -> Expr
forall r. ExprC r => r -> r -> r
`mulRe` QuantityDict -> Expr
forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r
sy QuantityDict
gapFilmCond) Expr -> Expr -> Expr
forall r. ExprC r => r -> r -> r
$/ (Integer -> Expr
forall r. LiteralC r => Integer -> r
exactDbl 2 Expr -> Expr -> Expr
forall r. ExprC r => r -> r -> r
`mulRe` QuantityDict -> Expr
forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r
sy QuantityDict
cladCond
Expr -> Expr -> Expr
forall r. ExprC r => r -> r -> r
`addRe` (QuantityDict -> Expr
forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r
sy QuantityDict
cladThick Expr -> Expr -> Expr
forall r. ExprC r => r -> r -> r
`mulRe` QuantityDict -> Expr
forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r
sy QuantityDict
gapFilmCond))
hghc :: CommonConcept
hghc :: CommonConcept
hghc = String -> NP -> String -> String -> CommonConcept
dcc' "hghc" (String -> NP
cn "HGHC") "HGHC program" "HGHC"
nuclearPhys, fp :: NamedChunk
nuclearPhys :: NamedChunk
nuclearPhys = String -> NP -> NamedChunk
nc "nuclearPhys" (String -> NP
nounPhraseSP "nuclear physics")
fp :: NamedChunk
fp = String -> NP -> NamedChunk
nc "fp" (String -> NP
cn "FP")
lCoolant, lClad, lEffective, lGap :: Symbol
lCoolant :: Symbol
lCoolant = String -> Symbol
label "b"
lClad :: Symbol
lClad = String -> Symbol
label "c"
lEffective :: Symbol
lEffective = String -> Symbol
label "g"
lGap :: Symbol
lGap = String -> Symbol
label "p"