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

Propeller case in AMI tutorial

Register Blogs Community New Posts Updated Threads Search

Like Tree7Likes

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   February 27, 2017, 11:18
Default
  #61
Senior Member
 
Artur's Avatar
 
Artur
Join Date: May 2013
Location: Southampton, UK
Posts: 372
Rep Power: 20
Artur will become famous soon enough
Hi,

Sorry for the delay in my reply. Have you made any progress on the case since the last post? I read through your thread again and I'm afraid I'd have done the same thing as you, so not many ideas on my side, sorry

A
Artur is offline   Reply With Quote

Old   February 27, 2017, 14:07
Default
  #62
New Member
 
Andrea Mala
Join Date: Nov 2016
Posts: 7
Rep Power: 10
andrea.mala is on a distinguished road
Hi Artur,
thanks for your reply.
Unfortunately I was unable to solve the problem by using the meshing NUMECA Hexpress. All attempts lead me to have incorrect AMI interfaces or AMI interfaces formed by step cells. You told me that this is not done using pointwise. Can I ask what procedure uses of pointwise to create interfaces? How do you get adjoining faces with the same number of cells without using baffles as does OpenFOAM? Do you think I could use SHM for the rotation of the fan in a test cylinder (like the propeller tutorial) and integrate this model into my industrial furnace? (Eg. Using mergeMeshes or stichMeshes or maybe treat it as a case multi region? In this way I could use sHM only for the rotation of the fan, and use Hexpress for the rest of the furnace (fundamental thing for me).
Thank you for your help.

Andrea
andrea.mala is offline   Reply With Quote

Old   February 28, 2017, 06:05
Default
  #63
Senior Member
 
Artur's Avatar
 
Artur
Join Date: May 2013
Location: Southampton, UK
Posts: 372
Rep Power: 20
Artur will become famous soon enough
Hi,
Sorry to hear that. In Pointwise this can be done by meshing the rotor and stator as a single volume but including a cylinder that will represent the AMI as an internal domain (see attachment). Then, you can define the boundary conditions on the internal domain by selecting "Select connections". Afterwards, the mesh blocks corresponding to the stator and rotor can be exported into two different OF grids and merged with mergeMeshes. This ensures that there is perfect point and face matching on either side of the AMI and the risk of face weights becoming zero is minimal.

As for your idea to use sHM for one part of the grid and Hexpress for the other, it may not necessarily work. First of all, stitchMesh requires perfect point matching which you're not going to get using two different tools separately I think. It's possible you'll be able to define an AMI between them but it's hard for me to say if it's feasible to get decent AI weightings when using two meshers.

PointwiseAMI.jpg
Artur is offline   Reply With Quote

Old   February 28, 2017, 07:55
Default
  #64
New Member
 
Andrea Mala
Join Date: Nov 2016
Posts: 7
Rep Power: 10
andrea.mala is on a distinguished road
Hello Artur,
thanks for your immediate reply. The post you wrote was really helpful and I hope that could be adapted to Hexpress. So let's see if I understand how:
- I build a stator domain (only the outer cylinder (annex 1) or the outer cylinder with hole for internal components? (Annex 2))
- I build rotor domain (propeller and shaft filled (Annex 3) or propeller and shaft hollow + filled helical movement cylinder? (Annex 4))
- Build an internal domain cylinder for AMI. But at this point as get the two adjacent interfaces master slave? Moreover, I know the connections tool(even in Hexpress you can set) but how you manage them for the construction of the AMI?
- Finally, export domains one at a time (as OpenFOAM wants), but the internal domain as you manage? Export only the two rotor-stator domains? The internal domain is only used for the correct construction of AMI surfaces? Artur sorry but I did not understand these things. Maybe I am not familiar with the internal domain concept. I usually tried to create two complementary mesh (with shared cylindrical interface) but with poor results due to the impossibility of being able to set the same number of faces on this interface.
Thanks for your help.
Andrea
Attached Images
File Type: jpg Annex1.jpg (30.2 KB, 60 views)
File Type: jpg Annex2.jpg (68.1 KB, 68 views)
File Type: jpg Annex3.jpg (28.6 KB, 66 views)
File Type: jpg Annex4.jpg (63.0 KB, 58 views)
andrea.mala is offline   Reply With Quote

Old   February 28, 2017, 08:03
Default
  #65
Senior Member
 
Artur's Avatar
 
Artur
Join Date: May 2013
Location: Southampton, UK
Posts: 372
Rep Power: 20
Artur will become famous soon enough
Hi,

I think in both cases you will need to build the full grid of stator and rotor but somehow ensure you can export them as separate OF meshes with the AMI cylinder being a shared patch. What I have to do in Pointwise after I export the two regions is change the patch types and names as well, see a bash script and changeDictionaryDict below. I'm sorry but I don't know how to do it in Hexpress since I've never used it :/

Code:
#!/bin/bash
cd meshStator
sed -i "s/ami/amiStator/g" constant/polyMesh/boundary 
renumberMesh -overwrite

cd ../
sed -i "s/ami/amiRotor/g" constant/polyMesh/boundary 
renumberMesh -overwrite

mergeMeshes -overwrite . meshStator/

changeDictionary

topoSet

checkMesh -constant -allTopology -allGeometry
changeDictionaryDict

Code:
dictionaryReplacement
{
    boundary
    {
        amiStator
        {
            type            cyclicAMI;
            inGroups        1(cyclicAMI);
            matchTolerance  1e-05;
            transform       noOrdering;
            neighbourPatch  amiRotor;
        }
        amiRotor
        {
            type            cyclicAMI;
            inGroups        1(cyclicAMI);
            matchTolerance  1e-05;
            transform       noOrdering;
            neighbourPatch  amiStator;
        }
    }
}
topoSetDict

Code:
// TODO can probably just use region0 straight away
// create a cellSet which will define the AMI interface
{
    name    amiCylinder;
    type    cellSet;
    action  new;
    source  regionToCell;
    sourceInfo
    {
        insidePoint ((0.005 0.1 0.1));
    }
}

// create a cellZone from the cellSet
{
    name    amiCylinder;
    type    cellZoneSet;
    action  new;
    source  setToCellZone;
    sourceInfo
    {
        set     amiCylinder;
    }
}
Artur is offline   Reply With Quote

Old   March 2, 2017, 13:47
Default
  #66
New Member
 
Andrea Mala
Join Date: Nov 2016
Posts: 7
Rep Power: 10
andrea.mala is on a distinguished road
Hi Artur,
thank you for the answer and sorry for my reply in late. I'll try to find a solution in these days with your suggested advices. I'll keep you and forum updated.
Thanks for the help.

Andrea
andrea.mala is offline   Reply With Quote

Old   April 28, 2017, 04:15
Default comparison MRF and AMI
  #67
Member
 
Aldias Bahatmaka
Join Date: Aug 2015
Location: Geoje Island, South Korea
Posts: 43
Rep Power: 11
bmaldi is on a distinguished road
Hello guys,.
Sorry late for joining this discussion

I am so interested in Openfoam,
Actually i did already both of solver, which are MRF and AMI.

the process what i did, i put the same direction same as like the tutorial, in Y-. and the result was so different.
in AMI i got the force value is positive (+) and the MRF is negative (-).

the result shows big difference between MRF and AMI.

and i'm still confusing about this problem, then need your help guys.
thanks a lot.

Best Regards,
Aldias
AMI.jpg

MRF.jpg
bmaldi is offline   Reply With Quote

Old   April 28, 2017, 06:22
Default
  #68
Senior Member
 
Artur's Avatar
 
Artur
Join Date: May 2013
Location: Southampton, UK
Posts: 372
Rep Power: 20
Artur will become famous soon enough
Hi,

From my experience with MRF, the wake and flow field it produces often look quite misleading so I wouldn't be surprised if it were very different from AMI. Still, it's troubling that your axial force goes from positive to negative when you switch the methods. Have you verified the rotation directions for both cases?

A
Artur is offline   Reply With Quote

Old   November 28, 2017, 22:37
Default
  #69
Member
 
Aldias Bahatmaka
Join Date: Aug 2015
Location: Geoje Island, South Korea
Posts: 43
Rep Power: 11
bmaldi is on a distinguished road
Quote:
Originally Posted by reza1980 View Post
Hi Artur,
I would thank you for your reply.One odd thing in the tutorial is not satisfying no-slip condition on the propeller that I can see same on my case as well.
What motivated me to check out the results of the tutorial is my project. It is related to a tanker propeller model meshed by pointwise that should be compared with the experimental values for open-water and self-propelled case.
The techniques are AMI and MRF ,To approach AMI I did as below:
  • create two parts as rotor(inner cylinder that is rotating)and stator (not rotating outer part) .
  • merge two parts through implement mergeMeshes stator rotor.
  • rename the type of boundary AMI from patch to cyclic AMI and add the neighborhood and tolerance and update 0 folder .
  • use topoSet or splitMeshRegions -makeCellZones -overwrite to create the cellZones and update the dynamicmeshDic.
  • Run pimpleDyMFoam as parallel on network(claster).
For MRF is almost same except the applying stitches ,stitchMesh,instead of split and Remove manually the empty boundaries (0 faces) from constant/boundaries file.
My case includes 3.5 mil cells and the results approaches converged for AMI and MRF. But what I suffers me is to have backflow for two cases on the tip of blades and a noticeable gap between the thrust force
obtained from experimental and numerical values ,around 40%,in AMI.
Furthermore,MRF shows close results to the experiment ,just 12.3% difference,would be agreeable.
Hello Mr.Reza,
Nice to meet you

I'm beginner in openFOAM
Could you guide me in openFOAM, especially for MRF solver in openfoam for the propeller.

Could you share the rough folder into my email? aldias@pukyong.ac.kr
I will be appreciated for that.

Thanks for your kindness and helps

Best regards,
Aldias
bmaldi 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
MRF and employing on a propeller case reza1980 OpenFOAM 10 December 23, 2017 12:29
A questionable Tutorial test case immortality OpenFOAM Running, Solving & CFD 0 December 5, 2012 09:40
propeller tutorial openfoam_user OpenFOAM Running, Solving & CFD 0 February 8, 2012 05:02
tutorial copying troubles / new case Gabbee90 OpenFOAM Running, Solving & CFD 0 June 3, 2011 22:50
FoamX refuses to open an interFoam tutorial case vrecha OpenFOAM Pre-Processing 5 March 12, 2008 13:36


All times are GMT -4. The time now is 16:01.