transformPoints: Added -allRegions option

With the -allRegions option all the regions specified in the
constant/regionProperties are transformed.
This commit is contained in:
Henry Weller
2018-05-15 14:48:19 +01:00
parent d0dfb1a843
commit 0c4562422d
2 changed files with 139 additions and 132 deletions

View File

@ -1,6 +1,8 @@
EXE_INC = \ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude -I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/regionModels/regionModel/lnInclude
EXE_LIBS = \ EXE_LIBS = \
-lfiniteVolume \ -lfiniteVolume \
-lgenericPatchFields -lgenericPatchFields \
-lregionModels

View File

@ -2,7 +2,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-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -29,43 +29,48 @@ Description
translate, rotate and scale options. translate, rotate and scale options.
Usage Usage
Options are: \b transformPoints [OPTION]
-translate vector Options:
Translates the points by the given vector, - \par -translate \<vector\> \n
Translates the points by the given vector.
-rotate (vector vector) - \par -rotate (\<vector\> \<vector\>) \n
Rotates the points from the first vector to the second, Rotates the points from the first vector to the second.
or -yawPitchRoll (yawdegrees pitchdegrees rolldegrees) - \par -yawPitchRoll (\<yawdegrees\> \<pitchdegrees\> \<rolldegrees\>) \n
or -rollPitchYaw (rolldegrees pitchdegrees yawdegrees) Alternative rotation specification:
-scale vector
Scales the points by the given vector.
The any or all of the three options may be specified and are processed
in the above order.
With -rotateFields (in combination with -rotate/yawPitchRoll/rollPitchYaw)
it will also read & transform vector & tensor fields.
Note:
yaw (rotation about z) yaw (rotation about z)
pitch (rotation about y) pitch (rotation about y)
roll (rotation about x) roll (rotation about x)
- \par -rollPitchYaw (\<rolldegrees\> \<pitchdegrees\> \<yawdegrees\>) \n
Alternative rotation specification:
roll (rotation about x)
pitch (rotation about y)
yaw (rotation about z)
- \par -rotateFields \n
In combination with \a -rotate, \a -yawPitchRoll or \a -rollPitchYaw
additionally transform vector and tensor fields.
- \par -scale \<vector\> \n
Scales the points by the given vector.
Any or all of the three transformation option types may be specified and are
processed in the above order.
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "argList.H" #include "argList.H"
#include "Time.H"
#include "fvMesh.H" #include "fvMesh.H"
#include "regionProperties.H"
#include "volFields.H" #include "volFields.H"
#include "surfaceFields.H" #include "surfaceFields.H"
#include "ReadFields.H" #include "ReadFields.H"
#include "pointFields.H" #include "pointFields.H"
#include "transformField.H" #include "transformField.H"
#include "transformGeometricField.H" #include "transformGeometricField.H"
#include "IStringStream.H"
#include "mathematicalConstants.H" #include "mathematicalConstants.H"
using namespace Foam; using namespace Foam;
@ -137,6 +142,7 @@ void rotateFields(const argList& args, const Time& runTime, const tensor& T)
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
@ -179,20 +185,18 @@ int main(int argc, char *argv[])
); );
#include "addRegionOption.H" #include "addRegionOption.H"
#include "addAllRegionsOption.H"
#include "setRootCase.H" #include "setRootCase.H"
#include "createTime.H" #include "createTime.H"
word regionName = polyMesh::defaultRegion; const wordList regionNames(selectRegionNames(args, runTime));
fileName meshDir;
if (args.optionReadIfPresent("region", regionName)) forAll(regionNames, regioni)
{ {
meshDir = regionName/polyMesh::meshSubDir; const word& regionName = regionNames[regioni];
} const word& regionDir = Foam::regionDir(regionName);
else
{ fileName meshDir(regionDir/polyMesh::meshSubDir);
meshDir = polyMesh::meshSubDir;
}
pointIOField points pointIOField points
( (
@ -307,6 +311,7 @@ int main(int argc, char *argv[])
Info<< "Writing points into directory " << points.path() << nl << endl; Info<< "Writing points into directory " << points.path() << nl << endl;
points.write(); points.write();
}
Info<< "End\n" << endl; Info<< "End\n" << endl;