CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Mesh Utilities (https://www.cfd-online.com/Forums/openfoam-meshing-utilities/)
-   -   transformPoints and rotateMesh (https://www.cfd-online.com/Forums/openfoam-meshing-utilities/86719-transformpoints-rotatemesh.html)

 bephi March 31, 2011 04:51

transformPoints and rotateMesh

hi at all!
i have a mesh which i would like to translate and rotate so that the coordinate system is in the middle of the inlet (nearly a circle) and the z-axis should be normal to the inlet surface.

when i read in just the inlet i get the following coordinates:
Bounds:
X Range: 0.00153 to 0.00418 (delta: 0.0026)
Y Range: 0.159 to 0.16 (delta: 0.00179)
Z Range: -0.218 to 0.216 (delta: 0.00212)

does anyone know how i can accomplish my aim with the utilities transformPoints -translate and rotateMesh?

with regards!

 MartinB March 31, 2011 07:12

Hi bephi,

simple way to get the center:
x_c = 0.5 * (0.00153 + 0.00418)
y_c = 0.5 * (0.159 + 0.16)
z_c = 0.5 * (-0.218 to 0.216)

Test in paraview:
- Just import "inlet"-patch
- Sources->Sphere
- insert x_c, y_c and z_c in "Center"

More exact way:
- import "inlet" patch into paraview
- File->Save Data, "Files of type: .csv"
- FieldAssociation "Points"
- Import the .csv-file into OpenOffice Calc
- use "AVERAGE" function for each column

Result is: (0.002850023 0.159609 -0.2167553)
Check in paraview as described above.

Move mesh with:
Code:

`transformPoints -translate "(-0.002850023 -0.159609 +0.2167553)"`
Rotation:
The surface normal is "0.004016555 0.7621565 0.647346". Desired direction is "0 0 -1".
Code:

`rotateMesh "(0.004016555 0.7621565 0.647346)" "(0 0 -1)"`
That's it...

Have fun

Martin

 bephi March 31, 2011 07:50

Thank you very much! Everything worked fine! I always used a wrong normal vector! Now the mesh is like its supposed to be!

 ehsan December 10, 2011 23:07

Hi

I like to move my all cells of my mesh only by dx/2 and dy/2 and create a new mesh. Could you please help me how to apply transform mesh command to create a new mesh whose cells are moved by dx/2 and dy/2 relative to the first mesh?

Thanks a lot

Ehsan

 asoltoon February 14, 2013 01:14

Hi all,

I want to rotate my primary mesh block(around x axis) that is produced by blockMesh to align it with my STL file, but when I run:
Code:

`rotateMesh "(0 1 0)" "(0 0 1)"`
the following error appears:
Code:

```/*---------------------------------------------------------------------------*\ | =========                |                                                | | \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          | |  \\    /  O peration    | Version:  2.1.1                                | |  \\  /    A nd          | Web:      www.OpenFOAM.org                      | |    \\/    M anipulation  |                                                | \*---------------------------------------------------------------------------*/ Build  : 2.1.1-221db2718bbb Exec  : rotateMesh (0 1 0) (0 0 1) Date  : Feb 14 2013 Time  : 08:36:43 Host  : "Ali-Laptop" PID    : 3307 Case  : /home/ali/OpenFOAM/ali-2.1.1/run/tutorials/mesh/snappyHexMesh/wigleyTutor nProcs : 1 sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE). fileModificationChecking : Monitoring run-time modified files using timeStampMaster allowSystemOperations : Disallowing user-supplied system call operations // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create time Writing points into directory "/home/ali/OpenFOAM/ali-2.1.1/run/tutorials/mesh/snappyHexMesh/wigleyTutor/constant/polyMesh" --> FOAM FATAL ERROR: No times selected     From function rotateMesh     in file db/Time/timeSelector.C at line 257. FOAM exiting```
when I don't rotate my mesh block and run SHM, then I can rotate the generated mesh but the rotation before final mesh generation is not possible. Can anybody help me?

Regards,
Ali

 nimasam February 14, 2013 02:44

Dear Ali

you can use following command
Code:

`transformPoints -rotate  '( (0 1 0) (0 0 1) )'`

 asoltoon February 14, 2013 03:18

 sh.d July 31, 2013 10:21

rotate

Hi namasam
I want to rotat airfoil without rotated mesh. and using simplefoam in Different angles of attack

 nimasam July 31, 2013 10:24

its impossible to rotate airfoil but! fixed the mesh :P
you may want to change the direction of inlet velocity

 linch August 13, 2013 05:13

Hi,

short & simple question: how to use the transformPoints utility from a custom directory?
Example:
Code:

`transformPoints  -roots sourceDir/sourceCase -case targetDir/targetCase -scale "(2.0 2.0 2.0)"`
returns error:
Quote:
 --> FOAM FATAL ERROR: bool IPstream::init(int& argc, char**& argv) : attempt to run parallel on 1 processor From function UPstream::init(int& argc, char**& argv) in file UPstream.C at line 81. FOAM aborting
I suppose, that the -roots option is the wrong one, isn't? But in the options list I don't see any suitable option, to specify the root dir:
Quote:
 Usage: transformPoints [OPTIONS] options: -case specify alternate case directory, default is the cwd -noFunctionObjects do not execute functionObjects -parallel run in parallel -region specify alternative mesh region -rollPitchYaw transform in terms of '(roll pitch yaw)' in degrees -roots <(dir1 .. dirN)> slave root directories for distributed running -rotate <(vectorA vectorB)> transform in terms of a rotation between and - eg, '( (1 0 0) (0 0 1) )' -rotateFields read and transform vector and tensor fields too -scale scale by the specified amount - eg, '(0.001 0.001 0.001)' for a uniform [mm] to [m] scaling -translate translate by the specified - eg, '(1 0 0)' -yawPitchRoll transform in terms of '(yaw pitch roll)' in degrees -srcDoc display source code in browser -doc display application documentation in browser -help print the usage Using: OpenFOAM-2.1.x (see www.OpenFOAM.org) Build: 2.1.x-c1330db6b6e8
Something like -root instead of -roots would be the right option. I also tried
Code:

`transformPoints  sourceDir/sourceCase targetDir/targetCase -scale "(2.0 2.0 2.0)"`
, but it seems I have to provide options, since the error is:
Quote:
 --> FOAM FATAL ERROR: Wrong number of arguments, expected 0 found 2
Best regards,
Ilya

 nimasam August 13, 2013 05:41

maybe you want to choose -case
Quote:
 transformPoints -case -scale '(2.0 2.0 2.0)'

 linch August 13, 2013 07:28

Ah ok,

it works, thanks. For that, I have to copy the mesh from the source to the target first. I was just irritated by the Hrvoje's post:
Quote:
 Originally Posted by hjasak (Post 181009) Try something like: transformPoints -scale "(1e-3 1e-3 1e-3)" Enjoy, Hrv

 Porisel October 2, 2013 09:07

hi
i typed following and got an error
Code:

`transformPoints -scale (1000 1000 1000)`
.
before, i done blockmesh and snappyhexmesh.

the problem, the stl points will be interpreted as meters, but should be millimeters.

the error:
Code:

`Wrong number of arguments, expectet 0 found 2`
typed it in the case folder.

 colinB October 2, 2013 09:39

Dear Porisel

you are trying to use the wrong command!

the transformPoints command is used to transform an existing
mesh which has been created with sHM or blockMesh.

In order to transform your stl file however you need the command:

surfaceTransformPoints

to see how it works type: surfaceTransformPoints -help

To get more insight on the commands available and what to use
them for have a look at the documentation of OpenFoam
chapter 3.6 where you find a detailed list of all utilities.

regards
Colin

 Porisel October 2, 2013 09:45

Hi colinB,
i already have generated the mesh with blockmesh and snappyhexmesh. now i want to scale the whole mesh, because i dont want to have exorbitant velocity and pressure values ;)

but i will try surfaceTransformpoints.

kind regards,
Porisel

 colinB October 2, 2013 10:25

Oh sorry I misunderstood your post:

"before, i done blockmesh and snappyhexmesh."

the error then is that you forgot the inverted commas around your vector

transformPoints -scale '(1000 1000 1000)'

maybe you also have to add a source file and a target file
(I'm not sure, but for surfaceTransformPoints you have to do so)

regards

 Porisel October 7, 2013 02:56

with inverted commas it dont work, too. but with quotationmarks it works well.

4 Attachment(s)
Hi to all,

i tried to change my coordinate system. At the moment it is in the inlet, I tried to move it in the outlet at a waterlevel of 0.85. So i used

transformPoints -translate (15 0 0.85) But the only thing thats changed is that my mesh moved 15 m in x direction and 0.85 m in the z direction. The coordinate system remains the same. (Pictures)

Can someone fix my problem?

Tanks

ok i found my mistake, i move it into the negative way (- 15 0 -0.85) Then it's Zero in the outlet.

But now i want to do setFields again. But i didn't work anymore? But why? I doesnt write in the alpha.water file and dont make a box in my case. Isnt it allowd to do setFields after transform points?

 bullmut October 19, 2016 13:01

Small q: can i rotate a zone?
The utility says i can rotate a region but i would like to rotate a cell zone...