OpenFOAM関連情報:公開
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
1
2
0
9
0
5
7
2
アクセス
富山県立大学へのアクセス方法は,下記サイトをご覧ください。
富山県立大学へのアクセス
最寄り駅は,JR 小杉駅 です。
JR小杉駅南口から徒歩約20分(約2Km),または,
射水市コミュニティバス 「14.小杉駅・太閤山線」に乗車約5分です。
外部リンク:射水市コミュニティバス「14.小杉駅・太閤山線」
<お車>
無料駐車場がご利用いただけます。下記学内マップをご参照ください。
富山県立大学学内マップ
プライバシーポリシー
本サイトでは,Googleによるアクセス解析ツール「Googleアナリティクス」を使用しています。Googleアナリティクスはデータの収集のためにCookieを使用します。データは匿名で収集されており,個人を特定するものではありません。
なお,Cookieを無効にすることで収集を拒否することが出来ます。お使いのブラウザの設定をご確認ください。この規約の詳細は Googleアナリティクスサービス利用規約 や Googleポリシーと規約 をご覧ください。