CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Pre-Processing (https://www.cfd-online.com/Forums/openfoam-pre-processing/)
-   -   MRF to solidBodyMotionFvMesh with multiple rotors (https://www.cfd-online.com/Forums/openfoam-pre-processing/100505-mrf-solidbodymotionfvmesh-multiple-rotors.html)

Toorop April 26, 2012 08:21

MRF to solidBodyMotionFvMesh with multiple rotors
 
Hi,

I'm simulating the process of mixing in a tank with impellers stirring the fluid. I initialize my mixer case with MRFSimpleFoam solver, then change it to MRFPimpleFOAM (changed the setup from SIMLE to PIMPLE based on MRFInterFoam) and finally migrate it to pimpleDyMFoam with AMI patches.

I successfully set up a case with multiple rotating mesh parts in an MRF environment, and now I want to extend it to pimpleDyMFoam.

If someone is interested, these are the needed modifications (MRF--->AMI):
- create the AMI patches and boundaries ;)
- change the U boundary of the rotating part(s) from fixedValue to movingWallVelocity
- add the dynamicMeshDict file to constant folder

With one part my dynamicMeshDict looks like this, and it worked fine:
Code:

dynamicFvMesh  solidBodyMotionFvMesh;

motionSolverLibs ( "libfvMotionSolvers.so" );

solidBodyMotionFvMeshCoeffs
{
    cellZone        MRF_cellZoneSet_0;

    solidBodyMotionFunction  rotatingMotion;
    rotatingMotionCoeffs
    {
        CofG        (0 0 0);
        radialVelocity (0 450 0); // deg/s
    }
}

I would like to make the dynamicMeshDict counterpart of this MRFZones file:
Code:

3
(
    MRF_cellZoneSet_2
    {
        nonRotatingPatches ();

        origin    origin [0 1 0 0 0 0 0]  (0 0 0);
        axis      axis  [0 0 0 0 0 0 0]  (0 1 0);
        omega    omega  [0 0 -1 0 0 0 0] 7.85;
    }
    MRF_cellZoneSet_1
    {
        nonRotatingPatches ();

        origin    origin [0 1 0 0 0 0 0]  (0 0 0);
        axis      axis  [0 0 0 0 0 0 0]  (0 1 0);
        omega    omega  [0 0 -1 0 0 0 0] 7.85;
    }
    MRF_cellZoneSet_0
    {
        nonRotatingPatches ();

        origin    origin [0 1 0 0 0 0 0]  (0 0 0);
        axis      axis  [0 0 0 0 0 0 0]  (0 1 0);
        omega    omega  [0 0 -1 0 0 0 0] 7.85;
    }
)

Unfortunately, I couldn't figure out the correct syntax.
BTW, what's the effect of CofG - I guess it's only used if there is gravitational effect in the simulation.

Thank you!

Ivanet May 21, 2012 03:51

Hi Tibor,
I have done something very similar some time ago. I have tried different things, but at the end what worked best for me was this:
1- Make only one mesh for the transient case (with GGI or AMI interfaces).
2- Set up your MRF case, including GGI (or AMI) interfaces where pertinent in your boundary conditions. MRFSimpleFoam is able to deal with that boundary condition.
3- Run you MRF simulation
4- change in the last iteration step the U boundary of the rotating part(s) from fixedValue to movingWallVelocity (as you already do)
5- Run your transient simulation

I hope this helps.
Greetings
Ivan

Toorop May 31, 2012 11:03

Hi All,

with the today release of OF 2.1.1, OpenFOAM now can handle multiple moving regions.

I would like to thank linnemann for drawing my attention to the commit which enabled this feature and thank asergeev for a nice sample case which demonstrated the syntax.

Alex Lee August 8, 2013 02:27

Dear Tibor,

Do you mind sharing your knowledge in greater details?
I am try to implement two ceiling fans using MRF or GGI and just do not know where to begin.... Thanks.


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