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

cyclicACMI + cyclic

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   January 12, 2016, 16:23
Default cyclicACMI + cyclic
  #1
Member
 
Yosmcer Mocktai
Join Date: Apr 2013
Location: Behind a computer
Posts: 50
Rep Power: 17
Yosmcer will become famous soon enough
  • Goal description:
I would like to model a moving mesh quite similar to this one:

(Example taken from this report: http://web.student.chalmers.se/group...SlidesOFW5.pdf see pages 18 and 19. However, they make use of overlapGgi Interface which is not part of OpenFOAM)

The problem consist of two block with one of them moving toward the second. The difficulty is to send correctly the information from one block to the other.
I'm only interested on the vertical interface between the two blocks here.
  • Tools I thought to use (but I'm not bound to):
cyclicACMI allows to couple patches that partially overlap with one another.
http://www.openfoam.org/version2.3.0/ami.php

The cyclic boundary condition treats 2 boundary regions as if they are physically connected.
http://www.openfoam.org/version2.0.0/meshing.php
  • What I tried:
Applying cyclicACMI allows to have the correct sliding of the two blocks. It also allows the coupling between the parts of the block that are touching each other. The flowing picture is done with walls set for blue and red marked border. Here the left block is moving up:

The main missing part is to couple theses blue and red border as marked by the green arrow.

I wanted to do it with cyclic (replacing the wall conditions), but ether I'm doing something wrong, either it does not work like that: the two blocks does not slide any-more, the first column of the right block deform instead (which is not at all what is wanted), as can be seen in this picture:


Here are attached the two cases:
Sliding.zip is the one with cyclicACMI and walls
Problem.zip is the one with cyclicACMI and cyclic
  • The question:
Is there a possibility to solve this kind of problem with OpenFOAM (so no foam-extend unfortunately)?
It is possible for me to modify a local copy of part of the source code (that could be taken from foam-extend but should be possible to compile in one module), but it would be better that the modification could be done in "hours-day" order of magnitude.
Attached Images
File Type: png S1_m.png (18.5 KB, 1047 views)
File Type: png S2.png (19.4 KB, 1023 views)
File Type: gif anim.gif (181.0 KB, 1043 views)
Attached Files
File Type: zip Problem.zip (66.1 KB, 33 views)
File Type: zip Sliding.zip (48.5 KB, 32 views)

Last edited by Yosmcer; January 13, 2016 at 07:01. Reason: Enhance description and improve formating
Yosmcer is offline   Reply With Quote

Old   April 15, 2016, 08:15
Default
  #2
Member
 
Yosmcer Mocktai
Join Date: Apr 2013
Location: Behind a computer
Posts: 50
Rep Power: 17
Yosmcer will become famous soon enough
Finally I was allowed to use foam-extend, so had access to overlapGgi which works very well for this kind of problems.

So the problem is solved for my use, but may still be relevant to solve for others.

Last edited by Yosmcer; April 15, 2016 at 10:06.
Yosmcer is offline   Reply With Quote

Old   April 15, 2016, 09:40
Default
  #3
Super Moderator
 
Tobi's Avatar
 
Tobias Holzmann
Join Date: Oct 2010
Location: Tussenhausen
Posts: 2,708
Blog Entries: 6
Rep Power: 51
Tobi has a spectacular aura aboutTobi has a spectacular aura aboutTobi has a spectacular aura about
Send a message via ICQ to Tobi Send a message via Skype™ to Tobi
Hi,

I was thinking that overlagGGI is similar to cyclicACMI because GGI interface is cyclicAMI ...

I am not using foam-extend so often and do not know the libs. But probably a lot of stuff is similar (a bit other programming and other names, due to the history of openfoam).
For your cyclic case, the problem is that you do not split the mesh.
__________________
Keep foaming,
Tobias Holzmann
Tobi is offline   Reply With Quote

Old   April 15, 2016, 10:10
Default
  #4
Member
 
Yosmcer Mocktai
Join Date: Apr 2013
Location: Behind a computer
Posts: 50
Rep Power: 17
Yosmcer will become famous soon enough
Quote:
Originally Posted by Tobi View Post
For your cyclic case, the problem is that you do not split the mesh.
How would you split the mesh?
I'm not familiar with this concept of splitting the mesh, so some documentation about it can also be welcome.
Yosmcer is offline   Reply With Quote

Old   April 15, 2016, 11:36
Default
  #5
Super Moderator
 
Tobi's Avatar
 
Tobias Holzmann
Join Date: Oct 2010
Location: Tussenhausen
Posts: 2,708
Blog Entries: 6
Rep Power: 51
Tobi has a spectacular aura aboutTobi has a spectacular aura aboutTobi has a spectacular aura about
Send a message via ICQ to Tobi Send a message via Skype™ to Tobi
You have to duplicate the points on the interface that is moving. In each AMI tutorial it is described. You will build a cellZone+faceZone and then create baffles (stationary + moving). After that the mesh could freely move. The best thing to test this is just using moveDyMFoam.
__________________
Keep foaming,
Tobias Holzmann
Tobi is offline   Reply With Quote

Old   April 15, 2016, 11:58
Default
  #6
Member
 
Yosmcer Mocktai
Join Date: Apr 2013
Location: Behind a computer
Posts: 50
Rep Power: 17
Yosmcer will become famous soon enough
Quote:
Originally Posted by Tobi View Post
You have to duplicate the points on the interface that is moving. In each AMI tutorial it is described. You will build a cellZone+faceZone and then create baffles (stationary + moving). After that the mesh could freely move. The best thing to test this is just using moveDyMFoam.
The duplication of the points is done on the example:

Code:
vertices
(
    (0 -0.2 0)
    (1 0 0) <- 1
    (1 1 0) <- 2
    (0 0.8 0)
    (0 -0.2 0.1)
    (1 0 0.1) <- 5
    (1 1 0.1) <- 6
    (0 0.8 0.1)

    (1 0 0) <- same as 1
    (3 0 0)
    (3 1 0)
    (1 1 0) <- same as 2
    (1 0 0.1) <- same as 5
    (3 0 0.1)
    (3 1 0.1)
    (1 1 0.1) <- same as 6
);
And the createBaffles is also done.

This is why it in deed slide correctly in the case when I don't use cyclic ( Sliding.zip )

But on the case I was interested in (which just tried to add the cyclic functionality to the two patches not touching, Problem.zip ), there is a problem as it seems cyclic is not compatible with this kind of moving meshes.
Yosmcer is offline   Reply With Quote

Old   April 15, 2016, 12:00
Default
  #7
Super Moderator
 
Tobi's Avatar
 
Tobias Holzmann
Join Date: Oct 2010
Location: Tussenhausen
Posts: 2,708
Blog Entries: 6
Rep Power: 51
Tobi has a spectacular aura aboutTobi has a spectacular aura aboutTobi has a spectacular aura about
Send a message via ICQ to Tobi Send a message via Skype™ to Tobi
Hi,

I never did something like you tried to do. I do not know if cyclic BC can handle your case. Well at last, the picture with cyclic looked like that the points are still be merged. Maybe I will check it somewhen (:

At the moment I am fulll of work.


PS: In createBafflesDict, did you try to create the baffles with cyclicACMI and then just change the type in the boudnarys? Maybe createBaffles will handle the two types differently. But anyways, you solved it with foam-extend.
__________________
Keep foaming,
Tobias Holzmann
Tobi is offline   Reply With Quote

Old   April 15, 2016, 12:05
Default
  #8
Member
 
Yosmcer Mocktai
Join Date: Apr 2013
Location: Behind a computer
Posts: 50
Rep Power: 17
Yosmcer will become famous soon enough
Quote:
Originally Posted by Tobi View Post
Hi,

I never did something like you tried to do. I do not know if cyclic BC can handle your case. Well at last, the picture with cyclic looked like that the points are still be merged. Maybe I will check it somewhen (:

At the moment I am fulll of work.
Don't worry for me, as the specific problem was worked around with foam-extend, I'm in no hurry now (project is handled in and noted).
This is still interesting for my personal learning and maybe for some others that may be in a similar need.

So no hurry and do priority work before
Yosmcer is offline   Reply With Quote

Old   April 15, 2016, 12:21
Default
  #9
Super Moderator
 
Tobi's Avatar
 
Tobias Holzmann
Join Date: Oct 2010
Location: Tussenhausen
Posts: 2,708
Blog Entries: 6
Rep Power: 51
Tobi has a spectacular aura aboutTobi has a spectacular aura aboutTobi has a spectacular aura about
Send a message via ICQ to Tobi Send a message via Skype™ to Tobi
Hi,

I checked your case and maybe the way it goes is here:
Code:
    ACMI1
    {
        //- Use predefined faceZone to select faces and orientation.
        type        faceZone;
        zoneName    couple1Faces;

        patches
        {
            master
            {
                //- Master side patch
                name            ACMI1_couple;
                type            cyclicACMI;
                matchTolerance  0.0001;
                neighbourPatch  ACMI2_couple;
                nonOverlapPatch ACMI1_blockage;
                transform       noOrdering;
            }
            slave // not used since we're manipulating a boundary patch
            {
                //- Slave side patch
                name            ACMI1_couple;
                type            patch;
            }

            master2
            {
                //- Master side patch
                name            ACMI1_blockage;
                type            wall;
            }
            slave2 // not used since we're manipulating a boundary patch
            {
                //- Slave side patch
                name            ACMI1_blockage;
                type            wall;
            }

        }
    }
Maybe it is possible to change that to cyclic and couple both because up to know, you block them (; as the name tells you. Although in the boundaries you tell explicit to block them:
Code:
    ACMI1_blockage
    {
        type            movingWallVelocity;
        value           uniform (0 0 0);
    }
So in my opinion you just have to couple the blocked guys. I would give it a try.
__________________
Keep foaming,
Tobias Holzmann
Tobi is offline   Reply With Quote

Old   April 15, 2016, 12:34
Default
  #10
Member
 
Yosmcer Mocktai
Join Date: Apr 2013
Location: Behind a computer
Posts: 50
Rep Power: 17
Yosmcer will become famous soon enough
Quote:
Originally Posted by Tobi View Post
Maybe it is possible to change that to cyclic and couple both because up to know, you block them (; as the name tells you. Although in the boundaries you tell explicit to block them:
(...)
So in my opinion you just have to couple the blocked guys. I would give it a try.
Yes, it is what I tried tin the other zip file ( Problem.zip ), but without success.
The file you are looking to is the one I used as reference as the sliding was working correctly there.

So my try to use cyclic was something like:

Code:
    ACMI1
    {
        //- Use predefined faceZone to select faces and orientation.
        type        faceZone;
        zoneName    couple1Faces;

        patches
        {
            master
            {
                //- Master side patch
                name            ACMI1_couple;
                type            cyclicACMI;
                matchTolerance  0.0001;
                neighbourPatch  ACMI2_couple;
                nonOverlapPatch ACMI1_blockage;
                transform       noOrdering;
            }
            slave // not used since we're manipulating a boundary patch
            {
                //- Slave side patch
                name            ACMI1_couple;
                type            patch;
            }

            master2
            {
                //- Master side patch
                name            ACMI1_blockage;
                type            cyclic;
                matchTolerance  0.0001;
                neighbourPatch  ACMI2_blockage;
                transform       noOrdering;
            }
            slave2 // not used since we're manipulating a boundary patch
            {
                //- Slave side patch
                name            ACMI1_blockage;
                type            patch;
            }

        }
    }
Code:
ACMI1_blockage
    {
        type            cyclic;
        value           $internalField;
    }
(Yes, I kept the old names with blockage, even if this time I wanted the flow to go threw, this was just in order to keep the modifications to a minimum and not introducing typing mistakes by renaming)
Yosmcer is offline   Reply With Quote

Old   April 15, 2016, 12:49
Default
  #11
Super Moderator
 
Tobi's Avatar
 
Tobias Holzmann
Join Date: Oct 2010
Location: Tussenhausen
Posts: 2,708
Blog Entries: 6
Rep Power: 51
Tobi has a spectacular aura aboutTobi has a spectacular aura aboutTobi has a spectacular aura about
Send a message via ICQ to Tobi Send a message via Skype™ to Tobi
Okay I did not check your second case (:
And of course, keeping names is good for reducing work (:
__________________
Keep foaming,
Tobias Holzmann
Tobi is offline   Reply With Quote

Old   August 17, 2016, 14:10
Default
  #12
Member
 
Hossein
Join Date: Apr 2010
Posts: 65
Rep Power: 15
atoof is on a distinguished road
Send a message via Yahoo to atoof
Dear Yosmcer,
Did you finally have any success to apply cyclic for non overlapping faces?

Regards
Quote:
Originally Posted by Yosmcer View Post

So my try to use cyclic was something like:

Code:
    ACMI1
    {
        //- Use predefined faceZone to select faces and orientation.
        type        faceZone;
        zoneName    couple1Faces;

        patches
        {
            master
            {
                //- Master side patch
                name            ACMI1_couple;
                type            cyclicACMI;
                matchTolerance  0.0001;
                neighbourPatch  ACMI2_couple;
                nonOverlapPatch ACMI1_blockage;
                transform       noOrdering;
            }
            slave // not used since we're manipulating a boundary patch
            {
                //- Slave side patch
                name            ACMI1_couple;
                type            patch;
            }

            master2
            {
                //- Master side patch
                name            ACMI1_blockage;
                type            cyclic;
                matchTolerance  0.0001;
                neighbourPatch  ACMI2_blockage;
                transform       noOrdering;
            }
            slave2 // not used since we're manipulating a boundary patch
            {
                //- Slave side patch
                name            ACMI1_blockage;
                type            patch;
            }

        }
    }
Code:
ACMI1_blockage
    {
        type            cyclic;
        value           $internalField;
    }
atoof is offline   Reply With Quote

Old   August 17, 2016, 14:19
Default
  #13
Member
 
Yosmcer Mocktai
Join Date: Apr 2013
Location: Behind a computer
Posts: 50
Rep Power: 17
Yosmcer will become famous soon enough
At the end we were allowed to use foam-extend which can do it with the overlapGgi.

Up to what I understood, there is no "easy" solution to do this with the base OpenFOAM. This is of course possible, but would require quite some times (month time scale), whereas I only had few times for this.
Yosmcer is offline   Reply With Quote

Old   August 17, 2016, 18:05
Default
  #14
Super Moderator
 
Tobi's Avatar
 
Tobias Holzmann
Join Date: Oct 2010
Location: Tussenhausen
Posts: 2,708
Blog Entries: 6
Rep Power: 51
Tobi has a spectacular aura aboutTobi has a spectacular aura aboutTobi has a spectacular aura about
Send a message via ICQ to Tobi Send a message via Skype™ to Tobi
Finally that is the only possible way at the moment. I made some bug/features report to the Foundation version. The cyclic will not work in my opinion because normally you first make baffles where we copy / dublicate existing face ... If the faces are not close to each other it will not work. Here you would need a new bc like ACMIBlockedCyclic that checks which faces should be mapped together.
__________________
Keep foaming,
Tobias Holzmann
Tobi is offline   Reply With Quote

Old   March 12, 2018, 01:23
Default
  #15
New Member
 
Harshal Akolekar
Join Date: Aug 2016
Location: Melbourne
Posts: 25
Rep Power: 9
hakolekar is on a distinguished road
Hi,

Is this working in the base OpenFOAM by any chance now. I am interested in simulating this as well?

If not can you please elaborate on the procedure using foam-extend.

Regards,
hakolekar is offline   Reply With Quote

Old   March 18, 2018, 10:57
Default
  #16
Member
 
Yosmcer Mocktai
Join Date: Apr 2013
Location: Behind a computer
Posts: 50
Rep Power: 17
Yosmcer will become famous soon enough
Hi hakolekar,

I have no idea on the changes made in this mater.

Foam-extend is a separate code that can be used instead of OpenFoam. It shares some code with OpenFoam, but is a stand-alone solution as far as I could see.

The procedure to install is described here: http://openfoamwiki.net/index.php/In...oam-extend-4.0

For how to use, you have some examples in the tutorials folder, such as: https://github.com/Unofficial-Extend...m/axialTurbine

Best of luck,
Yosmcer is offline   Reply With Quote

Old   March 19, 2018, 20:05
Default
  #17
New Member
 
Harshal Akolekar
Join Date: Aug 2016
Location: Melbourne
Posts: 25
Rep Power: 9
hakolekar is on a distinguished road
Hi Yosmcer,

Thank you for your reply.

I have installed the foam-extend version as per the link that you have sent me.

I am actually interested in simulating a moving cylinder (linear motion) and that sheds a wake on a turbomachine blade (with cyclic boundaries - something similar to the .gif file at the top of this post).

As such the simulation is 2D (obviously I will have one cell in the Z direction in order to facilitate the requirements of OpenFOAM).

I will also be using a grid that has been generated using the plot3dtoFOAM command. And am therefore wondering how to incorporate the overlapggi for the same.

I would be grateful if you have any tips, simulations or code to look at as a starting point.

The moving cylinder tutorial crashes about 2 sec after the simulation has started. Any idea why this is happening?
Thank you.

Regards,
Harshal.
hakolekar is offline   Reply With Quote

Old   April 1, 2018, 08:03
Default
  #18
Member
 
Yosmcer Mocktai
Join Date: Apr 2013
Location: Behind a computer
Posts: 50
Rep Power: 17
Yosmcer will become famous soon enough
Quote:
Originally Posted by hakolekar
linear motion
As we wanted to simulate an axial turbine, the model we made was not linear, but turning around an axis:


Quote:
Originally Posted by hakolekar
The moving cylinder tutorial crashes about 2 sec after the simulation has started
Are you using the ./Allrun from https://github.com/Unofficial-Extend...ovingCylinders
Attached Images
File Type: jpg vid_dp.jpg (30.5 KB, 44 views)
Yosmcer is offline   Reply With Quote

Old   February 12, 2019, 20:12
Default
  #19
New Member
 
Harshal Akolekar
Join Date: Aug 2016
Location: Melbourne
Posts: 25
Rep Power: 9
hakolekar is on a distinguished road
Hi,



Thanks for the animation.



Can you direct me with the usage of boundary conditions. I am using totalPresssure, totalTemperature and pressureDirectedInletVelocity at the inlet.

Also do I have to account for the relative motion while prescribing BCs.

A guide to BC prescription would help a lot.



Thank you.

Regards,

Harshal
hakolekar is offline   Reply With Quote

Reply


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
Why Menter's SST model low-Re issue has not been seriously investigated? vkrastev OpenFOAM 58 January 8, 2018 15:20
Possible createPatch/createBaffles bug? simpomann OpenFOAM Bugs 2 July 15, 2014 07:07
Error during initialization of "rhoSimpleFoam" kornickel OpenFOAM Running, Solving & CFD 8 September 17, 2013 05:37
InterFoam cyclic BC sfotovati OpenFOAM 12 August 23, 2013 14:30
Pressure instability with rhoSimpleFoam daniel_mills OpenFOAM Running, Solving & CFD 44 February 17, 2011 17:08


All times are GMT -4. The time now is 19:23.