お知らせ
詳細は,こちらをご覧ください。
オープンCAE勉強会 @富山 OpenFOAM関連講習のまとめ
<< OpenFOAM 入門・初心者向け講習 >>
はじめてのOpenFOAM OpenFOAM入門講習会 (講師:富山県立大 中川),第13回 オープンCAE勉強会@富山 2014/01/25
20140125はじめてのOpenFOAM_part1_公開.pdf
20140125はじめてのOpenFOAM_part2_公開.pdf
20140125はじめてのOpenFOAM_part3_公開.pdf
はじめてのOpenFOAM(講師:中山勝之),第53回 オープンCAE勉強会@富山 2017/04/22
はじめてのOpenFOAM(その2)(講師:富山県立大 中川),第54回 オープンCAE勉強会@富山 2017/05/20
はじめてのOpenFOAM(講師:中山勝之),第53回 オープンCAE勉強会@富山 2017/04/22
はじめてのOpenFOAM(その2)(講師:富山県立大 中川),第54回 オープンCAE勉強会@富山 2017/05/20
<< OpenFOAM でのプリ処理・メッシュ生成 >>
snappyHexMeshを使ったメッシュ作成(講師:富山県立大 中川),第8回 オープンCAE勉強会@富山 2013/03/23
20130323snappyHexMesh超入門_実習.pdf
例題ケース OF220_case.zip
OpenFOAMのためのメッシュ生成入門 (講師:富山県立大 中川), 第11回 オープンCAE勉強会@富山 2013/06/08
20130608メッシュ生成超入門_実習_修正版.pdf
blockMeshCases.zip
snappyHexMeshCases.zip
20130608メッシュ生成超入門_実習_修正版.pdf
blockMeshCases.zip
snappyHexMeshCases.zip
OpenFOAMメッシュ生成入門(ユーティリティの使い方) (講師:富山県立大 中川),第13回 オープンCAE勉強会@富山 2013/08/31
201308OpenCAE_lecture改訂版.pdf
201308OpenCAE_lecture改訂版.pdf
OpenFOAMによるメッシュ操作入門(講師:富山県立大 中川),第21回 オープンCAE勉強会@富山 2014/05/10
20140510メッシュ生成入門_実習_公開.pdf
Training-Mesh-OpenFOAM-basic.zip
cfMeshによるメッシュ作成入門(講師:秋山善克 氏),第24回 オープンCAE勉強会@富山 2014/08/23
cfMeshによるメッシュ作成.pdf
cfMeshによるメッシュ作成入門(講師:秋山善克 氏),第35回 オープンCAE勉強会@富山 2015/08/22
cfMeshによるメッシュ作成_公開版.pdf
OpenFOAMソースコードの眺め方:はじめの一歩 (講師:富山県立大 中川),第11回 オープンCAE勉強会@富山 2013/06/08
OpenFOAMソースコード解読へ向けてpt1_v1.pdf
20140510メッシュ生成入門_実習_公開.pdf
Training-Mesh-OpenFOAM-basic.zip
cfMeshによるメッシュ作成入門(講師:秋山善克 氏),第24回 オープンCAE勉強会@富山 2014/08/23
cfMeshによるメッシュ作成.pdf
cfMeshによるメッシュ作成入門(講師:秋山善克 氏),第35回 オープンCAE勉強会@富山 2015/08/22
cfMeshによるメッシュ作成_公開版.pdf
OpenFOAMでのメッシュ生成入門(講師:富山県立大 中川),第55回 オープンCAE勉強会@富山 2017/06/17
<< OpenFOAM の ソースコード / プログラミング / カスタマイズ >>OpenFOAMソースコードの眺め方:はじめの一歩 (講師:富山県立大 中川),第11回 オープンCAE勉強会@富山 2013/06/08
OpenFOAMソースコード解読へ向けてpt1_v1.pdf
OpenFOAM(R)ソースコード入門pt1 熱伝導方程式の解法から有限体積法の実装について考える(講師:富山県立大 中川) ,第16回 オープンCAE勉強会@富山 2013/11/17
20131117laplacianFoam解読講習_後編.pdfnetBeans設定方法v0.pdf
OpenFOAMのカスタマイズ・ソースコード改造 超入門(講師:富山県立大 中川),第19回 オープンCAE勉強会@富山 2014/03/23
OpenFOAMカスタマイズ超入門.pdf OpenFOAMカスタマイズ超入門 講習テキスト
変更箇所説明.pdf ソースコードとチュートリアル修正箇所説明
OpenFOAMのカスタマイズ・ソースコード改造入門(interFoamへの温度場計算追加)(講師:富山県立大 中川),第25回 オープンCAE勉強会@富山 2014/09/27
20140927LectureText.pdf 講習テキスト
変更箇所を明記したソースコードは オープンCAE勉強会@富山 ページのファイルキャビネットに保管
変更済みソースコードなどは,下記から取得可能
https://github.com/snaka-dev/Training_OF_customize_thermal-interFoam/releases
OpenFOAMのソースコードとコンパイルの基礎(laplacianFoamを中心に)(講師:富山県立大 中川),第28回 オープンCAE勉強会@富山 2014/12/13
20141213OpenFOAM_compile_basic_r0.pdf
OpenFOAMカスタマイズ超入門:ソースコードの構造を見る(講師:富山県立大 中川),第33回 オープンCAE勉強会@富山 2015/06/1320141213OpenFOAM_compile_basic_r0.pdf
20150613OpenFOAMソースコード構造基礎講習_v1.pdf
OpenFOAMを理解するための第1歩(講師:富山県立大 中川),第43回 オープンCAE勉強会@富山 2016/05/28
OpenFOAMソースコード入門 pt.1 熱伝導方程式の解法から有限体積法の実装について考える(講師:富山県立大 中川),第45回 オープンCAE勉強会@富山 2016/07/23
前編:有限体積法の基礎確認
20160723laplacianFoam解読講習_前編.pdf
後編:laplacianFoamでの実装
前編:有限体積法の基礎確認
20160723laplacianFoam解読講習_前編.pdf
後編:laplacianFoamでの実装
20160723laplacianFoam解読講習_後編.pdf
OpenFOAMカスタマイズの始め方(講師:富山県立大 中川),第81回 オープンCAE勉強会@富山 https://opencae-toyama.connpass.com/event/186007/
OpenFOAMカスタマイズの始め方(講師:富山県立大 中川),第81回 オープンCAE勉強会@富山 https://opencae-toyama.connpass.com/event/186007/
OpenFOAM関連情報:公開
Ubuntu バージョンと OpenFOAM パッケージ
0コメント
04/13
S Nakagawa
OpenFOAMコード理解のメモ:SMALL, VSMALL, GREAT, VGREAT などは?
0コメント
2022/05/20
S Nakagawa
snappyHexMesh ユーティリティの情報源・マニュアル
0コメント
2022/02/26
S Nakagawa
OpenFOAM リリース日まとめ
2コメント(0未承認)
2021/10/06
S Nakagawa
2022/02/04
S Nakagawa
2022/09/21
S Nakagawa
OpenFOAM 関連書籍紹介 (無料公開,英語)
1コメント(0未承認)
2021/09/15
S Nakagawa
2021/09/27
S Nakagawa
ParaView と レイトレーシング(ray tracing, 光線追跡法)
1コメント(0未承認)
2021/09/11
S Nakagawa
OpenFOAMのカスタマイズ入門(interFoam への温度場計算追加)
0コメント
2020/10/17
S Nakagawa
virtualbox 6.1.4 でクリップボードに問題あり
0コメント
2020/03/11
S Nakagawa
OpenFOAMの回転体流れ例題の実行と機能の確認
0コメント
2019/12/19
S Nakagawa
20190824オープンCAE勉強会@富山
0コメント
2019/08/19
S Nakagawa
OpenFOAM v1812 (OpenCFD社) のマニュアルなど
0コメント
2019/06/14
S Nakagawa
改訂[後編]:OpenFOAM学習者向け C++プログラミング超入門
0コメント
2019/01/04
S Nakagawa
改訂[中編]:OpenFOAM学習者向け C++プログラミング超入門
0コメント
2019/01/04
S Nakagawa
改訂[前編]:OpenFOAM学習者向け C++プログラミング超入門
0コメント
2019/01/04
S Nakagawa
codedFixedValue境界条件
0コメント
2018/11/18
S Nakagawa
interFoam: OpenFOAM 5とOpenFOAM 6 での結果の違い
0コメント
2018/11/16
S Nakagawa
OpenFOAMカスタマイズ入門@岐阜の完成コードなど
0コメント
2017/12/26
S Nakagawa
非圧縮性 OpenFOAM 壁面熱量計算
0コメント
2017/09/10
S Nakagawa
非等方性熱伝導率とOpenFOAM
0コメント
2016/07/06
S Nakagawa
OpenFOAM を使い始める人へのアドバイス
0コメント
2016/04/17
S Nakagawa
リンクリスト
OpenFOAM関連情報:公開
Salome で STL の解像度を変更する方法を検討中
OpenFOAMのsnappyHexMeshでメッシュ生成することがあります。
その時に使うSTLファイルを,Salomeで作ることがあります。
Salome からExportしたSTLの解像度が粗いので,改善する方法を探しています。
とりあえず,1つの方法がありました。メモします。
邪道かもしれません。正式な方法をご存じの方がいらっしゃいましたら,お知らせ頂けるとありがたいです。
SALOME で,File - Preferences を選択する。
表示されるPreferencesウィンドウで,左からGeometry を選択する。
Setting中のDeflection coefficient の値を変える。
Deflection coefficient を小さくすると,STLの構成する面の要素も小さくなる。

変更例(半径0.01の円柱を作成し,底面を見たところ)
Deflection coefficient = 0.001 (Default値)

Deflection coefficient = 0.0001

Deflection coefficient = 0.00001

このように変化します。
とりあえず,曲面の粗さがすこし改善できます。
なお,上記の図は,SalomeからSTL形式でエキスポートしたものを,Paraviewで開いて表示したものです。
salomeのユーザーガイドによりますと,
Deflection coefficient - allows to define default deflection coefficient for lines and surfaces. A smaller coefficient provides better quality of a shape in the viewer.
ということです。
http://docs.salome-platform.org/salome_7_3_0/gui/GEOM/geometry_preferences_page.html
その時に使うSTLファイルを,Salomeで作ることがあります。
Salome からExportしたSTLの解像度が粗いので,改善する方法を探しています。
とりあえず,1つの方法がありました。メモします。
邪道かもしれません。正式な方法をご存じの方がいらっしゃいましたら,お知らせ頂けるとありがたいです。
SALOME で,File - Preferences を選択する。
表示されるPreferencesウィンドウで,左からGeometry を選択する。
Setting中のDeflection coefficient の値を変える。
Deflection coefficient を小さくすると,STLの構成する面の要素も小さくなる。
変更例(半径0.01の円柱を作成し,底面を見たところ)
Deflection coefficient = 0.001 (Default値)
Deflection coefficient = 0.0001
Deflection coefficient = 0.00001
このように変化します。
とりあえず,曲面の粗さがすこし改善できます。
なお,上記の図は,SalomeからSTL形式でエキスポートしたものを,Paraviewで開いて表示したものです。
salomeのユーザーガイドによりますと,
Deflection coefficient - allows to define default deflection coefficient for lines and surfaces. A smaller coefficient provides better quality of a shape in the viewer.
ということです。
http://docs.salome-platform.org/salome_7_3_0/gui/GEOM/geometry_preferences_page.html
0
run-time selectionについて
OpenFOAMer(コード解読修行中)と,いろいろと話をしました。
コードリーディングで苦戦している理由の1つが,様々な物理モデルの使い分けを容易にしてくれている仕組み「runTime Selection」だと感じました。前から気付いてはいたのですが。
ソルバを利用する時には,とても便利な機能です。しかし,ソルバーのコードを読んでいるときには,使いたい物理モデルにたどり着かないといった事態を引き起こします。
run-time セレクションについては,OpenFOAMの特徴欄にも記載があります。
http://www.openfoam.org/features/extending-libraries.php
日本語でも説明しているサイトがありました。
http://www.idaj.co.jp/sp_iconcfd/02/02.html
この仕組みについては,OpenFOAM Wikiに詳しい解説ページがあります。ただし,このページは,この仕組みをカスタムクラスに実装したい人向けでしょう。コードを読んでいるときに感じる理解しにくさには,触れていないと感じます。
http://openfoamwiki.net/index.php/OpenFOAM_guide/runTimeSelection_mechanism
勉強会@富山で開催した「OpenFOAM(R)ソースコード入門pt1 熱伝導方程式の解法から有限体積法の実装について考える」の後編資料では,こっそりと説明したつもりです。ddtSchemes からEulerDdtScheme.Cにつながる部分です。混乱を避けるために,あっさりとしか説明していません。
コードを読む(だけ)の立場から説明する資料を作りたい。あるいは,勉強中に学生さんに作って欲しい,です。
これについては,デバッガを使って,実行状態を追いかける方が,てっとりばやいとも思います。
ということで,netBeans を使ってデバッグする方法の解説書類を作成中です。近日中に公開することを目指します。
コードリーディングで苦戦している理由の1つが,様々な物理モデルの使い分けを容易にしてくれている仕組み「runTime Selection」だと感じました。前から気付いてはいたのですが。
ソルバを利用する時には,とても便利な機能です。しかし,ソルバーのコードを読んでいるときには,使いたい物理モデルにたどり着かないといった事態を引き起こします。
run-time セレクションについては,OpenFOAMの特徴欄にも記載があります。
http://www.openfoam.org/features/extending-libraries.php
Run-time selection
At run-time, OpenFOAM automatically creates lists of names of models and methods defined in libraries, from which the user can make a selection. For example, when a turbulence model library is used, a list of turbulence models is constructed at run-time, from which the user choose a model within one of the case input files. When a library is extended or a new one added, the new models/methods are automatically picked up by the run-time selection mechanism, so are available to the user.
日本語でも説明しているサイトがありました。
http://www.idaj.co.jp/sp_iconcfd/02/02.html
ランタイムセレクションうまく説明されています。が,超初心者に対しては,さらなく混乱を招くかもしれません。
OpenFOAMは、アプリケーションレイヤーのコードを書きやすくするため、また多くの物理モデルなどを簡単に実装するため、Strategy デザインパターンライクな実装を行っています。これをランタイムセレクションと呼びます。
以下にRANS系非圧縮乱流モデルのクラス図を示します。乱流モデルは多種多様にあり、それに合わせてアプリケーションレイヤーのコードを書き換えるのは効率的ではありません。
Strategyパターンを使って乱流モデルを実装し、アプリケーションレイヤーのコードが乱流モデルを利用するときに変わったとしても、コードを変更する必要がない設計になっています。
この仕組みについては,OpenFOAM Wikiに詳しい解説ページがあります。ただし,このページは,この仕組みをカスタムクラスに実装したい人向けでしょう。コードを読んでいるときに感じる理解しにくさには,触れていないと感じます。
http://openfoamwiki.net/index.php/OpenFOAM_guide/runTimeSelection_mechanism
勉強会@富山で開催した「OpenFOAM(R)ソースコード入門pt1 熱伝導方程式の解法から有限体積法の実装について考える」の後編資料では,こっそりと説明したつもりです。ddtSchemes からEulerDdtScheme.Cにつながる部分です。混乱を避けるために,あっさりとしか説明していません。
コードを読む(だけ)の立場から説明する資料を作りたい。あるいは,勉強中に学生さんに作って欲しい,です。
これについては,デバッガを使って,実行状態を追いかける方が,てっとりばやいとも思います。
ということで,netBeans を使ってデバッグする方法の解説書類を作成中です。近日中に公開することを目指します。
0
OpenFOAMのpos(),neg()関数と,その組み合わせによる式の切り替え
OpenFOAM のコード解読中のメンバーから,pos() と neg() 関数について質問がありました。メモしておきます。
両関数は, src/OpenFOAM/primitives/Scalar/Scalar.H で定義されています。
https://github.com/OpenFOAM/OpenFOAM-2.3.x/blob/master/src/OpenFOAM/primitives/Scalar/Scalar.H
プログラマーズガイド の1.4.1 Algebraic tensor operations in OpenFOAM にも説明が記載されています。
pos関数では,引数となるスカラー値が0以上であれば1が戻り,そうでなければ0が戻ります。つまり, s>=0 なら pos(s) =1,s<0 なら pos(s) =0 です。
同様に,neg関数では,引数となるスカラー値が0より小さければ1が戻り,そうでなければ0が戻ります。つまり, s<0 なら neg(s) =1,s>=0 なら neg(s) =0 です。
この両者を組み合わせて,スカラー値 s の値によって式を切り替えるような使い方がされています。
例えば,
A = pos( s - 0.5 ) * functionPos + neg( s - 0.5 ) * functionNeg
のようなものです。
この場合,s>=0.5 であれば,第1項の A = functionPos となります。
s<0.5 では,A = functionNeg です。
両関数は, src/OpenFOAM/primitives/Scalar/Scalar.H で定義されています。
https://github.com/OpenFOAM/OpenFOAM-2.3.x/blob/master/src/OpenFOAM/primitives/Scalar/Scalar.H
inline Scalar pos(const Scalar s)
{
return(s>=0)?1:0;
}
inline Scalar neg(const Scalar s)
{
return(s<0)?1:0;
}
プログラマーズガイド の1.4.1 Algebraic tensor operations in OpenFOAM にも説明が記載されています。
pos関数では,引数となるスカラー値が0以上であれば1が戻り,そうでなければ0が戻ります。つまり, s>=0 なら pos(s) =1,s<0 なら pos(s) =0 です。
同様に,neg関数では,引数となるスカラー値が0より小さければ1が戻り,そうでなければ0が戻ります。つまり, s<0 なら neg(s) =1,s>=0 なら neg(s) =0 です。
この両者を組み合わせて,スカラー値 s の値によって式を切り替えるような使い方がされています。
例えば,
A = pos( s - 0.5 ) * functionPos + neg( s - 0.5 ) * functionNeg
のようなものです。
この場合,s>=0.5 であれば,第1項の A = functionPos となります。
s<0.5 では,A = functionNeg です。
0
blockMeshDict の様子を可視化できる GUI
pyFoam の機能の一つに、blockMeshDict の内容を可視化できる GUI を表示するものがあります。 pyFoamDisplayBlockMesh.py です。pyFoamをインストールすると入っています。ただし、python-vtkパッケージを入れておかないと、動かないかも。
表示の一例です。複雑なblockMeshDictの構造が理解しやすくなります。基本的には、表示するだけで、直接編集することはできません。

5月10日開催 オープンCAE勉強会@富山 のミニ講習会でも,紹介します。
講習会用仮想マシンにはpyFoamをインストール済みです。
表示の一例です。複雑なblockMeshDictの構造が理解しやすくなります。基本的には、表示するだけで、直接編集することはできません。
5月10日開催 オープンCAE勉強会@富山 のミニ講習会でも,紹介します。
講習会用仮想マシンにはpyFoamをインストール済みです。
0
blockMesh にスムージングを追加した拡張版
OpenFOAM の最も基本的なメッシュ生成ユーティリティ blockMesh を拡張し,スムージング機能を追加したモノが公開されています。
Extend blockMesh with smoothing capability
http://www.etudes-ng.net/notre-savoir-faire/applications/mesh-smoothing
http://www.cfd-online.com/Forums/openfoam-meshing/132628-extend-blockmesh-smoothing-capability.html
OpenFOAM 2.3.x にインストールして,試して見ました。
インストールは,上記サイトに記載の方法で,ほぼOKです。
下に,拡張版と標準版で作成したメッシュの画像を添付します。
確かに,スムーズになっています。
5月10日開催 オープンCAE勉強会@富山 のミニ講習会でも,紹介します。
extBlockMesh でメッシュを作成しました。

同じ設定で,blockMeshだとこうなります。
Extend blockMesh with smoothing capability
http://www.etudes-ng.net/notre-savoir-faire/applications/mesh-smoothing
http://www.cfd-online.com/Forums/openfoam-meshing/132628-extend-blockmesh-smoothing-capability.html
OpenFOAM 2.3.x にインストールして,試して見ました。
インストールは,上記サイトに記載の方法で,ほぼOKです。
下に,拡張版と標準版で作成したメッシュの画像を添付します。
確かに,スムーズになっています。
5月10日開催 オープンCAE勉強会@富山 のミニ講習会でも,紹介します。
extBlockMesh でメッシュを作成しました。
同じ設定で,blockMeshだとこうなります。
0
9
0
3
6
8
7
6
アクセス
富山県立大学へのアクセス方法は,下記サイトをご覧ください。
富山県立大学へのアクセス
最寄り駅は,JR 小杉駅 です。
JR小杉駅南口から徒歩約20分(約2Km),または,
射水市コミュニティバス 「14.小杉駅・太閤山線」に乗車約5分です。
外部リンク:射水市コミュニティバス「14.小杉駅・太閤山線」
<お車>
無料駐車場がご利用いただけます。下記学内マップをご参照ください。
富山県立大学学内マップ
プライバシーポリシー
本サイトでは,Googleによるアクセス解析ツール「Googleアナリティクス」を使用しています。Googleアナリティクスはデータの収集のためにCookieを使用します。データは匿名で収集されており,個人を特定するものではありません。
なお,Cookieを無効にすることで収集を拒否することが出来ます。お使いのブラウザの設定をご確認ください。この規約の詳細は Googleアナリティクスサービス利用規約 や Googleポリシーと規約 をご覧ください。