T721_24 movingCone

T721_241 movingCone

この記事は約14分で読めます。

OpenFoamのサンプル確認(パラメータやキーワードの覚書)です。

バージョン : Windows版(OpenFOAM-v2206-windows-mingw.exe)

ベース

チュートリアルフォルダ:チュートリアル場所(windows)

引用元

<チュートリアルフォルダ>\incompressible\pimpleFoam\laminar\movingCone

結果図

作業

基本的な流れはT703 OpenFoam tipsと同じです。(または作業

//コマンド:メッシュ作成
blockMesh

//計算実行//
pimpleFoam

//ParaView用VTK変換//
foamToVTK

全体構造

movingCone        
├ 0                       
│ ├ p                    
│ ├ pointMotionUx        
│ └ U                    
├ constant                
│ ├ dynamicMeshDict      
│ ├ transportProperties  
│ └ turbulenceProperties 
└ system                  
   ├ blockMeshDict        
   ├ controlDict          
   ├ cuttingPlane         
   ├ fvSchemes            
   ├ fvSolution           
   └ vtkWrite             

0

p

dimensions      [0 2 -2 0 0 0 0];

internalField   uniform 0;

boundaryField
{
    movingWall
    {
        type            zeroGradient;
    }

    farFieldMoving
    {
        type            zeroGradient;
    }

    fixedWall
    {
        type            zeroGradient;
    }

    left
    {
        type            totalPressure;
        p0              $internalField;
    }

    farField
    {
        type            zeroGradient;
    }

    back
    {
        type            wedge;
    }

    front
    {
        type            wedge;
    }
}

pointMotionUx

dimensions      [0 1 -1 0 0 0 0];

internalField   uniform 0;

boundaryField
{
    movingWall
    {
        type            uniformFixedValue;
        uniformValue    constant 1;
    }

    farFieldMoving
    {
        type            slip;
    }

    fixedWall
    {
        type            uniformFixedValue;
        uniformValue    constant 0;
    }

    left
    {
        type            uniformFixedValue;
        uniformValue    constant 0;
    }

    farField
    {
        type            slip;
    }

    back
    {
        type            wedge;
    }

    front
    {
        type            wedge;
    }
}

U

dimensions      [0 1 -1 0 0 0 0];

internalField   uniform (0 0 0);

boundaryField
{
    movingWall
    {
        type            movingWallVelocity;
        value           $internalField;
    }

    farFieldMoving
    {
        type            noSlip;
    }

    fixedWall
    {
        type            noSlip;
    }

    left
    {
        type            pressureInletOutletVelocity;
        value           $internalField;
    }

    farField
    {
        type            noSlip;
    }

    back
    {
        type            wedge;
    }

    front
    {
        type            wedge;
    }
}

constant

dynamicMeshDict

dynamicFvMesh   dynamicMotionSolverFvMesh;

motionSolverLibs (fvMotionSolvers);

motionSolver    velocityComponentLaplacian;

component       x;
diffusivity     directional (1 200 0);

transportProperties

transportModel  Newtonian;

nu              1e-05;

turbulenceProperties

simulationType  laminar;

system

blockMeshDict

scale   0.001;

mergeType points;   // Wedge geometry - Merge points instead of topology

vertices
(
    (-7.5 0 0)
    (-7 0 0)
    (-3.5 0 0)
    (0 0 0)
    (-7.5 0.75 -0.032745707)
    (-7 0.75 -0.032745707)
    (-3.5 2 -0.087321886)
    (0 2 -0.087321886)
    (-7.5 2.5 -0.10915236)
    (-7 2.5 -0.10915236)
    (-3.5 2.5 -0.10915236)
    (0 2.5 -0.10915236)
    (-7.5 0.75 0.032745707)
    (-7 0.75 0.032745707)
    (-3.5 2 0.087321886)
    (0 2 0.087321886)
    (-7.5 2.5 0.10915236)
    (-7 2.5 0.10915236)
    (-3.5 2.5 0.10915236)
    (0 2.5 0.10915236)
);

blocks
(
    hex (0 1 5 4 0 1 13 12) (15 15 1) simpleGrading (1 1 1)
    hex (2 3 7 6 2 3 15 14) (20 20 1) simpleGrading (2 0.25 1)
    hex (4 5 9 8 12 13 17 16) (15 15 1) simpleGrading (1 1 1)
    hex (5 6 10 9 13 14 18 17) (50 15 1) simpleGrading (1 1 1)
    hex (6 7 11 10 14 15 19 18) (20 15 1) simpleGrading (2 1 1)
);

edges
(
);

boundary
(
    movingWall
    {
        type wall;
        faces
        (
            (1 5 13 1)
            (5 6 14 13)
            (2 2 14 6)
        );
    }
    farFieldMoving
    {
        type patch;
        faces
        (
            (9 17 18 10)
        );
    }
    fixedWall
    {
        type wall;
        faces
        (
            (3 7 15 3)
            (7 11 19 15)
        );
    }
    axis
    {
        type empty;
        faces
        (
            (0 1 1 0)
            (2 3 3 2)
        );
    }
    left
    {
        type patch;
        faces
        (
            (0 0 12 4)
            (4 12 16 8)
        );
    }
    farField
    {
        type patch;
        faces
        (
            (8 16 17 9)
            (10 18 19 11)
        );
    }
    back
    {
        type wedge;
        faces
        (
            (0 4 5 1)
            (2 6 7 3)
            (4 8 9 5)
            (5 9 10 6)
            (6 10 11 7)
        );
    }
    front
    {
        type wedge;
        faces
        (
            (0 1 13 12)
            (2 3 15 14)
            (12 13 17 16)
            (13 14 18 17)
            (14 15 19 18)
        );
    }
);

controlDict

application     pimpleFoam;

startFrom       startTime;

startTime       0;

stopAt          endTime;

endTime         0.003;

deltaT          5e-06;

writeControl    timeStep;

writeInterval   40;

purgeWrite      0;

writeFormat     binary;

writePrecision  6;

writeCompression off;

timeFormat      general;

timePrecision   6;

runTimeModifiable true;

adjustTimeStep  no;

maxCo           0.2;

functions
{
    #include "cuttingPlane"
    #include "vtkWrite"
}

cuttingPlane

cuttingPlane
{
    type            surfaces;
    libs            (sampling);

    writeControl    writeTime;

    surfaceFormat   vtk;
    fields          ( p U );

    interpolationScheme cellPoint;

    surfaces
    {
        zNormal
        {
            type            cuttingPlane;
            planeType       pointAndNormal;
            pointAndNormalDict
            {
                point   (0 0 0);
                normal  (0 0 1);
            }
            interpolate     true;
        }
    }
}

fvSchemes

ddtSchemes
{
    default         Euler;
}

gradSchemes
{
    default         Gauss linear;
}

divSchemes
{
    default         none;

    div(phi,U)      Gauss linear;
    div((nuEff*dev2(T(grad(U))))) Gauss linear;
}

laplacianSchemes
{
    default         Gauss linear corrected;

    laplacian(diffusivity,cellMotionU) Gauss linear uncorrected;
}

interpolationSchemes
{
    default         linear;
}

snGradSchemes
{
    default         corrected;
}

fvSolution

solvers
{
    p
    {
        solver          GAMG;
        tolerance       0;
        relTol          0.01;
        smoother        GaussSeidel;
        cacheAgglomeration no;
    }

    pFinal
    {
        $p;
        tolerance       1e-06;
        relTol          0;
    }

    "pcorr.*"
    {
        $p
        tolerance       0.02;
        relTol          0;
    }

    U
    {
        solver          smoothSolver;
        smoother        symGaussSeidel;
        tolerance       1e-05;
        relTol          0.1;
    }

    UFinal
    {
        $U;
        tolerance       1e-05;
        relTol          0;
    }

    cellMotionUx
    {
        solver          PCG;
        preconditioner  DIC;
        tolerance       1e-08;
        relTol          0;
    }
}

PIMPLE
{
    correctPhi          yes;
    nOuterCorrectors    2;
    nCorrectors         1;
    nNonOrthogonalCorrectors 0;
}

relaxationFactors
{
    equations
    {
        "U.*"           1;
    }
}

vtkWrite

// Minimal example of using the vtkWrite function object.
vtkWrite
{
    type    vtkWrite;
    libs    (utilityFunctionObjects);
    writeControl    writeTime;

    boundary false;

    // Fields to output (words or regex)
    fields  (U p "(k|epsilon|omega)");

}

コメント

Translate »
タイトルとURLをコピーしました