blockMeshでのエラーについて

1,768 views
Skip to first unread message

kazuto

unread,
Jun 27, 2012, 10:04:29 PM6/27/12
to open...@googlegroups.com
はじめまして。
最近になってOpenFOAMを使い始た者です。
よろしくお願い致します。

管路内の水と空気の2相流の流れを解析したいと思い、interFoamを使用しようと考えています。
ピペットのチップのような形態のテーパーのついた盲管内に、円管を挿入して円管から流体を流した際の挙動を調べたいと思っています。

まずは2次元でと思いますので、以下のようにblockMeshDictを作製しましたが、
blockMeshを実行するとエラーが出てしまいます。
自分で探してみましたが、何がよくないのかを見つけることができませんでした。
初歩的な内容で申し訳ないのですが、
ご助言いただけると幸いです。
以下にblockMeshDictとエラーを転載させていただきます。

constant/polyMesh/blockMeshDict


FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      blockMeshDict;
}

convertToMeters 0.001;

vertices
(
    (0.11 30 0) // 0
    (-0.11 30 0) // 1
    (0.11 2 0) // 2
    (-0.11 2 0) // 3
    (0.08 0 0) // 4
    (-0.08 0 0) // 5
    (0.15 0 0) // 6
    (-0.15 0 0) // 7
    (0.2 2 0) // 8
    (-0.2 2 0) // 9
    (0.26 2 0) // 10
    (-0.26 2 0) // 11
    (0.2 0 0) // 12
    (-0.2 0 0) // 13
    (0.65 15 0) // 14
    (-0.65 15 0) // 15
    (0.2 15 0) // 16
    (-0.2 15 0) // 17
    (0.11 30 0.1) // 18
    (-0.11 30 0.1) // 19
    (0.11 2 0.1) // 20
    (-0.11 2 0.1) // 21
    (0.08 0 0.1) // 22
    (-0.08 0 0.1) // 23
    (0.15 0 0.1) // 24
    (-0.15 0 0.1) // 25
    (0.2 2 0.1) // 26
    (-0.2 2 0.1) // 27
    (0.26 2 0.1) // 28
    (-0.26 2 0.1) // 29
    (0.2 0 0.1) // 30
    (-0.2 0 0.1) // 31
    (0.65 15 0.1) // 32
    (-0.65 15 0.1) // 33
    (0.2 15 0.1) // 34
    (-0.2 15 0.1) // 35
);

blocks
(
    hex (0 1 3 2 18 19 21 20) (280 2 1) simpleGrading (1 1 1) //0
    hex (2 3 5 4 20 21 23 22) (20 2 1) simpleGrading (1 1 1) //1
    hex (2 4 6 8 20 22 24 26) (20 1 1) simpleGrading (1 1 1) //2
    hex (8 6 12 10 26 24 30 28) (20 1 1) simpleGrading (1 1 1) //3
    hex (8 10 14 16 26 28 32 34) (130 1 1) simpleGrading (1 1 1) //4
    hex (3 9 7 5 21 27 25 23) (20 1 1) simpleGrading (1 1 1) //5
    hex (9 11 13 7 27 29 31 25) (20 1 1) simpleGrading (1 1 1) //6
    hex (9 17 15 11 27 35 33 29) (130 1 1) simpleGrading (1 1 1) //7

);

edges ();

boundary
(
  inlet
  {
        type patch;
        faces
   (
    (0 1 19 18)
   );
  }
  heki
  {
        type wall;
        faces
   (
    (0 2 20 18)
    (2 8 26 20)
    (8 16 34 26)
    (12 10 28 30)
    (10 14 32 28)
    (6 12 30 24)
    (4 6 24 22)
    (4 5 23 22)
    (5 7 25 23)
    (7 13 31 25)
    (11 13 31 29)
    (11 15 33 29)
    (9 17 35 27)
    (3 9 27 21)
    (1 3 21 19)
    );
   }
atm
  {
        type patch;
        faces
   (
     (14 16 34 32)
     (15 17 35 33)
   );
  }
fandb
  {
        type empty;
        faces
   (
    (0 1 3 2)
    (2 3 5 4)
    (2 8 6 4)
    (8 6 12 10)
    (8 10 14 16)
    (3 9 7 5)
    (9 11 13 7)
    (9 11 15 17)
    (18 19 21 20)
    (20 21 23 22)
    (20 26 24 22)
    (26 24 30 28)
    (26 28 32 34)
    (21 27 25 23)
    (27 29 31 25)
    (27 29 33 35)
   );
  }
);
mergePatchPairs ();

以下がエラーです。
Create time

Creating block mesh from
    "/home/kazuto/Desktop/if2mm/constant/polyMesh/blockMeshDict"
Creating curved edges
Creating topology blocks
Creating topology patches

Creating block mesh topology
--> FOAM Warning : 
    From function cellModel::mag(const labelList&, const pointField&)
    in file meshes/meshShapes/cellModel/cellModel.C at line 128
    zero or negative pyramid volume: -0.003 for face 0
--> FOAM Warning : 
    From function cellModel::mag(const labelList&, const pointField&)
    in file meshes/meshShapes/cellModel/cellModel.C at line 128
    zero or negative pyramid volume: -0.00233333 for face 1
--> FOAM Warning : 
    From function cellModel::mag(const labelList&, const pointField&)
    in file meshes/meshShapes/cellModel/cellModel.C at line 128
    zero or negative pyramid volume: -0.00266667 for face 2
--> FOAM Warning : 
    From function cellModel::mag(const labelList&, const pointField&)
    in file meshes/meshShapes/cellModel/cellModel.C at line 128
    zero or negative pyramid volume: -0.00266667 for face 3
--> FOAM Warning : 
    From function cellModel::mag(const labelList&, const pointField&)
    in file meshes/meshShapes/cellModel/cellModel.C at line 128
    zero or negative pyramid volume: -0.00266667 for face 4
--> FOAM Warning : 
    From function cellModel::mag(const labelList&, const pointField&)
    in file meshes/meshShapes/cellModel/cellModel.C at line 128
    zero or negative pyramid volume: -0.00266667 for face 5
--> FOAM Warning : 
    From function blockMesh::createTopology(IOdictionary&)
    in file blockMesh/blockMeshTopology.C at line 255
    negative volume block : 5, probably defined inside-out
--> FOAM Warning : 
    From function cellModel::mag(const labelList&, const pointField&)
    in file meshes/meshShapes/cellModel/cellModel.C at line 128
    zero or negative pyramid volume: -0.002 for face 0
--> FOAM Warning : 
    From function cellModel::mag(const labelList&, const pointField&)
    in file meshes/meshShapes/cellModel/cellModel.C at line 128
    zero or negative pyramid volume: -0.00166667 for face 1
--> FOAM Warning : 
    From function cellModel::mag(const labelList&, const pointField&)
    in file meshes/meshShapes/cellModel/cellModel.C at line 128
    zero or negative pyramid volume: -0.00183333 for face 2
--> FOAM Warning : 
    From function cellModel::mag(const labelList&, const pointField&)
    in file meshes/meshShapes/cellModel/cellModel.C at line 128
    zero or negative pyramid volume: -0.00183333 for face 3
--> FOAM Warning : 
    From function cellModel::mag(const labelList&, const pointField&)
    in file meshes/meshShapes/cellModel/cellModel.C at line 128
    zero or negative pyramid volume: -0.00183333 for face 4
--> FOAM Warning : 
    From function cellModel::mag(const labelList&, const pointField&)
    in file meshes/meshShapes/cellModel/cellModel.C at line 128
    zero or negative pyramid volume: -0.00183333 for face 5
--> FOAM Warning : 
    From function blockMesh::createTopology(IOdictionary&)
    in file blockMesh/blockMeshTopology.C at line 255
    negative volume block : 6, probably defined inside-out
--> FOAM Warning : 
    From function cellModel::mag(const labelList&, const pointField&)
    in file meshes/meshShapes/cellModel/cellModel.C at line 128
    zero or negative pyramid volume: -0.05525 for face 0
--> FOAM Warning : 
    From function cellModel::mag(const labelList&, const pointField&)
    in file meshes/meshShapes/cellModel/cellModel.C at line 128
    zero or negative pyramid volume: -0.05525 for face 1
--> FOAM Warning : 
    From function cellModel::mag(const labelList&, const pointField&)
    in file meshes/meshShapes/cellModel/cellModel.C at line 128
    zero or negative pyramid volume: -0.013 for face 2
--> FOAM Warning : 
    From function cellModel::mag(const labelList&, const pointField&)
    in file meshes/meshShapes/cellModel/cellModel.C at line 128
    zero or negative pyramid volume: -0.0975 for face 3
--> FOAM Warning : 
    From function cellModel::mag(const labelList&, const pointField&)
    in file meshes/meshShapes/cellModel/cellModel.C at line 128
    zero or negative pyramid volume: -0.05525 for face 4
--> FOAM Warning : 
    From function cellModel::mag(const labelList&, const pointField&)
    in file meshes/meshShapes/cellModel/cellModel.C at line 128
    zero or negative pyramid volume: -0.05525 for face 5
--> FOAM Warning : 
    From function blockMesh::createTopology(IOdictionary&)
    in file blockMesh/blockMeshTopology.C at line 255
    negative volume block : 7, probably defined inside-out

Check topology

Basic statistics
Number of internal faces : 7
Number of boundary faces : 34
Number of defined boundary faces : 34
Number of undefined boundary faces : 0
Checking patch -> block consistency

Creating block offsets
Creating merge list 

--> FOAM FATAL ERROR: 
Inconsistent number of faces between block pair 0 and 1

    From function blockMesh::calcMergeInfo()
    in file blockMesh/blockMeshMerge.C at line 221.

FOAM exiting

ごく初歩的な内容と思います。
専門外の分野を試行錯誤しながら学んでいますが、
自分の誤りを見つけることができずに行き詰まってしまい、思い切って相談させていただきました。
メンバーのみなさまのハイレベルな議論に水を差してしまうようで申し訳ないのですが、
アドバイスを頂ければと思います。

よろしくお願い致します。

ohbuchi

unread,
Jun 28, 2012, 2:07:33 AM6/28/12
to OpenFOAM
UserGuideの図5.4とよく見比べて下さい。
節点番号の順序に気をつけてブロック定義を見直して下さい。
パッチ定義については、ブロック内側から時計回りに節点番号が並ぶ様に指定する必要があります。
まずはブロック数の少ない単純なケースで試して、次第に複雑なものに挑戦することをお勧めします。

kazuto

unread,
Jun 28, 2012, 4:57:55 AM6/28/12
to open...@googlegroups.com
ohbuchi様

ありがとうございます。
節点の順序を見直すことで無事にメッシュを作製するところまでいくことができました。
UserGuideも読んだつもりだったのですが、
全く理解できていませんでした。
ご迷惑をおかけしました。

アドバイス通り、簡単なモデルからはじめていきたいと思います。
今後もよろしくお願い致します。
Reply all
Reply to author
Forward
0 new messages