Volume Penalization法のテスト

VP法のテスト

境界埋め込み法の1つであるVP法のコードをOpenFOAMに実装しました。実装したコードはこちら。 https://qiita.com/ishigaki/items/cfb20bc58c2ae6a633a0

境界適合格子でやったときとちゃんと比べてみました。NACA0012翼周りの流れをやります。

条件

  • 流入速度44m/s
  • 迎角4度(境界速度の角度を調整して迎角を設定)
  • コード長は1m
  • Reynolds数は粘性係数で調整。Re=UinC/nu。Uは流入速度,Cはコード長,nuは動粘性係数。

メッシュ (blockMeshDict)

pisoFoam用のメッシュと,VP法つかったpisoFaomのvppisoFoam用のメッシュを作りました。blockMeshだけでほぼNACA0012通りの形状を再現できます。

メッシュ幅はおおよそ5mmです。

境界適合格子(ここをクリックするとblockMeshDictの詳細が出ます)

polyLineで翼表面の座標を直線で補間します。

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

convertToMeters 1;

vertices
(
(	-0.5	-1.25	-1	)
(	-0.5	1.25	-1	)
(	0.3	-0.06001727	-1	)
(	0.3	0.06001727	-1	)
(	1.0089	-1.25	-1	)
(	1.0089	0	-1	)
(	1.0089	1.25	-1	)
(	3	-1.25	-1	)
(	3	0	-1	)
(	3	1.25	-1	)
(	-0.5	-1.25	1	)
(	-0.5	1.25	1	)
(	0.3	-0.06001727	1	)
(	0.3	0.06001727	1	)
(	1.0089	-1.25	1	)
(	1.0089	0	1	)
(	1.0089	1.25	1	)
(	3	-1.25	1	)
(	3	0	1	)
(	3	1.25	1	)

);

blocks
(
    hex (0 2 3 1 10 12 13 11) (250  120  1)  simpleGrading (1 1  1)
    hex (0 4 5 2 10 14 15 12) (142  250  1)  simpleGrading (1 1 1)
    hex (3 5 6 1 13 15 16 11) (142  250  1)  simpleGrading (1 1 1)
    hex (4 7 8 5 14 17 18 15) (398  250  1)  simpleGrading (1 1 1)
    hex (5 8 9 6 15 18 19 16) (398  250  1)  simpleGrading (1 1 1)

);

edges
(
    polyLine 2 3 (
(	0.28	-0.05992581	-1	)
(	0.26	-0.059636853	-1	)
(	0.24	-0.059131171	-1	)
(	0.22	-0.058386276	-1	)
(	0.2	-0.05737543	-1	)
(	0.18	-0.056066189	-1	)
(	0.16	-0.054418208	-1	)
(	0.14	-0.052379745	-1	)
(	0.12	-0.049881816	-1	)
(	0.1	-0.046827704	-1	)
(	0.08	-0.043072299	-1	)
(	0.06	-0.03837581	-1	)
(	0.04	-0.032277225	-1	)
(	0.02	-0.023597771	-1	)
(	0.01	-0.017037074	-1	)
(	0.005	-0.012213147	-1	)
(	0	0	-1	)
(	0.005	0.012213147	-1	)
(	0.01	0.017037074	-1	)
(	0.02	0.023597771	-1	)
(	0.04	0.032277225	-1	)
(	0.06	0.03837581	-1	)
(	0.08	0.043072299	-1	)
(	0.1	0.046827704	-1	)
(	0.12	0.049881816	-1	)
(	0.14	0.052379745	-1	)
(	0.16	0.054418208	-1	)
(	0.18	0.056066189	-1	)
(	0.2	0.05737543	-1	)
(	0.22	0.058386276	-1	)
(	0.24	0.059131171	-1	)
(	0.26	0.059636853	-1	)
(	0.28	0.05992581	-1	)
        )

        polyLine 12 13 (
(	0.28	-0.05992581	1	)
(	0.26	-0.059636853	1	)
(	0.24	-0.059131171	1	)
(	0.22	-0.058386276	1	)
(	0.2	-0.05737543	1	)
(	0.18	-0.056066189	1	)
(	0.16	-0.054418208	1	)
(	0.14	-0.052379745	1	)
(	0.12	-0.049881816	1	)
(	0.1	-0.046827704	1	)
(	0.08	-0.043072299	1	)
(	0.06	-0.03837581	1	)
(	0.04	-0.032277225	1	)
(	0.02	-0.023597771	1	)
(	0.01	-0.017037074	1	)
(	0.005	-0.012213147	1	)
(	0	0	1	)
(	0.005	0.012213147	1	)
(	0.01	0.017037074	1	)
(	0.02	0.023597771	1	)
(	0.04	0.032277225	1	)
(	0.06	0.03837581	1	)
(	0.08	0.043072299	1	)
(	0.1	0.046827704	1	)
(	0.12	0.049881816	1	)
(	0.14	0.052379745	1	)
(	0.16	0.054418208	1	)
(	0.18	0.056066189	1	)
(	0.2	0.05737543	1	)
(	0.22	0.058386276	1	)
(	0.24	0.059131171	1	)
(	0.26	0.059636853	1	)
(	0.28	0.05992581	1	)
        )

    polyLine 3 5 (
(	0.32	0.05992788	-1	)
(	0.34	0.059672249	-1	)
(	0.36	0.059263278	-1	)
(	0.38	0.058712465	-1	)
(	0.4	0.058030108	-1	)
(	0.42	0.057225479	-1	)
(	0.44	0.056306948	-1	)
(	0.46	0.055282094	-1	)
(	0.48	0.054157786	-1	)
(	0.5	0.052940252	-1	)
(	0.52	0.051635135	-1	)
(	0.54	0.050247543	-1	)
(	0.56	0.048782083	-1	)
(	0.58	0.047242897	-1	)
(	0.6	0.045633691	-1	)
(	0.62	0.043957754	-1	)
(	0.64	0.042217983	-1	)
(	0.66	0.040416898	-1	)
(	0.68	0.038556656	-1	)
(	0.7	0.036639067	-1	)
(	0.72	0.034665604	-1	)
(	0.74	0.032637411	-1	)
(	0.76	0.030555316	-1	)
(	0.78	0.028419835	-1	)
(	0.8	0.02623118	-1	)
(	0.82	0.023989265	-1	)
(	0.84	0.021693713	-1	)
(	0.86	0.019343859	-1	)
(	0.88	0.016938755	-1	)
(	0.9	0.014477173	-1	)
(	0.92	0.011957609	-1	)
(	0.94	0.009378289	-1	)
(	0.96	0.006737166	-1	)
(	0.98	0.004031929	-1	)
(	1	0.00126	-1	)
        )

    polyLine 2 5 (
(	0.32	-0.05992788	-1	)
(	0.34	-0.059672249	-1	)
(	0.36	-0.059263278	-1	)
(	0.38	-0.058712465	-1	)
(	0.4  	-0.058030108	-1	)
(	0.42	-0.057225479	-1	)
(	0.44	-0.056306948	-1	)
(	0.46	-0.055282094	-1	)
(	0.48	-0.054157786	-1	)
(	0.5	    -0.052940252	-1	)
(	0.52	-0.051635135	-1	)
(	0.54	-0.050247543	-1	)
(	0.56	-0.048782083	-1	)
(	0.58	-0.047242897	-1	)
(	0.6	    -0.045633691	-1	)
(	0.62	-0.043957754	-1	)
(	0.64	-0.042217983	-1	)
(	0.66	-0.040416898	-1	)
(	0.68	-0.038556656	-1	)
(	0.7	    -0.036639067	-1	)
(	0.72	-0.034665604	-1	)
(	0.74	-0.032637411	-1	)
(	0.76	-0.030555316	-1	)
(	0.78	-0.028419835	-1	)
(	0.8	    -0.02623118	-1	)
(	0.82	-0.023989265	-1	)
(	0.84	-0.021693713	-1	)
(	0.86	-0.019343859	-1	)
(	0.88	-0.016938755	-1	)
(	0.9	    -0.014477173	-1	)
(	0.92	-0.011957609	-1	)
(	0.94	-0.009378289	-1	)
(	0.96	-0.006737166	-1	)
(	0.98	-0.004031929	-1	)
(	1	    -0.00126	-1	)
        )

    polyLine 13 15 (
(	0.32	0.05992788	1	)
(	0.34	0.059672249	1	)
(	0.36	0.059263278	1	)
(	0.38	0.058712465	1	)
(	0.4	0.058030108	1	)
(	0.42	0.057225479	1	)
(	0.44	0.056306948	1	)
(	0.46	0.055282094	1	)
(	0.48	0.054157786	1	)
(	0.5	0.052940252	1	)
(	0.52	0.051635135	1	)
(	0.54	0.050247543	1	)
(	0.56	0.048782083	1	)
(	0.58	0.047242897	1	)
(	0.6	0.045633691	1	)
(	0.62	0.043957754	1	)
(	0.64	0.042217983	1	)
(	0.66	0.040416898	1	)
(	0.68	0.038556656	1	)
(	0.7	0.036639067	1	)
(	0.72	0.034665604	1	)
(	0.74	0.032637411	1	)
(	0.76	0.030555316	1	)
(	0.78	0.028419835	1	)
(	0.8	0.02623118	1	)
(	0.82	0.023989265	1	)
(	0.84	0.021693713	1	)
(	0.86	0.019343859	1	)
(	0.88	0.016938755	1	)
(	0.9	0.014477173	1	)
(	0.92	0.011957609	1	)
(	0.94	0.009378289	1	)
(	0.96	0.006737166	1	)
(	0.98	0.004031929	1	)
(	1	0.00126	1	)
        )

    polyLine 12 15 (
(	0.32	-0.05992788	1	)
(	0.34	-0.059672249	1	)
(	0.36	-0.059263278	1	)
(	0.38	-0.058712465	1	)
(	0.4  	-0.058030108	1	)
(	0.42	-0.057225479	1	)
(	0.44	-0.056306948	1	)
(	0.46	-0.055282094	1	)
(	0.48	-0.054157786	1	)
(	0.5	    -0.052940252	1	)
(	0.52	-0.051635135	1	)
(	0.54	-0.050247543	1	)
(	0.56	-0.048782083	1	)
(	0.58	-0.047242897	1	)
(	0.6	    -0.045633691	1	)
(	0.62	-0.043957754	1	)
(	0.64	-0.042217983	1	)
(	0.66	-0.040416898	1	)
(	0.68	-0.038556656	1	)
(	0.7	    -0.036639067	1	)
(	0.72	-0.034665604	1	)
(	0.74	-0.032637411	1	)
(	0.76	-0.030555316	1	)
(	0.78	-0.028419835	1	)
(	0.8	    -0.02623118	1	)
(	0.82	-0.023989265	1	)
(	0.84	-0.021693713	1	)
(	0.86	-0.019343859	1	)
(	0.88	-0.016938755	1	)
(	0.9	    -0.014477173	1	)
(	0.92	-0.011957609	1	)
(	0.94	-0.009378289	1	)
(	0.96	-0.006737166	1	)
(	0.98	-0.004031929	1	)
(	1	    -0.00126	1	)
        )    
);

boundary
(
    inlet
    {
        type patch;
        faces
        (
            (0 1 11 10)
        );
    }
    outlet
    {
        type patch;
        faces
        (
            (0 4 14 10)
            ( 4 7 17 14)
            (1 6 16 11)
            (6 9 19 16)
            (7 8 18 17)
            (8 9 19 18) 

        );
    }
    airfoil
    {
        type wall;
        faces
        (
            (2 5 15 12)
            (2 3 13 12)
            (3 5 15 13)
            );
    }
    front
    {
        type empty;
        
        faces
        (
            (0 2 3 1)
            (0 4 5 2)
            (3 5 6 1)
            (4 7 8 5)
            (5 8 9 6)

            (10 12 13 11)
            (10 14 15 12)
            (13 15 16 11)
            (14 17 18 15)
            (15 18 19 16)

        );
    }

);

mergePatchPairs
(
);

// ************************************************************************* //
VP法用のメッシュ (ここをクリックするとblockMeshDictの詳細が出ます)

上とほぼ同じ格子幅でメッシュ生成します。

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

convertToMeters 1;

vertices
(
(	-0.5	-1.25	-1	)
(	3	-1.25	-1	)
(	3	1.25	-1	)
(	-0.5	1.25	-1	)

(	-0.5	-1.25	1	)
(	3	-1.25	1	)
(	3	1.25	1	)
(	-0.5	1.25	1	)
);

blocks
(
    hex (0 1 2 3 4 5 6 7) (700  500  1)  simpleGrading (1 1  1)

);

edges
(

);

boundary
(
    inlet
    {
        type patch;
        faces
        (
            (0 3 7 4 )
        );
    }
    outlet
    {
        type patch;
        faces
        (
            (0 1 5 4)
            (1 2 6 5)
            (3 2 6 7)
        );
    }
//    airfoil
//    {
//        type wall;
//        faces
//        (
//            (2 5 15 12)
//            (2 3 13 12)
//            (3 5 15 13)
//            );
//    }
    front
    {
        type empty;
        
        faces
        (
            (0 1 2 3)
            (4 5 6 7)
        );
    }

);

mergePatchPairs
(
);

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

Re=4400のケース

pisoFoamの結果

vppisoFoamの結果

迎角4度なので,翼の上下での速度差はそんなに大きくないですが,上側が少し早いです。Re=4400だとカルマン渦がでます。どちらの手法の結果もほぼ同じになってます。

Re=4.4e6のケース

pisoFoamの結果

vppisoFoamの結果

Re数が3桁あがってますが,メッシュは同じにしてます。pisoFoamのほうは最初こそ,翼後流に流れの乱れがありますが,そのあとは定常な流れになっています。それに対して,vppisoFoamのほうは翼周りで非定常な渦の生成が見られます。翼をブロックの集合で表現するため,表面にガタツキがでます。そこでバックステップ流れのようになって,渦が出ていそうです。かなりメッシュ細かくしないと渦が出ます。メッシュ幅1.25mmにしても出てました。