ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

OpenFOAMコミュの「2.1.5 Increasing the mesh resolution」の和訳

  • mixiチェック
  • このエントリーをはてなブックマークに追加
ちょっと別件で忙しかったので、かなり時間がかかりました。
しかも、いつもよりヘボ訳です。

※"grading"ってなんて約せばしっくりくるんでしょうかね?
-----------------------------------------------
2.1.5 メッシュの解像度を増やす

メッシュの解像度を各々の方向で2倍に増やします。より粗いメッシュでの結果を、問題の初期条件として使うために、より細かいメッシュにします。そして、より細かいメッシュの解をより粗いメッシュの解と比較します。

2.1.5.1 既存ケースを用いた新しいケースの作成

Close Caseボタン(●)をクリックすることによって、FoamXで空洞ケースを閉じてください。いま、cavityからcavityFineという名前の新しいケースを作りたい。そこで、ユーザーは、cavityケースの複製をつくり、必要なファイルを編集しなければなりません。FoamX case browserウインドウで、単にcavityケースの上にカーソルを置いて、Clone Caseを選択できるメニューを立ち上げるために、右のマウスボタンをクリックしてください。ユーザーは、rootパス、新しいcaseの名前:cavityFine、applicationクラス:icoFoamを入力しなければなりません。Timeオプションは、どの時間ディレクトリを複製するケースにコピーするかを指定します。

この例では、cavityの時間ディレクトリを必要としません、そうしないと、メッシュを改善した後に、コピーされたフィールドのサイズがメッシュの寸法と矛盾してします。したがって、noTimeを選びます。closeとYesをクリックすることによって、新しいケースが作成され、browserウインドウに提示されます。ユーザーは、cavityFineケースを開けなければなりません。

2.1.5.2 細かいメッシュの作成

今、blockMeshを使ってメッシュのセル数を増加させたい。前述のようにディレクトリツリーの上のケース名にカーソルを置き、マウスの右ボタンをクリックし、Foam Utilitiesメニューのサブメニューmesh→generationからblockMeshを選択してください。blockMeshウインドウが表示され、ユーザーはEdit Dictionaryボタンを押さなければならない。それからユーザーは、blocksのValueセルを選ぶとblocksウインドウが現れ、そこで(唯一の)block 0を選択します。これで、ブロックの入力表をもつ新しいウインドウができます。最初の入力(Hex -- blockMeshの事実上唯一のオプションで --)は、頂点ラベルの番号付きリストによって指定されるブロックの形(六面体)を記述します。2番目の入力(cellDensity)はメッシュ密度(x方向に20セル、y方向に20セル、2次元問題なのでz方向は1)です。三番目の入力(expansionRatio)は2.1.6章で議論するメッシュの勾配を指定します。
このケースでは、x方向y方向のメッシュ密度を41セルに増やしたい。cellDensityを選んで、要素を20 20 1から41 41 1と置換えるよう編集してください。それから、Dictionary編集ウインドウを閉じてください。辞書は自動的に保存されます。Executeボタンを押してください。メッシュは前のようにターミナルウインドウで報告されるblockMeshの状態を実行し生成されます。メッシュを見るために、2.1.2章で記述されたparaFoamを使ってください。ユーザーは、FoamXに新しいメッシュを読むことを促されるかもしれません。彼/彼女が望むならば、ユーザーは境界線部分定義の面番号が変わるので、そうしなければなりません。

2.1.5.3 粗いメッシュの結果を細かなメッシュにマッピングする

mapFieldsユーティリティは、他のジオメトリ対応するフィールドの上へ与えられたジオメトリに関した一つ以上のフィールドをマッピングします。例では、ジオメトリとソースと目的フィールドの両方の境界線タイプまたは条件が同一であるので、フィールドは『首尾一貫している』と考えられます。この例でmapFieldsを実行するとき、-consistent コマンドラインオプションを使います。

mapFields mapsのフィールドデータは、目的ケース(すなわち結果が図にされている)のcontrolDictでstartFrom/startTimeによって指定される時間ディレクトリから読まれます。この例では、cavityFineケースのより細かいメッシュの上へcavityケースからより粗いメッシュの最終結果をマッピングしたい。したがって、これらの結果がcavityの0.5のディレクトリに格納されているので、startTimeはcontrolDict辞書で0.5秒にセットされなければなりません、そして、startFromはstartTimeにセットされなければなりません。ユーザーはこれらの変更を保存しなければなりません。

ケースは、mapFieldsを走らせる準備ができています。ディレクトリツリーの最上位でケース名cavityFineの上にカーソルをあわせマウスボタンを右クリックしてください。メニューは、ユーザーがFoam UtilitiesメニューのpreProcessingサブメニューからmapFieldsを選べるように開きます。mapFieldsユーティリティに対する引数を含んでいるウインドウが図2.14で示すように開きます。完全なルートパスで、結果が図にされている目的ケースの名前は、<rootAndCase>の中で正しくデフォルトにセットされます。例えば図2.14の例で示すように、ユーザーは<sourceRootAndCase>中でルートパスとソースケースの名前を入力しなければなりません。
--------------------------------------------
図2.14
--------------------------------------------

ユーザーは、[consistent]Itemボックスでonを選ぶことで出る引数から-consistentオプションを選ばなければなりません。ユーザーがExecuteをクリックするとき、mapFieldsユーティリティは動作します。ターミナルウインドウに進捗メッセージが、ユーザーにデータがcavityケースからcavityFineケースに組み込まれたことを示します。

2.1.5.4 Control adjustments


2.1.1.4章で議論されるように1より小さいクーラン数を維持するために、全てのセルの寸法が半分になったので時間ステップが現在半分にならないいけない。したがって、deltaTはcontrolDict辞書で0.0025sまでにセットされなければなりません。フィールドデータは、固定の時間ステップの間隔で書かれます。ここでは、固定の時間間隔でデータ出力を指定する方法を示します。controlDictのwriteControlキーワードの下で、timeStepで固定の時間ステップで出力を要請する代わりに、実行時間の一定の量は、runTimeを使った結果に書いてある間で指定することができます。このケースで、ユーザーは0.1秒ごと出力を指定しなければならない、したがって、writeControlをrunTimeに、writeIntervalを0.1にセットしなければなりません。最終的に、ケースは粗いメッシュに含まれる解ではじめるので、合理的な定常状態に収束する短い時間だけ動かす必要がある。したがって、endTimeは0.7秒にセットしすればよい。これらのセッティングが正しいことを確認してください、それから、ケースを保存してください。


2.1.5.5 バックグラウンドプロセスとしてコードを動かす

ユーザーは、バックグラウンドプロセスとしてicoFoamを動かします。StartCalculationボタン(>)を押してください、すると、ウインドウは現れます。バックグラウンドをチェックして、Executeをクリックしてください。ケースはバックグラウンドで動作し、ターミナルウィンドウにFinished doing・・・で始まるテキストが表示されると終了します。そのとき、View Logをクリックすることによって、ユーザーはログファイルを見ることができます。


2.1.5.6 精密なメッシュによるベクトルプロット

基本的に各々の新しいケースは単にSelection Windowに現れる他のモジュールなので、ユーザーは、ParaViewで同時に複数のケースを開けることができます。選ばれたデータが拡張子を含むファイル名であるという必要条件があるので、ParaViewで新しいケースを開けるとき、不便さがあります。しかし、OpenFOAMにおいて、各々のケースは、特定のディレクトリ構造の中に拡張子なしで複数のファイルに保存されます。paraFoamスクリプトが自動的に実行する解法は拡張子.foamが付けたダミーファイルを作成することになっています−それゆえに、cavityケースモジュールはcavity.foamと呼ばれています

しかし、ユーザーがParaView内から他のケースディレクトリを開けたいならば、そのようなダミーファイルを作成する必要があります。たとえば、cavityFineケースを読み込むためにコマンドプロンプトでタイプすることによってファイルを作成します:


cd $FOAM_RUN/tutorials/icoFoam
touch cavityFine/cavityFine.foam


今、cavityFineケースはFileメニューからOpen Dataを選ぶことによってParaViewに読み込めます。そして。ディレクトリツリーをたどり、cavityFine.foamを選びました。ユーザーは、ParaViewで精密なメッシュの結果のベクトルプロットを作ることができます。プロットは、同時に両方のケースのglyphイメージを可能にすることによって、cavityケースと比較されることができます。

--------------------------------------------
図2.15
--------------------------------------------

2.1.5.7 グラフを描く

ユーザーは、スカラー流速で領域を通る線に沿った2次元グラフをプロットすることによって結果を可視化したいとします。OpenFOAMはよくこの種のデータ操作のための用意があって、このために標準的なユーティリティ(すなわち、UcomponentsとmagU)をリリースしている。Ucomponentsがあるケース(cavityで)で動くとき、それは各々の時間ディレクトリから流速ベクトルフィールドを読み取って、対応する時間ディレクトリに、流速のx、yとz成分を表すスカラーフィールドUx、UyとUzを書きます。

ユーザーは、cavityとcavityFineケースの両方にUcomponentsユーティリティを実行することができます。全てのユーティリティの様に、UcomponentsはFoamXでケース名の上にカーソルを置き右のマウスボタンをクリックすることによって開けられるメニューから実行することができます。Ucomponentsは、postProcessing→velocityFieldサブメニューにあり;cavityFineの上で実行してください。cavityのために、ユーザーは以下の命令によってコマンドラインからUcomponentsを実行してもよい:

Ucomponents $FOAM_RUN/tutorials/icoFoam cavityFine

ここのコンポーネントはparaViewでグラフをプロットできるけれども、もしユーザが出版のためのグラフを作りたいならば、7.5章と2.2.3章に書かれたサンプルユーティリティを使うことを薦めます。

ParaViewでグラフをプロットするために、図2.15で示すように、ユーザーは彼らがParametersパネルのVolフィールドウインドウの中でプロットしたいケースモジュールをフィールドに選ばなければなりません。個々の流速成分フィールドがウインドウに現れるので、ユーザーはUpdate GUI、AcceptとRefreshボタンをクリックする必要があるかもしれません。ユーザーはスカラー場以外の全てのフィールドを常にはずし、プロットしたいスカラーフィールドを選ぶだけでいい。ここでは、Uxだけをプロットしたい。

一度、Acceptし、表示します。それからユーザーは、FilterメニューからProbeを選ぶことによってグラフをプロットすることができます。(←※訳注 前述のExtract Parts手順を踏む必要があります)Probe Objectウインドウで、ユーザーはLineを選び、領域の中心の上に、垂線(すなわち(0.05,0,0.005)から(0.05,0.1,0.005)解像度50)を置かなければなりません。Acceptをクリックすることに、グラフは図2.16で示すように生成されます。一般的な位置決め以外のグラフイメージディスプレイの制御がありません。一般的な描画ツールとして有効かもしれないので、サンプルユーティリティが出版のグラフを作成するのに使うよう勧めます。

--------------------------------------------
図2.16
--------------------------------------------

コメント(1)

毎度お疲れさまです。

mesh gradingは「格子幅の勾配をつけること」のようなニュアンスだと思いますが、簡潔な言いまわしが自分も思いつきません。

ひるべるとさんの訳のように「メッシュの勾配」、もしくは、「メッシュ幅の勾配」で良いのではないでしょうか?

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

OpenFOAM 更新情報

OpenFOAMのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング