CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Propeller case in AMI tutorial (https://www.cfd-online.com/Forums/openfoam-solving/120609-propeller-case-ami-tutorial.html)

Artur February 27, 2017 10:18

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

andrea.mala February 27, 2017 13:07

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

Artur February 28, 2017 05:05

1 Attachment(s)
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.

Attachment 54296

andrea.mala February 28, 2017 06:55

4 Attachment(s)
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

Artur February 28, 2017 07:03

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;
    }
}


andrea.mala March 2, 2017 12:47

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

bmaldi April 28, 2017 03:15

comparison MRF and AMI
 
2 Attachment(s)
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
Attachment 55651

Attachment 55652

Artur April 28, 2017 05:22

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

bmaldi November 28, 2017 21:37

Quote:

Originally Posted by reza1980 (Post 439350)
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


All times are GMT -4. The time now is 04:02.