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

Very low Courant numbers for multiple AMI

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   January 8, 2020, 05:55
Default Very low Courant numbers for multiple AMI
  #1
New Member
 
Join Date: Jul 2019
Posts: 14
Rep Power: 7
usr0830 is on a distinguished road
Hello,
I am studying the interaction of 2 rotors using cyclic AMI with pimpleFoam. The wind velocity is 10m/s and the rotor has a high rotational speed of 1200 rpm.
The maximum Courant number is set at 0.7. The smallest theoretically calculated time step size for this Courant number is 1e-5 and the largest is 1e-3. The simulations never reach these time step sizes. They oscillate around 1e-7 and 1e-6.

When I map the Courant number obtained from OpenFOAM, I see that in the outer domain, where the cells are comparatively larger than inside the rotor region, the courant number values are very small (in the order of e-5). The velocity in this region is initialised at 10 m/s (Figure2). So, I expected higher Courant numbers here.

The problem here, in my opinion, is that these low Co values are causing the time step sizes to be very small and hence slowing the simulation down drastically. There also seems to be a small jump in the Co at the interface between the stationary and the rotating parts. (Shown in Fig1)

Could anybody please help me understand why the Co is so low in the outer domain?
Is there a way to set a minimum Courant number for the simulations?
I have attached a few set-up files which might give some insight into the issue.

Thanks in advance.



Controldict file

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

application     pimpleFoam;

startFrom       latestTime;

startTime       0;

stopAt          endTime;
//stopAt			nextWrite;
//stopAt			noWriteNow

endTime         2;

deltaT          1e-5;

writeControl    adjustableRunTime;

writeInterval   0.1;

purgeWrite      0;

writeFormat     ascii;

writePrecision  9;

writeCompression off;

timeFormat      general;

timePrecision   6;

runTimeModifiable true;

adjustTimeStep  yes;

maxCo           0.7;


functions
{ 
forces_t1
    {
        type                forces;
        functionObjectLibs  ("libforces.so");
        patches             (blades1 blades2);
        origin  (0.0 0.0 0.5);
        coordinateRotation
                {
                        type axesRotation;
                        e3      (0 0 1);
                        e1      (1 0 0);
                }
        rho                     rhoInf;
        rhoInf              1.225;
        writeControl       adjustableRunTime;
        writeInterval      0.00001; 
    }
forces_t2
    {
        type                forces;
        functionObjectLibs  ("libforces.so");
        patches             (blades3 blades4);
        origin  (0.0 0.65 0.5);
        coordinateRotation
                {
                        type axesRotation;
                        e3      (0 0 1);
                        e1      (1 0 0);
                }
        rho                     rhoInf;
        rhoInf              1.225;
        writeControl       adjustableRunTime;
        writeInterval      0.00001; 
    }
Co1
    {
        type                CourantNo;
        libs                ("libfieldFunctionObjects.so");
        executeControl      timeStep;
        executeInterval     1;
        writeControl        writeTime;
    }

};


// ************************************************************************* //
fvSchemes

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

ddtSchemes
{
    //default         Euler;
    default         CrankNicolson 0.5;
}

gradSchemes
{
    default         Gauss linear;
    grad(p)         Gauss linear;
    grad(U)        cellLimited Gauss linear 1;
    			
}

divSchemes
{
    default             none;
    div(phi,U)          Gauss linearUpwindV grad(U);
    div(phi,nuTilda)    Gauss upwind;
    div((nuEff*dev2(T(grad(U))))) Gauss linear;
}

laplacianSchemes
{
    default         Gauss linear corrected;
}

interpolationSchemes
{
    default         linear;
}

snGradSchemes
{
    default         corrected;
}

fluxRequired
{
    default         no;
    pcorr           ;
    p               ;
}

wallDist
{
	method meshWave;
}


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

solvers
{
    pcorr
    {
        solver          GAMG;
        smoother        GaussSeidel;
        nPreSweeps      0;
        nPostSweeps     2;
        cacheAgglomeration off;
        agglomerator    faceAreaPair;
        nCellsInCoarsestLevel 10;
        mergeLevels      1;

        tolerance        0.001;
        relTol           0;
    }

    p
    {
        $pcorr;
        tolerance       1e-06;
        relTol          0.01;
    }

    pFinal
    {
        $p;
        tolerance       1e-06;
        relTol          0;
    }
//    Phi
//    {
//        solver          GAMG;
//        smoother        DIC;
//
//        tolerance       1e-06;
//        relTol          0.01;
//    }
  

    "(U|nuTilda)"
    {
        solver          smoothSolver;
        smoother        GaussSeidel;
        tolerance       1e-05;
        relTol          0.1;
    }

    "(U|nuTilda)Final"
    {
        $U;
        tolerance       1e-06;
        relTol          0;
    }

}

potentialFlow
{
    nNonOrthogonalCorrectors 2;
}

SIMPLE
{
    nNonOrthogonalCorrectors 0;
    pRefCell        0;
    pRefValue       0;
}


PIMPLE
{
    correctPhi          no;
    nOuterCorrectors    1;
    nCorrectors         2;
    nNonOrthogonalCorrectors 5;

    pRefCell            0;
    pRefValue           0;
}

relaxationFactors
{
    "(U|nuTilda).*"     1;
}

cache
{
    grad(U);
}

// ************************************************************************* //
boundary
Code:
 FoamFile
{
    version     2.0;
    format      ascii;
    class       polyBoundaryMesh;
    location    "constant/polyMesh";
    object      boundary;
}

13        
(
    blades1
    {
        type wall;
        inGroups        1(wall);
        nFaces 99;
        startFace 36323;
    }
    blades2
    {
        type wall;
        inGroups        1(wall);
        nFaces 99;
        startFace 36422;
    }
    blades3
    {
        type wall;
        inGroups        1(wall);
        nFaces 99;
        startFace 36521;
    }
    blades4
    {
        type wall;
        inGroups        1(wall);
        nFaces 99;
        startFace 36620;
    }
    bottom
    {
        type symmetryPlane;
        nFaces 39;
        startFace 36719;
    }
    ext_interface1
    {
        type cyclicAMI;
        nFaces 38;
        startFace 36758;
        matchTolerance  0.025;
        transform       noOrdering;
        neighbourPatch  int_interface1;
        method          faceAreaWeightAMI;
    }
    ext_interface2
    {
        type cyclicAMI;
        nFaces 38;
        startFace 36796;
        matchTolerance  0.025;
        transform       noOrdering;
        neighbourPatch  int_interface2;
        method          faceAreaWeightAMI;
    }
    inlet
    {
        type patch;
        nFaces 39;
        startFace 36834;
    }
    int_interface1
    {
        type cyclicAMI;
        nFaces 38;
        startFace 36873;
        matchTolerance  0.025;
        transform       noOrdering;
        neighbourPatch  ext_interface1;
        method          faceAreaWeightAMI;
    }
    int_interface2
    {
        type cyclicAMI;
        nFaces 38;
        startFace 36911;
        matchTolerance  0.025;
        transform       noOrdering;
        neighbourPatch  ext_interface2;
        method          faceAreaWeightAMI;
    }
    outlet
    {
        type patch;
        nFaces 39;
        startFace 36949;
    }
    sides
    {
        type empty;
        inGroups        1(empty);
        nFaces 45204;
        startFace 36988;
    }
    top
    {
        type symmetryPlane;
        nFaces 39;
        startFace 82192;
    }
)
Attached Images
File Type: jpg Courant number map.jpg (141.2 KB, 25 views)
File Type: jpg Velocity.jpg (166.0 KB, 18 views)
usr0830 is offline   Reply With Quote

Old   January 8, 2020, 07:20
Default
  #2
Senior Member
 
Yogesh Bapat
Join Date: Oct 2010
Posts: 102
Rep Power: 16
ybapat is on a distinguished road
Courant number in each cell depends on cell size, velocity and time step. If cells in outder domain are very large, Co No. will be low compared to inner cells if velocities are same.



Regards,
-Yogesh
ybapat is offline   Reply With Quote

Old   January 8, 2020, 08:57
Default
  #3
New Member
 
Join Date: Jul 2019
Posts: 14
Rep Power: 7
usr0830 is on a distinguished road
Hello Yogesh,
Thank you for your response.
The time step in my case is adjustable wrt to Co. I would like to increase the time step size for my simulation from 1e-6 to 1e-5 or higher. However, since the Co reduces beyond e-5, this is not possible. Do you have any suggestions to do this for this particular mesh?

Thanks!
usr0830 is offline   Reply With Quote

Old   January 9, 2020, 00:10
Default
  #4
Senior Member
 
Yogesh Bapat
Join Date: Oct 2010
Posts: 102
Rep Power: 16
ybapat is on a distinguished road
Hello,


You can try coarser mesh if that is possible specially in the region with high CO.



Regards,
-Yogesh
ybapat is offline   Reply With Quote

Old   July 24, 2021, 09:03
Default
  #5
New Member
 
Pedro
Join Date: Jul 2021
Posts: 11
Rep Power: 5
phelps is on a distinguished road
Hello usr0830,


Could you share your dynamicMeshDict file? And what version of OpenFOAM do you use? I'm facing problems too while trying to use multiple AMI, I get the case running with reasonable time steps, but it crashes after a few iterations due 2nd AMI zone not moving correctly. Maybe we can help each other.


Best regards,


Pedro.
phelps is offline   Reply With Quote

Reply

Tags
courant number, cyclic ami, time steps


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
Compressor Simulation using rhoPimpleDyMFoam Jetfire OpenFOAM Running, Solving & CFD 107 December 9, 2014 14:38
Upgraded from Karmic Koala 9.10 to Lucid Lynx10.04.3 bookie56 OpenFOAM Installation 8 August 13, 2011 05:03
diverge with low Re numbers hui Main CFD Forum 2 April 10, 2007 08:16
Compressible code at low Mach numbers Peter Main CFD Forum 7 May 15, 2003 08:12
high and low reynolds numbers - what does it mean Bo Busk Jensen Main CFD Forum 3 September 5, 2002 06:41


All times are GMT -4. The time now is 22:28.