mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: Updated fieldSelection dependent code
This commit is contained in:
@ -3,7 +3,7 @@
|
|||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2016 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2016 OpenFOAM Foundation
|
||||||
\\/ M anipulation | Copyright (C) 2018 OpenCFD Ltd.
|
\\/ M anipulation | Copyright (C) 2018-2019 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -164,17 +164,22 @@ int main(int argc, char *argv[])
|
|||||||
functionObjects::fileFieldSelection fields(mesh);
|
functionObjects::fileFieldSelection fields(mesh);
|
||||||
if (args.found("fields"))
|
if (args.found("fields"))
|
||||||
{
|
{
|
||||||
fields.insert(args.getList<wordRe>("fields"));
|
fields.resetFieldFilters
|
||||||
|
(
|
||||||
|
HashSet<wordRe>(args.getList<wordRe>("fields"))
|
||||||
|
);
|
||||||
}
|
}
|
||||||
if (args.found("field"))
|
if (args.found("field"))
|
||||||
{
|
{
|
||||||
fields.insert(args.opt<wordRe>("field"));
|
fields.resetFieldFilters(args.opt<wordRe>("field"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Externally stored dictionary for functionObjectList
|
// Externally stored dictionary for functionObjectList
|
||||||
// if not constructed from runTime
|
// if not constructed from runTime
|
||||||
dictionary functionsDict;
|
dictionary functionsDict;
|
||||||
|
|
||||||
|
HashSet<wordRe> fieldFilters(fields.filters());
|
||||||
|
|
||||||
// Construct functionObjectList
|
// Construct functionObjectList
|
||||||
autoPtr<functionObjectList> functionsPtr
|
autoPtr<functionObjectList> functionsPtr
|
||||||
(
|
(
|
||||||
@ -183,7 +188,7 @@ int main(int argc, char *argv[])
|
|||||||
args,
|
args,
|
||||||
runTime,
|
runTime,
|
||||||
functionsDict,
|
functionsDict,
|
||||||
fields
|
fieldFilters // include any additional command-line fields
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -193,8 +198,6 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
Info<< "Time = " << runTime.timeName() << endl;
|
Info<< "Time = " << runTime.timeName() << endl;
|
||||||
|
|
||||||
fields.updateSelection();
|
|
||||||
|
|
||||||
if (mesh.readUpdate() != polyMesh::UNCHANGED)
|
if (mesh.readUpdate() != polyMesh::UNCHANGED)
|
||||||
{
|
{
|
||||||
// Update functionObjectList if mesh changes
|
// Update functionObjectList if mesh changes
|
||||||
@ -205,10 +208,14 @@ int main(int argc, char *argv[])
|
|||||||
args,
|
args,
|
||||||
runTime,
|
runTime,
|
||||||
functionsDict,
|
functionsDict,
|
||||||
fields
|
fieldFilters
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fields.resetFieldFilters(fieldFilters);
|
||||||
|
|
||||||
|
fields.updateSelection();
|
||||||
|
|
||||||
const bool throwingIOErr = FatalIOError.throwExceptions();
|
const bool throwingIOErr = FatalIOError.throwExceptions();
|
||||||
|
|
||||||
try
|
try
|
||||||
@ -218,7 +225,7 @@ int main(int argc, char *argv[])
|
|||||||
args,
|
args,
|
||||||
runTime,
|
runTime,
|
||||||
mesh,
|
mesh,
|
||||||
fields.selection(),
|
fields.selectionNames(),
|
||||||
functionsPtr(),
|
functionsPtr(),
|
||||||
timei == timeDirs.size()-1
|
timei == timeDirs.size()-1
|
||||||
);
|
);
|
||||||
|
|||||||
@ -151,7 +151,7 @@ bool Foam::functionObjects::columnAverage::execute()
|
|||||||
// Make fields up to date with current selection
|
// Make fields up to date with current selection
|
||||||
fieldSet_.updateSelection();
|
fieldSet_.updateSelection();
|
||||||
|
|
||||||
for (const word& fieldName : fieldSet_.selection())
|
for (const word& fieldName : fieldSet_.selectionNames())
|
||||||
{
|
{
|
||||||
columnAverageField<scalar>(fieldName);
|
columnAverageField<scalar>(fieldName);
|
||||||
columnAverageField<vector>(fieldName);
|
columnAverageField<vector>(fieldName);
|
||||||
@ -166,7 +166,7 @@ bool Foam::functionObjects::columnAverage::execute()
|
|||||||
|
|
||||||
bool Foam::functionObjects::columnAverage::write()
|
bool Foam::functionObjects::columnAverage::write()
|
||||||
{
|
{
|
||||||
for (const word& fieldName : fieldSet_.selection())
|
for (const word& fieldName : fieldSet_.selectionNames())
|
||||||
{
|
{
|
||||||
const word resultName("columnAverage(" + fieldName + ")");
|
const word resultName("columnAverage(" + fieldName + ")");
|
||||||
const regIOobject* obj =
|
const regIOobject* obj =
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||||
\\/ M anipulation | Copyright (C) 2017-2018 OpenCFD Ltd.
|
\\/ M anipulation | Copyright (C) 2017-2019 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -191,7 +191,7 @@ bool Foam::functionObjects::fieldCoordinateSystemTransform::execute()
|
|||||||
{
|
{
|
||||||
fieldSet_.updateSelection();
|
fieldSet_.updateSelection();
|
||||||
|
|
||||||
for (const word& fieldName : fieldSet_.selection())
|
for (const word& fieldName : fieldSet_.selectionNames())
|
||||||
{
|
{
|
||||||
transform<scalar>(fieldName);
|
transform<scalar>(fieldName);
|
||||||
transform<vector>(fieldName);
|
transform<vector>(fieldName);
|
||||||
@ -210,9 +210,9 @@ bool Foam::functionObjects::fieldCoordinateSystemTransform::execute()
|
|||||||
|
|
||||||
bool Foam::functionObjects::fieldCoordinateSystemTransform::write()
|
bool Foam::functionObjects::fieldCoordinateSystemTransform::write()
|
||||||
{
|
{
|
||||||
forAllConstIters(fieldSet_, iter)
|
for (const word& fieldName : fieldSet_.selectionNames())
|
||||||
{
|
{
|
||||||
writeObject(transformFieldName(iter()));
|
writeObject(transformFieldName(fieldName));
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@ -60,9 +60,8 @@ void Foam::functionObjects::fieldExtents::writeFileHeader(Ostream& os)
|
|||||||
|
|
||||||
writeCommented(os, "Time");
|
writeCommented(os, "Time");
|
||||||
|
|
||||||
forAllConstIters(fieldSet_.selection(), iter)
|
for (const word& fieldName : fieldSet_.selectionNames())
|
||||||
{
|
{
|
||||||
const word& fieldName = iter();
|
|
||||||
if (internalField_)
|
if (internalField_)
|
||||||
{
|
{
|
||||||
writeTabbed(os, fieldName + "_internal");
|
writeTabbed(os, fieldName + "_internal");
|
||||||
@ -183,7 +182,7 @@ bool Foam::functionObjects::fieldExtents::write()
|
|||||||
|
|
||||||
Log << type() << " " << name() << " write:" << nl;
|
Log << type() << " " << name() << " write:" << nl;
|
||||||
|
|
||||||
for (const word& fieldName : fieldSet_.selection())
|
for (const word& fieldName : fieldSet_.selectionNames())
|
||||||
{
|
{
|
||||||
calcFieldExtents<scalar>(fieldName, true);
|
calcFieldExtents<scalar>(fieldName, true);
|
||||||
calcFieldExtents<vector>(fieldName);
|
calcFieldExtents<vector>(fieldName);
|
||||||
|
|||||||
@ -90,9 +90,8 @@ void Foam::functionObjects::fieldMinMax::writeFileHeader(Ostream& os)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
forAllConstIters(fieldSet_.selection(), iter)
|
for (const word& fieldName : fieldSet_.selectionNames())
|
||||||
{
|
{
|
||||||
const word& fieldName = iter();
|
|
||||||
writeTabbed(os, "min(" + fieldName + ')');
|
writeTabbed(os, "min(" + fieldName + ')');
|
||||||
writeTabbed(os, "max(" + fieldName + ')');
|
writeTabbed(os, "max(" + fieldName + ')');
|
||||||
}
|
}
|
||||||
@ -153,7 +152,7 @@ bool Foam::functionObjects::fieldMinMax::write()
|
|||||||
if (!location_) writeTime(file());
|
if (!location_) writeTime(file());
|
||||||
Log << type() << " " << name() << " write:" << nl;
|
Log << type() << " " << name() << " write:" << nl;
|
||||||
|
|
||||||
for (const word& fieldName : fieldSet_.selection())
|
for (const word& fieldName : fieldSet_.selectionNames())
|
||||||
{
|
{
|
||||||
calcMinMaxFields<scalar>(fieldName, mdCmpt);
|
calcMinMaxFields<scalar>(fieldName, mdCmpt);
|
||||||
calcMinMaxFields<vector>(fieldName, mode_);
|
calcMinMaxFields<vector>(fieldName, mode_);
|
||||||
|
|||||||
@ -64,7 +64,7 @@ void Foam::functionObjects::residuals::writeFileHeader(Ostream& os)
|
|||||||
|
|
||||||
writeCommented(os, "Time");
|
writeCommented(os, "Time");
|
||||||
|
|
||||||
for (const word& fieldName : fieldSet_.selection())
|
for (const word& fieldName : fieldSet_.selectionNames())
|
||||||
{
|
{
|
||||||
writeFileHeader<scalar>(os, fieldName);
|
writeFileHeader<scalar>(os, fieldName);
|
||||||
writeFileHeader<vector>(os, fieldName);
|
writeFileHeader<vector>(os, fieldName);
|
||||||
@ -193,7 +193,7 @@ bool Foam::functionObjects::residuals::execute()
|
|||||||
|
|
||||||
if (writeFields_)
|
if (writeFields_)
|
||||||
{
|
{
|
||||||
for (const word& fieldName : fieldSet_.selection())
|
for (const word& fieldName : fieldSet_.selectionNames())
|
||||||
{
|
{
|
||||||
initialiseField<scalar>(fieldName);
|
initialiseField<scalar>(fieldName);
|
||||||
initialiseField<vector>(fieldName);
|
initialiseField<vector>(fieldName);
|
||||||
@ -214,7 +214,7 @@ bool Foam::functionObjects::residuals::write()
|
|||||||
{
|
{
|
||||||
writeTime(file());
|
writeTime(file());
|
||||||
|
|
||||||
for (const word& fieldName : fieldSet_.selection())
|
for (const word& fieldName : fieldSet_.selectionNames())
|
||||||
{
|
{
|
||||||
writeResidual<scalar>(fieldName);
|
writeResidual<scalar>(fieldName);
|
||||||
writeResidual<vector>(fieldName);
|
writeResidual<vector>(fieldName);
|
||||||
|
|||||||
Reference in New Issue
Block a user