openfoam beginner n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
OpenFOAM beginner 勉強会 進捗報告 PowerPoint Presentation
Download Presentation
OpenFOAM beginner 勉強会 進捗報告

Loading in 2 Seconds...

play fullscreen
1 / 10

OpenFOAM beginner 勉強会 進捗報告 - PowerPoint PPT Presentation


  • 469 Views
  • Uploaded on

OpenFOAM beginner 勉強会 進捗報告. 2011年2月27日 髙橋 功一. 進捗概要. データ付与・抽出ツールの使用法 セルデータ付与( setFields) 数値データ出力( controlDict の function, sample) ・・・ 勉強中 ソース読解トライ Eclipse (なんとかつかえるところまで) SimpleFoam から勉強 狭間さん講義の予習. setFields の使い方:探索してみました. Dambreak チュートリアル setFieldsDict. FoamFile {

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'OpenFOAM beginner 勉強会 進捗報告' - niloufer


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
openfoam beginner

OpenFOAM beginner 勉強会進捗報告

2011年2月27日

髙橋 功一

slide2
進捗概要
  • データ付与・抽出ツールの使用法
    • セルデータ付与(setFields)
    • 数値データ出力(controlDictのfunction, sample)・・・勉強中
  • ソース読解トライ
    • Eclipse(なんとかつかえるところまで)
    • SimpleFoamから勉強
    • 狭間さん講義の予習
setfields
setFieldsの使い方:探索してみました

Dambreakチュートリアル

setFieldsDict

FoamFile

{

version 2.0;

format ascii;

class dictionary;

location "system";

object setFieldsDict;

}

defaultFieldValues

(

volScalarFieldValue alpha1 0

);

regions

(

boxToCell

{

box (0 0 -1) (0.1461 0.292 1);

fieldValues

(

volScalarFieldValue alpha1 1

);

}

);

boxToCellで指定した直方体内の

セルだけAlpha1を1にする

直方体以外で指定したいときは?

dambreak

【いろいろな方法で探索トライ】

 ・わざと間違えて記述

boxToCell → aboxToCell エラーメッセージにヒントあり

 ・ソースと同じ場所に置いてあるsetFieldsDict setFieldsのソースの場所にDictファイルの例題もおいてある

 ・分かっているキーワードで全文検索

  “boxToCell”で“OpenFOAM-1.7.1”以下を全文検索

setfields1
setFieldsの使い方探索

“boxToCell”で全文検索

cellSetDictに同じキーワードあり

setfields2
setFieldsの使い方探索

cellSetDict

Dambreakチュートリアル

setFieldsDict

// Cells with cell centre within box

boxToCell

{

box (0 0 0) (1 1 1);

}

// Cells with cell centre within box

// Is skewed, rotated box. Given as origin and three spanning vectors.

rotatedBoxToCell

{

origin (0.2 0.2 -10);

i (0.2 0.2 0);

j (-0.2 0.2 0);

k (10 10 10);

}

// Cells with centre within cylinder

cylinderToCell

{

p1 (0.2 0.2 -10); // start point on cylinder axis

p2 (0.2 0.2 0); // end point on cylinder axis

radius 5.0;

}

// Cells with centre within sphere

sphereToCell

{

centre (0.2 0.2 -10);

radius 5.0;

}

直方体

(dambreakと同じ)

FoamFile

{

version 2.0;

format ascii;

class dictionary;

location "system";

object setFieldsDict;

}

defaultFieldValues

(

volScalarFieldValue alpha1 0

);

regions

(

boxToCell

{

box (0 0 -1) (0.1461 0.292 1);

fieldValues

(

volScalarFieldValue alpha1 1

);

}

);

直方体を回転させた形状

円筒

cellSetDictの記載に

この記述を足せばよさそう

slide6

// Select by explicitly providing cell labels

labelToCell //セルラベル(boundaryファイル)

{

value (12 13 56 250 350); // labels of cells

fieldValues

(

volScalarFieldValue alpha1 1

);

}

// Cells with cell centre within box

boxToCell  //直方体

{

box (0.1 0.1 -1) (0.3 0.3 1);

fieldValues

(

volScalarFieldValue alpha1 1

);

}

// Cells with cell centre within box

// Is skewed, rotated box. Given as origin and three spanning vectors.

rotatedBoxToCell  //並行六面体?

{

origin (0.2 0.2 0);

i (0.1 0.1 0.1);

j (0 0 -0.1);

k (0 0.1 0);

fieldValues

(

volScalarFieldValue alpha1 1

);

}

slide7

// Cells with centre within cylinder

cylinderToCell  //円筒

{

p1 (0.2 0.2 -1); // start point on cylinder axis

p2 (0.2 0.2 1); // end point on cylinder axis

radius 0.1;

fieldValues

(

volScalarFieldValue alpha1 1

);

}

// Cells with centre within sphere

sphereToCell //球

{

centre (0.2 0.2 0);

radius 0.1;

fieldValues

(

volScalarFieldValue alpha1 1

);

}

// Cells with cellCentre nearest to coordinates

nearestToCell //指定点に一番近いセル

{

points ((0.1 0.1 0) (0.2 0.2 0) (0.4 0.1 0));

fieldValues

(

volScalarFieldValue alpha1 1

);

}

slide8

p

// values of field within certain range

fieldToCell //フィールド値の範囲で指定(ベクトル値Uはmag(U)と指定)

{

fieldName p; // Note: uses mag(U) since volVectorField

min 300;

max 500;

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 :?

その他

(未実施)

slide9
ソース読解トライ

今後、最も応用範囲の広そうな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);

?

元の方程式(想像)

slide10
皆様にご相談(特に知りたいところ)

ソースが難解すぎて、全く手が付けられず

皆様、どうやって調べていますか?

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;

p0 uniform 0;

U U;

phi phi;

rho rho;

psi none;

gamma 1;

value uniform 0;

}

ここに入るパラメータ

各境界条件ごとに

項目が変わる