CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

Sliding interface- ACMI

Register Blogs Community New Posts Updated Threads Search

Like Tree10Likes

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   July 3, 2014, 05:36
Default Sliding interface- ACMI
  #1
New Member
 
Felix
Join Date: Dec 2012
Posts: 7
Rep Power: 13
Lesson is on a distinguished road
Hello
I'm working with OpenFOAM to study the behaviour of automatic valves in reciprocating compressors.
The first problem encountered is the interface beetween two non conformal and non-overlap mesh ( lateral cylinder surface and pocket valve ), the first is dynamic mesh, the second is fixed. Each non-overlap zone is wall.
I'm using,as a starting point, oscillating2DACMI modified with rhoPimpleDyMfoam.
I have the problem with overlap zone.
You can see that with the 3 pictures attached.

thanks a lot

Fely
Attached Images
File Type: png final.png (18.8 KB, 373 views)
File Type: png first.png (8.5 KB, 318 views)
File Type: png second.png (16.6 KB, 308 views)
Lesson is offline   Reply With Quote

Old   July 15, 2014, 06:54
Default working progress
  #2
New Member
 
Felix
Join Date: Dec 2012
Posts: 7
Rep Power: 13
Lesson is on a distinguished road
I solved it using GGI interface with foam-extend version.
Now the problem is: how to define walls for non-overlap face?
And how to simulate in parallel if I have more than 1 couple of GGI interfaces.
Lesson is offline   Reply With Quote

Old   September 11, 2014, 11:09
Default
  #3
Senior Member
 
Przemek
Join Date: Jun 2011
Posts: 249
Rep Power: 16
gaza is on a distinguished road
Quote:
Originally Posted by Lesson View Post
I solved it using GGI interface with foam-extend version.
Now the problem is: how to define walls for non-overlap face?
And how to simulate in parallel if I have more than 1 couple of GGI interfaces.
Hi Lesson
You wrote that you solved your problem with use rhoPimpleDyMFoam and GGI?
Can you tell me how did you do that?
best regards
gaza is offline   Reply With Quote

Old   September 13, 2014, 18:31
Default
  #4
Senior Member
 
Mojtaba.a's Avatar
 
Mojtaba Amiraslanpour
Join Date: Jun 2011
Location: Tampa, US
Posts: 308
Rep Power: 16
Mojtaba.a is on a distinguished road
Send a message via Skype™ to Mojtaba.a
I think it can be done using AMI in OpenFOAM 2.3.
Its all about defining cellZones and cyclic boundaries.
You obviously must have two regions, each region must be defined as a cellZone so we can use it later in dynamicMeshDict.

After that in dynamicMeshDict you can use,

Code:
dynamicFvMesh   solidBodyMotionFvMesh;

motionSolverLibs ( "libfvMotionSolvers.so" );

solidBodyMotionFvMeshCoeffs
{
    cellZone        cellZoneName; //Change to your cellZone name.

    solidBodyMotionFunction  oscillatingLinearMotion; //Use any motion you desire
    oscillatingLinearMotionCoeffs
    {
        omega           1;
    amplitude    (0 1 0);
    }
}
I hope it helps a bit,
Best.
__________________
Learn OpenFOAM in Persian
SFO (StarCCM+ FLUENT OpenFOAM) Project Team Member
Complex Heat & Flow Simulation Research Group
If you can't explain it simply, you don't understand it well enough. "Richard Feynman"
Mojtaba.a is offline   Reply With Quote

Old   September 16, 2014, 12:53
Default
  #5
Senior Member
 
Przemek
Join Date: Jun 2011
Posts: 249
Rep Power: 16
gaza is on a distinguished road
Hi Mojtaba.a,
Yes I set up my case in the OF2.3 with AMI.
However my case runs only if I use lowWeightCorrection 0.2
After 0.2 s solver crashes. I wanted to make rhoPimpleDyMFoam in OpenFOAM extended 3.0 but I cannot. I do not know how to solve my problem.
best regards
Przemek
gaza is offline   Reply With Quote

Old   September 16, 2014, 16:27
Default
  #6
Senior Member
 
Mojtaba.a's Avatar
 
Mojtaba Amiraslanpour
Join Date: Jun 2011
Location: Tampa, US
Posts: 308
Rep Power: 16
Mojtaba.a is on a distinguished road
Send a message via Skype™ to Mojtaba.a
Quote:
Originally Posted by gaza View Post
Hi Mojtaba.a,
Yes I set up my case in the OF2.3 with AMI.
However my case runs only if I use lowWeightCorrection 0.2
After 0.2 s solver crashes. I wanted to make rhoPimpleDyMFoam in OpenFOAM extended 3.0 but I cannot. I do not know how to solve my problem.
best regards
Przemek
Well does mesh deforms while running? because it shouldn't since you use ACMI.
First try testing your mesh movement with "moveDynamicMesh" to make sure everything is fine and then start simulation using rhoPimpleDyMFoam.
Tell me what happens when you run moveDynamicMesh.
Tobi likes this.
__________________
Learn OpenFOAM in Persian
SFO (StarCCM+ FLUENT OpenFOAM) Project Team Member
Complex Heat & Flow Simulation Research Group
If you can't explain it simply, you don't understand it well enough. "Richard Feynman"
Mojtaba.a is offline   Reply With Quote

Old   September 18, 2014, 00:12
Default
  #7
Member
 
Ovie Doro
Join Date: Jul 2009
Posts: 99
Rep Power: 17
ovie is on a distinguished road
Quote:
Originally Posted by Mojtaba.a View Post
Well does mesh deforms while running? because it shouldn't since you use ACMI.
First try testing your mesh movement with "moveDynamicMesh" to make sure everything is fine and then start simulation using rhoPimpleDyMFoam.
Tell me what happens when you run moveDynamicMesh.

Hi Mojtaba:

From your earlier post, it appears you are suggesting that its not possible to use ACMI with deformable meshes i.e. when the dynamic mesh is not a solid body motion. Do you by chance have any idea how sliding interface with deformable mesh motion can be implemented either in OF or the extended version?

Thanks.
ovie is offline   Reply With Quote

Old   September 18, 2014, 04:44
Default
  #8
Senior Member
 
Mojtaba.a's Avatar
 
Mojtaba Amiraslanpour
Join Date: Jun 2011
Location: Tampa, US
Posts: 308
Rep Power: 16
Mojtaba.a is on a distinguished road
Send a message via Skype™ to Mojtaba.a
Quote:
Originally Posted by ovie View Post
Hi Mojtaba:

From your earlier post, it appears you are suggesting that its not possible to use ACMI with deformable meshes i.e. when the dynamic mesh is not a solid body motion. Do you by chance have any idea how sliding interface with deformable mesh motion can be implemented either in OF or the extended version?

Thanks.
Dear Ovie,
I am afraid I cannot help you on this, but just for curiosity does your case really needs both methods at once to be solved?
For typical problems just one of them would suffice.

Best.
__________________
Learn OpenFOAM in Persian
SFO (StarCCM+ FLUENT OpenFOAM) Project Team Member
Complex Heat & Flow Simulation Research Group
If you can't explain it simply, you don't understand it well enough. "Richard Feynman"
Mojtaba.a is offline   Reply With Quote

Old   September 18, 2014, 15:13
Default
  #9
Member
 
Ovie Doro
Join Date: Jul 2009
Posts: 99
Rep Power: 17
ovie is on a distinguished road
Thanks for your response.

Quote:
Originally Posted by Mojtaba.a View Post
Dear Ovie,
but just for curiosity does your case really needs both methods at once to be solved?
Frankly I dont know at the moment, but let me break it down to see if you can provide any insight.

The problem I am trying to simulate involves two concentric cylinders : a smaller diameter cylinder (SDC) initially positioned at the top of a second larger diameter cylinder (LDC).

The top surface of SDC is a piston that moves up and down to compress or expand the air inside SDC.

SDC is initially empty while LDC contains liquid up to some some level.

At time > 0; SCD slides into LDC and as it slides down, the piston surface simultaneously moves upwards to create suction pressure inside SDC so as to aspirate liquid from LDC into SDC.

After aspirating a certain volume of liquid, SDC starts moving upwards while piston surface at the same time moves downwards to create pressure for expelling aspirated liquid from SDC into LDC.

This cycle is repeated multiple times.

So there is the problem I am trying to simulate. Do you have any pointers on how to use the current capabilities of OF/extend to model this?

Thanks again for your time.
ovie is offline   Reply With Quote

Old   September 19, 2014, 04:34
Default
  #10
Senior Member
 
Mojtaba.a's Avatar
 
Mojtaba Amiraslanpour
Join Date: Jun 2011
Location: Tampa, US
Posts: 308
Rep Power: 16
Mojtaba.a is on a distinguished road
Send a message via Skype™ to Mojtaba.a
Well it is a little bit hard to imagine, two further questions,

1. Does your problem includes two phase?
2. Is bottom surface of SDC always open?

Maybe you can provide a simple sketch for better insight?

Best.
__________________
Learn OpenFOAM in Persian
SFO (StarCCM+ FLUENT OpenFOAM) Project Team Member
Complex Heat & Flow Simulation Research Group
If you can't explain it simply, you don't understand it well enough. "Richard Feynman"
Mojtaba.a is offline   Reply With Quote

Old   September 22, 2014, 10:19
Default ggi interface
  #11
New Member
 
Felix
Join Date: Dec 2012
Posts: 7
Rep Power: 13
Lesson is on a distinguished road
Hi everyone
Sorry for my late reply
i tried to solve my problems with OF 2.3 ( ACMI )
This kind of solution is not good for body that have sliding interface and deformation mesh ( maybe It's better to say that I'm not able to do it with ACMI ).
So I started playing with OpenFOAM extend -version . The great advantage of this release is the GGI interfaces. You can manage two separate bodies with all kinds of mesh motion. The disadvantage is that you can't put no slip condition for wall in non-overlap interfaces.
The second disadvantage is that in OpenFOAM-exetend version there isn't rhoPimpleDyMFoam implemented, you have to build it.
There is a tutorial: mixerggi, that explain you how to setup the case with GGI interface.

Bye
Fely
Lesson is offline   Reply With Quote

Old   November 17, 2014, 16:52
Default
  #12
New Member
 
simin
Join Date: Apr 2012
Posts: 13
Rep Power: 14
simin_ds is on a distinguished road
Hi lesson
I hope a good night for you!

I am simulating a valve motion like you but in a pipe. I used ACMI and I have a problem like yours. Also I used GGI in extend version of 1.6 that by moving the valve down the until after some time the negative cell volume occur and the non-overlap patches can not be considered as wall. Have you solved your problem?
If yes can you adise me in this regards?
simin_ds is offline   Reply With Quote

Old   April 24, 2016, 19:13
Default
  #13
Super Moderator
 
Tobi's Avatar
 
Tobias Holzmann
Join Date: Oct 2010
Location: Bad Wörishofen
Posts: 2,711
Blog Entries: 6
Rep Power: 52
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
Quote:
Originally Posted by Mojtaba.a View Post
I think it can be done using AMI in OpenFOAM 2.3.
Its all about defining cellZones and cyclic boundaries.
You obviously must have two regions, each region must be defined as a cellZone so we can use it later in dynamicMeshDict.

Dear Mojtaba,

I have just a question to you. You told that it is all about cellZones and correct cyclic boundaries. I think I made everything well (checked ACMI interface and surface normals). Everything seems fine but moveDynamicMesh result in distortion of the interface (it is not sliding - it is connected).

In the attachment you find a picture. I have also two cellZones (rotating and static zone). Anyway it is not working :/ Any suggestions.

Thanks in advance,
Tobi
Attached Images
File Type: png ACMI.png (28.4 KB, 194 views)
__________________
Keep foaming,
Tobias Holzmann
Tobi is offline   Reply With Quote

Old   April 25, 2016, 06:09
Default
  #14
Senior Member
 
Mojtaba.a's Avatar
 
Mojtaba Amiraslanpour
Join Date: Jun 2011
Location: Tampa, US
Posts: 308
Rep Power: 16
Mojtaba.a is on a distinguished road
Send a message via Skype™ to Mojtaba.a
Quote:
Originally Posted by Tobi View Post
Dear Mojtaba,

I have just a question to you. You told that it is all about cellZones and correct cyclic boundaries. I think I made everything well (checked ACMI interface and surface normals). Everything seems fine but moveDynamicMesh result in distortion of the interface (it is not sliding - it is connected).

In the attachment you find a picture. I have also two cellZones (rotating and static zone). Anyway it is not working :/ Any suggestions.

Thanks in advance,
Tobi
Dear Tobias,

Maybe I was not clear before. Actually you have to have separate regions to make them slide relative to each other. To do this you have to try to disconnect rotor and static zones in your meshing tool.

The best alternative would be using splitMeshRegions utility. This utility can separate your domain by your cellZones.
Code:
splitMeshRegions -cellZones -overwrite
To check if everything is alright, try to do checkMesh and you have to see this line:

Code:
   *Number of regions: 2
    The mesh has multiple regions which are not connected by any face.
It should be fine now.
Hope it helps.
mo_na likes this.
__________________
Learn OpenFOAM in Persian
SFO (StarCCM+ FLUENT OpenFOAM) Project Team Member
Complex Heat & Flow Simulation Research Group
If you can't explain it simply, you don't understand it well enough. "Richard Feynman"
Mojtaba.a is offline   Reply With Quote

Old   April 25, 2016, 06:26
Default
  #15
Super Moderator
 
Tobi's Avatar
 
Tobias Holzmann
Join Date: Oct 2010
Location: Bad Wörishofen
Posts: 2,711
Blog Entries: 6
Rep Power: 52
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
Thank you for the replay.
I will check it out today evening but I checked it with checkMesh yesterday and I already got 2 regions. Anyway I will try. Interesting that you mention splitRegions. If I am doing AMI I never used it before and everything was fine (thats the reason why I am confused a bit). Maybe snappyHexMesh is doing the stuff for me; thanks in advance.
__________________
Keep foaming,
Tobias Holzmann
Tobi is offline   Reply With Quote

Old   April 25, 2016, 18:40
Default
  #16
Super Moderator
 
Tobi's Avatar
 
Tobias Holzmann
Join Date: Oct 2010
Location: Bad Wörishofen
Posts: 2,711
Blog Entries: 6
Rep Power: 52
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,

as I expected, ... if I use splitMeshRegions -cellZones I will get two different meshes but normally I only need this using chtMulti***Foam. So after that you have to combine the meshes again? Is there some other work-around?

Will check the tutorial case tomorrow again.
__________________
Keep foaming,
Tobias Holzmann
Tobi is offline   Reply With Quote

Old   April 26, 2016, 16:30
Default
  #17
Senior Member
 
Mojtaba.a's Avatar
 
Mojtaba Amiraslanpour
Join Date: Jun 2011
Location: Tampa, US
Posts: 308
Rep Power: 16
Mojtaba.a is on a distinguished road
Send a message via Skype™ to Mojtaba.a
Quote:
Originally Posted by Tobi View Post
Hi,

as I expected, ... if I use splitMeshRegions -cellZones I will get two different meshes but normally I only need this using chtMulti***Foam. So after that you have to combine the meshes again? Is there some other work-around?

Will check the tutorial case tomorrow again.
So splitMeshRegions couldn't solve the distortion problem?
I haven't used the cht solvers for a long time, not very much sure how to set it up. I should check it in tuts. But I couldn't actually get from your posts if the moving mesh problem is now solved or not. I can take a look at the case if you can attach it.

All the best.
__________________
Learn OpenFOAM in Persian
SFO (StarCCM+ FLUENT OpenFOAM) Project Team Member
Complex Heat & Flow Simulation Research Group
If you can't explain it simply, you don't understand it well enough. "Richard Feynman"
Mojtaba.a is offline   Reply With Quote

Old   April 27, 2016, 09:40
Default
  #18
Super Moderator
 
Tobi's Avatar
 
Tobias Holzmann
Join Date: Oct 2010
Location: Bad Wörishofen
Posts: 2,711
Blog Entries: 6
Rep Power: 52
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,

no if I really split the mesh I end up with two polyMesh's. Finally I only need one with cellZone of the moving area (for dynamicLib) and the duplicated interface points. In my case, the interface points are still connected. In the evening I will upload the case and you can check out what I did. Maybe you will find the problem.
__________________
Keep foaming,
Tobias Holzmann
Tobi is offline   Reply With Quote

Old   April 27, 2016, 16:25
Default
  #19
Super Moderator
 
Tobi's Avatar
 
Tobias Holzmann
Join Date: Oct 2010
Location: Bad Wörishofen
Posts: 2,711
Blog Entries: 6
Rep Power: 52
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
The case can be downloaded here: http://holzmann-cfd.de/cfd-online/cases/ACMI.tar.gz

This download will be only temporary and will move to the official tutorial section.
It will stay there till the case will run (:
__________________
Keep foaming,
Tobias Holzmann
Tobi is offline   Reply With Quote

Old   April 28, 2016, 05:23
Default
  #20
Senior Member
 
Mojtaba.a's Avatar
 
Mojtaba Amiraslanpour
Join Date: Jun 2011
Location: Tampa, US
Posts: 308
Rep Power: 16
Mojtaba.a is on a distinguished road
Send a message via Skype™ to Mojtaba.a
Quote:
Originally Posted by Tobi View Post
The case can be downloaded here: http://holzmann-cfd.de/cfd-online/cases/ACMI.tar.gz

This download will be only temporary and will move to the official tutorial section.
It will stay there till the case will run (:
Hi Tobias,

I took a look at your case. First of all nice run file. I liked it .
Actually your cellZones are connected to each other and I don't know why checkMesh shows two separate regions. Not sure on that. When I loaded only the moving cellZone, I saw no cells but faces:



Further I looked at your case, I remembered how I got this to work on my own case some times ago. I did it by producing two separate meshes in two separate cases (using SHM) and then merging them together by mergeMesh utility. It is very much more straight forward than doing it all in a single case. So what you should now do is:

1- Make two separate cases each containing the stl files and snappyHexMesh files to mesh only one of the regions (Moving and Stationary).

2- Remember that you have to choose different patch names for the interfaces, walls, front and back patches. For example, interface1 for the Moving region mesh and interface2 for the Stationary region Mesh, or wall1 and wall2 ... (As told before these mesh are stored in separate cases for now). Boundaries with the same name will be merged into a single boundary after the merging process that is not desired in our case for the mentioned boundaries.

3- Mesh both cases using SHM or any other tool you prefer to use. Do extrudeMesh, flattenMesh and ... for both cases.

4- Merge meshes using mergeMesh utility. To do this I would do sth like this:

Code:
cd stationary
mergeMeshes -overwrite "." "../moving/"
Now you have both meshes merged together and stored in the stationary case.

5- Now you have to make some faceZones referring to interface patches. We want to put interface1 and interface2 patches into movingFaces and fixedFaces faceZones. I do this by topoSet:

Code:
actions
(
    {
        name    fixedFaceSet;
        type    faceSet;
        action  new;
        source  patchToFace;
        sourceInfo
        {
            name    interface2;
        }
    }
    {
        name    fixedFaces;
        type    faceZoneSet;
        action  new;
        source  setToFaceZone;
        sourceInfo
        {
            faceSet fixedFaceSet;
        }
    }

    {
        name    movingFaceSet;
        type    faceSet;
        action  new;
        source  patchToFace;
        sourceInfo
        {
            name    interface1;
        }
    }

    {
        name    movingFaces;
        type    faceZoneSet;
        action  new;
        source  setToFaceZone;
        sourceInfo
        {
            faceSet movingFaceSet;
        }
    }
);
And run topoSet:

Code:
topoSet -constant
6- Next we have createBaffles. We are making the ACMI boundaries now.

Code:
internalFacesOnly false;

baffles
{
    fixedACMI
    {
        type        faceZone;
        zoneName    fixedFaces;

        patches
        {
            master
            {
                name            fixedACMI_couple;
                type            cyclicACMI;
                matchTolerance  0.0001;
                neighbourPatch  movingACMI_couple;
                nonOverlapPatch fixedACMI_blockage;
                transform       noOrdering;
            }
            slave
            {
                name            fixedACMI_couple;
                type            patch;
            }

            master2
            {
                name            fixedACMI_blockage;
                type            patch;
            }
            slave2
            {
                name            fixedACMI_blockage;
                type            patch;
            }

        }
    }

    movingACMI
    {
        type        faceZone;
        zoneName    movingFaces;

        patches
        {
            master
            {
                name            movingACMI_couple;
                type            cyclicACMI;
                matchTolerance  0.0001;
                neighbourPatch  fixedACMI_couple;
                nonOverlapPatch movingACMI_blockage;
                transform       noOrdering;
            }
            slave
            {
                name            movingACMI_couple;
                type            patch;
            }

            master2
            {
                name            movingACMI_blockage;
                type            patch;
            }
            slave2
            {
                name            movingACMI_blockage;
                type            patch;
            }
        }
    }
}
Be careful that patch names are different from your case. So change them relative to your own case.

7- Last step would be an empty createPatch to clean everything up.

Code:
pointSync false;

patches
(
    // none
);
That would be all.
Give me some feedback if you could make it work.

Hope it helps.
Best.
Attached Images
File Type: png zone.png (19.7 KB, 1033 views)
mo_na and Nikoonz like this.
__________________
Learn OpenFOAM in Persian
SFO (StarCCM+ FLUENT OpenFOAM) Project Team Member
Complex Heat & Flow Simulation Research Group
If you can't explain it simply, you don't understand it well enough. "Richard Feynman"
Mojtaba.a 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
Wind turbine simulation Saturn CFX 60 July 17, 2024 06:45
Question about heat transfer coefficient setting for CFX Anna Tian CFX 1 June 16, 2013 07:28
An error has occurred in cfx5solve: volo87 CFX 5 June 14, 2013 18:44
Error finding variable "THERMX" sunilpatil CFX 8 April 26, 2013 08:00
RPM in Wind Turbine Pankaj CFX 9 November 23, 2009 05:05


All times are GMT -4. The time now is 18:55.