4 inlets to 1 outlet and potential internal faces
3 Attachment(s)
Alright, I am a complete OpenFOAM newbie, been working on it for less than a month and I've been thrown in the deep end already. I know how to do the basics: working with the blockMeshDict file to create my geometry, using blockMesh to create my mesh, and using icoFoam to run it all. However, I'm being pushed for results and have hit a snag that I can't seem to beat.
What I'm trying to do is create a duct that is split both vertically and horizontally. Currently modeling it as 4 inlets and 4 ducts running next to each other for the first stage. The problem comes in the end section where I am trying to mix the flow into a single outlet. I am receiving an error with the solver icoFoam, that looks something like this: "--> FOAM FATAL ERROR: This mesh contains patches of type empty but is not 1D or 2D by virtue of the fact that the number of faces of this empty patch is not divisible by the number of cells. From function emptyFvPatchField<Type>::updateCoeffs() in file fields/fvPatchFields/constraint/empty/emptyFvPatchField.C at line 150." I'm not really sure how I'm supposed to go about creating this. I've tried with 0-thickness walls, but that just opens up a whole new set of problems. Any kind of help would be appreciated. Code is kinda giant: Code:
/*--------------------------------*- C++ -*----------------------------------*\ |
Hi,
I suspect one of the patches in a parameter file (either P or U) in the 0 folder has the type "empty". Seeing this is a 3D case, you would want to change the type to something else - most likely to a fixedValue or zeroGradient. Copy paste the U and P files so I can see what you have defined each patch as. Luke |
Some general advice I can give you, I'm a new user too!
Always run checkMesh before running your case. Code:
checkMesh Code:
checkMesh > log & Seeing the log, here's the log Code:
/*---------------------------------------------------------------------------*\ Edit: I wonder what OF version are you using, the header files of your blockMeshDict says 1.7.1 while the FoamFile dict says 2.0, so you may not be seeing the same results from checkMesh if you're using an older version. |
Thanks for the suggestions.
So what I ended up doing was reducing my inner walls down to 0 thickness for the 4-duct section. When they converge at the end, I made the nozzle with another 2x2 geometry, but defined the the area that used to be 'inner walls' as patches instead of walls. There are 8 of them that form a + shape that just got labeled inner1-inner8. Then I assigned their 0/p and 0/U values as uniform 0 and zeroGradient, respectively (the same as an outlet when I was getting the damn thing to work.) There are a few quirks, but the geometry does what I want it to do for the most part. Now comes the question: how the hell do I get my Courant Number to not crash? It's skyrocketing off the charts and crashing my solver at about 0.14 s out of a 1 s simulation. :/ Help? Thanks in advance! |
Don't use icoFoam, use pimpleFoam or pisoFoam.
Btw, I edited the results from checkMesh, the previous errors were something to do with my setup. This is what fails now: Code:
The mesh has multiple regions which are not connected by any face. |
So how does one acquire/use those solvers? Again, super-newbie, so sorry for the dumb questions.
|
Those solvers come installed with the standard OpenFOAM distribution. It should be just a matter of typing simpleFoam instead of icoFoam, although you may need to add more fields.
|
Quote:
Code:
--> FOAM FATAL IO ERROR: |
Before using any solver, I suggest copying all the files from a case with the same solver (especially the files in the system folder), then start adjusting it to your needs.
To obtain these files, browse to the OpenFOAM installation directory and go to the tutorials folder, there you will find sample cases for each solver. Or you can type tut in the terminal and it will take you there. Back to your error, it is telling you that something is undefined in your fvSolution dictionary. If you check the sample cases for the simpleFoam solver, you'll find all the cases have the following in the fvSolution: Code:
SIMPLE Or this Code:
SIMPLE The reason I told you to copy cases then adjust to your needs is to avoid errors such as the one you have. Other errors will appear as well, for example; simpleFoam is a steady state solver while icoFoam is unsteady so another thing that you need to change is the scheme used for the time derivative (system/fvSchemes). For simpleFoam it should be: Code:
ddtSchemes Code:
application simpleFoam; Edit: I also suggest upgrading your OpenFOAM version unless you have a special reason for using 1.7 |
'inner walls'
Quote:
I saw your post, sorry for writing to you but I am desperate and hope you can help me. I am using OF 2.1.1. I am trying to use blockmesh to get injector inside combustion chamber(cylinder) as you can see in the picture. the problem is defining the internal wall for the injector surface, I do not have thickness for it, I defined it as walls but I got this error : --> FOAM FATAL ERROR: Trying to specify a boundary face 4(19 18 22 23) on the face on cell 5 which is either an internal face or already belongs to some other patch. This is face 0 of patch 3 named innerWalls. From function polyMesh::setTopology ( const cellShapeList& cellsAsShapes, const faceListList& boundaryFaces, const wordList& boundaryPatchNames, labelList& patchSizes, labelList& patchStarts, label& defaultPatchStart, label& nFaces, cellList& cells ) in file meshes/polyMesh/polyMeshFromShapeMesh.C at line 360. FOAM aborting Then I tried to do define inner walls' as patches instead of walls as you did but i did not work neither. Please could you help me, any advice or thought would be helpful. Sandy, |
'inner walls'
1 Attachment(s)
Quote:
|
All times are GMT -4. The time now is 17:21. |