Sliding Mesh or rotor stator model implimentation
Hi Fomers,
This a very serious question guys, and would appreciate suggestions from every one. What is state of implementing sliding mesh in OpenFOAM ( or with OpenFOAM201)? We require to implement VAWT ( Vertical Axis Wind Turbine), Fixing the outer domain and rotating a cylindrical Mesh inside it having blade.stl . Now another question comes up: What should be the approach ? ( in getting 2 meshes ie cylinder with stl blades and outer domain) Regards CFDkid PS: Any other suggestions !!!! |
I would suggest you to have a look at the following tutorials:
Multi Reference Frames: tutorials/incompressible/MRFSimpleFoam/mixerVessel2D Moving mesh: tutorials/incompressible/pimpleDyMFoam/propeller |
@lore
Was using openFOAM201 , @/tutorial/incompressible/pimpleDyFoam did not find propeller case. Checked out by upgrading to openFoam210 and found the propeller case, working on it now. Will come up with question soon. Also i decided to go for sliding mesh instead of moving Frame of Reference i.e the two case you suggested, i am trying out propeller one with pimpleDyFoam. Is my decision ok ?? regards, CFDkid |
Yep, the propeller tutorial came out with the latest version of OF.
About your decision, it really depend on whether you want to run a steady or unsteady simulation. |
@lore
I am just doing that propeller case, but things would get prity complicated for me if i implement a similar case. Few questions!!! 1. What is the role of importing geometry , i do not know if at all it is required? ( At least the object which has to rotate ( suppose a turbine)). 2. How to i create the innerCylinder and innerCylinderSmall? (the sliding faces that would separate Rotor and Stator part of CFD domain) 3.How to create mesh "surfaces= innerCylinder innerCylinderSmall outerCylinder propellerTip propellerStem1 propellerStem2 propellerStem3 " ? I use slome for geometry and mesh creation + simpleFoam GUI in CAELinux to for the OpenFoam case directory. else I use discritizer. But how should i approach for this case, really stuck man. regards, |
Have you looked already at the allRun script? That's all you need to run…
|
@lore
Yes i did dig inside. Also ran the case. Everything fine with that case. But if i want to implement another similar case. Like a rotating cube in a regular inlet ---> outlet domain. Now if you see that question of mine above, you would understand what i intended to ask. regards CFdkid |
The easiest way is probably to enclose the mesh you want to rotate within a .stl cylinder then, in snappyHexMeshDict you'll need something like this:
Code:
refinementSurfaces Code:
solidBodyMotionFvMeshCoeffs |
@lore
That means , if we have a small cube to be rotated, we need to create a mesh file and enclose that mesh in cylindrical stl file. Then import that stl with mesh in OpenFoam and carry out the step you said. |
Yes. I would you snappyHexMesh.
|
1 Attachment(s)
@Lore
Man, used snappyHexMesh to generate this cube with cylindrical mesh around mvCube.stl ( should have named it rotatingCube!! forgot). mvCube.stl was made using Salome and stl binary was placed in /constant/ triSurface/ and accordingly changes were made in snappyHexMeshDict::geometry Now is it sufficient and should i move to edit dynamicMeshDict? Or something missing? Regards CFDkid @Lore Thanks a ton man , this helpped me to learn snaapyHexMesh , though rotating a cube is still pending. |
Are you sure you enclosed your cube within a cylindrical surface? Cannot see it in the image you attached…
|
Quote:
************************************************** ************* geometry { mvCube.stl { type triSurfaceMesh; name mvCube; } cylinder1 //This cylinder is used. { type searchableCylinder; point1 (100 50 0); point2 (100 50 10); radius 30; } } castellatedMeshControls:: refinementSurfaces { mvCube { level (2 4); } } refinementRegions { cylinder1 { mode inside; levels ((1e+15 2)); } } *************************************** This is what was used. When you say covering the cube with cylinder. I am interpreting the one implimented. But if you differ from this implementation. How to go about it ? (enclosed your cube within a cylindrical surface) Regards |
1 Attachment(s)
@Lore
Were you talking about this cylinder in the image attached. Now i could see it. The patch you mentioned in your previous reply, stuck me now after your reply. Is it correct now? regards |
1 Attachment(s)
Yes, should be ok now. I'm running a similar case, I'll enclose it here in case you wanted to have a look. Unfortunately I'm struggling with it because it keeps blowing up… anyway the setup should be ok.
My cube is called cubo.stl and my cylinder is called cylinder.stl. Refer to the allRun file for the commands I ran. |
@lore
Correct man, it is blowing up. Help man. But do not know why? Regards /*---------------------------------------------------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.1.0 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ Build : 2.1.0-0bc225064152 Exec : pimpleDyMFoam Date : Apr 17 2012 Time : 12:34:13 Host : PID : 26986 Case :open-foam/mvCube 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 Create mesh for time = 0 Selecting dynamicFvMesh solidBodyMotionFvMesh Selecting solid-body motion function rotatingMotion Applying solid body motion to cellZone cylinder1 #0 Foam::error::printStack(Foam::Ostream&) in "/opt/openfoam210/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #1 Foam::sigSegv::sigHandler(int) in "/opt/openfoam210/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #2 in "/lib/libc.so.6" #3 Foam::solidBodyMotionFvMesh::solidBodyMotionFvMesh (Foam::IOobject const&) in "/opt/openfoam210/platforms/linux64GccDPOpt/lib/libdynamicFvMesh.so" #4 Foam::dynamicFvMesh::addIOobjectConstructorToTable <Foam::solidBodyMotionFvMesh>::New(Foam::IOobjec t const&) in "/opt/openfoam210/platforms/linux64GccDPOpt/lib/libdynamicFvMesh.so" #5 Foam::dynamicFvMesh::New(Foam::IOobject const&) in "/opt/openfoam210/platforms/linux64GccDPOpt/lib/libdynamicFvMesh.so" #6 in "/opt/openfoam210/platforms/linux64GccDPOpt/bin/pimpleDyMFoam" #7 __libc_start_main in "/lib/libc.so.6" #8 in "/opt/openfoam210/platforms/linux64GccDPOpt/bin/pimpleDyMFoam" Segmentation fault |
Don't know… is your setup the same as mine?
|
@lore
My setup was not same as your will try again. Why pimpleDyFoam is so challenging to implement Also looking at the thesis mentioned in this thread. (http://www.cfd-online.com/Forums/ope...ng-motion.html) @lore Should we also explore AMI feature , which i suppose should be implimented, as GGi is no longer present in OpenFoam-210. Do not know if atall these two things are related to this case, we are solving. In propeller tutorial saw some commands in Allrun.pre which we have not implemented. Could be because of that solver is crashing. regards |
Hi, seems like my setup was wrong.
Have a look here: http://www.cfd-online.com/Forums/ope...lowing-up.html and especially here: http://www.cfd-online.com/Forums/ope...tml#post355232 Sorry about that… |
@Lore
Seeing that discussion in a flash. This is cool man, need to put lot of effort from my side. Thanks a lot and great guiding line , now it feels this is right track. Would work now and let you know the status soon. regards |
All times are GMT -4. The time now is 15:00. |