module Drasil.HGHC.HeatTransfer where
import Language.Drasil
import Language.Drasil.ShortHands
import Theory.Drasil (DataDefinition, ddENoRefs)
import Data.Drasil.Units.Thermodynamics (heatTransferCoef)
symbols :: [DefinedQuantityDict]
symbols :: [DefinedQuantityDict]
symbols = [DefinedQuantityDict]
htOutputs [DefinedQuantityDict]
-> [DefinedQuantityDict] -> [DefinedQuantityDict]
forall a. [a] -> [a] -> [a]
++ [DefinedQuantityDict]
htInputs
dataDefs :: [DataDefinition]
dataDefs :: [DataDefinition]
dataDefs = [DataDefinition
htTransCladFuelDD, DataDefinition
htTransCladCoolDD]
qDefs :: [SimpleQDef]
qDefs :: [SimpleQDef]
qDefs = [SimpleQDef
htTransCladFuel, SimpleQDef
htTransCladCool]
htVars :: [DefinedQuantityDict]
htVars :: [DefinedQuantityDict]
htVars = [DefinedQuantityDict
cladThick, DefinedQuantityDict
coolFilmCond, DefinedQuantityDict
gapFilmCond, DefinedQuantityDict
cladCond]
htInputs, htOutputs :: [DefinedQuantityDict]
htInputs :: [DefinedQuantityDict]
htInputs = (DefinedQuantityDict -> DefinedQuantityDict)
-> [DefinedQuantityDict] -> [DefinedQuantityDict]
forall a b. (a -> b) -> [a] -> [b]
map DefinedQuantityDict -> DefinedQuantityDict
forall c.
(Quantity c, Concept c, MayHaveUnit c) =>
c -> DefinedQuantityDict
dqdWr [DefinedQuantityDict]
htVars
htOutputs :: [DefinedQuantityDict]
htOutputs = (SimpleQDef -> DefinedQuantityDict)
-> [SimpleQDef] -> [DefinedQuantityDict]
forall a b. (a -> b) -> [a] -> [b]
map SimpleQDef -> DefinedQuantityDict
forall c.
(Quantity c, Concept c, MayHaveUnit c) =>
c -> DefinedQuantityDict
dqdWr [SimpleQDef]
qDefs
cladThick, coolFilmCond, gapFilmCond, cladCond :: DefinedQuantityDict
cladThick :: DefinedQuantityDict
cladThick = ConceptChunk -> Symbol -> Space -> DefinedQuantityDict
dqdNoUnit (String -> NP -> String -> ConceptChunk
dcc String
"cladThick" (String -> NP
cn''' String
"clad thickness")
String
"the clad thickness")
(Symbol -> Symbol -> Symbol
sub Symbol
lTau Symbol
lClad) Space
Real
coolFilmCond :: DefinedQuantityDict
coolFilmCond = ConceptChunk -> Symbol -> Space -> DefinedQuantityDict
dqdNoUnit (String -> NP -> String -> ConceptChunk
dcc String
"coolFilmCond" (String -> NP
cn' String
"initial coolant film conductance")
String
"the initial coolant film conductance")
(Symbol -> Symbol -> Symbol
sub Symbol
lH Symbol
lCoolant) Space
Real
gapFilmCond :: DefinedQuantityDict
gapFilmCond = ConceptChunk -> Symbol -> Space -> DefinedQuantityDict
dqdNoUnit (String -> NP -> String -> ConceptChunk
dcc String
"gapFilmCond" (String -> NP
cn' String
"initial gap film conductance")
String
"the initial gap film conductance")
(Symbol -> Symbol -> Symbol
sub Symbol
lH Symbol
lGap) Space
Real
cladCond :: DefinedQuantityDict
cladCond = ConceptChunk -> Symbol -> Space -> DefinedQuantityDict
dqdNoUnit (String -> NP -> String -> ConceptChunk
dcc String
"cladCond" (String -> NP
cnIES String
"clad conductivity")
String
"the 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 String
"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 String
"htTransCladCool" (String -> NP
nounPhraseSP
String
"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 Integer
2 Expr -> Expr -> Expr
forall r. ExprC r => r -> r -> r
$* DefinedQuantityDict -> Expr
forall c. (HasUID c, HasSymbol c) => c -> Expr
forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r
sy DefinedQuantityDict
cladCond Expr -> Expr -> Expr
forall r. ExprC r => r -> r -> r
$* DefinedQuantityDict -> Expr
forall c. (HasUID c, HasSymbol c) => c -> Expr
forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r
sy DefinedQuantityDict
coolFilmCond Expr -> Expr -> Expr
forall r. ExprC r => r -> r -> r
$/ (Integer -> Expr
forall r. LiteralC r => Integer -> r
exactDbl Integer
2 Expr -> Expr -> Expr
forall r. ExprC r => r -> r -> r
$* DefinedQuantityDict -> Expr
forall c. (HasUID c, HasSymbol c) => c -> Expr
forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r
sy DefinedQuantityDict
cladCond Expr -> Expr -> Expr
forall r. ExprC r => r -> r -> r
$+ (DefinedQuantityDict -> Expr
forall c. (HasUID c, HasSymbol c) => c -> Expr
forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r
sy DefinedQuantityDict
cladThick
Expr -> Expr -> Expr
forall r. ExprC r => r -> r -> r
$* DefinedQuantityDict -> Expr
forall c. (HasUID c, HasSymbol c) => c -> Expr
forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r
sy DefinedQuantityDict
coolFilmCond))
htTransCladFuelDD :: DataDefinition
htTransCladFuelDD :: DataDefinition
htTransCladFuelDD = SimpleQDef
-> Maybe Derivation -> String -> [Sentence] -> DataDefinition
ddENoRefs SimpleQDef
htTransCladFuel Maybe Derivation
forall a. Maybe a
Nothing String
"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 String
"htTransCladFuel" (String -> NP
nounPhraseSP
String
"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 Integer
2 Expr -> Expr -> Expr
forall r. ExprC r => r -> r -> r
$* DefinedQuantityDict -> Expr
forall c. (HasUID c, HasSymbol c) => c -> Expr
forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r
sy DefinedQuantityDict
cladCond Expr -> Expr -> Expr
forall r. ExprC r => r -> r -> r
$* DefinedQuantityDict -> Expr
forall c. (HasUID c, HasSymbol c) => c -> Expr
forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r
sy DefinedQuantityDict
gapFilmCond) Expr -> Expr -> Expr
forall r. ExprC r => r -> r -> r
$/ (Integer -> Expr
forall r. LiteralC r => Integer -> r
exactDbl Integer
2 Expr -> Expr -> Expr
forall r. ExprC r => r -> r -> r
$* DefinedQuantityDict -> Expr
forall c. (HasUID c, HasSymbol c) => c -> Expr
forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r
sy DefinedQuantityDict
cladCond
Expr -> Expr -> Expr
forall r. ExprC r => r -> r -> r
$+ (DefinedQuantityDict -> Expr
forall c. (HasUID c, HasSymbol c) => c -> Expr
forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r
sy DefinedQuantityDict
cladThick Expr -> Expr -> Expr
forall r. ExprC r => r -> r -> r
$* DefinedQuantityDict -> Expr
forall c. (HasUID c, HasSymbol c) => c -> Expr
forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r
sy DefinedQuantityDict
gapFilmCond))
nuclearPhys, fp :: IdeaDict
nuclearPhys :: IdeaDict
nuclearPhys = String -> NP -> IdeaDict
nc String
"nuclearPhys" (String -> NP
nounPhraseSP String
"nuclear physics")
fp :: IdeaDict
fp = String -> NP -> IdeaDict
nc String
"fp" (String -> NP
cn String
"FP")
lCoolant, lClad, lEffective, lGap :: Symbol
lCoolant :: Symbol
lCoolant = String -> Symbol
label String
"b"
lClad :: Symbol
lClad = String -> Symbol
label String
"c"
lEffective :: Symbol
lEffective = String -> Symbol
label String
"g"
lGap :: Symbol
lGap = String -> Symbol
label String
"p"