CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Community Contributions

[cfMesh] Cyclic boundary condition with cfMesh

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

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   August 28, 2018, 09:53
Default Cyclic boundary condition with cfMesh
  #1
Member
 
Lukas Fischer
Join Date: May 2018
Location: Germany
Posts: 49
Rep Power: 4
lukasf is on a distinguished road
Hi Foamers,

How can I assign neighboring patches in the meshDict?


If I have to apply cyclicAMI I would also like to know how to set the transform and separation vector in the meshDict.


Here are my steps:


I created the geometry (.stl) file with ICEM.
The renameBoundary dictionary in the meshDict looks like this:


Code:
renameBoundary
{
    newPatchNames
    {     
        "OUTLET"
        {
                newName OUTLET;
                type    cyclic;
                neighbourPatch INLET;
        }            
        "INLET"
        {
                newName INLET;
                type    cyclic;
                neighbourPatch OUTLET;                                
        }            
            
        "WALL"
        {
                newName WALL;
                type    wall;
        }            
    }
}
or it looks like this if cyclicAMI boundary is desired:



Code:
renameBoundary
{
    newPatchNames
    {
            
        "OUTLET"
        {
                newName OUTLET;
                type cyclicAMI;
                neighbourPatch INLET;
                transform       translational;
                separationVector (0 0 -0.032);
        }            
        "INLET"
        {
                newName INLET;
                type cyclicAMI;
                neighbourPatch OUTLET;
                transform       translational;
                separationVector (0 0 0.032);                                
        }            
            
        "WALL"
        {
                newName WALL;
                type    wall;
        }            
    }
}
Afterwards I apply the cartesianMesh command.

I am noticing that cfMesh ignores the neighbourPatches and the other parameters if cyclicAMI is used. The boundary file in constant/polyMesh/boundary does not contain the other parameters of the dictionary. Hence, it would have to be manually added.


Code:
    location    "constant/polyMesh";
    object      boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

3
(
OUTLET
{
    type cyclicAMI;
    nFaces 2502;
    startFace 1567898;
}

INLET
{
    type cyclicAMI;
    nFaces 2502;
    startFace 1570400;
}

WALL
{
    type wall;
    nFaces 47088;
    startFace 1572902;
}
)
Any help is very much appreciated,

Lukas

Last edited by lukasf; September 18, 2018 at 03:57. Reason: Adjusting the question asked
lukasf is offline   Reply With Quote

Old   September 18, 2018, 10:05
Default New Thread
  #2
Member
 
Lukas Fischer
Join Date: May 2018
Location: Germany
Posts: 49
Rep Power: 4
lukasf is on a distinguished road
I opened a new thread with a more fitting title in my opinion:


How to use renameBoundary for cyclic boundary conditions?
lukasf is offline   Reply With Quote

Old   May 22, 2020, 18:19
Default
  #3
Member
 
niewiemnic
Join Date: Jan 2018
Location: Niemcy
Posts: 76
Rep Power: 4
spalartallmaras is on a distinguished road
I also struggled with this problem and it worked well finally after 2h...

My situation: I want to set cyclicAMI for planes front_c - back_c and top_c - bottom_c with this cfd-domain,

Code:
xmin -1.1;
xmax 2.2;
ymin -0.133;
ymax -0.008;
zmin -2.2;
zmax 2.2;
front_c is on ymax
back_c is on ymin
top_c is on zmax
bottom_c is on zmin

1. your_geometry.fms for example with

Code:
profil
wall

front
patch

back
patch

inlet
patch

outlet
patch

top
patch

bottom
patch
2. cartesianMesh

3. createPatch with this createPatchDict

Code:
pointSync false;

// Patches to create.
patches
(
    {   
        // Name of new patch
        name front_c;

        // Dictionary to construct new patch from
        patchInfo
        {   
            type cyclicAMI;
            neighbourPatch back_c;

            transform translational;
            separationVector (0 -0.125 0); //(0 -0.133 0);
            

            // Optional non-default tolerance to be able to define cyclics
            // on bad meshes
             matchTolerance 1E-2;
        }

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

        // If constructFrom = patches : names of patches. Wildcards allowed.
        patches (front);

        // If constructFrom = set : name of faceSet
        //set f0;
    }
    {
        // Name of new patch
        name back_c;

        // Dictionary to construct new patch from
        patchInfo
        {
            type cyclicAMI;
            neighbourPatch front_c;

            transform translational;
            separationVector (0 0.125 0); //(0 -0.008 0);
			
	    matchTolerance 1E-2;
        }

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

        // If constructFrom = patches : names of patches. Wildcards allowed.
        patches (back);

        // If constructFrom = set : name of faceSet
        //set f0;
    }
	
	{   
        // Name of new patch
        name top_c;

        // Dictionary to construct new patch from
        patchInfo
        {   
            type cyclicAMI;
            neighbourPatch bottom_c;
			
			
			transform translational;
            separationVector (0 0 -4.4); //(0 0 2.2);
           matchTolerance 1E-2;
        }

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

        // If constructFrom = patches : names of patches. Wildcards allowed.
        patches (top);

        // If constructFrom = set : name of faceSet
        //set f0;
    }
	
	{   
        // Name of new patch
        name bottom_c;

        // Dictionary to construct new patch from
        patchInfo
        {   
            type cyclicAMI;
            neighbourPatch top_c;
						
			transform translational;
            separationVector (0 0 4.4); //(0 0 -2.2);
	    matchTolerance 1E-2;
        }

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

        // If constructFrom = patches : names of patches. Wildcards allowed.
        patches (bottom);

        // If constructFrom = set : name of faceSet
        //set f0;
    }
);
spalartallmaras is offline   Reply With Quote

Reply

Tags
cfmesh, cyclic boundaries, cyclicami

Thread Tools Search this Thread
Search this Thread:

Advanced Search
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 Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
cyclic patchType with inletOutlet boundary condition mikeP OpenFOAM Running, Solving & CFD 2 August 16, 2016 10:25
Cyclic Boundary Condition Errors? nyflyer OpenFOAM Running, Solving & CFD 2 April 26, 2016 14:14
Basic Nozzle-Expander Design karmavatar CFX 20 March 20, 2016 08:44
sliding mesh problem in CFX Saima CFX 45 September 22, 2015 10:53
vorticity boundary condition bearcharge Main CFD Forum 0 May 14, 2010 11:32


All times are GMT -4. The time now is 08:30.