typeIOobject: Template typed form of IOobject for type-checked object file and header reading
used to check the existence of and open an object file, read and check the header without constructing the object. 'typeIOobject' operates in an equivalent and consistent manner to 'regIOobject' but the type information is provided by the template argument rather than via virtual functions for which the derived object would need to be constructed, which is the case for 'regIOobject'. 'typeIOobject' replaces the previous separate functions 'typeHeaderOk' and 'typeFilePath' with a single consistent interface.
This commit is contained in:
@ -174,7 +174,7 @@ int main(int argc, char *argv[])
|
||||
epsilon.write();
|
||||
|
||||
// Turbulence omega
|
||||
IOobject omegaHeader
|
||||
typeIOobject<volScalarField> omegaHeader
|
||||
(
|
||||
"omega",
|
||||
runTime.timeName(),
|
||||
@ -184,7 +184,7 @@ int main(int argc, char *argv[])
|
||||
false
|
||||
);
|
||||
|
||||
if (omegaHeader.typeHeaderOk<volScalarField>(true))
|
||||
if (omegaHeader.headerOk())
|
||||
{
|
||||
volScalarField omega(omegaHeader, mesh);
|
||||
|
||||
@ -202,7 +202,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
// Turbulence nuTilda
|
||||
IOobject nuTildaHeader
|
||||
typeIOobject<volScalarField> nuTildaHeader
|
||||
(
|
||||
"nuTilda",
|
||||
runTime.timeName(),
|
||||
@ -212,7 +212,7 @@ int main(int argc, char *argv[])
|
||||
false
|
||||
);
|
||||
|
||||
if (nuTildaHeader.typeHeaderOk<volScalarField>(true))
|
||||
if (nuTildaHeader.headerOk())
|
||||
{
|
||||
volScalarField nuTilda(nuTildaHeader, mesh);
|
||||
nuTilda = nut;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
EXE_INC = \
|
||||
EXE_INC = -ggdb3 \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -59,7 +59,7 @@ void MapConsistentVolFields
|
||||
// Read field
|
||||
fieldType fieldSource(*fieldIter(), meshSource);
|
||||
|
||||
IOobject fieldTargetIOobject
|
||||
typeIOobject<fieldType> fieldTargetIOobject
|
||||
(
|
||||
fieldIter()->name(),
|
||||
meshTarget.time().timeName(),
|
||||
@ -68,7 +68,7 @@ void MapConsistentVolFields
|
||||
IOobject::AUTO_WRITE
|
||||
);
|
||||
|
||||
if (fieldTargetIOobject.typeHeaderOk<fieldType>(true))
|
||||
if (fieldTargetIOobject.headerOk())
|
||||
{
|
||||
// Read fieldTarget
|
||||
fieldType fieldTarget
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -53,7 +53,7 @@ void MapVolFields
|
||||
|
||||
forAllIter(IOobjectList, fields, fieldIter)
|
||||
{
|
||||
IOobject fieldTargetIOobject
|
||||
typeIOobject<fieldType> fieldTargetIOobject
|
||||
(
|
||||
fieldIter()->name(),
|
||||
meshTarget.time().timeName(),
|
||||
@ -62,7 +62,7 @@ void MapVolFields
|
||||
IOobject::AUTO_WRITE
|
||||
);
|
||||
|
||||
if (fieldTargetIOobject.typeHeaderOk<fieldType>(true))
|
||||
if (fieldTargetIOobject.headerOk())
|
||||
{
|
||||
Info<< " interpolating " << fieldIter()->name() << endl;
|
||||
|
||||
|
||||
@ -41,7 +41,7 @@ void UnMapped(const IOobjectList& objects)
|
||||
|
||||
forAllConstIter(IOobjectList, fields, fieldIter)
|
||||
{
|
||||
mvBak(fieldIter()->objectPath<Type>(), "unmapped");
|
||||
mvBak(fieldIter()->objectPath(false), "unmapped");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -141,7 +141,7 @@ void MapVolFields
|
||||
{
|
||||
const fieldType fieldSource(*fieldIter(), meshSource);
|
||||
|
||||
IOobject targetIO
|
||||
typeIOobject<fieldType> targetIO
|
||||
(
|
||||
fieldName,
|
||||
meshTarget.time().timeName(),
|
||||
@ -149,7 +149,7 @@ void MapVolFields
|
||||
IOobject::MUST_READ
|
||||
);
|
||||
|
||||
if (targetIO.typeHeaderOk<fieldType>(true))
|
||||
if (targetIO.headerOk())
|
||||
{
|
||||
Info<< " interpolating onto existing field "
|
||||
<< fieldName << endl;
|
||||
|
||||
@ -41,7 +41,7 @@ void UnMapped(const IOobjectList& objects)
|
||||
|
||||
forAllConstIter(IOobjectList, fields, fieldIter)
|
||||
{
|
||||
mvBak(fieldIter()->objectPath<Type>(), "unmapped");
|
||||
mvBak(fieldIter()->objectPath(false), "unmapped");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -58,7 +58,7 @@ bool setCellFieldType
|
||||
word fieldName(fieldValueStream);
|
||||
|
||||
// Check the current time directory
|
||||
IOobject fieldHeader
|
||||
typeIOobject<fieldType> fieldHeader
|
||||
(
|
||||
fieldName,
|
||||
mesh.time().timeName(),
|
||||
@ -67,9 +67,9 @@ bool setCellFieldType
|
||||
);
|
||||
|
||||
// Check the "constant" directory
|
||||
if (!fieldHeader.typeHeaderOk<fieldType>(true))
|
||||
if (!fieldHeader.headerOk())
|
||||
{
|
||||
fieldHeader = IOobject
|
||||
fieldHeader = typeIOobject<fieldType>
|
||||
(
|
||||
fieldName,
|
||||
mesh.time().constant(),
|
||||
@ -79,7 +79,7 @@ bool setCellFieldType
|
||||
}
|
||||
|
||||
// Check field exists
|
||||
if (fieldHeader.typeHeaderOk<fieldType>(true))
|
||||
if (fieldHeader.headerOk())
|
||||
{
|
||||
Info<< " Setting internal values of "
|
||||
<< fieldHeader.headerClassName()
|
||||
@ -204,7 +204,7 @@ bool setFaceFieldType
|
||||
word fieldName(fieldValueStream);
|
||||
|
||||
// Check the current time directory
|
||||
IOobject fieldHeader
|
||||
typeIOobject<fieldType> fieldHeader
|
||||
(
|
||||
fieldName,
|
||||
mesh.time().timeName(),
|
||||
@ -213,9 +213,9 @@ bool setFaceFieldType
|
||||
);
|
||||
|
||||
// Check the "constant" directory
|
||||
if (!fieldHeader.typeHeaderOk<fieldType>(true))
|
||||
if (!fieldHeader.headerOk())
|
||||
{
|
||||
fieldHeader = IOobject
|
||||
fieldHeader = typeIOobject<fieldType>
|
||||
(
|
||||
fieldName,
|
||||
mesh.time().constant(),
|
||||
@ -225,7 +225,7 @@ bool setFaceFieldType
|
||||
}
|
||||
|
||||
// Check field exists
|
||||
if (fieldHeader.typeHeaderOk<fieldType>(true))
|
||||
if (fieldHeader.headerOk())
|
||||
{
|
||||
Info<< " Setting patchField values of "
|
||||
<< fieldHeader.headerClassName()
|
||||
|
||||
Reference in New Issue
Block a user