snappyHeXMesh後にparaViewで可視化されない(コアダンプが発生)

247 views
Skip to first unread message

k y

unread,
Jun 19, 2020, 4:34:29 AM6/19/20
to OpenFOAM
お世話におります。私は以下のシミュレーションをLESかRASを利用して取り組もうとしています。

Screenshot from 2020-06-19 16-57-49.png

内部に直方体をした障害物を何個か配置し、上から流体を流したときに下の面にどのような速度分布で到達するのか? です。非定常な乱流を考えていますのでpisoFoamかPimpleFoamを利用することを考えてます。

FreeCaDでstlファイルを作成しsnappyHexMeshは完了したのですが、再びparaViewで可視化されない問題が発生してしまいました。

チュートリアル上のtut/mesh/snappyHeXMesh上ではうまくいったのですが、新しく計算をするために、tut / incopressible / pisoFoam / LES / pitzDaily をコピーしてきてBlockMeshDictや初期条件を編集したらうまくいかなくなりました。

snappyHexMeshの実行後の構成は以下の通りです。

一番下にエラーの内容を掲載します。

どなたかご教授いただけたら幸いです。よろしくお願い致します。












├── 0
│   ├── U
│   ├── cellLevel
│   ├── k
│   ├── nSurfaceLayers
│   ├── nuTilda
│   ├── nut
│   ├── p
│   ├── pointLevel
│   ├── s
│   ├── thickness
│   └── thicknessFraction
├── constant
│   ├── polyMesh
│   │   ├── boundary
│   │   ├── faces
│   │   ├── neighbour
│   │   ├── owner
│   │   └── points
│   ├── transportProperties
│   ├── triSurface
│   │   ├── README
│   │   ├── block1.stl
│   │   ├── block10.stl
│   │   ├── block11.stl
│   │   ├── block12.stl
│   │   ├── block13.stl
│   │   ├── block2.stl
│   │   ├── block3.stl
│   │   ├── block4.stl
│   │   ├── block5.stl
│   │   ├── block6.stl
│   │   ├── block7.stl
│   │   ├── block8.stl
│   │   └── block9.stl
│   └── turbulenceProperties
└── system
    ├── blockMeshDict
    ├── controlDict
    ├── decomposeParDict
    ├── fvSchemes
    ├── fvSolution
    ├── meshQualityDict
    ├── snappyHexMeshDict
    └── surfaceFeatureExtractDict





--> FOAM FATAL IO ERROR:
Cannot find patchField entry for block1

file: /home/students1/OpenFOAM/Fujii/run/blinking_model/LES/pitzDailyMapped/0/p.boundaryField from line 25 to line 36.

    From function void Foam::GeometricField<Type, PatchField, GeoMesh>::Boundary::readField(const Foam::DimensionedField<TypeR, GeoMesh>&, const Foam::dictionary&) [with Type = double; PatchField = Foam::fvPatchField; GeoMesh = Foam::volMesh]
    in file /home/ubuntu/OpenFOAM/OpenFOAM-5.x/src/OpenFOAM/lnInclude/GeometricBoundaryField.C at line 191.

FOAM exiting

Segmentation fault (core dumped)

Daisuke Matsubara

unread,
Jun 19, 2020, 4:38:44 AM6/19/20
to OpenFOAM
松原です。

--> FOAM FATAL IO ERROR: 
Cannot find patchField entry for block1

file: /home/students1/OpenFOAM/Fujii/run/blinking_model/LES/pitzDailyMapped/0/p.boundaryField from line 25 to line 36.

圧力のパッチにblock1がないと書かれてますが、確認済みですか?

k y

unread,
Jun 19, 2020, 4:48:10 AM6/19/20
to OpenFOAM
松原様

ありがとうございます。初期条件のpは以下のようになっております。

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

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

internalField   uniform 0;

boundaryField
{
    inlet
    {
        type            zeroGradient;
    }

    outlet
    {
        type            fixedValue;
        value           uniform 0;
    }

    walls
    {
        type            zeroGradient;
    }
}

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

block1というのは内部に挿入した直方体の1つをblock1.stlとしているのですが、圧力の初期条件(0 / p)で付け加える必要があるのでしょうか?

よろしくお願いいたします


2020年6月19日金曜日 17時38分44秒 UTC+9 Daisuke Matsubara:

Daisuke Matsubara

unread,
Jun 19, 2020, 5:24:01 AM6/19/20
to OpenFOAM
松原です、

Constant/polyMesh/boundaryの中を確認したり、
0ディレクトリを一旦消して、paraviewでblock1が有効な面になってないかなど、いろいろ調べる必要がありそうです。

Daisuke Matsubara

unread,
Jun 19, 2020, 5:38:07 AM6/19/20
to OpenFOAM

Wallsとうパッチが円柱と外壁を含めたものであるなら、上記の境界条件で問題無いですが、おそらく内部の円柱が別のパッチとしてメッシングされている可能性が高いです。
メッシュからやり直すか、mergeするか、境界条件を書くかなど選択肢があるとおもいます。

一つ一つの面の境界条件を書くのが面倒ならワイルドカードの指定も行けたかとおもいます。

藤井 祐輔

unread,
Jun 19, 2020, 5:51:49 AM6/19/20
to open...@googlegroups.com
松原様

ありがとうございます。

ふと気づいたのですが、systemディレクトリのControlDict内をチュートリアルの状態のまま、編集を行わずに計算を実行していたことに気付きました。

以下に掲載します。おそらくfunctionsディクショナリ以下より、自分が作ったメッシュに対応させていく必要があると思います。

もしかしたらこれが原因で可視化することができなかったかもしれません。



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

}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

application     pisoFoam;

startFrom       startTime;

startTime       0;

stopAt          endTime;

endTime         0.1;

deltaT          1e-05;

writeControl    timeStep;

writeInterval   100;

purgeWrite      0;

writeFormat     ascii;

writePrecision  6;

writeCompression off;

timeFormat      general;

timePrecision   6;

runTimeModifiable true;

functions
{
    probes
    {
        type            probes;
        libs            ("libsampling.so");
        writeControl    timeStep;
        writeInterval   1;

        fields
        (
            p
        );

        probeLocations
        (
            (0.0254 0.0253 0)
            (0.0508 0.0253 0)
            (0.0762 0.0253 0)
            (0.1016 0.0253 0)
            (0.127 0.0253 0)
            (0.1524 0.0253 0)
            (0.1778 0.0253 0)
        );

    }

    fieldAverage1
    {
        type            fieldAverage;
        libs            ("libfieldFunctionObjects.so");
        writeControl    writeTime;

        fields
        (
            U
            {
                mean        on;
                prime2Mean  on;
                base        time;
            }

            p
            {
                mean        on;
                prime2Mean  on;
                base        time;
            }
        );
    }

    surfaceSampling
    {
        // Sample near-wall velocity

        type surfaces;

        // Where to load it from (if not already in solver)
        libs            ("libsampling.so");
        writeControl    writeTime;

        interpolationScheme cellPoint;

        surfaceFormat vtk;

        // Fields to be sampled
        fields
        (
            U
        );

        surfaces
        (
            nearWall
            {
                type            patchInternalField;
                patches         ( lowerWall );
                distance        1E-6;
                interpolate     true;
                triangulate     false;
            }
        );
    }

    #includeFunc scalarTransport
}

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

2020年6月19日(金) 18:38 Daisuke Matsubara <matsun...@gmail.com>:

Wallsとうパッチが円柱と外壁を含めたものであるなら、上記の境界条件で問題無いですが、おそらく内部の円柱が別のパッチとしてメッシングされている可能性が高いです。
メッシュからやり直すか、mergeするか、境界条件を書くかなど選択肢があるとおもいます。

一つ一つの面の境界条件を書くのが面倒ならワイルドカードの指定も行けたかとおもいます。

--
このメールは Google グループのグループ「OpenFOAM」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには openfoam+u...@googlegroups.com にメールを送信してください。
このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/openfoam/88b556ab-3730-4a50-8327-143595e57d1ao%40googlegroups.com にアクセスしてください。
Reply all
Reply to author
Forward
0 new messages