CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM (http://www.cfd-online.com/Forums/openfoam/)
-   -   Modifying Mixer Ggi (http://www.cfd-online.com/Forums/openfoam/80084-modifying-mixer-ggi.html)

lordvon September 14, 2010 15:54

Modifying Mixer Ggi
 
EDIT: SOLUTION IN THIRD POST

Hello everyone,

I have been trying to modify mixerggi for it to run an arbitrary rotor and stator mesh.

I followed the procedure here: http://www.cfd-online.com/Forums/ope...m-dummies.html .

My calculations show that the empty faces to cells ratio is an integer. I performed the calculation based off of the numbers from the polyMesh files 'boundary' (for empty faces) and 'cellZones' (for cell count). No calculations were actually even required, as the number of empty faces and the corresponding cellzone count were equal.

However, I still got the error:

Code:

...
Reading field rAU if present



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 148.

FOAM exiting

So I went on over to the emptyFvPatchField file for the error message output function:

Code:

if
    (
        this->patch().patch().size()
      % this->dimensionedInternalField().mesh().nCells()

    )
    {
        FatalErrorIn("emptyFvPatchField<Type>::updateCoeffs()")
            << "This mesh contains patches of type empty but is not 1D or 2D\n"
              "    by virtue of the fact that the number of faces of this\n"
              "    empty patch is not divisible by the number of cells."
            << exit(FatalError);
    }

Edit: I am trying to check out these values in bold.
Well, I first intended to attach my files, but the forum wont let me (many cells in this case). So I have to ask for help even though I can't give you all the files, but of course, if you need a specific part of the files to look at, i can post it.

lordvon September 14, 2010 20:53

I tried changing the c file to show the values that OpenFOAM is using to check the empty faces vs. cells ratio, but it does not change the run. Do i need to recompile? How would I do so? (Version 1.5-dev)

lordvon September 15, 2010 14:26

Yes
 
(I was running Ubuntu 10.04, OpenFOAM 1.5-dev, svn revision 1284)

SOLVED, thanks to some other threads on this forum.

Here's what I did, and it should work for any arbitrary setup of 2D flow, that has a cylindrical rotating mesh and a stator mesh.

1) Create two meshes: the rotating one and the stator. Make sure of course that the rotor mesh fits in the stator (same size). I created it in gmsh, and there is a complete, easy, and well-written procedure here: http://openfoamwiki.net/index.php/2D...ial_using_GMSH . A few necessary modifications though: do not make a surface group of any of the intended empty faces; leave the empty surfaces unnamed. They will be put into defaultFaces when the mesh is converted, and the ggi script as used in mixerGgi assumes empty faces are in the defaultFaces group (I named my empty surfaces, and even though I set them empty, I still got the error in my first post above; the gmsh conversion always automatically makes defaultFaces, even if the number ends up being zero). Also important: you may have to do a simple and quick edit the .msh file if gmshToFoam is giving you an error. Delete the the first 'physical dimension' numbers; they are in front of all of the things you had to give names to. These numbers can only be 1, 2, or 3 (denoting number of dimensions) and messes with what gmshToFoam is expecting to read. Oh, also I named the slider faces and the volumes the same as they are in the mixerGgi tutorial file (outsideSlider, insideSlider, insideZone, outsideZone). This saves you some time as you will not have to edit some other files in the ggi tutorial. You may get errors if you have narrow gaps to mesh; but it is no problem, just set a finer mesh there (see my other thread: 'Graded Mesh from gmsh?').

2) Combine the mesh and prepare for ggi simulation: http://www.cfd-online.com/Forums/ope...m-dummies.html . Make sure you have the initial conditions set in the '0' folder and the 'boundary' file set appropriately.

3) Rename 'insideZone' (or whatever you called it, the cells/volume in the rotating mesh) to 'movingCells' in the file 'contant/polyMesh/cellZones'. This is necessary; reference here: http://www.cfd-online.com/Forums/ope...rbdymfoam.html .

4) Run simulation! (turbDyMFoam or icoDyMFoam)


All times are GMT -4. The time now is 02:20.