simpleFoamのエラーについて

376 views
Skip to first unread message

ryoma

unread,
Dec 26, 2010, 10:19:41 AM12/26/10
to OpenFOAM
いつもお世話になります。
高専の学生のものです。
icoFsiFoamのチュートリアルflappingCosoleSmallの形状(角柱周りの流れ)をsimpleFoamで動かそうと思い、
simpleFoamを実行すると以下のようなエラーがでました。

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * //
Create time

Create mesh for time = 0

Reading field p

Reading field U

Reading/calculating face flux field phi

Selecting incompressible transport model Newtonian
Selecting RAS turbulence model kEpsilon


--> FOAM FATAL ERROR:
This mesh contains patches of type empty but is not 1D or 2D
by virtue of the fact that the number of faces of this
empty patch is not divisible by the number of cells.

From function emptyFvPatchField<Type>::updateCoeffs()
in file fields/fvPatchFields/constraint/empty/emptyFvPatchField.C
at line 151.

FOAM exiting

と出てしまい、色々調べ、本家の方でも同じエラーの質問があったのですが、よく理解できませんでした。
どのようにすればよいかを教えていただきたいので、よろしくお願いいたします。


以下、私が行ったことを詳しく説明します。
1.コマンドラインopenfoam1.6xでsimpleFoamのpitzDailyを使用しました。
2.blockMeshDictを開いて、形状をflappingconsoleSmallのと同じ2次元の角柱周りの流れを作成しました。
3.patch名が異なるので、以下のようにしました。
-----------------------------------------------
convertToMeters 1;

vertices
(
(-2 0 -0.5)
(0 0 -0.5)
(0.05 0 -0.5)
(4 0 -0.5)
(-2 0.6 -0.5)
(0 0.6 -0.5)
(0.05 0.6 -0.5)
(4 0.6 -0.5)
(-2 1 -0.5)
(0 1 -0.5)
(0.05 1 -0.5)
(4 1 -0.5)

(-2 0 0.5)
(0 0 0.5)
(0.05 0 0.5)
(4 0 0.5)
(-2 0.6 0.5)
(0 0.6 0.5)
(0.05 0.6 0.5)
(4 0.6 0.5)
(-2 1 0.5)
(0 1 0.5)
(0.05 1 0.5)
(4 1 0.5)
);

blocks
(
hex (0 1 5 4 12 13 17 16) (40 40 10) simpleGrading (0.1 0.2 1)
hex (2 3 7 6 14 15 19 18) (80 40 10) simpleGrading (10 0.2 1)
hex (4 5 9 8 16 17 21 20) (40 40 10) simpleGrading (0.1 2 1)
hex (5 6 10 9 17 18 22 21) (5 40 10) simpleGrading (1 2 1)
hex (6 7 11 10 18 19 23 22) (80 40 10) simpleGrading (10 2 1)
);

edges
(
);

patches
(
patch inlet
(
(0 12 16 4)
(4 16 20 8)
)
patch outlet
(
(3 7 19 15)
(7 11 23 19)
)
wall upperWall
(
(8 20 21 9)
(9 21 22 10)
(10 22 23 11)
)
wall lowerWall
(
(0 1 13 12)
(2 3 15 14)
)
empty frontAndBack
(
(0 1 5 4)
(4 5 9 8)
(5 6 10 9)
(2 3 7 6)
(6 7 11 10)
(12 16 17 13)
(16 20 21 17)
(17 21 22 18)
(14 18 19 15)
(18 22 23 19)

)
);

mergePatchPairs
(
);
-------------------------------------------------------------
4.具体的なblockMeshDictの修正点は
・patch名をpitzDailyに合わしたこと
・icoFsiFoamにあるpatch consoleFluidを削除
・pitzDailyにあるempty frontAndBackをicoFsiFoamに変更
です。
5.blockMeshはicoFsiFoamの形状と同じようにうまくできました。
6.simpleFoamを実行して上記のようなエラーが出ました。

大変、長い文になって申し訳ありません。

E.Mogura

unread,
Dec 26, 2010, 3:33:13 PM12/26/10
to open...@googlegroups.com
E.Mogura です

エラーメッセージ
> --> FOAM FATAL ERROR:
> This mesh contains patches of type empty but is not 1D or 2D

に書いてある通り、empty の存在がいけないということです。
チュートリアルではZ方向の分割数が「1」であったので
empty でしたが、ryomaさんは分割数を「10」に変更されている
ので、emptyは許容できないということです。



2010年12月27日0:19 ryoma <c05a...@tokuyama.ac.jp>:

--
このメールは Google グループのグループ「OpenFOAM」の登録者に送られています。
このグループに投稿するには、open...@googlegroups.com にメールを送信してください。
このグループから退会するには、openfoam+u...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/openfoam?hl=ja からこのグループにアクセスしてください。


ryoma

unread,
Dec 27, 2010, 3:29:17 AM12/27/10
to OpenFOAM
E.Mogura 様
早速、ご回答してくださってありがとうございます。
分割数を10から1に変更して、blockMeshを実行し、simpleFoamを行いましたが、同様のエラーが出てしましました。
他に原因は何が考えられるのでしょうか。
もしお分かりでしたら、教えていただきたいと思います。よろしくお願いします。
--> FOAM FATAL ERROR:
This mesh contains patches of type empty but is not 1D or 2D
by virtue of the fact that the number of faces of this
empty patch is not divisible by the number of cells.

From function emptyFvPatchField<Type>::updateCoeffs()
in file fields/fvPatchFields/constraint/empty/emptyFvPatchField.C
at line 151.

FOAM exiting

-------------------------------------------------------------

*blockMeshDictの変更内容は以下です。

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

vertices
(
(-2 0 -0.1)
(0 0 -0.1)
(0.05 0 -0.1)
(4 0 -0.1)
(-2 0.6 -0.1)
(0 0.6 -0.1)
(0.05 0.6 -0.1)
(4 0.6 -0.1)
(-2 1 -0.1)
(0 1 -0.1)
(0.05 1 -0.1)
(4 1 -0.1)

(-2 0 0.1)
(0 0 0.1)
(0.05 0 0.1)
(4 0 0.1)
(-2 0.6 0.1)
(0 0.6 0.1)
(0.05 0.6 0.1)
(4 0.6 0.1)
(-2 1 0.1)
(0 1 0.1)
(0.05 1 0.1)
(4 1 0.1)
);

blocks
(
hex (0 1 5 4 12 13 17 16) (40 40 1) simpleGrading (0.1 0.2 1)
hex (2 3 7 6 14 15 19 18) (80 40 1) simpleGrading (10 0.2 1)
hex (4 5 9 8 16 17 21 20) (40 40 1) simpleGrading (0.1 2 1)
hex (5 6 10 9 17 18 22 21) (5 40 1) simpleGrading (1 2 1)
hex (6 7 11 10 18 19 23 22) (80 40 1) simpleGrading (10 2 1)
//
************************************************************************* //

On 12月27日, 午前5:33, "E.Mogura" <seikun...@gmail.com> wrote:
> E.Mogura です
>
> エラーメッセージ
>
> > --> FOAM FATAL ERROR:
> > This mesh contains patches of type empty but is not 1D or 2D
>
> に書いてある通り、empty の存在がいけないということです。
> チュートリアルではZ方向の分割数が「1」であったので
> empty でしたが、ryomaさんは分割数を「10」に変更されている
> ので、emptyは許容できないということです。
>
> 2010年12月27日0:19 ryoma <c05ar...@tokuyama.ac.jp>:
> > このグループから退会するには、openfoam+u...@googlegroups.com<openfoam%2Bunsub...@googlegroups.com>にメールを送信してください。
> > 詳細については、http://groups.google.com/group/openfoam?hl=jaからこのグループにアクセスしてください。- 引用テキストを表示しない -
>
> - 引用テキストを表示 -

E.Mogura

unread,
Dec 27, 2010, 7:30:32 AM12/27/10
to open...@googlegroups.com
E.Mogura です

このblockMeshDictを使うと、
未定義のpatchが存在し、
そこが defaultFaces (type empty)
になってしまいます。
→ constant/polyMesh/boundary を調べてみて下さい。


2010年12月27日17:29 ryoma <c05a...@tokuyama.ac.jp>:

ryoma

unread,
Dec 27, 2010, 11:24:41 AM12/27/10
to OpenFOAM
E.Mogura 様
ご回答ありがとうございます。
boundaryの変更と、加えてUやp等にdefaultFaces の条件を追加しましたら、解析できました。
いつもわかりやすい説明と的確なアドバイスに大変助かっています。
本当にありがとうございます。
また、よろしくお願いします。

On 12月27日, 午後9:30, "E.Mogura" <seikun...@gmail.com> wrote:
> E.Mogura です
>
> このblockMeshDictを使うと、
> 未定義のpatchが存在し、
> そこが defaultFaces (type empty)
> になってしまいます。
> → constant/polyMesh/boundary を調べてみて下さい。
>
> 2010年12月27日17:29 ryoma <c05ar...@tokuyama.ac.jp>:
>
>
>
> > E.Mogura 様
> > 早速、ご回答してくださってありがとうございます。
> > 分割数を10から1に変更して、blockMeshを実行し、simpleFoamを行いましたが、同様のエラーが出てしましました。
> > 他に原因は何が考えられるのでしょうか。
> > もしお分かりでしたら、教えていただきたいと思います。よろしくお願いします。
> > --> FOAM FATAL ERROR:
> > This mesh contains patches of type empty but is not 1D or 2D
> > by virtue of the fact that the number of faces of this
> > empty patch is not divisible by the number of cells.
>
> > From function emptyFvPatchField<Type>::updateCoeffs()
> > in file fields/fvPatchFields/constraint/empty/emptyFvPatchField.C
> > at line 151.
>
> > FOAM exiting
>
> > -------------------------------------------------------------
>
> > *blockMeshDictの変更内容は以下です。
>
> > /*--------------------------------*- C++ -
> > *----------------------------------*\
> > | =========
> > | |
> > | \\ / F ield | OpenFOAM: The Open Source CFD
> > Toolbox |
> > | \\ / O peration | Version:
> > 1.6 |
> > | \\ / A nd | Web: http://www.OpenFOAM.org
> > |
> > | \\/ M anipulation
> > | |
>
> > \*----------------------------------------------------------------------------
> > <openfoam%2Bunsub...@googlegroups.com<openfoam%252Bunsu...@googleg-roups.com>
Reply all
Reply to author
Forward
0 new messages