setSet

2.3 setSet

 

2.3.1 setSet コマンドとは

setSetコマンドとは、任意のセルや面をまとめたセットを対話的に作成するユーティリティです。

これにより、メッシュ上の任意の領域に名前をつけて管理することができます。

以下はtutorials/incompressible/icoFoam/cavity/cavity で実行した例となります。

まずblockMeshコマンドにより、メッシュを作成します。

 

    $ blockMesh  

 

ここでは、メッシュをX方向に分割したセルゾーンを作成する手順を示します。

まず、setSetコマンドを実行します。

 

  $ setSet  
  …      
  readline>  

 

すると、最下行でカーソルが止まり、入力待ちの状態となります。

ここでは、以下のようにコマンドを入力していきます。

 

  readline> cellSet inlet_side new boxToCell (0 0 0) (0.05 0.1 0.01)   

  readline> cellSet outlet_side new boxToCell (0.05 0 0) (0.1 0.1 0.01)  

 

cellSetコマンドのnewにより、セルをまとめたセットが作成されます。

inlet_side, outlet_side はセットの名前であり、任意の名前をつけることができます。

boxToCellは2点の対角線とする六面体の領域を指定します。

この六面体の内部に含まれるセルがセットに含まれます。

これらのセットをcellZoneに変換するには以下のようにします。

 

  readline> cellZoneSet inlet_zone new setToCellZone inlet_side   

  readline> cellZoneSet outlet_zone new setToCellZone outlet_side  

 

これにより、cellZoneが作成され、constant/polyMesh/cellZonesに結果が出力されます。

また、setSetコマンドでは作成したセットやcellZoneをVTKファイルに出力しています。

VTKディレクトリ以下に名前ごとのディレクトリがあり、その中にvtkファイルが作成されています。

このvtkファイルをparaviewなどで読み込むことで、作成したセットを可視化して、

領域がどのように指定されたかを確認することができます。

図20はsetSetコマンド実行前の状態です。

図21は作成したセットのvtkファイルを読み込み、それぞれ色分けした図となっています。

コマンドで指定したように、X方向に分割されているのがわかります。

 

  

図20 setSet実行前                    図21 etSet実行後 vtkファイル読み込み

 

 

2.3.2 コマンドラインオプション

setSetコマンドはケースディレクトリ上で以下のように実行することで使用することができます。

 

  $ setSet  

 

setSetコマンドは、設定ファイルを用意する必要はありません。

ただ、setSetで使用するコマンドをファイルに書きだしており、

そのコマンドを一括で実行したい場合は以下のように-batchオプションにより実行することができます。

(make_cellZone.setSetがファイル名となります)

 

  $ setSet -batch make_cellZone.setSet  

 

コマンドのオプションとしては、以下があります。

-batch <file> fileを読み込み、書いてあるコマンドを実行します(対話式ではない)
-case <dir> ケースディレクトリを指定します。デフォルトでは現在いるディレクトリです。
-constant constantディレクトリにも適用します。
-decomposeParDict  <file>特定の場所からdecomposeParDictファイルを読み込む場合に使用します。
-latestTime 最新の時間ステップのみに適用します。
-loop バッチコマンドをすべての時間ステップに対して実行します。
-newTimes  新しい時間ステップのみに適用します。
-noFunctionObjects functionObjects を実行しないようにします。
-noSync 隣り合ったパッチを選択しないようにします。
-noVTK VTKファイルを出力しないようにします。
-noZero 0ディレクトリを除外します。
-parallel 並列で実行します。
-region <name> 別のメッシュ領域を指定します。
-roots <(dirs)> 複数のケースを処理する場合にディレクトリを指定します
-time <ranges> 指定した時間ステップ内に適用します 設定例: ‘:10,20,40:70,1000:’
-srcDoc ブラウザを用いてソースコードを表示します。
-doc プラウザを用いてドキュメントを表示します。
-help ヘルプを表示します。

 

 

2.3.3 setSet内のコマンド

setSetコマンドは対話式であり、さまざまなコマンドを入力していくことで任意のセットを作成することができます。
基本的なコマンドは以下となります。

 help  ヘルプを表示します。
 list  作成したセットやゾーンを一覧表示します。
 quit  コマンドを終了します。
 time <time ddd>  時間ステップを変更します。

 
次に、セットを作成するコマンドです。

セットには3種類あります。

cellSetとfaceSet、pointSetであり、それぞれセル、面、点をまとめたセットとなります。

これらのコマンドには以下のように引数が必要となります。

 

  readline> cellSet <setName> <action>  

 

setNameは操作するセットの名前です。任意の名前をつけることができます。

actionにはセットに対して行う操作を指定します。

これには以下の操作があります。

 list  セットの内容を表示します。
 clear  セットの中身を削除します。
 invert

 選択を反転します。

 これによりセットに含まれていない部分がセットになります。

 remove  セットを削除します。
 new <source>  sourceを元に新しくセットを作成します。
 add <source>  今あるセットにsourceを追加します。
 delete <source>  セットからsourceを除外します。
 subset <source>  セットの中からsourceを抽出してサブセットを作成します。

 

actionの一部の操作は引数sourceを必要とします。

sourceの指定には様々な方法がありますが、セルにおける代表的なものは以下となります。

 boxToCell <p0> <p1>  点p0と点p1を対角線とする六面体の内部のセルを指定します。
 cellToCell <setName>  すでにあるセットを指定します。

 

面における代表的なものは以下となります。

 boxToFace <p0> <p1>  点p0と点p1を対角線とする六面体で面を指定します。
 cellToCell <setName>  すでにあるセットを指定します。
 patchToFace <patchName>  パッチにより面を指定します。

 

例として、以下のように実行します。(六面体領域内のセルを元にセットinlet_sideを作成します)

 

  readline> cellSet inlet_side new boxToCell (0 0 0) (0.05 0.1 0.01)  

 

セットをゾーンに変換するには以下のコマンドを使用します。

 cellZoneSet <zoneName> <action>  cellZoneを操作します。
 cellToCell <setName>  faceZoneを操作します。

 

actionには以下の操作があります。

 new <source>  sourceを元にゾーンを作成します。
 list  ゾーンの内容を表示します。
 clear  ゾーンの中身を削除します。
 invert  選択を反転します。
 remove  ゾーンを削除します。

 

newを使用する場合はsourceの指定が必要となります。

指定方法として以下の方法があります。

 setToCellZone <setName>  セットからcellZoneを作成します。
 setToFaceZone <setName>  セットからfaceZoneを作成します。

 

例として、以下のように実行します。(セットinlet_sideからcellZoneであるinlet_zoneを作成します)

 

  readline> cellZoneSet inlet_zone new setToCellZone inlet_side  

 

これらのコマンドによる結果はconstant/polyMeshディレクトリ以下やVTKディレクトリ以下に随時出力されます。