Download presentation
Presentation is loading. Please wait.
1
OpenFOAM beginner 勉強会 進捗報告
2011年2月27日 髙橋 功一
2
進捗概要 データ付与・抽出ツールの使用法 ソース読解トライ セルデータ付与(setFields)
数値データ出力(controlDictのfunction, sample) ・・・勉強中 ソース読解トライ Eclipse(なんとかつかえるところまで) SimpleFoamから勉強 狭間さん講義の予習
3
setFieldsの使い方:探索してみました
Dambreakチュートリアル setFieldsDict FoamFile { version ; format ascii; class dictionary; location "system"; object setFieldsDict; } defaultFieldValues ( volScalarFieldValue alpha1 0 ); regions boxToCell box (0 0 -1) ( ); fieldValues volScalarFieldValue alpha1 1 boxToCellで指定した直方体内の セルだけAlpha1を1にする 直方体以外で指定したいときは? dambreak 【いろいろな方法で探索トライ】 ・わざと間違えて記述 boxToCell → aboxToCell エラーメッセージにヒントあり ・ソースと同じ場所に置いてあるsetFieldsDict setFieldsのソースの場所にDictファイルの例題もおいてある ・分かっているキーワードで全文検索 “boxToCell”で“OpenFOAM-1.7.1”以下を全文検索
4
setFieldsの使い方探索 “boxToCell”で全文検索 cellSetDictに同じキーワードあり
5
setFieldsの使い方探索 cellSetDict Dambreakチュートリアル setFieldsDict 直方体
// Cells with cell centre within box boxToCell { box (0 0 0) (1 1 1); } // Is skewed, rotated box. Given as origin and three spanning vectors. rotatedBoxToCell origin ( ); i ( ); j ( ); k ( ); // Cells with centre within cylinder cylinderToCell p ( ); // start point on cylinder axis p ( ); // end point on cylinder axis radius 5.0; // Cells with centre within sphere sphereToCell centre ( ); 直方体 (dambreakと同じ) FoamFile { version ; format ascii; class dictionary; location "system"; object setFieldsDict; } defaultFieldValues ( volScalarFieldValue alpha1 0 ); regions boxToCell box (0 0 -1) ( ); fieldValues volScalarFieldValue alpha1 1 直方体を回転させた形状 円筒 球 cellSetDictの記載に この記述を足せばよさそう
6
// Select by explicitly providing cell labels
labelToCell //セルラベル(boundaryファイル) { value ( ); // labels of cells fieldValues ( volScalarFieldValue alpha1 1 ); } // Cells with cell centre within box boxToCell //直方体 { box ( ) ( ); fieldValues ( volScalarFieldValue alpha1 1 ); } // Cells with cell centre within box // Is skewed, rotated box. Given as origin and three spanning vectors. rotatedBoxToCell //並行六面体? { origin ( ); i ( ); j ( ); k ( ); fieldValues ( volScalarFieldValue alpha1 1 ); }
7
// Cells with centre within cylinder
cylinderToCell //円筒 { p ( ); // start point on cylinder axis p ( ); // end point on cylinder axis radius 0.1; fieldValues ( volScalarFieldValue alpha1 1 ); } // Cells with centre within sphere sphereToCell //球 { centre ( ); radius 0.1; fieldValues ( volScalarFieldValue alpha1 1 ); } // Cells with cellCentre nearest to coordinates nearestToCell //指定点に一番近いセル { points (( ) ( ) ( )); fieldValues ( volScalarFieldValue alpha1 1 ); }
8
p alpha1 その他 (未実施) cellToCell :cellSetで指定
// values of field within certain range fieldToCell //フィールド値の範囲で指定(ベクトル値Uはmag(U)と指定) { fieldName p; // Note: uses mag(U) since volVectorField min ; max ; fieldValues ( volScalarFieldValue alpha1 1 ); } alpha1 cellToCell :cellSetで指定 faceToCell :指定したfaceSetに隣接するセル (option owner/neighbour/any/all) pointToCell :指定したpointSet (に隣接するセル?) (option any/all) zoneToCell :cellzoneで指定 faceZoneToCell :指定したfacezoneに隣接するセル (option master/slave) shapeToCell :セル形状で指定 (option hex/wedge/prism/pyr/tet/tetWedge/splitHex) surfaceToCell :STLファイルで指定 (option …) regionToCell :? その他 (未実施)
9
ソース読解トライ 今後、最も応用範囲の広そうなsimpleFoamをベースに勉強 ○ソルバーの主ソース ・simpleFoam.C
○ヘッダファイル ・createFields.H ・・・変数定義 ・UEqn.H ・・・Uの方程式を記述 ・pEqn.H ・・・pの収束計算(simple法)を記述 ・convergenceCheck.H ・initConvergenceCheck.H どのソルバーにも必ずある? ソルバーによっては ないことも (主ソースに直接書き) 興味なし (*)kやεの保存方程式はsimpleFoamディレクトリ内のソースに書かれていない 【UEqn.H】 tmp<fvVectorMatrix> UEqn ( fvm::div(phi, U) + turbulence->divDevReff(U) ); UEqn().relax(); eqnResidual = solve UEqn() == -fvc::grad(p) ).initialResidual(); maxResidual = max(eqnResidual, maxResidual); ? 元の方程式(想像)
10
皆様にご相談(特に知りたいところ) ソースが難解すぎて、全く手が付けられず 皆様、どうやって調べていますか? 1.乱流
RASModel(kepsilon)の機能を 調べたい 【createFields.H】 autoPtr<incompressible::RASModel> turbulence ( incompressible::RASModel::New(U, phi, laminarTransport) ); tmp<fvVectorMatrix> UEqn ( fvm::div(phi, U) + turbulence->divDevReff(U) ); RASModelにはdivDevReff以外にも 使える機能がありそう 2.境界条件 使い方不明の境界条件が多数 使い方を調べたい // dambreak/0/p の境界条件部分 atmosphere { type totalPressure; p uniform 0; U U; phi phi; rho rho; psi none; gamma ; value uniform 0; } ここに入るパラメータ 各境界条件ごとに 項目が変わる
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.