mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: Adding lagrangianFields option to reconstruction.
This commit is contained in:
@ -56,6 +56,14 @@ int main(int argc, char *argv[])
|
|||||||
"specify a list of fields to be reconstructed. Eg, '(U T p)' - "
|
"specify a list of fields to be reconstructed. Eg, '(U T p)' - "
|
||||||
"regular expressions not currently supported"
|
"regular expressions not currently supported"
|
||||||
);
|
);
|
||||||
|
argList::addOption
|
||||||
|
(
|
||||||
|
"lagrangianFields",
|
||||||
|
"list",
|
||||||
|
"specify a list of lagrangian fields to be reconstructed. Eg, '(U d)' -"
|
||||||
|
"regular expressions not currently supported, "
|
||||||
|
"positions always included."
|
||||||
|
);
|
||||||
argList::addBoolOption
|
argList::addBoolOption
|
||||||
(
|
(
|
||||||
"noLagrangian",
|
"noLagrangian",
|
||||||
@ -73,6 +81,20 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
const bool noLagrangian = args.optionFound("noLagrangian");
|
const bool noLagrangian = args.optionFound("noLagrangian");
|
||||||
|
|
||||||
|
HashSet<word> selectedLagrangianFields;
|
||||||
|
if (args.optionFound("lagrangianFields"))
|
||||||
|
{
|
||||||
|
if (noLagrangian)
|
||||||
|
{
|
||||||
|
FatalErrorIn(args.executable())
|
||||||
|
<< "Cannot specify noLagrangian and lagrangianFields "
|
||||||
|
<< "options together."
|
||||||
|
<< exit(FatalError);
|
||||||
|
}
|
||||||
|
|
||||||
|
args.optionLookup("lagrangianFields")() >> selectedLagrangianFields;
|
||||||
|
}
|
||||||
|
|
||||||
// determine the processor count directly
|
// determine the processor count directly
|
||||||
label nProcs = 0;
|
label nProcs = 0;
|
||||||
while (isDir(args.path()/(word("processor") + name(nProcs))))
|
while (isDir(args.path()/(word("processor") + name(nProcs))))
|
||||||
@ -403,84 +425,96 @@ int main(int argc, char *argv[])
|
|||||||
cloudName,
|
cloudName,
|
||||||
mesh,
|
mesh,
|
||||||
procMeshes.meshes(),
|
procMeshes.meshes(),
|
||||||
sprayObjs
|
sprayObjs,
|
||||||
|
selectedLagrangianFields
|
||||||
);
|
);
|
||||||
reconstructLagrangianFieldFields<label>
|
reconstructLagrangianFieldFields<label>
|
||||||
(
|
(
|
||||||
cloudName,
|
cloudName,
|
||||||
mesh,
|
mesh,
|
||||||
procMeshes.meshes(),
|
procMeshes.meshes(),
|
||||||
sprayObjs
|
sprayObjs,
|
||||||
|
selectedLagrangianFields
|
||||||
);
|
);
|
||||||
reconstructLagrangianFields<scalar>
|
reconstructLagrangianFields<scalar>
|
||||||
(
|
(
|
||||||
cloudName,
|
cloudName,
|
||||||
mesh,
|
mesh,
|
||||||
procMeshes.meshes(),
|
procMeshes.meshes(),
|
||||||
sprayObjs
|
sprayObjs,
|
||||||
|
selectedLagrangianFields
|
||||||
);
|
);
|
||||||
reconstructLagrangianFieldFields<scalar>
|
reconstructLagrangianFieldFields<scalar>
|
||||||
(
|
(
|
||||||
cloudName,
|
cloudName,
|
||||||
mesh,
|
mesh,
|
||||||
procMeshes.meshes(),
|
procMeshes.meshes(),
|
||||||
sprayObjs
|
sprayObjs,
|
||||||
|
selectedLagrangianFields
|
||||||
);
|
);
|
||||||
reconstructLagrangianFields<vector>
|
reconstructLagrangianFields<vector>
|
||||||
(
|
(
|
||||||
cloudName,
|
cloudName,
|
||||||
mesh,
|
mesh,
|
||||||
procMeshes.meshes(),
|
procMeshes.meshes(),
|
||||||
sprayObjs
|
sprayObjs,
|
||||||
|
selectedLagrangianFields
|
||||||
);
|
);
|
||||||
reconstructLagrangianFieldFields<vector>
|
reconstructLagrangianFieldFields<vector>
|
||||||
(
|
(
|
||||||
cloudName,
|
cloudName,
|
||||||
mesh,
|
mesh,
|
||||||
procMeshes.meshes(),
|
procMeshes.meshes(),
|
||||||
sprayObjs
|
sprayObjs,
|
||||||
|
selectedLagrangianFields
|
||||||
);
|
);
|
||||||
reconstructLagrangianFields<sphericalTensor>
|
reconstructLagrangianFields<sphericalTensor>
|
||||||
(
|
(
|
||||||
cloudName,
|
cloudName,
|
||||||
mesh,
|
mesh,
|
||||||
procMeshes.meshes(),
|
procMeshes.meshes(),
|
||||||
sprayObjs
|
sprayObjs,
|
||||||
|
selectedLagrangianFields
|
||||||
);
|
);
|
||||||
reconstructLagrangianFieldFields<sphericalTensor>
|
reconstructLagrangianFieldFields<sphericalTensor>
|
||||||
(
|
(
|
||||||
cloudName,
|
cloudName,
|
||||||
mesh,
|
mesh,
|
||||||
procMeshes.meshes(),
|
procMeshes.meshes(),
|
||||||
sprayObjs
|
sprayObjs,
|
||||||
|
selectedLagrangianFields
|
||||||
);
|
);
|
||||||
reconstructLagrangianFields<symmTensor>
|
reconstructLagrangianFields<symmTensor>
|
||||||
(
|
(
|
||||||
cloudName,
|
cloudName,
|
||||||
mesh,
|
mesh,
|
||||||
procMeshes.meshes(),
|
procMeshes.meshes(),
|
||||||
sprayObjs
|
sprayObjs,
|
||||||
|
selectedLagrangianFields
|
||||||
);
|
);
|
||||||
reconstructLagrangianFieldFields<symmTensor>
|
reconstructLagrangianFieldFields<symmTensor>
|
||||||
(
|
(
|
||||||
cloudName,
|
cloudName,
|
||||||
mesh,
|
mesh,
|
||||||
procMeshes.meshes(),
|
procMeshes.meshes(),
|
||||||
sprayObjs
|
sprayObjs,
|
||||||
|
selectedLagrangianFields
|
||||||
);
|
);
|
||||||
reconstructLagrangianFields<tensor>
|
reconstructLagrangianFields<tensor>
|
||||||
(
|
(
|
||||||
cloudName,
|
cloudName,
|
||||||
mesh,
|
mesh,
|
||||||
procMeshes.meshes(),
|
procMeshes.meshes(),
|
||||||
sprayObjs
|
sprayObjs,
|
||||||
|
selectedLagrangianFields
|
||||||
);
|
);
|
||||||
reconstructLagrangianFieldFields<tensor>
|
reconstructLagrangianFieldFields<tensor>
|
||||||
(
|
(
|
||||||
cloudName,
|
cloudName,
|
||||||
mesh,
|
mesh,
|
||||||
procMeshes.meshes(),
|
procMeshes.meshes(),
|
||||||
sprayObjs
|
sprayObjs,
|
||||||
|
selectedLagrangianFields
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -539,7 +539,7 @@ void Foam::fvFieldReconstructor::reconstructFvVolumeInternalFields
|
|||||||
{
|
{
|
||||||
if
|
if
|
||||||
(
|
(
|
||||||
!selectedFields.size()
|
selectedFields.empty()
|
||||||
|| selectedFields.found(fieldIter()->name())
|
|| selectedFields.found(fieldIter()->name())
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@ -575,7 +575,7 @@ void Foam::fvFieldReconstructor::reconstructFvVolumeFields
|
|||||||
{
|
{
|
||||||
if
|
if
|
||||||
(
|
(
|
||||||
!selectedFields.size()
|
selectedFields.empty()
|
||||||
|| selectedFields.found(fieldIter()->name())
|
|| selectedFields.found(fieldIter()->name())
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@ -611,7 +611,7 @@ void Foam::fvFieldReconstructor::reconstructFvSurfaceFields
|
|||||||
{
|
{
|
||||||
if
|
if
|
||||||
(
|
(
|
||||||
!selectedFields.size()
|
selectedFields.empty()
|
||||||
|| selectedFields.found(fieldIter()->name())
|
|| selectedFields.found(fieldIter()->name())
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -84,7 +84,8 @@ void reconstructLagrangianFields
|
|||||||
const word& cloudName,
|
const word& cloudName,
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
const PtrList<fvMesh>& meshes,
|
const PtrList<fvMesh>& meshes,
|
||||||
const IOobjectList& objects
|
const IOobjectList& objects,
|
||||||
|
const HashSet<word>& selectedFields
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@ -94,7 +95,8 @@ void reconstructLagrangianFieldFields
|
|||||||
const word& cloudName,
|
const word& cloudName,
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
const PtrList<fvMesh>& meshes,
|
const PtrList<fvMesh>& meshes,
|
||||||
const IOobjectList& objects
|
const IOobjectList& objects,
|
||||||
|
const HashSet<word>& selectedFields
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -155,28 +155,36 @@ void Foam::reconstructLagrangianFields
|
|||||||
const word& cloudName,
|
const word& cloudName,
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
const PtrList<fvMesh>& meshes,
|
const PtrList<fvMesh>& meshes,
|
||||||
const IOobjectList& objects
|
const IOobjectList& objects,
|
||||||
|
const HashSet<word>& selectedFields
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
const word fieldClassName(IOField<Type>::typeName);
|
const word fieldClassName(IOField<Type>::typeName);
|
||||||
|
|
||||||
IOobjectList fields = objects.lookupClass(fieldClassName);
|
IOobjectList fields = objects.lookupClass(fieldClassName);
|
||||||
|
|
||||||
if (fields.size())
|
if(fields.size())
|
||||||
{
|
{
|
||||||
Info<< " Reconstructing lagrangian "
|
Info<< " Reconstructing lagrangian "
|
||||||
<< fieldClassName << "s\n" << endl;
|
<< fieldClassName << "s\n" << endl;
|
||||||
|
|
||||||
forAllConstIter(IOobjectList, fields, fieldIter)
|
forAllConstIter(IOobjectList, fields, fieldIter)
|
||||||
{
|
{
|
||||||
Info<< " " << fieldIter()->name() << endl;
|
if
|
||||||
reconstructLagrangianField<Type>
|
|
||||||
(
|
(
|
||||||
cloudName,
|
selectedFields.empty()
|
||||||
mesh,
|
|| selectedFields.found(fieldIter()->name())
|
||||||
meshes,
|
)
|
||||||
fieldIter()->name()
|
{
|
||||||
)().write();
|
Info<< " " << fieldIter()->name() << endl;
|
||||||
|
reconstructLagrangianField<Type>
|
||||||
|
(
|
||||||
|
cloudName,
|
||||||
|
mesh,
|
||||||
|
meshes,
|
||||||
|
fieldIter()->name()
|
||||||
|
)().write();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Info<< endl;
|
Info<< endl;
|
||||||
@ -190,7 +198,8 @@ void Foam::reconstructLagrangianFieldFields
|
|||||||
const word& cloudName,
|
const word& cloudName,
|
||||||
const polyMesh& mesh,
|
const polyMesh& mesh,
|
||||||
const PtrList<fvMesh>& meshes,
|
const PtrList<fvMesh>& meshes,
|
||||||
const IOobjectList& objects
|
const IOobjectList& objects,
|
||||||
|
const HashSet<word>& selectedFields
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
@ -205,14 +214,21 @@ void Foam::reconstructLagrangianFieldFields
|
|||||||
|
|
||||||
forAllConstIter(IOobjectList, fields, fieldIter)
|
forAllConstIter(IOobjectList, fields, fieldIter)
|
||||||
{
|
{
|
||||||
Info<< " " << fieldIter()->name() << endl;
|
if
|
||||||
reconstructLagrangianFieldField<Type>
|
|
||||||
(
|
(
|
||||||
cloudName,
|
selectedFields.empty()
|
||||||
mesh,
|
|| selectedFields.found(fieldIter()->name())
|
||||||
meshes,
|
)
|
||||||
fieldIter()->name()
|
{
|
||||||
)().write();
|
Info<< " " << fieldIter()->name() << endl;
|
||||||
|
reconstructLagrangianFieldField<Type>
|
||||||
|
(
|
||||||
|
cloudName,
|
||||||
|
mesh,
|
||||||
|
meshes,
|
||||||
|
fieldIter()->name()
|
||||||
|
)().write();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Info<< endl;
|
Info<< endl;
|
||||||
@ -231,14 +247,21 @@ void Foam::reconstructLagrangianFieldFields
|
|||||||
|
|
||||||
forAllConstIter(IOobjectList, fields, fieldIter)
|
forAllConstIter(IOobjectList, fields, fieldIter)
|
||||||
{
|
{
|
||||||
Info<< " " << fieldIter()->name() << endl;
|
if
|
||||||
reconstructLagrangianFieldField<Type>
|
|
||||||
(
|
(
|
||||||
cloudName,
|
selectedFields.empty()
|
||||||
mesh,
|
|| selectedFields.found(fieldIter()->name())
|
||||||
meshes,
|
)
|
||||||
fieldIter()->name()
|
{
|
||||||
)().write();
|
Info<< " " << fieldIter()->name() << endl;
|
||||||
|
reconstructLagrangianFieldField<Type>
|
||||||
|
(
|
||||||
|
cloudName,
|
||||||
|
mesh,
|
||||||
|
meshes,
|
||||||
|
fieldIter()->name()
|
||||||
|
)().write();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Info<< endl;
|
Info<< endl;
|
||||||
|
|||||||
Reference in New Issue
Block a user