Have you already downloaded the case about my cube linemann posted above?
|
Use the mergeMeshes command.
|
Yes i did, but since the upper folder roCube/ has no mesh points it does not know what to merge. Where should this command be used and how?
Sorry this is a basic doubt. |
I'm a little bit stuck there…
I meshed both the stator and the rotor then I moved back in the case folder and tried to run this: Code:
mergeMeshes Mesh/stator/ Mesh/rotor/ |
@linnemann @lore
When i executed same command i got some result i suppose mergeMesh ran successfully but where did it create the files. Note: I was in Mesh/ folder and executed this command: mergeMeshes rotor stator Output********************** /*---------------------------------------------------------------------------*\ | ========= | | | \\ / 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 : mergeMeshes rotor stator Date : Apr 18 2012 Time : 16:21:35 Host : "chandra-desktop" PID : 2465 Case : /home/chandra/Documents/open-foam/roCube/Mesh 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 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Master: "rotor" region region0 mesh to add: "stator" region region0 Create Times Reading master mesh for time = 0 Create mesh Reading mesh to add for time = 3e-05 Create mesh Writing combined mesh to 1e-05 patch names: 8 ( uWall inlet outlet btmWall fWall bakWall cube_patch0 cylinder_region0 ) patch types: 8 ( symmetryPlane patch patch symmetryPlane symmetryPlane symmetryPlane wall wall ) point zone names: 0 ( ) face zone names: 1 ( cylinder ) cell zone names: 1 ( cylinder ) End |
Hello
Merged mesh was created in rotor/1e-5/polymesh/ folder according to the command i gave i.e "mergeMeshes rotor stator" if i had given "mergeMeshes stator rotor" then the mesh would have been created in stator folder. I suppose the final merged mesh is created in the first folder we give(if this understanding is right). Then i moved th complete new polyMesh from rotor/1e-5/ folder to upper directory and in paraView it show both the mesh ie cube and AMI. Is this right people ? Suggest more clearification . Is it ready to be run now using pimpleDyFoam? |
Nope, is not enough… there's also a sets folder within polyMesh you won't get this way… don't know where it comes from…
|
you get it from this command.
splitMeshRegions -makeCellZones -overwrite @kid No your case is far from ready. You need to manually add the AMI entries in the boundary file and then you have to match all the boundary names in the 0/k,omega,nut,p,U etc files, and set the correct BC types. |
I'm a little bit lost now…
To summarize, one needs to: 1. create to separated meshes, one for the rotor and one for the stator; 2. run mergeMeshes to merge the two. The output of which needs to be copied in your case folder, correct? 3. what about splitMergeRegions? What's that supposed to accomplish? Shall it be run after mergeMeshes in the case directory? 4. what about the boundary file? Does it need to be edited by the user? I always thought it was something generated by openFoam… Sorry about all of these questions and thank you very much for your time! |
Hi Foamers,
I have been using OpenFoam for a month now, so i'm quite new in it. I would like to use OF for the simulation of a centrifugation device. To begin with a simple 3D case i slightly modified the propeller case so as to simulate a stirrer rotating in a cylinder. I meshed the geometry with Gambit and used fluent3DMeshtoFoam for the conversion. As Bcs i put AMI on the faces at the interface between both meshes and walls on remaining faces. Is the writeInterval variable supposed to have an influence on the simulation's stability? my simulation blows up as long as i put a writeInterval bigger than the time step. I could keep it as it is but the amont of data rapidly becomes uncomfortable. Something must be wrong somewhere but i don't know what. Could someone help me? I can upload some files if it can help. |
@linnemann
splitMeshRegions -makeCellZones -overwrite .This command ran successfully . After this i tried running pimpleDyFoam but it gives error. The "ami" patches were named accordingly as you told. Plz have a look at my case for rotating cube. And suggest accordingly. http://db.tt/59ubLm1j Regards. |
1 Attachment(s)
Code:
type cyclicAMI; the nFaces 0; is most likely the issue here. This means that there are no face-cells at that BC. Also this is not a 2D mesh so it must be treated as such. The inlet has only 1 cell in thickness and the cube/cylinder has 8. Consider adding cells in the z-dir in the blockMeshDict if you want to run it as a 3D case. |
@linnemann
Well the second part i understood, I need to make same elements on inlet (z direction on each face of Boundary) as on cylindrical ie 8 in z direction. But the first part i.e nFaces 0; I have used searchAbleCylinder in snappyhexMesh to build that . What should be done to extract faces? or to overcome this problem? I had run surfaceFeatureExtract command for stl cube. But this was done before executing snappyHexMesh. Should i run surfaceFeatureExtract again or is there some other method? ( these were done while generating separate meshes of rotor and stator ie before mergeMeshes) ? Regards. |
You have this name in the boundary file for both meshes before you do the mergeMeshes
Code:
cylinder_region0 for it to work you need to rename one of the names in the rotor/stator meshes. you could rename both to describe what it actually is. Code:
ami1 Code:
ami2 Similar you could name all the other patches based on their BC type. eg. the cube is a wall and naming it "wallCube" would make sense. also the symmetryPlanes could be named "symFront". It wont fix you case but it's easier to remember if you have a consistent naming convention. |
|
@linnemann
"splitMeshRegions -makeCellZones -overwrite" Above command gives error now!!!!! Folder here: http://db.tt/dV7qC7xO ERROR: ******************************************* roCube$ splitMeshRegions -makeCellZones -overwrite /*---------------------------------------------------------------------------*\ | ========= | | | \\ / 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 : splitMeshRegions -makeCellZones -overwrite Date : Apr 25 2012 Time : 12:20:56 Host : "chandra-desktop" PID : 21327 Case : /home/chandra/Documents/open-foam/roCube 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 Creating single patch per inter-region interface. Trying to match regions to existing cell zones. Number of regions:2 Writing region per cell file (for manual decomposition) to "/home/chandra/Documents/open-foam/roCube/constant/cellToRegion" Writing region per cell as volScalarField to "/home/chandra/Documents/open-foam/roCube/0/cellToRegion" Region Cells ------ ----- 0 88195 1 42145 Region Zone Name ------ ---- ---- 0 -1 domain0 1 -1 domain1 Sizes of interfaces between regions: Interface Region Region Faces --------- ------ ------ ----- Reading volScalarField cellToRegion Reading volScalarField p AMI: Creating addressing and weights between 30192 source faces and 10688 target faces --> FOAM FATAL ERROR: Unable to set source and target faces From function void Foam::cyclicAMIPolyPatch::setNextFaces(label&, label&, const primitivePatch&, const primitivePatch&, const boolList&, labelList&, const DynamicList<label>&) const in file lnInclude/AMIInterpolation.C at line 878. FOAM aborting #0 Foam::error::printStack(Foam::Ostream&) in "/opt/openfoam210/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #1 Foam::error::abort() in "/opt/openfoam210/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #2 at cyclicAMIPolyPatch.C:0 #3 Foam::AMIInterpolation<Foam::PrimitivePatch<Foam:: face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> >, Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > >::update(Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > const&, Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > const&) in "/opt/openfoam210/platforms/linux64GccDPOpt/lib/libmeshTools.so" #4 Foam::AMIInterpolation<Foam::PrimitivePatch<Foam:: face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> >, Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > >::AMIInterpolation(Foam::PrimitivePatch<Foam::fac e, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > const&, Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > const&, Foam::autoPtr<Foam::searchableSurface> const&, Foam::faceAreaIntersect::triangulationMode const&, bool |
Hello Again,
Thank you for previous hepls but i suppose a bit more is required. Tried and tried few questions for you. ( Work is still on to get a rotating cube executed) 1. topoSets // ( source: tutorial/propeller/) 2. mergeOrSplitBaffle or split.// ( source: tutorial/propeller/) 3. splitMeshRegions -makeCellZones -overwrite // ( sorce : linnemann's cubo case here : http://dl.dropbox.com/u/15968063/cubo.tar.gz ) Well, as you can see these three commands above. Does 3rd command takes care of both 1st and 2nd ie creating "sets" and spliting Baffles? ( where is Baffle in "rotating Cube" though it might be in propeller case) Or my question should be, what sequence one should use these? And linnemann did you at all use 1st and 2nd command, as used in propeller? Though i can't locate any suitable Dict file for 1st and 2nd command. And depending on the above question anyother suggestion? |
Hi ,
Please find latest rotating cube case here: http://dl.dropbox.com/u/70019943/roCube.tar.gz Work flow for successful commands: blockMesh snappyHexMesh mergeMeshes changeDictionary splitMeshRegions -makeCellZones -overwrite Everything went fine till here, but when i intend to execute Solver , it gives following error. pimpleDyFoam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create time Create mesh for time = 0 Selecting dynamicFvMesh solidBodyMotionFvMesh Selecting solid-body motion function rotatingMotion Applying solid body motion to cellZone region0 Reading field p Reading field U Reading/calculating face flux field phi AMI: Creating addressing and weights between 0 source faces and 0 target faces AMI: Patch source weights min/max/average = 1e+300, -1e+300, #0 Foam::error::printStack(Foam::Ostream&) in "/opt/openfoam210/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #1 Foam::sigFpe::sigHandler(int) in "/opt/openfoam210/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #2 in "/lib/libc.so.6" #3 at cyclicAMIPolyPatch.C:0 #4 Foam::AMIInterpolation<Foam::PrimitivePatch<Foam:: face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> >, Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > >::update(Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > const&, Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > const&) in "/opt/openfoam210/platforms/linux64GccDPOpt/lib/libmeshTools.so" #5 Foam::AMIInterpolation<Foam::PrimitivePatch<Foam:: face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> >, Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > >::AMIInterpolation(Foam::PrimitivePatch<Foam::fac e, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > const&, Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > const&, Foam::autoPtr<Foam::searchableSurface> const&, Foam::faceAreaIntersect::triangulationMode const&, bool) in "/opt/openfoam210/platforms/linux64GccDPOpt/lib/libmeshTools.so" EDIT---------------------------------------------1 Hello Everyone, With some struggle the solver pimpleDyFoam is running now. Error was with mesh created for stator. After a bit refinement using sHM it works fine. Though results are awaitted. |
I am making a simulation for mixing processs with an impeller. I have been following the example describing rotating cube in a flow field. Here is what I did
1. I divided the domain in to two parts: a. Region close to the impeller blades. b. The mixing tank (minus the region described by 'a'). 2. Created two meshes. 3. Use mergeMesh operation to merge the mesh. Now, I have following problem/questions. 1. The method I followed did not generate any AMI. What could be wrong? 2. Is it necessary to have conformal meshes to generate AMI? 3. Is there any separate process/file/command to generate AMI? |
Quote:
andy |
All times are GMT -4. The time now is 22:34. |