CFD Online Logo CFD Online URL
Home > Forums > OpenFOAM Mesh Utilities

stitchMesh: multiple meshes

Register Blogs Members List Search Today's Posts Mark Forums Read

Like Tree3Likes
  • 3 Post By GerhardHolzinger

LinkBack Thread Tools Display Modes
Old   January 30, 2014, 14:07
Default stitchMesh: multiple meshes
Senior Member
Gerhard Holzinger
Join Date: Feb 2012
Location: Austria
Posts: 173
Rep Power: 14
GerhardHolzinger will become famous soon enoughGerhardHolzinger will become famous soon enough
This is more of a how-to than a question but I want to share the thing I learned today.

In the attached image you see a large cylinder which is joined by four smaller cylinders, like four pipes joining a large tank.

I created the mesh with blockMesh and after the blockMesh run I have 5 unconnected mesh regions. Thus I have to use stitchMesh to join these five meshes.

I do not want to let blockMesh join the pipes with the tank (mergePatchPairs) because I want to apply some mesh modification on the mesh of the large cylinder only.

The small elliptical surfaces at the near end of the pipes are named intersectSlaveN (N is the running index. In this case 0, 1, 2 or 3). The patches on the large cylinder (two of them are not shown and two of them are displayed as wire frame) are named intersectMasterN.

When I use
stitchMesh intersectMaster0 intersectSlave0
to merge the first pair, everthing works as expected.

When I call
stitchMesh intersectMaster1 intersectSlave1
to merge the second pair, stitchMesh aborts the operation with this error message

Master or slave face zone contain no faces.  Please check your mesh definition.

    From function void slidingInterface::checkDefinition()
    in file slidingInterface/slidingInterface.C at line 97.

FOAM aborting
An old post [StitchMesh on two patches] in this forum brought me to the solution of my problem.

After the operation on the large cylinder's mesh, the mesh was written to the 0.001 directory. stitchMesh, however, read the mesh at time 0. In fact, stitchMesh reads the mesh from the time that is stated in controlDict at startTime.

So, I had to change the entry at startTime in controlDict. This made stitchMesh read the mesh from the 0.001 folder. However, the second call of stitchMesh again resulted in the above-posted error message.

The solution to this problem was to delete the file meshModifiers in the 0.001/polyMesh directory. Then it worked.

So, my workflow for stitching my mesh was as follows
  1. Set startTime to the latest time step
  2. call stitchMesh
  3. delete meshModifiers from the polyMesh folder in the latest time step
  4. Repeat 1-3 until finshed
Attached Images
File Type: jpg joiningPipes.jpg (21.2 KB, 40 views)
vatavuk, cutter and Mojtaba.a like this.
GerhardHolzinger is offline   Reply With Quote

Old   January 30, 2014, 14:43
Default Addendum: createPatch
Senior Member
Gerhard Holzinger
Join Date: Feb 2012
Location: Austria
Posts: 173
Rep Power: 14
GerhardHolzinger will become famous soon enoughGerhardHolzinger will become famous soon enough
As nobody wants to specify boundary conditions for several wall-patches (in my case the intersectMaster patches and the walls patch that contains all wall patches not involved in any stitching) createPatch can be used to join all wall patches to a single wall patch.

With createPatch I join all intersectMasterN and walls to a new patch named WALL. So I only need one entry in the files of the 0 directory for the boundary condition on the wall.

In my case this createPatchDict does the trick. Again, the parameter startTime in controlDict has to be set to the latest time step.

/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  2.2.2                                 |
|   \\  /    A nd           | Web:                      |
|    \\/     M anipulation  |                                                 |
    version     2.0;
    format      ascii;
    class       dictionary;
    object      createPatchDict;
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

pointSync false;

// Patches to create.
        // Name of new patch
        name WALL;

        // Dictionary to construct new patch from
            type wall;

        // How to construct: either from 'patches' or 'set'
        constructFrom patches;

        // If constructFrom = patches : names of patches. Wildcards allowed.
        patches (walls intersectMaster0 intersectMaster1 intersectMaster2 intersectMaster3);
GerhardHolzinger is offline   Reply With Quote



Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
[ANSYS Meshing] Multiple meshes for FLUENT AntonZ44 ANSYS Meshing & Geometry 11 February 23, 2015 15:30
how to set periodic boundary conditions Ganesh FLUENT 13 January 22, 2014 05:11
Problem with stitchMesh: it does not work in meshes with several common patches arnau1985 OpenFOAM Mesh Utilities 2 June 25, 2013 08:49
[Other] Importing Multiple Meshes Spookz ANSYS Meshing & Geometry 3 December 17, 2012 07:47
OpenFOAM static build on Cray XT5 asaijo OpenFOAM Installation 9 April 6, 2011 12:21

All times are GMT -4. The time now is 00:52.