module Drasil.HGHC.Body (si, mkSRS) where
import Language.Drasil hiding (Manual)
import Drasil.SRSDocument
import Drasil.Generator (cdb)
import Drasil.System (mkSystem, SystemKind(Specification))
import Drasil.HGHC.HeatTransfer (fp, dataDefs, htInputs, htOutputs,
nuclearPhys, symbols)
import Drasil.HGHC.MetaConcepts (progName)
import Data.Drasil.People (spencerSmith)
import Data.Drasil.Concepts.Thermodynamics as CT (heatTrans)
si :: System
si :: System
si = CI
-> SystemKind
-> People
-> Purpose
-> Purpose
-> Purpose
-> Purpose
-> [TheoryModel]
-> [GenDefn]
-> [DataDefinition]
-> [InstanceModel]
-> [DefinedQuantityDict]
-> [DefinedQuantityDict]
-> [ConstrConcept]
-> [ConstQDef]
-> ChunkDB
-> [Reference]
-> System
forall h i j.
(Quantity h, MayHaveUnit h, Concept h, Quantity i, MayHaveUnit i,
Concept i, HasUID j, Constrained j) =>
CI
-> SystemKind
-> People
-> Purpose
-> Purpose
-> Purpose
-> Purpose
-> [TheoryModel]
-> [GenDefn]
-> [DataDefinition]
-> [InstanceModel]
-> [h]
-> [i]
-> [j]
-> [ConstQDef]
-> ChunkDB
-> [Reference]
-> System
mkSystem
CI
progName SystemKind
Specification [Person
spencerSmith]
[Sentence
purp] [] [] []
[] [] [DataDefinition]
dataDefs []
[DefinedQuantityDict]
htInputs [DefinedQuantityDict]
htOutputs ([] :: [ConstrConcept]) []
ChunkDB
symbMap []
mkSRS :: SRSDecl
mkSRS :: SRSDecl
mkSRS = [DocSection
TableOfContents,
RefSec -> DocSection
RefSec (RefSec -> DocSection) -> RefSec -> DocSection
forall a b. (a -> b) -> a -> b
$
Contents -> [RefTab] -> RefSec
RefProg Contents
intro [RefTab
TUnits, [TSIntro] -> RefTab
tsymb [TSIntro
TSPurpose, [Literature] -> TSIntro
SymbConvention [IdeaDict -> Literature
Lit (IdeaDict -> Literature) -> IdeaDict -> Literature
forall a b. (a -> b) -> a -> b
$ IdeaDict -> IdeaDict
forall c. Idea c => c -> IdeaDict
nw IdeaDict
nuclearPhys, IdeaDict -> Literature
Manual (IdeaDict -> Literature) -> IdeaDict -> Literature
forall a b. (a -> b) -> a -> b
$ IdeaDict -> IdeaDict
forall c. Idea c => c -> IdeaDict
nw IdeaDict
fp]]],
IntroSec -> DocSection
IntroSec (IntroSec -> DocSection) -> IntroSec -> DocSection
forall a b. (a -> b) -> a -> b
$
Sentence -> Sentence -> [IntroSub] -> IntroSec
IntroProg Sentence
introPara (CI -> Sentence
forall n. NamedIdea n => n -> Sentence
phrase CI
progName) [],
SSDSec -> DocSection
SSDSec (SSDSec -> DocSection) -> SSDSec -> DocSection
forall a b. (a -> b) -> a -> b
$ [SSDSub] -> SSDSec
SSDProg [
SolChSpec -> SSDSub
SSDSolChSpec (SolChSpec -> SSDSub) -> SolChSpec -> SSDSub
forall a b. (a -> b) -> a -> b
$ [SCSSub] -> SolChSpec
SCSProg [
Purpose -> Fields -> SCSSub
TMs [] []
, Purpose -> Fields -> DerivationDisplay -> SCSSub
GDs [] [] DerivationDisplay
HideDerivation
, Purpose -> Fields -> DerivationDisplay -> SCSSub
DDs [] [Field
Label, Field
Symbol, Field
Units, Field
DefiningEquation,
Verbosity -> InclUnits -> Field
Description Verbosity
Verbose InclUnits
IncludeUnits] DerivationDisplay
HideDerivation
, Purpose -> Fields -> DerivationDisplay -> SCSSub
IMs [] [] DerivationDisplay
HideDerivation
]]]
introPara :: Sentence
introPara :: Sentence
introPara = Purpose -> Sentence
foldlSent [
String -> Sentence
S String
"Heat transfer through the cladding of a nuclear fuel element influences",
String -> Sentence
S String
"performance and safety. Engineers therefore rely on dependable calculations",
String -> Sentence
S String
"of the heat transfer coefficients used for simulating the temperature.",
String -> Sentence
S String
"This document describes the requirements of a program called",
CI -> Sentence
forall n. NamedIdea n => n -> Sentence
phrase CI
progName]
purp :: Sentence
purp :: Sentence
purp = Purpose -> Sentence
foldlSent [String -> Sentence
S String
"describe", ConceptChunk -> Sentence
forall n. NamedIdea n => n -> Sentence
phrase ConceptChunk
CT.heatTrans, String -> Sentence
S String
"coefficients related to clad"]
ideaDicts :: [IdeaDict]
ideaDicts :: [IdeaDict]
ideaDicts =
[IdeaDict
fp, IdeaDict
nuclearPhys] [IdeaDict] -> [IdeaDict] -> [IdeaDict]
forall a. [a] -> [a] -> [a]
++
[CI -> IdeaDict
forall c. Idea c => c -> IdeaDict
nw CI
progName]
symbMap :: ChunkDB
symbMap :: ChunkDB
symbMap = [DefinedQuantityDict]
-> [IdeaDict]
-> [ConceptChunk]
-> [UnitDefn]
-> [DataDefinition]
-> [InstanceModel]
-> [GenDefn]
-> [TheoryModel]
-> [ConceptInstance]
-> [Citation]
-> [LabelledContent]
-> ChunkDB
cdb [DefinedQuantityDict]
symbols [IdeaDict]
ideaDicts ([] :: [ConceptChunk])
([] :: [UnitDefn]) [DataDefinition]
dataDefs [] [] [] [] [] []