Go to the documentation of this file.
53 class addDimensionSetsToDebug
59 addDimensionSetsToDebug(
const addDimensionSetsToDebug&) =
delete;
60 void operator=(
const addDimensionSetsToDebug&) =
delete;
62 explicit addDimensionSetsToDebug(
const char*
name)
67 virtual ~addDimensionSetsToDebug()
88 addDimensionSetsToDebug addDimensionSetsToDebug_(
"DimensionSets");
120 <<
"Cannot find unitSet in dictionary " <<
dict.
name()
131 <<
"Cannot find " << unitSetCoeffs <<
" in dictionary "
142 for (
const entry& dEntry : unitDict)
144 if (
"writeUnits" == dEntry.keyword())
146 dEntry.readEntry(writeUnitNames);
151 dt.
read(dEntry.stream(), unitDict);
153 bool ok =
unitSetPtr_->insert(dEntry.keyword(), dt);
157 <<
"Duplicate unit " << dEntry.keyword()
158 <<
" in DimensionSets dictionary"
164 if (writeUnitNames.
size() != 0 && writeUnitNames.
size() != 7)
167 <<
"Cannot find entry \"writeUnits\" in " << unitDict.name()
168 <<
" or it is not a wordList of size 7"
232 units_(unitNames.size()),
233 conversion_(unitNames.size()),
234 conversionPivots_(unitNames.size()),
249 if (unitNames.size() == 7)
254 for (label rowI = 0; rowI < conversion_.m(); rowI++)
256 scalar* row = conversion_[rowI];
258 for (label columnI = 0; columnI < conversion_.n(); columnI++)
264 conversionPivots_.setSize(conversion_.m());
int debug
Static debugging option.
A keyword and a list of tokens is an 'entry'.
dictionary * findDict(const word &keyword, enum keyType::option matchOpt=keyType::REGEX)
Find and return a sub-dictionary pointer if present.
label size() const noexcept
The number of elements in table.
const dimensionSet dimPressure
const dimensionSet dimGasConstant
A class for handling words, derived from Foam::string.
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
const dimensionSet dimVelocity
const dimensionSet dimEnergy
bool read(const dictionary &dict)
const dimensionSet dimDensity
bool found(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
Search for an entry (const access) with the given keyword.
Template functions to aid in the implementation of demand driven data.
const dimensionSet dimMoles(0, 0, 0, 0, 1, 0, 0)
T get(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
Dimension set for the base types, which can be used to implement rigorous dimension checking for alge...
const HashTable< dimensionedScalar > & unitSet()
Set of all dimensions.
const dimensionSet dimForce
const fileName & name() const noexcept
The dictionary name.
#define forAll(list, i)
Loop across all elements in list.
const dimensionSet dimCompressibility
void deleteDemandDrivenData(DataPtr &dataPtr)
const dimensionSet dimCurrent(0, 0, 0, 0, 0, 1, 0)
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
dictionary * dimensionSystemsPtr_(nullptr)
const dimensionSet dimArea(sqr(dimLength))
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
dimensionedScalar pow3(const dimensionedScalar &ds)
const dimensionSets & writeUnitSet()
Set of units.
dictionary & dimensionSystems()
Top level dictionary.
const dimensionSet dimSpecificHeatCapacity(dimGasConstant)
void coefficients(scalarField &exponents) const
(if valid) obtain set of coefficients of unitNames
const dimensionSet dimPower
const dimensionSet dimViscosity
static void writeData(Ostream &os, const Type &val)
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
const dimensionSet dimDynamicViscosity
OBJstream os(runTime.globalPath()/outputName)
const dimensionSet dimMass(1, 0, 0, 0, 0, 0, 0)
HashTable< dimensionedScalar > * unitSetPtr_(nullptr)
dimensionSets * writeUnitSetPtr_(nullptr)
dimensionSets(const HashTable< dimensionedScalar > &, const wordList &unitNames)
void LUBacksubstitute(const scalarSquareMatrix &luMmatrix, const labelList &pivotIndices, List< Type > &source)
errorManipArg< error, int > exit(error &err, const int errNo=1)
void LUDecompose(scalarSquareMatrix &matrix, labelList &pivotIndices)
LU decompose the matrix with pivoting.
const dimensionSet dimAcceleration
A HashTable similar to std::unordered_map.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
const dimensionSet dimTemperature(0, 0, 0, 1, 0, 0, 0)
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for INVALID.
const dimensionSet dimLuminousIntensity(0, 0, 0, 0, 0, 0, 1)
const dimensionSet dimVol(dimVolume)
Older spelling for dimVolume.
void addDimensionSetObject(const char *name, simpleRegIOobject *obj)
Register DimensionSets read/write object.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
const dimensionSet & dimensions() const
Return const reference to dimensions.
const dimensionSet dimVolume(pow3(dimLength))
Construction of unit sets.
Abstract base class for registered object with I/O. Used in debug symbol registration.
dictionary & switchSet(const char *subDictName, dictionary *&subDictPtr)
Internal function to lookup a sub-dictionary from controlDict.
const dimensionSet dimless
Dimensionless.