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

Multiple AMI rotations not working

Register Blogs Members List Search Today's Posts Mark Forums Read

Like Tree2Likes
  • 2 Post By mahtin360

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   December 7, 2015, 06:38
Default Multiple AMI rotations not working
  #1
New Member
 
Martin
Join Date: Oct 2013
Location: Newcastle
Posts: 21
Rep Power: 9
mahtin360 is on a distinguished road
Hi,

I've been working on simulating flow past a rotor using PimpleDyMFoam for a while now and got everything working so far.

Now I'm trying to add a second rotor to my case and run into troubles rotating both at the same time. It seems from a few test cases, with up to 4 AMI zones, that only the AMI zone that is last mentioned in my case files is actually rotating.
Has anyone managed to have seperate rotating regions within a single domain, what is the correct way of defining the dynamic mesh regions?
Any input would be much appreciated.


Edit: Just came across multiSolidBodyMotionFvMesh. I'll leave this here as I did not come across much mentioning of this, maybe someone else will stumble over this and find it helpful.

This is the changed dynamicMeshDict for multiple AMI (slightly changed format compared to before)
Code:
dynamicFvMesh   multiSolidBodyMotionFvMesh;

motionSolverLibs ( "libfvMotionSolvers.so" );

multiSolidBodyMotionFvMeshCoeffs
{
    cylinder
    {
      solidBodyMotionFunction  rotatingMotion;
    rotatingMotionCoeffs
    {
        origin      (0 0 0);
        axis        (1 0 0);
        omega       -110; // rad/s
    }
    }

    cylinderR
    {
    solidBodyMotionFunction  rotatingMotion;
    rotatingMotionCoeffs
    {
        origin      (0.84 0.42 0);
        axis        (1 0 0);
        omega       -110; // rad/s
    } 
    }
    
    cylinderL
    {
    solidBodyMotionFunction  rotatingMotion;
    rotatingMotionCoeffs
    {
        origin      (3.36 0.84 0);
        axis        (1 0 0);
        omega       -110; // rad/s
    }
    }
}
Regards,
Martin
YEberhard and Simone81 like this.

Last edited by mahtin360; December 11, 2015 at 12:07. Reason: Solution found
mahtin360 is offline   Reply With Quote

Old   March 31, 2018, 00:55
Default
  #2
New Member
 
Join Date: Jun 2017
Posts: 10
Rep Power: 5
Simone81 is on a distinguished road
Hi,

I am having the same issue, did you manage to solve it?

Thank you!
Simone81 is offline   Reply With Quote

Old   April 6, 2018, 02:56
Default box2D_moveDynamicMesh tutorial
  #3
Member
 
Al
Join Date: Jul 2013
Location: Japan
Posts: 46
Blog Entries: 3
Rep Power: 10
donQi is on a distinguished road
Hello,

in OpenFOAM1712 (https://www.openfoam.com/releases/openfoam-v1712/)
you can find the tutorial
OpenFOAM/OpenFOAM-v1712/tutorials/mesh/moveDynamicMesh/relativeMotion

inside take a look at the file :
OpenFOAM-v1712/tutorials/mesh/moveDynamicMesh/relativeMotion/box2D_moveDynamicMesh/constant/dynamicMeshDict

You need to put your rotating components inside the "dynamicMultiMotionSolverFvMeshCoeffs" subdictionary.
For convenience I copy below the dictionary
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  plus                                  |
|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "system";
    object      dynamicMeshDict;
}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dynamicFvMesh dynamicMultiMotionSolverFvMesh;   //dynamicMotionSolverFvMesh;


// Specification of rotation around centre
rotation1
{
    solidBodyMotionFunction  rotatingMotion;
    rotatingMotionCoeffs
    {
        origin      (0 0 0);
        axis        (0 0 1);
        omega       10; // rad/s, 1rad/s=9.5rpm
    }
}


dynamicMultiMotionSolverFvMeshCoeffs
{
    rotor1
    {
        solver solidBody;
        cellZone rotor;
        solidBodyCoeffs
        {
            $rotation1;
        }
    }

    dualWing1
    {
        cellZone dualWing;

        // Solve displacement on top of solid-body rotation
        solver solidBodyDisplacementLaplacian;

        solidBodyDisplacementLaplacianCoeffs
        {
            solidBodyMotionFunction  multiMotion;
            multiMotionCoeffs
            {
                rotation_1
                {
                    $rotation1;
                }
                rotation_2
                {
                    // Apply counter rotation to keep dualWing aligned
                    solidBodyMotionFunction rotatingMotion;
                    rotatingMotionCoeffs
                    {
                        origin      (-0.43 0 0);
                        axis        (0 0 1);
                        omega      -10; // rad/s, 1rad/s=9.5rpm
                    }
                }
            }
            diffusivity quadratic inverseDistance (wing2);
        }
    }
}

// ************************************************************************* //
So for example if you want to simulate a flying object with 2 rotors, like an chinook helicopter for example, the dictionary will be:

Code:
/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  plus                                  |
|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "system";
    object      dynamicMeshDict;
}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dynamicFvMesh dynamicMultiMotionSolverFvMesh;  

dynamicMultiMotionSolverFvMeshCoeffs
{
    rotor1
    {
        solver solidBody;
        cellZone cylinder1;
        solidBodyCoeffs
        {
            solidBodyMotionFunction  rotatingMotion;
            rotatingMotionCoeffs
            {
                origin      (5 0 0);
                axis        (0 0 1);
                omega       100; // rad/s, 1rad/s=9.5rpm
            }
        }
    }

    rotor2
    {
        solver solidBody;
        cellZone cylinder2;
        solidBodyCoeffs
        {
            solidBodyMotionFunction  rotatingMotion;
            rotatingMotionCoeffs
            {
                origin      (-5  0  0);
                axis        (0  0 1);
                omega       -100; // minus 100 since contra-rotating blades 
            }
        }
    }   
}

// ************************************************************************* //

Last edited by donQi; April 6, 2018 at 04:18.
donQi is offline   Reply With Quote

Old   April 19, 2018, 09:44
Default
  #4
New Member
 
Martin
Join Date: Oct 2013
Location: Newcastle
Posts: 21
Rep Power: 9
mahtin360 is on a distinguished road
In addition to the details given by Al, I had issues with my mesh generation and the specification of the AMI surfaces. What happened was that the cells were still attached to each other and deformed with each step of rotation, leading to the calculation to fail after a while (my time steps were very small).

Using mergeOrSplitBaffles -split -overwrite solved the issues for me.
mahtin360 is offline   Reply With Quote

Old   January 3, 2021, 11:50
Default
  #5
New Member
 
mark
Join Date: Jan 2021
Posts: 1
Rep Power: 0
bksuman is on a distinguished road
I tried the given multi rotor library with openFoam 7, and it is showing error, may you please let me know on which version of this library is accessible.


Thank you
bksuman is offline   Reply With Quote

Reply

Tags
ami, dynamicmeshdict, rotation

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

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
AMI speed performance danny123 OpenFOAM 21 October 24, 2020 05:13
Flowrate at inlet and outlet not balancing ( centrifugal pump ) -- pimpleDyMFoam coolcrasher OpenFOAM Running, Solving & CFD 20 November 25, 2015 06:33
[swak4Foam] expressionField + execFlowFunctionObjects + AMI pbachant OpenFOAM Community Contributions 0 July 16, 2015 02:09
GGI -> AMI stability jiejie OpenFOAM Running, Solving & CFD 10 May 10, 2013 00:18
[Other] Problem when case with AMI A.A. OpenFOAM Meshing & Mesh Conversion 1 October 4, 2012 12:54


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