Mech News Blog

機械工学科に関する最新の活動状況などを発信する情報サイト

3Dプリンター

 研究用に3Dプリンターを1台 導入しました。

 導入した3Dプリンターは,比較的安価な熱溶解積層型のAfinia 3D H479です。
小型試験用の風車模型などの製作に使用する予定です。

 熱溶解積層型とは,リールに巻かれた糸状の樹脂(フィラメント)を,熱(約260度)で溶解させながら積層させて造形する方式です。

afinia3dh479
3Dプリンタ(Afinia 3d H479)
プリント中
プリントの様子

 3Dデータ(stlデータ)は,とりあえず数値計算で使用しているCAELinuxに入っているSALOME-Mecaを使って作成しています。
 SALOME-Mecaで作成したstlデータは,作成の仕方によっては適切な3Dデータとはならないことがあるようです(下記写真を参照)。
 正しい3Dデータであれば,ちゃんとした造形物が作製されます。

 とりあえず,試しプリントしてみたところ,形状はほぼ狙い通りのものができ,それなりに使えそうだということが確認できました。


■3Dプリンターの良いところ:
・完全に3次元であることです。
 入手が容易な準3次元の切削機では,切削の手順を考えるなどに注意が必要です。
・球などの固定が難しいモノも,サポート材と呼ばれる樹脂で足場を組みながら造形されるので,固定方法に気を遣う必要がありません。

■3Dプリンター(熱熔解積層型)の面倒なところ:
・造形時に造形物を指させるために出力されるサポート材と呼ばれる樹脂を取り除くところです。Afinia 3Dを選んだ理由は,その除去が比較的容易だからですが,それでも注意が必要です。


以下は,ここで試作した造形物の写真です。


シャルピー試験片撮影台
シャルピー試験片の撮影用の台
 断面を撮影する場合,焦点が合いにくいので台を作製しました。

小型風車試作模型
小型風車模型の試作
 実際はブレードの長い風車を製作し,実験をする予定です。

失敗例
失敗例
 3Dデータに不良があったため,途中でプリント中止したものです。



written by tanino
パソコン・ソフト関係
author : mechstaff | - | -

カラーコンターを白黒コンターに変える方法

実験や解析などの結果として得られるカラーの等高線図(コンターマップ)を白黒コンターに変える方法のメモ

 ここでは,Photoshopを使います。

 1.カラーコンターのファイルを開く
 2.メニュー→イメージ→色相・彩度を選択し,
  色相・彩度のダイアログを開く
 3.ダイアログ上のプルダウンメニューからレッド系を選択
 4.彩度を-100,明度を+100にする
 5.プルダウンメニューからイエロー系を選択
 6.彩度を-100,明度を+60にする
  以下,同じように,
 7.グリーン系(彩度:-100,明度:+20)
 8.シアン系 (彩度:-100,明度:-20)
 9.ブルー系 (彩度:-100,明度:-60)
10.マゼンダ系(彩度:-100,明度:-100)
  にする
11.OKボタンを押して作業終了
(注意:プルダウンメニューのマスターはいじりません)

以上の手順でカラーコンターを白黒コンターにすることができます。

色相彩度ダイアログ2
色相・彩度のダイアログ(プルダウンメニュー)
色相彩度ダイアログ1
色相・彩度 のダイアログ(レッド系,彩度-100,明度100)


カラーコンター
カラーコンター(編集前)
白黒コンター
白黒コンター(編集後)
続きを読む>>
パソコン・ソフト関係
author : mechstaff | - | -

画像の任意の領域の面積(ピクセル)の求め方

写真から必要な部分の面積(ピクセル数)を求める方法をまとめた覚え書き

1.必要な画像の写真を用意する。
2.Photoshopで写真ファイルを開く。
3.多角形選択ツールを使って,写真を見ながら目的の領域を選択する。
4.メニュー→ヒストグラムを選択し,表示される全ピクセル数を記録する。
  全ピクセル数が選択した領域の面積(ピクセル)に相当します。

一手間加える,また,選択したい領域が分かれているなら
2.5.新規レイヤーを作成します。
3.5.新規レイヤー上で,塗りつぶしツールを使って選択領域を黒で塗りつぶします。
  分かれた領域分だけ同様の作業を繰り返す。
4.新規レイヤーのみを表示させる。
5.メニュー→選択範囲→色域指定で黒を選択する。
  分かれた領域全てが選択される。
6.ヒストグラムを選択し,表示される全ピクセル数を記録する。

7.実験記録として,レイヤーを含むファイルを保存する。
続きを読む>>
パソコン・ソフト関係
author : mechstaff | - | -

OpenFOAM-1.6-extをUbuntu10.04LTSへインストール

 いつの間にか,CAELinux2011が出ていて,導入してみた。

 CAELinux2011のOSはUbuntu 10.04 LTSであり,OpenFOAM2.0.1が入っている。しかし,GGIが使える回転体の計算が行えないため,OpenFOAM-1.6-extをインストールした。そのときの覚え書きは下記の通り。

1. OpenFOAM-1.6-extの入手およびインストール
 インストールには,Synaptic Package Manager を用いた。すなわち,
 メニュー→System→Administration から,Synaptic Package Manager を起動し,Quick Searchにて,OpenFOAMで検索すると,OpenFOAMを含むPackageのリストが表示される。OpenFOAM-1.6-extをチェックし,Applyボタンを押し,そのまま進めるとインストールが勝手に行われる。

Synaptic
Synaptic Package Manager

 インストール場所は,/usr/lib 内で,このディレクトリの中に,OpenFOAM-1.6-extのディレクトリが作成されている。


以下の2,3はインストールされたOpenFOAM-1.6-ext起動のための手順
2.OpenFOAM-1.6-ext起動用のための .bashrc-OpenFOAM-1.6-extの作成
 テキストエディタ(geditなど)で,以下の記述をし,.bashrc-OpenFOAM-1.6-extのファイル名でホームディレクトリなどに保存する。(ファイル名は任意で,保存場所もホームディレクトリ直下である必要はないと思います)
ファイル内の記述(以下4行)
# setup bash environment for OpenFOAM
source ~/.bashrc
# source openFoam variables
source /usr/lib/OpenFOAM-1.6-ext/etc/bashrc
(4行目をみると,OpenFOAM-1.6-extがインストールされた/usr/libとなっている)

3.OpenFOAM-1.6-ext起動のためのランチャーの作成
 メニューのApplicationsにOpenFOAM-1.6-ext起動のためのランチャーを作成するには,
・メニューのApplicationsにカーソルを合わせマウス右クリックで Edit Menu を選択する。
・+New Item ボタンを押し,Launcher Propertiesダイアログにて,
 Type : Application in Terminal
 Name: OpenFOAM-1.6-ext (任意)
 Command: bash --rcfile ~/OpenFOAM/.bashrc-OpenFOAM-1.6-ext
 Comment: (空白でOK)
と設定してランチャーを作成する。(Command欄で,先に作成した.bashrc-OpenFOAM-1.6-extが指定されている)
launcher
Launcher Properties

これで,とりあえずランチャーからOpenFOAM-1.6-ext ターミナルが起動し,pimpleDyMFoamなどが利用できた。


その他メモ:
.bashrc-OpenFOAM-1.6-extのように,最初に"."で始まるファイルは隠しファイルとなっているので,View→Show Hidden Filesで表示させることができる。
パソコン・ソフト関係
author : mechstaff | - | -

Paraview〜2D物体面の圧力分布の抽出〜

OpenFOAMによる風車やファンなどの数値計算結果から翼面上の圧力分布を求める方法

前提条件:
・OpenFOAMの計算結果は,"foamToVTK" コマンドにより"VTK"で出力(アウトプット)する.
 これにより,計算領域内の速度や圧力などの物理量がVTKフォルダ内に出力され,同時に,物体面ごとの形状および面上の物理量も各物体面の名前の付いたフォルダ内に出力される.

ここでは,複数の物体面で構成される羽根車(クロスフロー風車)を例に,1枚の翼面上の物理量を抽出するための方法を記す.

Paraviewでの処理手順:
1.物体面のVTKファイルの読み込み.
VTKデータ
 読み込んだVTKデータ

2.1枚の翼を選択する.
 ・Select Cells On ボタンを押し,マウスで必要な翼を囲って選択する.
 ・選択されないセルがある場合が多いので,Zoomで確認して,全て選択する.
Selectcells
 Select Cells On ボタン

Cell選択後
 選択された翼

3.選択した1枚の翼のみを抽出する.
 ・メニュー→Filters→Data Analysisから"Extract Selection"を実行する.
選択部抽出
 Extract Selection実行画面

 左下のObject Inspectorのウィンドウ内の"Copied Selection"に,選択された形状データがテキスト表示される.

4.物体面上の物理量を求める.
 ・メニュー→Filters→Data Analysisから"PlotOnIntersectionCurves"を実行する.
PlotOnIntersectionCurves
 PlotOnIntersectionCurves実行画面
 Object Inspector ウィンドウの設定で,赤枠で示された面が目的の物体面と直交するように調整する.ここでは"Z Normal"で決まり.赤枠のサイズは,物体面のサイズで自動的に調整される.

物理量グラフ
 物体面上の物理量の分布グラフ
 赤枠で示された面と交差する線上の物理量が抽出され,画面左側のグラフとして表示される.

5.抽出した物理量を保存する.
 File→Save Dataにより,物体面上のデータがcsvファイル等で保存できる.

 全フレームのデータを保存したい場合は,"save"ボタンを押した後に表示されるダイアログの"Write All Time Steps"をチェックすれば,ファイル名末に番号付けされて各フレームの物理量が保存される.

フレーム保存設定
 全フレームの書出をチェックするダイアログ


CAELinux 2009-2010 の覚え書き
続きを読む>>
パソコン・ソフト関係
author : mechstaff | - | -

OpenFoam並列計算用のメッシュ領域分割に関するメモ

 OpenFoamで並列計算を行うには,メッシュの領域分割を行う必要がある。

 ユーザーガイドでは,矩形領域の計算例(damBreak)が紹介されており,decomposeParDictを作成し,このファイル内で,使用するCPUの数だけ,領域分割数を指定するなどして保存した後,ケースディレクトリ内で,decomposePar を実行すると領域が分割される。

 decomposeParDict の記述例:

 FoamFile
 {
  version 2.0;
  format ascii;
  class dictionary;
  object decomposeParDict;
 }
 // * * * * * * * * * * * * * * * * * * * //
 numberOfSubdomains 2; // 2 CPU
 
 method simple;
 
 simpleCoeffs
 {
  n (1 2 1); // nx ny nz
  delta 0.001;
  order xyz;
 }
 // * * * * * * * * * * * * * * * * * * * //
 上記の例では,Y方向のざくっと2分割されます。


 Cavityの例で領域分割した後,ケースディレクトリ内を調べてみた。以下は,そのメモ書き。


 領域を分割した数だけ,ケースディレクトリ内に“processor*"が作成される。
 “*”は,数字。2分割では,processor0 と processor1 ができる。

 processor* のディレクトリ内には,“0”フォルダと“constant”フォルダがある。

 constantフォルダ内の “polyMesh” に,分割された各メッシュのデータがあり,
分割前との違いは,以下の4つのファイルが新たに作成されている点である。

 1.boundaryProcAddressing
 2.cellProcAddressing
 3.faceProcAddressing
 4.pointProcAddressing

 それぞれ4つのファイルを,2分割した場合について,
processor0 と processor1 を比較して判明した点は次の通り。

 1.boundaryProcAddressing
  processor0,processor1 とも同じ

 2.cellProcAddressing
  processor0,processor1 それぞれの各cell番号は重複しない。

 3.faceProcAddressing
  processor0,processor1 それぞれの各face番号は重複しない。
  ただし,接合面については,
   processor0 が符号なしの番号なら,
   processor1 は負の番号,すなわち,− 番号 となる。

 4.pointProcAddressing
  processor0,processor1 の接合面以外の各point番号は重複しない。
  接合面については重複する。

 以上のことから,cell,face,point番号は,基本的には,
processor0 から processor1 まで通し番号となっている。
(それぞれ0から振り直されていない)
  
パソコン・ソフト関係
author : mechstaff | - | -

2次元回転体計算のための準備(Salome)

目的:OpenFOAM-1.5-devで回転体を計算するための
   2次元 メッシュの作成

  OP-1.5-devでは,回転体を計算するために
  静止部と回転部の間の境界に
  GGI (General Grid Interface) が導入されている。
  Salomeで2次元メッシュを作成するためのメモ

1.メッシュの作成
  Salomeによる作成 (今はこれしか使えないから)

  Salomeを使って2次元のメッシュを作成する場合
  
  1.2次元平面形状のメッシュを作成する.
  2.平面形状のメッシュを掃引する.
  3.Faceグループを作成する(←ここが難題)

  以上の手順で作成します.
  3を解決するために,Salome 5 以降の機能(フィルター)
  を使用します

2.Faceグループの作成について
  3次元の場合,形状(geometry)から面(Face)を選択
  できるので,簡単に作成できるが,掃引で作成された
  2次元メッシュでは,メッシュそのもののgeometry
  がないため,geometryからFaceが作成できない。

  <対策>
  SalomeのFaceグループ作成時にフィルターを使う

   Sample_mesh1
   以下の作成手順で使用したメッシュ(回転部のみ)

  <Face作成手順>
  Salomeの作業において,
  1.側面(計算に関係のない)のFaceグループを先に
    作成する.


    Create Groupを実行すると次のダイアログが表示される.
   CreateGroupダイアログ
   Create Groupダイアログ

    SalomeのTop, Bottomなどで表示するボタンを
    使って,選択したい面(のみ)を表示し,マウスで
    まとめて選択(黄色で表示される)する.
   表示切替ボタン
   表示方向切替ボタン
   選択された側面
   選択された側面のFace

    このとき,奥行き方向のメッシュが選択される
    場合があるので,Shiftキーを使って選択解除する.
   余計に選択されたFace
   余計に選択された奥行き方向 Face

    正しく選択されたら Create Groupダイアログにて
    Add して Apply する.

    Create Groupダイアログ上にはColor Group(水色)
    があり,これを他のFaceの作成時にフィルターと
    して使用します.

  2.領域外側のFaceグループを作成する.
    
    1と同様にTop, Bottomなどのボタンで表示された
    部分をマウスでまとめて選択し,Shiftキーを使って
    追加・解除しながら作成する.

    <ポイント フィルターの利用>
     まとめて選択した際,画面垂直方向の面(1で作成
     した側面)のメッシュが一緒に選択されてしまう場合
     がある.
   余計に選択されたFace2
   余計に選択された側面のFace
   (Filter適用前)

     そこで,Create Groupダイアログの中央にある
     Content の Set Filtersを使用します.
     Filter for Nodes ダイアログで,Addボタンを
     押すと,新しいFilterが作成されます.
   SetFiltersダイアログ
   Set Filtersダイアログ

     新しいFilter の Criterionにおいて,Color of Group
     を選択し,Threshold Valueで先に作成したFace
     グループの色(例:水色)を選択し,そのFaceグループを
     排除したければ,UnaryのNotにチェックします.

     このフィルターにより,画面垂直方向の面は選択され
     なくて済み,作業が楽になります.
   Filter適用後
   Filter適用後

    1と同様に,新しく作成した各FaceグループのColor
     Groupを確認しておく.

  3.領域内のFaceグループを作成する.
    2と同様に作成する.

    領域内の形状はやや複雑であることが多いため,場合に
    よっては,Top, Bottomボタンで表示させた状態から
    傾けてまとめて選択することになるが,前述のフィルター
    により余計な部分が排除されるので,比較的作業が楽に
    なります.

  フィルターで絞り込みや排除を駆使すると,作業はかなり
  短時間で済みます.


1.回転体メッシュの書き出し時の注意点
  <ポイント>
  側面(計算に関係しない:emptyを指定する面)のFaceは,
  回転部と静止部に関係なく,”1つ” にまとめて書き出す.


  OpenFoamの2次元計算では,側面境界は”empty"を
  与えます. 
  しかし,回転体のように回転部と静止部が分かれている場合,
  側面のFaceをそれぞれ別々に作成し書き出すと,計算実行時に
  エラーメッセージ(emptyのFace数をCell数で割れない)が
  出て計算できません. 
  どうやらOpenFoamでは,2つ以上のempty Faceの数を
  合計して扱ってはくれないようです.
  

  2次元メッシュ作成の作業例については,時間がある時に書き
  留めたいと思っています.
   
   
 CAELinux 2009-2010 の覚え書き
続きを読む>>
パソコン・ソフト関係
author : mechstaff | - | -

回転体計算のための準備(CAELinux メッシュ作成)

目的:OpenFOAM-1.5-devで回転体を計算するための
   メッシュ作成

  OP-1.5-devでは,回転体を計算するために
  静止部と回転部の間の境界に
  GGI (General Grid Interface) が導入されている。

1.メッシュの作成
  Salomeによる作成 (今はこれしか使えないから)

  Salomeには,形状の単位がないようです. すなわち,
  Salomeで書き出されるメッシュの単位は,”m"ということに
  なります.
  mm を m に変換するには,OpenFoamの計算ディレク
  トリ内で
  >transformPoints -scale "(0.001 0.001 0.001)"
  を実行する
 
 メッシュ作成時に注意すべき点:
 1.静止部と回転部は,別々にメッシュを作成する。
  (一気にメッシュを生成して,Partitionで分離した
   メッシュでは,何故かOpenFOAMメッシュへの
   変換 ideasUnvToFoam に失敗する)

 2.静止部と回転部の接触部のメッシュは一致すること
   が望ましい。

  (させないと計算できなかった - segmentation fault
   接触部の不一致が原因かは分かりません)

 3.Salomeでの静止部と回転部のメッシュの合成は,
  回転部→静止部の順に選択し,合成する。

  (セル番号が,回転部→静止部の順になり,
   cellZones作成の問題を回避できる) 

 4.回転部のセルを明示したファイル
   cellZonesを作成しなければならない。

   cellZonesは,Salomeで作成したVolumeグループから
   生成される。

  ■ cellZonesの作成手順
  1.回転部のみについて,Salomeにて,
   faceに加え,Volumeのグループを作成する
  2.MED形式のメッシュファイルでexportする。
  3.GmshでMEDファイルを読み,Gmsh meshとして保存
   (mshファイル,ASCII Version 2)
  4.gmshToFoamにより,mshファイルを
   OpenFOAMメッシュに変換する。
  これで,作成したVolumeグループが,cellZonesとして
  書き出される。

  cellZones は,回転部を明示するためのファイルです.


 5.静止部と回転部の境界(face)を明示したファイル
   faceZonesを作成しなければならない。

   faceZonesは,Salomeで作成したfaceグループから
   生成される。

  ■ faceZonesの作成手順
  1.setSet コマンドを実行する
   (setsフォルダと移動境界のファイルができる)
  2.setSet内で以下のコマンドを実行する。
   >faceSet insideZone new patchToFace InSlide
    (insideZoneがsetsフォルダ内に作成される
     InSlideは回転部境界名(任意))
   >faceSet outsideZone new patchToFace OutSlide
    (outsideZoneがsetsフォルダ内に作成される
     OutSlideは回転部境界名(任意))
   >quit
    (setSetの終了)
   これで,sets(insideZone, outsideZone)ができる。
  3.setsToZones -noFlipMap コマンドを実行する。
   これで,faceZones が作成される。

  faceZones は,接触部を明示するためのファイルです.

 6.cellZones→faceZonesの順に作成する。


 Salomeによるメッシュ作成による問題点:
 1.cellZones作成時の問題
  SalomeのUNVメッシュから直接 cellZonesは
  作成できない。

 回避策:
  回転部のみを,Gmshを経由し,OpenFOAMメッシュに変換
  この過程で cellZonesが生成される。
  (このcellZonesは別のところに保存するのが望ましい
   faceZonesを作成するときに消されてしまうため)
 
 ■ cellZonesを別に作成する理由
  gmshToFoamのOpenFoamメッシュに変換では,
  cellZonesは作成されるが,肝心のboundaryほかの
  メッシュファイルが正しく作成されない。
  
  そこで,cellZonesはどこか別に待避させ,
  Salomeから書き出したunvメッシュから,
  ideasUnvToFoamでOpenFOAMメッシュを作成する
  (このときcellZonesを待避させないと,あとのメッシュ作成で
   消されてしまうので注意)

 2.faceZones作成の問題点
  Salomeで静止部と回転部を1つの形状として作成したあと,
  partitionで分割し,1つの形状でメッシュを作成し,
  各patch(face)のグループを作成して,UNVメッシュファイル
  を書き出した場合,
  ideasUnvToFoamでのOpenFOAMメッシュ変換に失敗する。
  (移動境界のpatchが静止部と回転部に共有されることが,
   まずいらしい)

  移動境界面のメッシュを同じにするには
  (静止部を回転部に合わせる場合)

  a) 回転部を先に作成する (cellZonesを別に作成するため)
  b) 静止部も同様にとりあえずメッシュを作成する。
  このとき,当然移動境界のメッシュは明らかに異なっている。
  c) 静止部のサブメッシュを移動境界のEdgeの分だけ
   作成する。
   それぞれのEdgeをProjection 1Dにより,回転部のEdge
   を指定し,対応させる。
  d) 静止部のメッシュを再度計算する。

  回転部と移動境界メッシュが一致したメッシュができる。


2.静止部と回転部の境界面(face)の設定
 ・boundaryファイルで,静止部と回転部のfaceを指定する。
 例:
OutSlide (自分で付けたface名)
{
type ggi; ←
nFaces 115;
startFace 98108;
shadowPatch InSlide; ← InSlideに対応
zone outsideZone; ← 回転部外側を指定
bridgeOverlap false; ←
}
InSlide (自分で付けたface名)
{
type ggi; ←
nFaces 758;
startFace 91928;
shadowPatch OutSlide; ← OutSlideに対応
zone insideZone; ← 回転部を指定
bridgeOverlap false; ←
}


現状:
とりあえず,揚力型垂直軸風車の荒いメッシュの計算が走るようにはなった。

CAELinux 2009-2010 の覚え書き
パソコン・ソフト関係
author : mechstaff | - | -

OpenFOAM 1.5-devのインストール(CAELinux)

目的:風車やファンなどの回転体の計算をするため
  OP-1.5には,回転体を計算できるソルバーがなく,
  OP-1.5-devにおいて,icoDyMFoam,turbDyMFoamが
  導入されている。

  CAELinux2009のPCにOP-1.5-devをインストールする

1.ホームディレクトリ以下に,OpenFOAM-1.5-devを
  インストール(保存)しなければならない。
 (パッケージファイルを解凍するだけ)

2.OpenFOAM-1.5-devを使うための環境設定をする
  ホームディレクトリ内で2つの環境設定ファイル
  .bashrc-CAE, .bashrc-OpenFOAM (.bashrc変更不要)
  をエディタで書き換える
  a) .bashrc-CAE→OpenFOAM-1.5-devの場所を指定する
  b) .bashrc-OpenFOAM→OpenFOAM-1.5-dev/etc/bashrc
   をsourceする

3.gcc4.3.3 をインストールする
  OpenFOAM-1.6などの ThirdParty を入手
   (1.5-devのが見あたらなかったから)
  ThirdParty 内の gcc4.3.3 フォルダを
  もともとホームディレクトリ内にある
  ThirdParty フォルダにコピーした。
  (gcc4.3.3 がないと OpenFOAM terminal を起動すると
   gcc4.3.3 がないというメッセージが表示される)

以上で,とりあえず
 Applications → CAELinux → OpenFOAM terminal で
 OpenFOAM-1.5-dev を実行できるターミナルが起動できる。

OP-1.5-devの導入で解決できない問題

1.paraFoam で paraview が起動しない
 OpenFOAM-1.5-dev/etc/apps/paraview3内の
 bashrc を以下に書き換える
 export ParaView_INST_DIR=$WM_THIRD_PARTY_DIR/ParaView$ParaView_VERSION

 ParaViewと$ParaView_VERSIONの間の(-)を省いた
  → とりあえず起動した。
 (ParaView3.3 が正しく,元のままだと
  ParaView-3.3となり×)

2.paraview が caseName.OpenFOAM (ケースデータ)
  を読み込めない
 paraview 起動後,ケースデータが読めず,
 ファイルを選ぶようにダイアログが表示される。
 当然,OpenFOAM を選択しても失敗する。

 回避策:
  caseディレクトリ内で foamToVTK を実行し,
  VTKファイルを作成する。
  これをparaviewで,読み込めばとりあえず,表示される。
続きを読む>>
パソコン・ソフト関係
author : mechstaff | - | -

CAELinux2009-2010 覚え書き

CAELinux 2009 64bitに関する覚え書き

OS Ubuntu 8.0.4

CAELinux 2009 にインストールされている流体解析関連の
アプリケーションは以下の通り

■ Salome-Mech 2009 (Salome 4) (前処理)
 計算モデル,計算格子(境界面の設定含む)の作成
■ OpenFOAM 1.5 (解析ソルバー)
 CFDの実行(境界条件,時間設定等を設定後,計算実行)
■ paraView 3.3 (後処理)
 計算結果の可視化

解析ソルバーの種類
 対象となる流体や定常・非定常の条件に応じて,
 それぞれのソルバー(計算プログラム)が存在する。
 用途に応じたソルバーを選択し,実行する必要がある。

■ 関係しそうなソルバー
 1.icoFoam
  非圧縮・層流・定常
 2.simpleFoam
  非圧縮・乱流・定常
 3.turbFoam
  非圧縮・乱流・非定常
 4.icoDyMFoam (OP-1.5-dev)
  非圧縮・層流・非定常・移動メッシュ(回転体)
 5.turbDyMFoam (OP-1.5-dev)
  非圧縮・乱流・非定常・移動メッシュ(回転体)
 6.sonicFoam
  圧縮性・非定常・高速流
 7.sonicTurbFoam
  圧縮性・乱流・非定常・高速流

■ 良く使用するコマンド
 linuxコマンド
 1.cd → ディレクトリの移動
 2.ls → ディレクトリ内の一覧表示

 OpenFOAM用コマンド(計算するディレクトリ内で実行)
 3.ideasUnvToFoam xxx.unv → メッシュの変換
   (UNV から OpenFOAMメッシュへ)
 4.xxxFoam → 解析ソルバの実行
   (xxxはico, turbなど)
 5.foamToVTK → paraview用のデータ作成
   (OpenFOAM-1.5-dev 用)
 6.paraFoam → paraviewの起動
 7.transformPoints -scale "(0.001 0.001 0.001)"
   → メッシュ形状の単位変換(mm→m)
   constant → PolyMesh内の pointsファイルが修正される
   

 回転体計算のために使ったコマンド(OpenFOAM)
 7.gmshToFoam xxx.msh → Gmshのメッシュ変換
   (cellZones作成のため,msh から OpenFOAM)
 8.setSet → 移動境界(face)の作成準備
 9.setsToZones (-noFlipMap) → faceZones作成
  (詳細は,回転体計算のための準備(下記リンク) 参照)

 並列計算のためのコマンド(OpenFOAM)
 10.decomposePar → decomposeParDictに従って
    メッシュの領域を分割する。
    decomposeParDictはsystemフォルダ内
 11.mpirun → 並列計算の実行
    例:mpirun -np 2 turbFoam -parallel
    → 2 CPUで実行
 12.reconstructPar → 分割データを統合する。
  (参考URL: PENGUINITIS - 並列計算)

 領域内の特定の部分にのみ指定の物理量を
 与えるコマンド(OpenFOAM)
 13.setFields → setFieldsDictに従って
    特定の部分に指定の物理量を与える。
    setFieldsDictはsystemフォルダ内
    例:圧力p を周囲0に対して,特定の部分には1を指定
    defaultFieldValues
    (
     volScalarFieldValue p 0
    );
    regions
    (
     boxToCell
     {
     box (0 0 0) (0.05 0.05 0.1);
     fieldValues
     (
     volScalarFieldValue p 1
     );
     }
    );

■ 覚え書き集

1.OpenFOAM-1.5-devのインストール
2.回転体計算のための準備
3.2次元回転体計算のための準備(Salome)
4.物体面上の物理量分布の抽出(Paraview)



 
 
 
続きを読む>>
パソコン・ソフト関係
author : mechstaff | - | -