MCPcopy Create free account
hub / github.com/OpenFOAM/OpenFOAM-dev / unitSet

Function unitSet

src/OpenFOAM/dimensionSet/dimensionSets.C:97–160  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

95
96
97const HashTable<dimensionedScalar>& unitSet()
98{
99 if (!unitSetPtr_)
100 {
101 const dictionary& dict = dimensionSystems();
102
103 if (!dict.found("unitSet"))
104 {
105 FatalIOErrorInFunction(dict)
106 << "Cannot find unitSet in dictionary " << dict.name()
107 << exit(FatalIOError);
108 }
109
110 const word unitSetCoeffs(word(dict.lookup("unitSet")) + "Coeffs");
111
112 if (!dict.found(unitSetCoeffs))
113 {
114 FatalIOErrorInFunction(dict)
115 << "Cannot find " << unitSetCoeffs << " in dictionary "
116 << dict.name() << exit(FatalIOError);
117 }
118
119 const dictionary& unitDict = dict.subDict(unitSetCoeffs);
120
121 unitSetPtr_ = new HashTable<dimensionedScalar>(unitDict.size());
122
123 forAllConstIter(dictionary, unitDict, iter)
124 {
125 if (iter().keyword() != "writeUnits")
126 {
127 dimensionedScalar dt;
128 dt.read(iter().stream(), unitDict);
129 bool ok = unitSetPtr_->insert(iter().keyword(), dt);
130 if (!ok)
131 {
132 FatalIOErrorInFunction(dict)
133 << "Duplicate unit " << iter().keyword()
134 << " in DimensionSets dictionary"
135 << exit(FatalIOError);
136 }
137 }
138 }
139
140 wordList writeUnitNames
141 (
142 unitDict.lookupOrDefault<wordList>
143 (
144 "writeUnits",
145 wordList(0)
146 )
147 );
148
149 writeUnitSetPtr_ = new dimensionSets(*unitSetPtr_, writeUnitNames);
150
151 if (writeUnitNames.size() != 0 && writeUnitNames.size() != 7)
152 {
153 FatalIOErrorInFunction(dict)
154 << "Cannot find entry \"writeUnits\" in " << unitDict.name()

Callers 2

writeUnitSetFunction · 0.85
dimensionSetIO.CFile · 0.85

Calls 8

dimensionSetsClass · 0.70
exitFunction · 0.50
forAllConstIterFunction · 0.50
foundMethod · 0.45
nameMethod · 0.45
sizeMethod · 0.45
readMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected