宇宙カマキリさんの記事で、OpenFOAMのメッシュ作成にcfMeshを使っている記事があり、試しにやってみた。
cfMeshのサンプルフォルダをコピー
cfMeshはOpenFOAMのインストールフォルダ内、modulesというフォルダにまとめて入っている。
そのなかで、今回はこのフォルダ「modules/cfmesh/tutorials/cartesianMesh」の中にあるサンプルフォルダを使う。
このフォルダをcpコマンドでコピーする。インストール先のフォルダまで移動してから、「cp -r [OpenFOAMのインストールフォルダ]modules/cfmesh/tutorials/cartesianMesh . 」でコピペできる。
cp -r [OpenFOAMのインストールフォルダ]/modules/cfmesh/tutorials .
cd tutorials/cartesianMesh/asmoOctree/
試しに使用するモデルは森北出版「OpenFOAMによる熱移動と流れの数値解析(第2版)」でダウンロードできるものを使用した。(ダウンロードファイル)
サンプルモデルをコピー
ダウンロードしたフォルダはOpenFOAMの各バージョンごとに分かれているので、まず自分が使用しているフォルダを開く。
次に、mixing_elbow -> steadyIsothermal -> constant -> triSurface フォルダまで移動すると「mixing_elbow.stl」という3次元モデルのデータが見つかるのでコピペして使用する。
コピペしたら、さらにその中のasmoOctreeというフォルダに入る。
ここに、「mixing_elbow.stl」という3次元モデルのデータをコピペする。
条件ファイル の編集
「mixing_elbow.stl」という3次元モデルにメッシュを作成するため、条件ファイルを編集する。
asmoOctreeフォルダ内にsystemというフォルダがある。このフォルダ内のファイルは、メッシュ作成の条件が記入されたファイルになる。
meshDictというファイルをテキストエディタで開く。いろいろ書いてあるが、全部削除して以下の部分のみ残す。
/--------------------------------- C++ -----------------------------------\
| ========= | |
| \ / F ield | cfMesh: A library for mesh generation |
| \ / O peration | |
| \ / A nd | Author: Franjo Juretic |
| \/ M anipulation | E-mail: franjo.juretic@c-fields.com |
*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object meshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
surfaceFile "model000_m.stl";
maxCellSize 0.001;
// ************************************************************************* //
実行コマンド
コマンドは「./Allrun」を実行する、もしくは以下のものを順に実行していく。
surfaceFeatureEdges model000_m.stl model000_m.fms
FMSToSurface model000_m.fms model000_m.stl
cartesianMesh
1行目:エッジを検出する。
2行目:ファイルフォーマットをstlに戻す(paraviewでの確認用)
3行目:6面体メッシュの作成
エラーが出たら
もしコマンドが見つからないというようなエラーが出た場合は、Allwmakeする。
cfmeshのインストールフォルダに移動してから ./Allwmakeコマンドでcfmesh用のコマンドが使えるようになる。
cd [OpenFOAMのインストールフォルダ]/modules/cfmesh
./Allwmake
メッシュの確認
メッシュ作成が終わったらparaviewで確認する。vis.foamファイルを作成する。
touch vis.foam
paraviewでvis.foamを開き、applyボタンを押し、表示を「surface with edges」に変更すると、以下のようにメッシュが切られたモデルが表示される。