pimpleDyMFoamを使ったタービン翼内の計算に関して

1,417 views
Skip to first unread message

yuya betsuyaku

unread,
Nov 3, 2012, 1:06:53 PM11/3/12
to open...@googlegroups.com
お世話になっております。別役と申します。

現在、pimpleDyMFoamを使い、ami領域を作り、半径流型タービンの翼内部の流動を見ようと試みております。
tutorials/incompressible/pimpleDyMFoam/propeller や
長崎総合科学大学様のblog(http://www.mech.nias.ac.jp/blog_main/sb.cgi?month=201001
を参考に、添付のファイル(http://ll.la/lDz,I)
の通り設定しました。
(モデルは直方体内部の中央にタービン(40,000rpm)を配置し、直方体側面の向かい合う2カ所をinlet(5m/s)、直方体上部をoutletと設定)
(大変申し訳ございませんが、添付するデータの容量が大きく、投稿できなかったため、外部のフォルダ共有サービスを使いました。)

その後、blockMesh→snappyHexMesh→setSet→pimpleDyMFoam
と実行したところ、エラーが出て、うまく動きません。

何の設定が足りないのか、どこが間違っているのかわからず、困っています。
まだまだ不勉強で、よくわかっていない所が多くあり、どんな指摘でもかまいませんので、どなたかよろしければご教授お願いいたします。
よろしくお願い致します。

ohbuchi

unread,
Nov 5, 2012, 7:05:28 PM11/5/12
to open...@googlegroups.com
どこで、どの様なエラーが出たのでしょうか?
調べるポイントがある程度絞られないと、助言を得るのは難しいと思います。

まずは、ちゃんとメッシュが切れているのかcheckMeshを試したり、AMIインターフェースの
メッシュをチェックしてみて下さい。



2012年11月4日日曜日 2時06分53秒 UTC+9 yuya betsuyaku:

yuya betsuyaku

unread,
Nov 8, 2012, 5:46:11 AM11/8/12
to open...@googlegroups.com
ohbuchi様、返信ありがとうございます。

お世話になっております、別役と申します。
明確な投稿ではなく、大変申し訳ございません。

blockMesh→snappyHexMesh→setSet→pimpleDyMFoam
とコマンドを打ち込んだところ、エラーが

Create time
Create mesh for time = 0

Selecting dynamicFvMesh solidBodyMotionFvMesh
Selecting solid-body motion function rotatingMotion
Applying solid body motion to cellZone turbine
#0  Foam::error::printStack(Foam::Ostream&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
#1  Foam::sigSegv::sigHandler(int) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
#2  Uninterpreted: 
#3  Foam::solidBodyMotionFvMesh::solidBodyMotionFvMesh(Foam::IOobject const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libdynamicFvMesh.so"
#4  Foam::dynamicFvMesh::addIOobjectConstructorToTable<Foam::solidBodyMotionFvMesh>::New(Foam::IOobject const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libdynamicFvMesh.so"
#5  Foam::dynamicFvMesh::New(Foam::IOobject const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libdynamicFvMesh.so"
#6  
 in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/pimpleDyMFoam"
#7  __libc_start_main in "/lib/tls/i686/cmov/libc.so.6"
#8  
 in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/pimpleDyMFoam"
Segmentation fault

と出ました。

また、checkMeshを試すと、

Create time
Create polyMesh for time = 1e-05
Time = 1e-05

Mesh stats
    points:           1232539
    faces:            3056947
    internal faces:   2749832
    cells:            912580
    boundary patches: 4
    point zones:      0
    face zones:       2
    cell zones:       2
Overall number of cells of each type:
    hexahedra:     807561
    prisms:        0
    wedges:        0
    pyramids:      0
    tet wedges:    0
    tetrahedra:    0
    polyhedra:     105019

Checking topology...
    Boundary definition OK.
 ***Total number of faces on empty patches is not divisible by the number of cells in the mesh. Hence this mesh is not 1D or 2D.
    Cell to face addressing OK.
    Point usage OK.
    Upper triangular ordering OK.
    Face vertices OK.
    Number of regions: 1 (OK).

Checking patch topology for multiply connected surfaces ...
    Patch               Faces    Points   Surface topology                  
    defaultFaces        2254     2305     ok (closed singly connected)      
    turbine_TURBINE     304861   305637   ok (closed singly connected)      
    turbine_ami01_TURBINE_AMI010        0        ok (empty)                        
    turbine_ami02_TURBINE_AMI020        0        ok (empty)                        

Checking geometry...
    Overall domain bounding box (-0.16 -0.16 -0.02) (0.16 0.16 0.11)
    Mesh (non-empty, non-wedge) directions (0 0 0)
    Mesh (non-empty) directions (0 0 0)
 ***Number of edges not aligned with or perpendicular to non-empty directions: 3285448
  <<Writing 1232088 points on non-aligned edges to set nonAlignedEdges
    Boundary openness (-1.87005e-21 1.14105e-19 4.63476e-18) OK.
    Max cell openness = 4.25829e-16 OK.
    Max aspect ratio = 0 OK.
    Minumum face area = 4.06093e-07. Maximum face area = 0.000512.  Face area magnitudes OK.
    Min volume = 7.9545e-10. Max volume = 3.32794e-06.  Total volume = 0.0129501.  Cell volumes OK.
    Mesh non-orthogonality Max: 61.9568 average: 11.3916
    Non-orthogonality check OK.
    Face pyramids OK.
    Max skewness = 1.01711 OK.
    Coupled point location match (average 0) OK.

Failed 1 mesh checks.
Time = 2e-05
Mesh stats
    points:           1160496
    faces:            2981301
    internal faces:   2749832
    cells:            912580
    boundary patches: 4
    point zones:      0
    face zones:       2
    cell zones:       2

Overall number of cells of each type:
    hexahedra:     734772
    prisms:        66492
    wedges:        0
    pyramids:      0
    tet wedges:    224
    tetrahedra:    9
    polyhedra:     111083

Checking topology...
    Boundary definition OK.
 ***Total number of faces on empty patches is not divisible by the number of cells in the mesh. Hence this mesh is not 1D or 2D.
    Cell to face addressing OK.
    Point usage OK.
    Upper triangular ordering OK.
    Face vertices OK.
    Number of regions: 1 (OK).

Checking patch topology for multiply connected surfaces ...
    Patch               Faces    Points   Surface topology                  
    defaultFaces        2254     2305     ok (closed singly connected)      
    turbine_TURBINE     229215   233594   ok (closed singly connected)      
    turbine_ami01_TURBINE_AMI010        0        ok (empty)                        
    turbine_ami02_TURBINE_AMI020        0        ok (empty)                        

Checking geometry...
    Overall domain bounding box (-0.160014 -0.160001 -0.0200217) (0.160003 0.160004 0.110002)
    Mesh (non-empty, non-wedge) directions (0 0 0)
    Mesh (non-empty) directions (0 0 0)
 ***Number of edges not aligned with or perpendicular to non-empty directions: 3228971
  <<Writing 1160496 points on non-aligned edges to set nonAlignedEdges
    Boundary openness (-1.62691e-19 3.87072e-19 2.06292e-18) OK.
    Max cell openness = 4.25346e-16 OK.
    Max aspect ratio = 0 OK.
    Minumum face area = 1.26151e-07. Maximum face area = 0.000512008.  Face area magnitudes OK.
    Min volume = 4.92963e-11. Max volume = 3.32797e-06.  Total volume = 0.0129013.  Cell volumes OK.
    Mesh non-orthogonality Max: 65.0172 average: 13.3271
    Non-orthogonality check OK.
    Face pyramids OK.
 ***Max skewness = 5.49183, 4 highly skew faces detected which may impair the quality of the results
  <<Writing 4 skew faces to set skewFaces
    Coupled point location match (average 0) OK.

Failed 2 mesh checks.
Time = 3e-05
Mesh stats
    points:           1159311
    faces:            2979774
    internal faces:   2749832
    cells:            912580
    boundary patches: 4
    point zones:      0
    face zones:       2
    cell zones:       2

Overall number of cells of each type:
    hexahedra:     733448
    prisms:        67358
    wedges:        0
    pyramids:      0
    tet wedges:    241
    tetrahedra:    9
    polyhedra:     111524

Checking topology...
    Boundary definition OK.
 ***Total number of faces on empty patches is not divisible by the number of cells in the mesh. Hence this mesh is not 1D or 2D.
    Cell to face addressing OK.
    Point usage OK.
    Upper triangular ordering OK.
    Face vertices OK.
    Number of regions: 1 (OK).

Checking patch topology for multiply connected surfaces ...
    Patch               Faces    Points   Surface topology                  
    defaultFaces        2254     2305     ok (closed singly connected)      
    turbine_TURBINE     227688   232409   ok (closed singly connected)      
    turbine_ami01_TURBINE_AMI010        0        ok (empty)                        
    turbine_ami02_TURBINE_AMI020        0        ok (empty)                        

Checking geometry...
    Overall domain bounding box (-0.160014 -0.160001 -0.0200217) (0.160003 0.160004 0.110002)
    Mesh (non-empty, non-wedge) directions (0 0 0)
    Mesh (non-empty) directions (0 0 0)
 ***Number of edges not aligned with or perpendicular to non-empty directions: 3226259
  <<Writing 1159311 points on non-aligned edges to set nonAlignedEdges
    Boundary openness (-1.56258e-19 3.95621e-19 2.03604e-18) OK.
    Max cell openness = 4.25346e-16 OK.
    Max aspect ratio = 0 OK.
    Minumum face area = 1.29071e-07. Maximum face area = 0.000512008.  Face area magnitudes OK.
    Min volume = 4.92963e-11. Max volume = 3.32797e-06.  Total volume = 0.0129012.  Cell volumes OK.
    Mesh non-orthogonality Max: 65.0172 average: 13.332
    Non-orthogonality check OK.
    Face pyramids OK.
    Max skewness = 3.56833 OK.
    Coupled point location match (average 0) OK.

Failed 1 mesh checks.
End
と1つ、メッシュが適切に切れていないと表示されます。

setSetでは、
readline>cellSet turbin_ami01_TURBINE_AMI010 cellToCell turbine_ami01_TURBINE_AMI010
readline>cellSet turbin_ami02_TURBINE_AMI020 cellToCell turbine_ami02_TURBINE_AMI020
readline>faceSet turbine_TURBINE patchToFace Patch
readline>quit
とコマンドを打ち込みました。

おそらく、AMIインターフェースのメッシュがおかしいと思われますが、どのように修正すればいいのかわからず、試行錯誤している段階です。
snappyHexMeshを以下の通りに設定しました。

castellatedMesh true;
snap            true;
addLayers       true;

geometry
{
    turbine.stl
    {
        type        triSurfaceMesh;
        name        turbine;
     }
    turbine_ami01.stl
    {
        type        triSurfaceMesh;
        name        turbine_ami01;
     }
    turbine_ami02.stl
    {
        type        triSurfaceMesh;
        name        turbine_ami02;
     }

    inlet01.stl
    {
        type        triSurfaceMesh;
        name        inlet01;
     }
     inlet02.stl
    {
        type        triSurfaceMesh;
        name        inlet02;
     }
     outlet.stl
    {
        type        triSurfaceMesh;
        name        outlet;
     }
     walls.stl
    {
        type        triSurfaceMesh;
        name        walls;
     }
};

castellatedMeshControls
{

    maxLocalCells 200000;
    maxGlobalCells 3000000;
    minRefinementCells 100;
    maxLoadUnbalance 0.10;
    nCellsBetweenLevels 2;
    features
    (
       );

    refinementSurfaces
    {
        turbine_ami01
        {
            level       (2 4);
            cellZone    turbine_ami01;
            faceZone    turbine_ami01;
            cellZoneInside  inside;
        }
        turbine_ami02
        {
            level       (2 4);
            cellZone    turbine_ami02;
            faceZone    turbine_ami02;
            cellZoneInside  inside;
        }
        turbine
        {
            level       (2 4);
        }
       
    }

    resolveFeatureAngle 30;
    refinementRegions
    {
        turbine
        {
            mode        inside;
            levels      ((1E15 3));
        }
        
    }

    locationInMesh (0.1 0.1 0.01);
    allowFreeStandingZoneFaces true;
}
snapControls
{
    nSmoothPatch 3;
    tolerance 4.0; // 1.0;
    nSolveIter 300;
    nRelaxIter 5;
    nFeatureSnapIter 20;
}
addLayersControls
{
    relativeSizes true;
    layers
    {
    }
    expansionRatio 1.0;
    finalLayerThickness 0.3;
    minThickness 0.1;
    nGrow 0;
    featureAngle 30;
    nRelaxIter 3;
    nSmoothSurfaceNormals 1;
    nSmoothNormals 3;
    nSmoothThickness 10;
    maxFaceThicknessRatio 0.5;
    maxThicknessToMedialRatio 0.3;
    minMedianAxisAngle 90;
    nBufferCellsNoExtrude 0;
    nLayerIter 50;
}

meshQualityControls
{
     maxNonOrtho 65;
    maxBoundarySkewness 20;
    maxInternalSkewness 4;
    maxConcave 80;
    minVol 1e-13;
    minTetQuality -1;
    minArea -1;
    minTwist 0.01;
    minDeterminant 0.001;
    minFaceWeight 0.05;
    minVolRatio 0.01;
    minTriangleTwist -1;
    nSmoothScale 4;
    errorReduction 0.75;
    relaxed
    {
        maxNonOrtho 75;
    }
}

debug 0;
mergeTolerance 1e-6;


長文、乱文、大変申し訳ございませんが、誤っている点や気になる点があれば、どんな指摘でもかまいませんので、ご教授をお願い致します。

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



2012年11月6日火曜日 9時05分28秒 UTC+9 ohbuchi:

ohbuchi

unread,
Nov 8, 2012, 9:01:49 PM11/8/12
to open...@googlegroups.com
こんにちは。
おそらくsnappyHexMeshの問題ですね。non-aligned edgeが出力されているのでメッシュ品質に問題がある様です。

snappyHexMeshを用いた回転体メッシュの作成方法については、日本流体力学会誌6月号の野村様、今川様の論文
がとても参考になります。

http://www.nagare.or.jp/download/noauth.html?dd=assets/files/download/noauth/nagare/31-3/31-3tokushu2.pdf

blockMeshの段階でAMIインターフェース(円筒面)を作成して、回転領域と静止領域をsnappyで別々にメッシュを
作成すればAMIインターフェースが歪まずに済むそうです。

メッシュさえ正しく作成できれば、計算の実行自体はそれほど難しくないと思います。

以上、ご参考まで。


2012年11月8日木曜日 19時46分11秒 UTC+9 yuya betsuyaku:

yuya betsuyaku

unread,
Nov 9, 2012, 1:02:03 PM11/9/12
to open...@googlegroups.com
ohbuchi様、返信ありがとうございます。

別役です。野村様、今川様の論文を参考に、blockMeshの段階から回転領域と静止領域に分けることを試みております。

そこで一つ質問があります。
論文のページ258に、「回転領域と合致するようなblockMeshを作成する」と記述がありますが、添付した写真にあるような、回転機械(タービン)の周りに円柱型のblockMeshを製作するには、どのように設定すればいいのかわからず、試行錯誤を続けています。

これに関して、参考になる論文やホームページ、チュートリアルの例題などありましたら、ご教授をお願い致します。

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


2012年11月9日金曜日 11時01分50秒 UTC+9 ohbuchi:
turbine_ex00.jpg

ohbuchi

unread,
Nov 9, 2012, 4:02:05 PM11/9/12
to open...@googlegroups.com
こんにちは。
MRFSimpleFoam/mixerVessel2DチュートリアルではblockMeshで円筒形のメッシュを作成して
います。m4というマクロプロセッサを使っています。

> m4 < blockMeshDict.m4 > blockMeshDict

このマクロでは、円筒の直径などを指定してblockMeshDictを自動生成しています。

マクロを使わずとも、blockMeshでは円弧やスプラインをエッジとして定義できますので
円筒面を2本の円弧と2本の線分で定義すればOKです。円弧の定義は以下の通りです。

edges
     arc v1 v2 (x3 y3 z3)      ...v1,v2は円弧の始点と終点ID、(x3,y3,z3)は円弧上の点座標
     ・・・
);

ブロックのエッジが円弧になっていれば、内部メッシュはTransfinite補間によって
分割されます。エッジ以外の定義は特に違いはありません。

以上、ご参考まで。

2012年11月10日土曜日 3時02分03秒 UTC+9 yuya betsuyaku:

E.Mogura

unread,
Nov 9, 2012, 4:26:44 PM11/9/12
to open...@googlegroups.com
E.Mogura こと、引き合いのあった文献の著作者です

すでにohbuchiさんも回答されてますがm4スクリプトを使っており、
円筒部分だけであれば、拙宅HPにて、
円筒の径や長さ分割数など書き換えるだけで
使えるようにしたものを公開しております。


件の文献では、これをベースに外部の領域まで拡張したもので、
この拡張はケースバイケースでやるしかありません。

ちなみに現在の自分は、はオープンCAEのコンサルタント業をやっており、
データの公開がOKで、納期不問ということであれば、
無料にて製作させていただきますので、ご要望あれば申し付け下さい。


2012年11月10日土曜日 3時02分03秒 UTC+9 yuya betsuyaku:

yuya betsuyaku

unread,
Nov 10, 2012, 8:37:58 AM11/10/12
to open...@googlegroups.com
ohbuchi様、返信ありがとうございます。

別役と申します。教えていただいたMRFSimpleFoam/mixerVessel2D/constant/polyMesh/blockMeshDict.m4で、
設定を変えて使っています。

これに関して、一つ質問があります。
円柱の形にメッシュを切りたいと考えているのですが、添付の写真のようなドーナツ型になってしまいます。
blockMeshDict.m4のどの部分を変えれば、E.Mogura様(http://mogura7.zenno.info/~et/xoops/modules/wordpress/index.php?p=408)が公開している形状にメッシュが切れるかわからず、作業が止まっています。
どんな指摘でもかまいませんので、よろしければご教授お願い致します。


E.Mogura様、返信ありがとうございます。

私自身の勉強にもなると思うので、上記の件お願いできますでしょうか。
データの公開や納期不問に関しては、全く問題ないです。

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


2012年11月10日土曜日 6時26分44秒 UTC+9 E.Mogura:
ex01_blockMeshDict.jpg

E.Mogura

unread,
Nov 10, 2012, 4:49:47 PM11/10/12
to open...@googlegroups.com
E.Mogura です。

>私自身の勉強にもなると思うので、上記の件お願いできますでしょうか。
>データの公開や納期不問に関しては、全く問題ないです。

了解しました。
それでは、形状データをアップ、もしくは送付下さい。

2012年11月10日土曜日 22時37分58秒 UTC+9 yuya betsuyaku:

ohbuchi

unread,
Nov 11, 2012, 4:54:30 AM11/11/12
to open...@googlegroups.com
MixerVessel2Dチュートリアルのマクロをそのまま使ってもチュートリアルと違うメッシュは生成できません。
blockMeshDictのblocks, boundary部分を変更する必要があります。

寸法を変えながら同じトポロジーのメッシュを繰り返し生成する場合に、マクロは有効です。
下記のHPなどを参考にm4マクロプロセッサの文法を調べ、 
目的のblockMeshDictを正しく自動生成出来る様に、デバッグしてください。

まずは、blockMeshDictを自分で書いて見ることをおすすめします。1度限りならマクロを作る
より早いし、マクロを作る場合でも正しいblockMeshDictのサンプルを得ることが出来るので
必須のステップだと思います。


2012年11月10日土曜日 22時37分58秒 UTC+9 yuya betsuyaku:

yuya betsuyaku

unread,
Nov 12, 2012, 9:52:25 AM11/12/12
to open...@googlegroups.com
E.Mogura様、返信ありがとうございます。

別役と申します。
データの容量が300KB程あり、メールで送付したいと考えております。
もしよろしければ、私のアドレス(honob...@gmail.com)にメールを送っていただけますでしょうか。

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


2012年11月11日日曜日 6時49分47秒 UTC+9 E.Mogura:

yuya betsuyaku

unread,
Nov 12, 2012, 10:57:27 AM11/12/12
to open...@googlegroups.com
ohbuchi様、返信ありがとうございます。

別役と申します。
教えていただいたページなどを参考に、目的のモデルに合わせたblockMeshを作ってみます。

ありがとうございました。

2012年11月11日日曜日 18時54分30秒 UTC+9 ohbuchi:

yuya betsuyaku

unread,
Nov 15, 2012, 6:06:36 AM11/15/12
to open...@googlegroups.com
E.Mogura様

別役と申します。
以前にも投稿しましたが、データの容量が300KB程あり、メールで送付したいと考えております。
アドレスがわからないため、どこにメールを送ればよろしいでしょうか。

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

2012年11月11日日曜日 6時49分47秒 UTC+9 E.Mogura:
E.Mogura です。

yuya betsuyaku

unread,
Nov 20, 2012, 10:44:39 AM11/20/12
to open...@googlegroups.com
お世話になっております。別役です。
mergeMeshに関して質問があります。

前回までの投稿で教えていただいた、snappyHexMeshで回転領域と静止領域のメッシュを別々に作成し、
mergeMeshを使い一つに合体させようと試みておりますが、操作方法に関して分からない点があります。

snappyHexMeshを実行するとフォルダが0、1、2、3と作られ(endTime : 1と仮定)、
その後mergeMeshを実行すると、1/polyMesh/boundary内に結合されてしまいます。
3/polyMesh/boundaryに結合したい場合はどのようなコマンド操作をすればよろしいでしょうか。

私の場合、オープンCAEコンサルタント様(http://mogura7.zenno.info/~et/wordpress/ocse/?p=551)のページを参考に、
$(回転領域) . ../(静止領域)
と、実行させました。


どんな指摘でもかまいませんので、ご教授よろしくお願い致します。

2012年11月11日日曜日 18時54分30秒 UTC+9 ohbuchi:

E.Mogura

unread,
Nov 24, 2012, 3:11:23 AM11/24/12
to open...@googlegroups.com
E.Mogura です。

 mergeMeshesの仕様なので

>3/polyMesh/boundaryに結合

ということは出来ません。

 mergeMeshes -help

Usage: mergeMeshes [OPTIONS] <masterCase> <addCase>
options:
  -addRegion <name>
                    specify alternative mesh region for the additional mesh
  -case <dir>       specify alternate case directory, default is the cwd
  -masterRegion <name>
                    specify alternative mesh region for the master mesh
  -noFunctionObjects
                    do not execute functionObjects
  -overwrite        overwrite existing mesh/results files
  -srcDoc           display source code in browser
  -doc              display application documentation in browser
  -help             print the usage

merge two meshes

つまり、
-time オプションは使えない、ということです。


snappyHexMesh を実行する際に、 -overwrite オプションを使えば、

3/polyMesh
は作られなくて、
constant/polyMesh
に上書きされるので、
ここでmergeMeshを、-overwrite オプションを使って
実行すれば、更に
constant/polyMesh
に上書きされることとなり、
-overwrite オプションを使わなければ、
1/polyMesh
に作成されることとなります。

また、-overwriteしてしまうと、途中でやり直しが
効かなくなってしまうので、慣れないうちは、
snappyHexMeshで作成した
3/polyMesh
を新たに作成した別のケースファイルの
constant/polyMesh へコピー
して作業することをお勧めします。

以上

2012年11月21日水曜日 0時44分39秒 UTC+9 yuya betsuyaku:

yuya betsuyaku

unread,
Nov 27, 2012, 12:14:18 PM11/27/12
to open...@googlegroups.com
E.Mogura様、返信ありがとうございます。

別役です。お礼が遅くなり、申し訳ございません。
教えていただいた情報を元に、mergeMeshesを行うことができました。ありがとうございます。

その後、pimpleDyMFoamで計算しようとしたところ、再びエラー(下に記載)が出て止まってしまいます。
どの記述が間違っているのか見当がつかず、何度も質問し申し訳ございませんが、どなたかよろしければご教授お願いします。
pimpleDyMFoamのエラー、k、epsilon、boundary、checkMeshの順に記載してあります。blockMeshの段階でpatchを設定したため、inlet、outlet、wallsが二重にあり、大変見にくい記述となっておりますが、ご了承ください。
また、turbine_ami01を回転領域側、turbine_ami02を静止領域側に設定しました。


・pimpleDyMFoamのエラーです。k、epsilonのmin、maxが0となっているため、k、epsilonの初期条件が間違っているのかと思っています。
Create time
Create mesh for time = 0

Selecting dynamicFvMesh solidBodyMotionFvMesh
Selecting solid-body motion function rotatingMotion
Applying solid body motion to cellZone turbine
Reading field p
Reading field U
Reading/calculating face flux field phi

AMI: Creating addressing and weights between 0 source faces and 0 target faces
Selecting incompressible transport model Newtonian
Selecting turbulence model type RASModel
Selecting RAS turbulence model kEpsilon
bounding k, min: 0 max: 0 average: 0
bounding epsilon, min: 0 max: 0 average: 0

#0  Foam::error::printStack(Foam::Ostream&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
#1  Foam::sigFpe::sigHandler(int) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
#2  Uninterpreted: 
#3  Foam::divide(Foam::Field<double>&, Foam::UList<double> const&, Foam::UList<double> const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
#4  void Foam::divide<Foam::fvPatchField, Foam::volMesh>(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libincompressibleTransportModels.so"
#5  Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > Foam::operator/<Foam::fvPatchField, Foam::volMesh>(Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libincompressibleRASModels.so"
#6  Foam::incompressible::RASModels::kEpsilon::kEpsilon(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&, Foam::word const&, Foam::word const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libincompressibleRASModels.so"
#7  Foam::incompressible::RASModel::adddictionaryConstructorToTable<Foam::incompressible::RASModels::kEpsilon>::New(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&, Foam::word const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libincompressibleRASModels.so"
#8  Foam::incompressible::RASModel::New(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&, Foam::word const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libincompressibleRASModels.so"
#9  Foam::incompressible::turbulenceModel::addturbulenceModelConstructorToTable<Foam::incompressible::RASModel>::NewturbulenceModel(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&, Foam::word const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libincompressibleRASModels.so"
#10  Foam::incompressible::turbulenceModel::New(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&, Foam::word const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libincompressibleTurbulenceModel.so"
#11  
 in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/pimpleDyMFoam"
#12  __libc_start_main in "/lib/tls/i686/cmov/libc.so.6"
#13  
 in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/pimpleDyMFoam"
Floating point exception

・kの初期条件です。
dimensions      [0 2 -2 0 0 0 0];
internalField   uniform 0;
boundaryField
{
    inlet01_model
    {
        type            fixedValue;
        value           $internalField;
    }

    inlet02_model
    {
        type            fixedValue;
        value           $internalField;
    }

    outlet_model
    {
        type            fixedValue;
        value           $internalField;
    }

    walls_model
    {
        type            kqRWallFunction;
        value           $internalField;
    }

    turbine_TURBINE
    {
        type            kqRWallFunction;
        value           uniform 0.01;
    }

    turbine_ami01_TURBINE_AMI01
    {
        type            cyclicAMI;
        
    }
    turbine_ami02_TURBINE_AMI02
    {
        type            cyclicAMI;
        
    }
    defaultFaces
    {
        type            zeroGradient;
    }
    inlet
    {
        type            zeroGradient;
    }

    outlet
    {
        type            zeroGradient;
    }

    walls
    {
        type            zeroGradient;
    }
}

・epsilonの初期条件です。
dimensions      [0 2 -3 0 0 0 0];
internalField   uniform 0;
boundaryField
{
    inlet01_model
    {
        type            epsilonWallFunction;
        value           $internalField;
    }

    inlet02_model
    {
        type            fixedValue;
        value           $internalField;
    }

    outlet_model
    {
       type            epsilonWallFunction;
        value           $internalField;
    }

    walls_model
    {
        type            epsilonWallFunction;
        value           $internalField;
    }

    turbine_TURBINE
    {
        type            epsilonWallFunction;
        value           uniform 100;
    }

    turbine_ami01_TURBINE_AMI01
    {
        type            cyclicAMI;
        
    }
    turbine_ami02_TURBINE_AMI02
    {
        type            cyclicAMI;
        
    }
   defaultFaces
    {
        type            zeroGradient;
    }
    inlet
    {
       type            zeroGradient;
    }
    outlet
    {
       type            zeroGradient;
    }
    walls
    {
        type            zeroGradient;
    }
}

・boundaryの設定です。
11
(
    defaultFaces
    {
        type            empty;
        nFaces          0;
        startFace       1799092;
    }
    turbine_TURBINE
    {
        type            wall;
        nFaces          344462;
        startFace       1799092;
    }
    turbine_ami01_TURBINE_AMI01
    {
        type            cyclicAMI;
        nFaces          0;
        startFace       2143554;
        matchTolerance  0.0001;
        neighbourPatch  turbine_ami02_TURBINE_AMI02;
        transform       noOrdering;
    }
    walls
    {
        type            wall;
        nFaces          0;
        startFace       2143554;
    }
    inlet
    {
        type            wall;
        nFaces          0;
        startFace       2143554;
    }
    outlet
    {
        type            wall;
        nFaces          0;
        startFace       2143554;
    }
    turbine_ami02_TURBINE_AMI02
    {
        type            cyclicAMI;
        nFaces          0;
        startFace       2143554;
        matchTolerance  0.0001;
        neighbourPatch  turbine_ami01_TURBINE_AMI01;
        transform       noOrdering;
    }
    inlet01_model
    {
        type            wall;
        nFaces          4273;
        startFace       2143554;
    }
    inlet02_model
    {
        type            wall;
        nFaces          4136;
        startFace       2147827;
    }
    outlet_model
    {
        type            wall;
        nFaces          5067;
        startFace       2151963;
    }
    walls_model
    {
        type            wall;
        nFaces          18418;
        startFace       2157030;
    }
)

・checkMeshの結果です。
Create time
Create polyMesh for time = 0

Time = 0

Mesh stats
    points:           872066
    faces:            2175448
    internal faces:   1799092
    cells:            660778
    boundary patches: 11
    point zones:      0
    face zones:       1
    cell zones:       1

Overall number of cells of each type:
    hexahedra:     539525
    prisms:        78387
    wedges:        0
    pyramids:      0
    tet wedges:    172
    tetrahedra:    0
    polyhedra:     42694

Checking topology...
    Boundary definition OK.
    Cell to face addressing OK.
    Point usage OK.
    Upper triangular ordering OK.
    Face vertices OK.
   *Number of regions: 2
    The mesh has multiple regions which are not connected by any face.
  <<Writing region information to "0/cellToRegion"

Checking patch topology for multiply connected surfaces ...
    Patch               Faces    Points   Surface topology                  
    defaultFaces        0        0        ok (empty)                        
    turbine_TURBINE     344462   351955   ok (closed singly connected)      
    turbine_ami01_TURBINE_AMI010        0        ok (empty)                        
    walls               0        0        ok (empty)                        
    inlet               0        0        ok (empty)                        
    outlet              0        0        ok (empty)                        
    turbine_ami02_TURBINE_AMI020        0        ok (empty)                        
    inlet01_model       4273     4588     ok (non-closed singly connected)  
    inlet02_model       4136     4446     ok (non-closed singly connected)  
    outlet_model        5067     5401     ok (non-closed singly connected)  
    walls_model         18418    19379    ok (non-closed singly connected)  

Checking geometry...
    Overall domain bounding box (-0.154084 -0.147936 -0.0101831) (0.146615 0.153466 0.100191)
    Mesh (non-empty, non-wedge) directions (1 1 1)
    Mesh (non-empty) directions (1 1 1)
    Boundary openness (1.99915e-19 -3.33991e-20 -3.28014e-21) OK.
    Max cell openness = 4.23984e-16 OK.
    Max aspect ratio = 13.4697 OK.
    Minumum face area = 1.64103e-08. Maximum face area = 0.000554558.  Face area magnitudes OK.
    Min volume = 2.04738e-11. Max volume = 3.61685e-06.  Total volume = 0.0101077.  Cell volumes OK.
    Mesh non-orthogonality Max: 66.6242 average: 12.8334
    Non-orthogonality check OK.
    Face pyramids OK.
    Max skewness = 3.53231 OK.
    Coupled point location match (average 0) OK.
Mesh OK.

Time = 0.0001

Mesh stats
    points:           872066
    faces:            2175448
    internal faces:   1799092
    cells:            660778
    boundary patches: 11
    point zones:      0
    face zones:       1
    cell zones:       1

Overall number of cells of each type:
    hexahedra:     539525
    prisms:        78387
    wedges:        0
    pyramids:      0
    tet wedges:    172
    tetrahedra:    0
    polyhedra:     42694

Checking topology...
    Boundary definition OK.
    Cell to face addressing OK.
    Point usage OK.
    Upper triangular ordering OK.
    Face vertices OK.
   *Number of regions: 2
    The mesh has multiple regions which are not connected by any face.
  <<Writing region information to "0.0001/cellToRegion"

Checking patch topology for multiply connected surfaces ...
    Patch               Faces    Points   Surface topology                  
    defaultFaces        0        0        ok (empty)                        
    turbine_TURBINE     344462   351955   ok (closed singly connected)      
    turbine_ami01_TURBINE_AMI010        0        ok (empty)                        
    walls               0        0        ok (empty)                        
    inlet               0        0        ok (empty)                        
    outlet              0        0        ok (empty)                        
    turbine_ami02_TURBINE_AMI020        0        ok (empty)                        
    inlet01_model       4273     4588     ok (non-closed singly connected)  
    inlet02_model       4136     4446     ok (non-closed singly connected)  
    outlet_model        5067     5401     ok (non-closed singly connected)  
    walls_model         18418    19379    ok (non-closed singly connected)  

Checking geometry...
    Overall domain bounding box (-0.154084 -0.147936 -0.0101831) (0.146615 0.153466 0.100191)
    Mesh (non-empty, non-wedge) directions (1 1 1)
    Mesh (non-empty) directions (1 1 1)
    Boundary openness (1.99915e-19 -3.33991e-20 -3.28014e-21) OK.
    Max cell openness = 4.23984e-16 OK.
    Max aspect ratio = 13.4697 OK.
    Minumum face area = 1.64103e-08. Maximum face area = 0.000554558.  Face area magnitudes OK.
    Min volume = 2.04738e-11. Max volume = 3.61685e-06.  Total volume = 0.0101077.  Cell volumes OK.
    Mesh non-orthogonality Max: 66.6242 average: 12.8334
    Non-orthogonality check OK.
    Face pyramids OK.
    Max skewness = 3.53231 OK.
    Coupled point location match (average 0) OK.

Mesh OK.
End

長文、乱文、大変失礼しました。
よろしくお願い致します。

2012年11月24日土曜日 17時11分23秒 UTC+9 E.Mogura:

nakagawa

unread,
Nov 28, 2012, 5:40:48 AM11/28/12
to open...@googlegroups.com
ナカガワです。

k、epsilonの初期条件が0なのが,問題ではないでしょうか。
 ユーザーガイドの,2.1.8を参考にして,想定される速度と乱れ,長さスケールから,
k、epsilonを見積もって,初期条件として与えてはいかがでしょうか。


2012年11月28日水曜日 2時14分18秒 UTC+9 yuya betsuyaku:

yuya betsuyaku

unread,
Nov 29, 2012, 1:05:58 PM11/29/12
to open...@googlegroups.com
ナカガワ様,返信ありがとうございます。

別役と申します。とても単純なミスで,k,epsilonの初期条件を変えることにより,計算が動きました。
教えていただいた皆様ありがとうございます。

今は,計算終了まで時間が随分かかるため,時間ステップを変えるなど試みている状態です。
ここで,deltaTに関して疑問が1点うかびました。
controlDictでクーラン数を考慮し,3e-3と設定しているのにもかかわらず,計算は下のような細かい刻みでしかできてないみたいです。pimpleDyMFoamでは元々このようになる物なのか,自分が間違えた設定をしているのか教えていただければ幸いです。

Courant Number mean: 0.024 max: 11.6
deltaT = 0.000518
Time = 0.000518001

Courant Number mean: 0.51 max: 10.6
deltaT = 9.79e-05
Time = 0.000615904

Courant Number mean: 0.188 max: 207
deltaT = 9.46e-07
Time = 0.00061685

Courant Number mean: 0.00129 max: 1.41
deltaT = 1.08e-06
Time = 0.000617931

Courant Number mean: 0.00136 max: 1.14
deltaT = 1.27e-06
Time = 0.000619201

Courant Number mean: 0.00156 max: 1.23
deltaT = 1.48e-06
Time = 0.000620677

Courant Number mean: 0.00178 max: 1.31
deltaT = 1.7e-06
Time = 0.000622378

controlDict,fvSolution,fvSchemesはtutorialから引用し,下のように書き換えました。
・controlDictです。
application     pimpleDyMFoam;
startFrom       startTime;
startTime       0;
stopAt          endTime;
endTime         0.1;
deltaT          3e-3;
writeControl    adjustableRunTime;
writeInterval   2;
purgeWrite      0;
writeFormat     binary;
writePrecision  3;
writeCompression off;
timeFormat      general;
timePrecision   6;
runTimeModifiable true;
adjustTimeStep  yes;
maxCo           2;

・fvSolutionです。
solvers
{
    pcorr
    {
        solver           GAMG;
        tolerance        0.02;
        relTol           0;
        smoother         GaussSeidel;
        nPreSweeps       0;
        nPostSweeps      2;
        cacheAgglomeration on;
        agglomerator     faceAreaPair;
        nCellsInCoarsestLevel 10;
        mergeLevels      1;
    }
    p
    {
        $pcorr
        tolerance        1e-6;
        relTol           0.01;
    }
    pFinal
    {
        $p;
        tolerance        1e-6;
        relTol           0;
    }
    "(U|k|omega)"
    {
        solver          PBiCG;
        preconditioner  DILU;
        tolerance       1e-06;
        relTol          0.1;
    }
    "(U|k|omega)Final"
    {
        $U;
        tolerance       1e-06;
        relTol          0;
    }
    cellDisplacement
    {
        solver          GAMG;
        tolerance       1e-5;
        relTol          0;
        smoother        GaussSeidel;
        cacheAgglomeration true;
        nCellsInCoarsestLevel 10;
        agglomerator    faceAreaPair;
        mergeLevels     1;
    }
}
PIMPLE
{
    correctPhi          yes;
    nOuterCorrectors    2;
    nCorrectors         1;
    nNonOrthogonalCorrectors 0;
}
relaxationFactors
{
    fields
    {
        p               0.3;
    }
    equations
    {
        "(U|k|omega)"   0.1;
        "(U|k|omega)Final" 0.3;
    }
}
cache
{
    grad(U);
}

・fvSchemesです。
ddtSchemes
{
    default Euler;
}
gradSchemes
{
    default         Gauss linear;
    grad(p)         Gauss linear;
    grad(U)         Gauss linear;
}
divSchemes
{
    default         none;
    div(phi,U)      Gauss upwind;
    div(phi,k)      Gauss upwind;
    div(phi,omega)  Gauss upwind;
    div((nuEff*dev(T(grad(U))))) Gauss linear;
}
laplacianSchemes
{
    default         Gauss linear uncorrected;
}

interpolationSchemes
{
    default         linear;
}
snGradSchemes
{
    default         corrected;
}
fluxRequired
{
    default         no;
    pcorr           ;
    p;
}

長文、乱文、失礼しました。
よろしくお願い致します。

2012年11月28日水曜日 19時40分48秒 UTC+9 nakagawa:

E.Mogura

unread,
Nov 29, 2012, 8:58:31 PM11/29/12
to open...@googlegroups.com
E.Mogura です

deltaTは、クーラン数ではありません。

マニュアル
2.3.6 時間ステップの制御

をしっかり読みましょう。


2012年11月30日金曜日 3時05分58秒 UTC+9 yuya betsuyaku:
Reply all
Reply to author
Forward
0 new messages