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");
111 const HashTable<dimensionedScalar>&
unitSet()
120 <<
"Cannot find unitSet in dictionary " <<
dict.
name()
124 const word unitSetCoeffs(
dict.
get<word>(
"unitSet") +
"Coeffs");
131 <<
"Cannot find " << unitSetCoeffs <<
" in dictionary " 138 unitSetPtr_ =
new HashTable<dimensionedScalar>(2*unitDict.size());
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" 191 const dimensionSet
dimMass(1, 0, 0, 0, 0, 0, 0);
192 const dimensionSet
dimLength(0, 1, 0, 0, 0, 0, 0);
193 const dimensionSet
dimTime(0, 0, 1, 0, 0, 0, 0);
195 const dimensionSet
dimMoles(0, 0, 0, 0, 1, 0, 0);
196 const dimensionSet
dimCurrent(0, 0, 0, 0, 0, 1, 0);
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++)
261 row[columnI] = dSet.dimensions()[rowI];
264 conversionPivots_.
setSize(conversion_.
m());
Abstract base class for registered object with I/O. Used in debug symbol registration.
void size(const label n)
Older name for setAddressableSize.
errorManipArg< error, int > exit(error &err, const int errNo=1)
static void writeData(Ostream &os, const Type &val)
dictionary & switchSet(const char *subDictName, dictionary *&subDictPtr)
Internal function to lookup a sub-dictionary from controlDict.
void LUDecompose(scalarSquareMatrix &matrix, labelList &pivotIndices)
LU decompose the matrix with pivoting.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
constexpr char nl
The newline '\n' character (0x0a)
const dimensionSet dimViscosity
HashTable< dimensionedScalar > * unitSetPtr_(nullptr)
const dimensionSet dimSpecificHeatCapacity(dimGasConstant)
void coefficients(scalarField &exponents) const
(if valid) obtain set of coefficients of unitNames
const dimensionSet dimVol(dimVolume)
Older spelling for dimVolume.
const dimensionSet dimless
Dimensionless.
T get(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
Find and return a T. FatalIOError if not found, or if the number of tokens is incorrect.
const dimensionSet dimDynamicViscosity
const fileName & name() const noexcept
The dictionary name.
dimensionSets(const HashTable< dimensionedScalar > &, const wordList &unitNames)
Construct from all units and set of units to use for inversion (writing)
bool found(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
Find an entry (const access) with the given keyword.
dimensionSets * writeUnitSetPtr_(nullptr)
#define forAll(list, i)
Loop across all elements in list.
label n() const noexcept
The number of columns.
const dimensionSet dimVolume(pow3(dimLength))
const dimensionSet dimAcceleration
void setSize(const label n)
Alias for resize()
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
const dimensionSet dimTemperature(0, 0, 0, 1, 0, 0, 0)
const HashTable< dimensionedScalar > & unitSet()
Set of all dimensions.
A HashTable similar to std::unordered_map.
const dimensionSet dimPressure
const dimensionSet dimPower
bool read(const dictionary &dict)
Update the value of dimensioned<Type>, lookup in dictionary with the name().
An Ostream is an abstract base class for all output systems (streams, files, token lists...
const dimensionSet dimForce
int debug
Static debugging option.
OBJstream os(runTime.globalPath()/outputName)
const dimensionSet dimMoles(0, 0, 0, 0, 1, 0, 0)
const dimensionSet dimEnergy
label m() const noexcept
The number of rows.
const dimensionSet dimDensity
List< word > wordList
List of word.
dimensionedScalar pow3(const dimensionedScalar &ds)
dictionary & dimensionSystems()
Top level dictionary.
Template functions to aid in the implementation of demand driven data.
const PtrList< dimensionedScalar > & units() const noexcept
Return the units.
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
const dimensionSet dimCurrent(0, 0, 0, 0, 0, 1, 0)
const dimensionSet dimGasConstant
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
const dimensionSet dimMass(1, 0, 0, 0, 0, 0, 0)
const dimensionSet dimLuminousIntensity(0, 0, 0, 0, 0, 0, 1)
const dimensionSets & writeUnitSet()
Set of units.
void addDimensionSetObject(const char *name, simpleRegIOobject *obj)
Register DimensionSets read/write object.
const dimensionSet dimCompressibility
dictionary * dimensionSystemsPtr_(nullptr)
void deleteDemandDrivenData(DataPtr &dataPtr)
const dimensionSet dimArea(sqr(dimLength))
void LUBacksubstitute(const scalarSquareMatrix &luMmatrix, const labelList &pivotIndices, List< Type > &source)
LU back-substitution with given source, returning the solution in the source.
const dictionary * findDict(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
Find and return a sub-dictionary pointer if present (and it is a dictionary) otherwise return nullptr...
IOerror FatalIOError
Error stream (stdout output on all processes), with additional 'FOAM FATAL IO ERROR' header text and ...
const dimensionSet dimVelocity
Construction of unit sets.