Submit Search
Upload
OpenFOAMのDEM解析のpatchInteractionModelクラスの解読
•
2 likes
•
4,746 views
T
takuyayamamoto1800
Follow
オープンソースであるOpenFOAMのDEM(Lagrangian)計算に使用される境界条件(patchInteractionModel)のクラス解読
Read less
Read more
Technology
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 29
Download now
Download to read offline
Recommended
OpenFOAMにおけるDEM計算の力モデルの解読
OpenFOAMにおけるDEM計算の力モデルの解読
takuyayamamoto1800
OpenFOAMにおけるDEM計算の衝突モデルの解読
OpenFOAMにおけるDEM計算の衝突モデルの解読
takuyayamamoto1800
OpenFOAMによる混相流シミュレーション入門
OpenFOAMによる混相流シミュレーション入門
takuyayamamoto1800
OpenFOAM の境界条件をまとめよう!
OpenFOAM の境界条件をまとめよう!
Fumiya Nozaki
Boundary Conditions in OpenFOAM
Boundary Conditions in OpenFOAM
Fumiya Nozaki
OpenFOAM -空間の離散化と係数行列の取り扱い(Spatial Discretization and Coefficient Matrix)-
OpenFOAM -空間の離散化と係数行列の取り扱い(Spatial Discretization and Coefficient Matrix)-
Fumiya Nozaki
OpenFOAMによる気液2相流解析の基礎と設定例
OpenFOAMによる気液2相流解析の基礎と設定例
takuyayamamoto1800
OpenFoamの混相流solver interFoamのパラメータによる解の変化
OpenFoamの混相流solver interFoamのパラメータによる解の変化
takuyayamamoto1800
Recommended
OpenFOAMにおけるDEM計算の力モデルの解読
OpenFOAMにおけるDEM計算の力モデルの解読
takuyayamamoto1800
OpenFOAMにおけるDEM計算の衝突モデルの解読
OpenFOAMにおけるDEM計算の衝突モデルの解読
takuyayamamoto1800
OpenFOAMによる混相流シミュレーション入門
OpenFOAMによる混相流シミュレーション入門
takuyayamamoto1800
OpenFOAM の境界条件をまとめよう!
OpenFOAM の境界条件をまとめよう!
Fumiya Nozaki
Boundary Conditions in OpenFOAM
Boundary Conditions in OpenFOAM
Fumiya Nozaki
OpenFOAM -空間の離散化と係数行列の取り扱い(Spatial Discretization and Coefficient Matrix)-
OpenFOAM -空間の離散化と係数行列の取り扱い(Spatial Discretization and Coefficient Matrix)-
Fumiya Nozaki
OpenFOAMによる気液2相流解析の基礎と設定例
OpenFOAMによる気液2相流解析の基礎と設定例
takuyayamamoto1800
OpenFoamの混相流solver interFoamのパラメータによる解の変化
OpenFoamの混相流solver interFoamのパラメータによる解の変化
takuyayamamoto1800
rhoCentralFoam in OpenFOAM
rhoCentralFoam in OpenFOAM
Daisuke Matsubara
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
Fumiya Nozaki
OpenFOAM v2.3.0のチュートリアル 『oscillatingInletACMI2D』
OpenFOAM v2.3.0のチュートリアル 『oscillatingInletACMI2D』
Fumiya Nozaki
OpenFOAMにおける混相流計算
OpenFOAMにおける混相流計算
takuyayamamoto1800
OpenFOAMの壁関数
OpenFOAMの壁関数
Fumiya Nozaki
Turbulence Models in OpenFOAM
Turbulence Models in OpenFOAM
Fumiya Nozaki
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
Fumiya Nozaki
OpenFOAM の Function Object 機能について
OpenFOAM の Function Object 機能について
Fumiya Nozaki
OpenFOAMにおける相変化解析
OpenFOAMにおける相変化解析
takuyayamamoto1800
OpenFOAMのinterfoamによる誤差
OpenFOAMのinterfoamによる誤差
takuyayamamoto1800
interFoamの検証
interFoamの検証
takuyayamamoto1800
About multiphaseEulerFoam
About multiphaseEulerFoam
守淑 田村
「輸送方程式のソース項の実装 Ver-2.1の新機能Field sources」OpenFOAM勉強会 for beginner@関東,2012年04月21日
「輸送方程式のソース項の実装 Ver-2.1の新機能Field sources」OpenFOAM勉強会 for beginner@関東,2012年04月21日
Masashi Imano
OpenFOAMの混相流用改造solver(S-CLSVOF法)の設定・使い方
OpenFOAMの混相流用改造solver(S-CLSVOF法)の設定・使い方
takuyayamamoto1800
Dynamic Mesh in OpenFOAM
Dynamic Mesh in OpenFOAM
Fumiya Nozaki
OpenFOAMのチュートリアルを作ってみた#1 『くさび油膜効果の計算』
OpenFOAMのチュートリアルを作ってみた#1 『くさび油膜効果の計算』
Fumiya Nozaki
OpenFOAMソルバの実行時ベイズ最適化
OpenFOAMソルバの実行時ベイズ最適化
Masashi Imano
OpenFOAM LES乱流モデルカスタマイズ
OpenFOAM LES乱流モデルカスタマイズ
mmer547
FSI analysis with preCICE (OpenFOAM and CalculiX)
FSI analysis with preCICE (OpenFOAM and CalculiX)
守淑 田村
無償のモデリングソフトウェアCAESESを使ってみた
無償のモデリングソフトウェアCAESESを使ってみた
Fumiya Nozaki
OpenCAEシンポジウム発表資料-OpenFOAMのVOF法における計算時間、計算誤差最小条件の探索
OpenCAEシンポジウム発表資料-OpenFOAMのVOF法における計算時間、計算誤差最小条件の探索
takuyayamamoto1800
OpenFOAM benchmark for EPYC server: cavity medium
OpenFOAM benchmark for EPYC server: cavity medium
takuyayamamoto1800
More Related Content
What's hot
rhoCentralFoam in OpenFOAM
rhoCentralFoam in OpenFOAM
Daisuke Matsubara
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
Fumiya Nozaki
OpenFOAM v2.3.0のチュートリアル 『oscillatingInletACMI2D』
OpenFOAM v2.3.0のチュートリアル 『oscillatingInletACMI2D』
Fumiya Nozaki
OpenFOAMにおける混相流計算
OpenFOAMにおける混相流計算
takuyayamamoto1800
OpenFOAMの壁関数
OpenFOAMの壁関数
Fumiya Nozaki
Turbulence Models in OpenFOAM
Turbulence Models in OpenFOAM
Fumiya Nozaki
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
Fumiya Nozaki
OpenFOAM の Function Object 機能について
OpenFOAM の Function Object 機能について
Fumiya Nozaki
OpenFOAMにおける相変化解析
OpenFOAMにおける相変化解析
takuyayamamoto1800
OpenFOAMのinterfoamによる誤差
OpenFOAMのinterfoamによる誤差
takuyayamamoto1800
interFoamの検証
interFoamの検証
takuyayamamoto1800
About multiphaseEulerFoam
About multiphaseEulerFoam
守淑 田村
「輸送方程式のソース項の実装 Ver-2.1の新機能Field sources」OpenFOAM勉強会 for beginner@関東,2012年04月21日
「輸送方程式のソース項の実装 Ver-2.1の新機能Field sources」OpenFOAM勉強会 for beginner@関東,2012年04月21日
Masashi Imano
OpenFOAMの混相流用改造solver(S-CLSVOF法)の設定・使い方
OpenFOAMの混相流用改造solver(S-CLSVOF法)の設定・使い方
takuyayamamoto1800
Dynamic Mesh in OpenFOAM
Dynamic Mesh in OpenFOAM
Fumiya Nozaki
OpenFOAMのチュートリアルを作ってみた#1 『くさび油膜効果の計算』
OpenFOAMのチュートリアルを作ってみた#1 『くさび油膜効果の計算』
Fumiya Nozaki
OpenFOAMソルバの実行時ベイズ最適化
OpenFOAMソルバの実行時ベイズ最適化
Masashi Imano
OpenFOAM LES乱流モデルカスタマイズ
OpenFOAM LES乱流モデルカスタマイズ
mmer547
FSI analysis with preCICE (OpenFOAM and CalculiX)
FSI analysis with preCICE (OpenFOAM and CalculiX)
守淑 田村
無償のモデリングソフトウェアCAESESを使ってみた
無償のモデリングソフトウェアCAESESを使ってみた
Fumiya Nozaki
What's hot
(20)
rhoCentralFoam in OpenFOAM
rhoCentralFoam in OpenFOAM
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
OpenFOAM v2.3.0のチュートリアル 『oscillatingInletACMI2D』
OpenFOAM v2.3.0のチュートリアル 『oscillatingInletACMI2D』
OpenFOAMにおける混相流計算
OpenFOAMにおける混相流計算
OpenFOAMの壁関数
OpenFOAMの壁関数
Turbulence Models in OpenFOAM
Turbulence Models in OpenFOAM
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
OpenFOAM の Function Object 機能について
OpenFOAM の Function Object 機能について
OpenFOAMにおける相変化解析
OpenFOAMにおける相変化解析
OpenFOAMのinterfoamによる誤差
OpenFOAMのinterfoamによる誤差
interFoamの検証
interFoamの検証
About multiphaseEulerFoam
About multiphaseEulerFoam
「輸送方程式のソース項の実装 Ver-2.1の新機能Field sources」OpenFOAM勉強会 for beginner@関東,2012年04月21日
「輸送方程式のソース項の実装 Ver-2.1の新機能Field sources」OpenFOAM勉強会 for beginner@関東,2012年04月21日
OpenFOAMの混相流用改造solver(S-CLSVOF法)の設定・使い方
OpenFOAMの混相流用改造solver(S-CLSVOF法)の設定・使い方
Dynamic Mesh in OpenFOAM
Dynamic Mesh in OpenFOAM
OpenFOAMのチュートリアルを作ってみた#1 『くさび油膜効果の計算』
OpenFOAMのチュートリアルを作ってみた#1 『くさび油膜効果の計算』
OpenFOAMソルバの実行時ベイズ最適化
OpenFOAMソルバの実行時ベイズ最適化
OpenFOAM LES乱流モデルカスタマイズ
OpenFOAM LES乱流モデルカスタマイズ
FSI analysis with preCICE (OpenFOAM and CalculiX)
FSI analysis with preCICE (OpenFOAM and CalculiX)
無償のモデリングソフトウェアCAESESを使ってみた
無償のモデリングソフトウェアCAESESを使ってみた
More from takuyayamamoto1800
OpenCAEシンポジウム発表資料-OpenFOAMのVOF法における計算時間、計算誤差最小条件の探索
OpenCAEシンポジウム発表資料-OpenFOAMのVOF法における計算時間、計算誤差最小条件の探索
takuyayamamoto1800
OpenFOAM benchmark for EPYC server: cavity medium
OpenFOAM benchmark for EPYC server: cavity medium
takuyayamamoto1800
OpenFOAM benchmark for EPYC server cavity flow small
OpenFOAM benchmark for EPYC server cavity flow small
takuyayamamoto1800
OpenFOAM benchmark for EPYC server -Influence of coarsestLevelCorr in GAMG so...
OpenFOAM benchmark for EPYC server -Influence of coarsestLevelCorr in GAMG so...
takuyayamamoto1800
How to get contour surface position by openfoam
How to get contour surface position by openfoam
takuyayamamoto1800
OpenFOAMを用いた計算後の等高面データの取得方法
OpenFOAMを用いた計算後の等高面データの取得方法
takuyayamamoto1800
ParaviewでのParticle Tracerを用いた可視化
ParaviewでのParticle Tracerを用いた可視化
takuyayamamoto1800
Estimation of numerical schemes in heat convection by OpenFOAM
Estimation of numerical schemes in heat convection by OpenFOAM
takuyayamamoto1800
Paraviewの等高面を綺麗に出力する
Paraviewの等高面を綺麗に出力する
takuyayamamoto1800
熱流体解析における離散スキームの評価
熱流体解析における離散スキームの評価
takuyayamamoto1800
Setting and Usage of OpenFOAM multiphase solver (S-CLSVOF)
Setting and Usage of OpenFOAM multiphase solver (S-CLSVOF)
takuyayamamoto1800
OpenFOAMに実装したS-CLSVOF法検証(静止気泡のLaplace圧)
OpenFOAMに実装したS-CLSVOF法検証(静止気泡のLaplace圧)
takuyayamamoto1800
More from takuyayamamoto1800
(12)
OpenCAEシンポジウム発表資料-OpenFOAMのVOF法における計算時間、計算誤差最小条件の探索
OpenCAEシンポジウム発表資料-OpenFOAMのVOF法における計算時間、計算誤差最小条件の探索
OpenFOAM benchmark for EPYC server: cavity medium
OpenFOAM benchmark for EPYC server: cavity medium
OpenFOAM benchmark for EPYC server cavity flow small
OpenFOAM benchmark for EPYC server cavity flow small
OpenFOAM benchmark for EPYC server -Influence of coarsestLevelCorr in GAMG so...
OpenFOAM benchmark for EPYC server -Influence of coarsestLevelCorr in GAMG so...
How to get contour surface position by openfoam
How to get contour surface position by openfoam
OpenFOAMを用いた計算後の等高面データの取得方法
OpenFOAMを用いた計算後の等高面データの取得方法
ParaviewでのParticle Tracerを用いた可視化
ParaviewでのParticle Tracerを用いた可視化
Estimation of numerical schemes in heat convection by OpenFOAM
Estimation of numerical schemes in heat convection by OpenFOAM
Paraviewの等高面を綺麗に出力する
Paraviewの等高面を綺麗に出力する
熱流体解析における離散スキームの評価
熱流体解析における離散スキームの評価
Setting and Usage of OpenFOAM multiphase solver (S-CLSVOF)
Setting and Usage of OpenFOAM multiphase solver (S-CLSVOF)
OpenFOAMに実装したS-CLSVOF法検証(静止気泡のLaplace圧)
OpenFOAMに実装したS-CLSVOF法検証(静止気泡のLaplace圧)
Recently uploaded
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
Recently uploaded
(8)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
OpenFOAMのDEM解析のpatchInteractionModelクラスの解読
1.
OpenFOAMのDEM解析の patchInteractionModel クラスの解読 ⼤阪⼤学⼤学院基礎⼯学研究科 博⼠3年 ⼭本卓也
2.
OpenFOAMでのDEM OpenFOAM-2.0.0よりDEM解析が実装された。 2011/6/16 OpenFOAM-2.0.0でDEM(Discrete Element Method)の機能追加
(Lagrangianライブラリが追加) 2014/2/17 OpenFOAM-2.3.0でDPM(Discrete ParEcle Modeling)が実装 MP-PIC(MulEphase ParEcle-in-Cell)法が実装 Release History OpenFOAMのDEMについてあまりdocumentがないので調査する。 粒子に働く力のモデルについて
3.
PatchInterac9onModel $FOAM_SRC/lagrangian/intermediate/submodels/KinemaEc/PatchInteracEonModel このフォルダ中にPatchInteracEonのモデルが書かれている $tree -L 1 . ├── LocalInteracEon ├── MulEInteracEon ├── NoInteracEon ├── PatchInteracEonModel ├── Rebound └── StandardWallInteracEon クラスは6つ 基底クラスは PatchInteracEonModelクラス 派生クラスは LocalInteracEonクラス、MulEInteracEonクラス、 NoInteracEonクラス、Reboundクラス、 StandardWallInteracEonクラス 基底クラスはPatchInteracEonModelクラスで、その他のクラスは PatchInteracEonModelクラスを継承している Ver. 2.3.x
4.
$FOAM_SRC/lagrangian/intermediate/submodels/KinemaEc/PatchInteracEonModel クラスの継承 class derive : public base baseの基底クラスをderiveの派生ク ラスで継承する。 「C++の絵本」 (株)アンク 翔泳社 class LocalInteracEon : public PatchInteracEonModel<CloudType> LocalInterac9on.H class MulEInteracEon : public PatchInteracEonModel<CloudType> Mul9Interac9on.H class NoInteracEon : public PatchInteracEonModel<CloudType> NoInterac9on.H class Rebound : public PatchInteracEonModel<CloudType> Rebound.H class StandardWallInteracEon : public PatchInteracEonModel<CloudType> StandardWallInterac9on.H PatchInterac9onModel
5.
$FOAM_SRC/lagrangian/intermediate/submodels/KinemaEc/PatchInteracEonModel クラスの継承 class derive : public base baseの基底クラスをderiveの派生ク ラスで継承する。 「C++の絵本」 (株)アンク 翔泳社 class PatchInteracEonModel : public CloudSubModelBase<CloudType> PatchInterac9onModel.H PatchInteracEonModelクラス CloudSubModelBase<CloudType>クラス LocalInteracEonクラス MulEInteracEonクラス NoInteracEonクラス Reboundクラス StandardWallInteracEonクラス PatchInterac9onModel
6.
PatchInterac9onModelの クラス構造 PatchInteracEonModelクラス UName メンバ クラス interacEonTypeToWord wordToInteracEonType correct info virtual bool correct virtual void info(Ostream& os); virtual: 仮想関数として指定 (派生クラスで再定義した際に派生クラス側 のメンバ関数が呼ばれるようにするため) 「C++の絵本」 (株)アンク 翔泳社 interacEonTypeToWord wordToInteracEonType PatchInteracEonModelではcorrect, infoは 初期化している。(値として0 (false)を代入 する。つまり、派生クラスにおいてオー バーライドすること前提にしている。) 相互作用の型から名前に変換するクラス 名前から相互作用の型に変換するクラス
7.
LocalInterac9onのクラス構造 PatchInteracEonModelクラス UName メンバ クラス interacEonTypeToWord wordToInteracEonType correct info LocalInteracEonクラス 継承 継承したメンバ
オーバーライド したメンバ 派生クラス上で 定義するメンバ UName interacEonTypeToWord wordToInteracEonType correct info massEscape massSEck LocalInterac9onはmassEscape, massS9ckのメンバを定義 オーバーライドしてcorrect, infoを設定
8.
Mul9Interac9onのクラス構造 PatchInteracEonModelクラス UName メンバ クラス interacEonTypeToWord wordToInteracEonType correct info MulEInteracEonクラス 継承 継承したメンバ
オーバーライド したメンバ 派生クラス上で 定義するメンバ UName interacEonTypeToWord wordToInteracEonType correct info read Mul9Interac9onはread, ac9veのメンバ を定義 オーバーライドしてcorrectを設定 acEve
9.
NoInterac9onのクラス構造 PatchInteracEonModelクラス UName メンバ クラス interacEonTypeToWord wordToInteracEonType correct info NoInteracEonクラス 継承 継承したメンバ
オーバーライド したメンバ 派生クラス上で 定義するメンバ UName interacEonTypeToWord wordToInteracEonType correct info Mul9Interac9onはac9veのメンバを定義 オーバーライドしてcorrectを設定 acEve
10.
Reboundのクラス構造 PatchInteracEonModelクラス UName メンバ クラス interacEonTypeToWord wordToInteracEonType correct info Reboundクラス 継承 継承したメンバ
オーバーライド したメンバ 派生クラス上で 定義するメンバ UName interacEonTypeToWord wordToInteracEonType correct info オーバーライドしてcorrectを設定
11.
StandardWallInterac9onのク ラス構造 PatchInteracEonModelクラス UName メンバ クラス interacEonTypeToWord wordToInteracEonType correct info StandardWallInteracEonクラス 継承 継承したメンバ
オーバーライド したメンバ 派生クラス上で 定義するメンバ UName interacEonTypeToWord wordToInteracEonType correct info オーバーライドしてcorrect, infoを設定
12.
NoInterac9onのクラス構造 NoInteracEonクラス 継承したメンバ オーバーライド したメンバ 派生クラス上で 定義するメンバ UName interacEonTypeToWord wordToInteracEonType
correct info acEve 何を行っているか? 以下のクラスを見ていく • correct • acEve
13.
NoInterac9on (NoInterac9on.C) Correctクラス return false; falseを返し、何も行わない ac9veクラス return false; falseを返し、何も行わない
14.
Rebound Reboundクラス 継承したメンバ オーバーライド したメンバ 派生クラス上で 定義するメンバ UName interacEonTypeToWord wordToInteracEonType
correct info 何を行っているか? 以下のクラスを見ていく • correct
15.
Rebound (Rebound.C) vector& U = p.U(); 粒子速度データの設定 keepParEcle = true; p.acEve() = true; 初期変数の設定 vector nw; vector Up; 新変数の作成 this->owner().patchData(p, pp, trackFracEon, tetIs, nw, Up); patchDataよりデータ取得(patchDataはkinemaEcCloudで定義) thisポインタ(this->) this->記述したオブジェクトそのも のを指定 自分自身のオブジェクトをメンバ 関数から非メンバ関数に渡す際に 使用する this->はicoUncoupledKinemaEcParcelFoamではオブジェクト名はkinemaEcCloud (元々のクラス名はbasicKinemaEcCollidingCloud) nw(境界の法線方向単位ベクトル), Up(境界での速度)を引数として返す。 詳しくは KinemaEcCloud のスライド Correctクラス
16.
Rebound (Rebound.C) U -= Up; 粒子速度データから境界速度データを引き、相対速度を計算する 境界に対する法線方向の相対速度を計算する scalar Un = U & nw; 境界に衝突後の相対速度を計算する if (Un > 0.0) { U -= UFactor_*2.0*Un*nw; } un+1 = un − 2cun 相対速度から粒子速度へ戻す U += Up; UFactor = 1で完全弾性衝突 UFactor < 1で減衰する衝突 UFactor > 1で速度が増大する衝突(ありえない) Correctクラス
17.
StandardWallInterac9on StandardWallInteracEonクラス 継承したメンバ オーバーライド したメンバ 派生クラス上で 定義するメンバ UName interacEonTypeToWord wordToInteracEonType
correct info 何を行っているか? 以下のクラスを見ていく • correct • info
18.
StandardWallInterac9on (StandardWallInterac9on.C) vector& U = p.U(); bool& acEve = p.acEve(); 粒子データの設定 Correctクラス 壁面境界なら if (isA<wallPolyPatch>(pp)) { 場合分けして処理 switch (interacEonType_) { case PatchInteracEonModel<CloudType>::itEscape: {... } case PatchInteracEonModel<CloudType>::itSEck: {... } case PatchInteracEonModel<CloudType>::itRebound: {... Escape, SEck, Reboundの場合に分け、 そのモデルを変更
19.
StandardWallInterac9on (StandardWallInterac9on.C) keepParEcle = false; acEve = false; U = vector::zero; nEscape_++; Escapeでの処理 Correctクラス SEckでの処理 keepParEcle = true; acEve = false; U = vector::zero; nSEck_++; Reboundでの処理 keepParEcle = true; acEve = true; vector nw; vector Up; this->owner().patchData(p, pp, trackFracEon, tetIs, nw, Up); U -= Up; scalar Un = U & nw; vector Ut = U - Un*nw; if (Un > 0) { U -= (1.0 + e_)*Un*nw; } U -= mu_*Ut; U += Up; Reboundクラスのcorrectと処理は同じ 粒子を消し、 速度を0にし、 Escape数を足 し合わせる 速度を0にし、 SEck数を足し 合わせる acEve = falseで粒子を動かさなく なる。 (粒子による境界を作るときには 使用できる)
20.
StandardWallInterac9on (StandardWallInterac9on.C) label npe0 = this->template getBaseProperty<scalar>("nEscape"); label npe = npe0 + returnReduce(nEscape_, sumOp<label>()); scalar mpe0 = this->template getBaseProperty<scalar>("massEscape"); scalar mpe = mpe0 + returnReduce(massEscape_, sumOp<scalar>()); label nps0 = this->template getBaseProperty<scalar>("nSEck"); label nps = nps0 + returnReduce(nSEck_, sumOp<label>()); scalar mps0 = this->template getBaseProperty<scalar>("massSEck"); scalar mps = mps0 + returnReduce(massSEck_, sumOp<scalar>()); ラベル,変数の設定 infoクラス nEscape massEscape nSEck massSEck これらの設定 (Escapeの数、質量 SEckの数、質量)
21.
LocalInterac9on LocalInteracEonクラス 継承したメンバ オーバーライド したメンバ 派生クラス上で 定義するメンバ UName interacEonTypeToWord wordToInteracEonType
correct info massEscape massSEck 何を行っているか? 以下のクラスを見ていく • correct
22.
LocalInterac9on (LocalInterac9on.C) Correctクラス label patchI = patchData_.applyToPatch(pp.index()); patchのグループを取得 粒子の情報を取得 vector& U = p.U(); bool& acEve = p.acEve(); applyToPatch()は patchInteracEonDataList.C 中で定義 相互作用の型を取得 typename PatchInteracEonModel<CloudType>::interacEonType it = this->wordToInteracEonType ( patchData_[patchI].interacEonTypeName() ); 相互作用の型による分岐 switch (it) {
23.
LocalInterac9on (LocalInterac9on.C) Correctクラス case PatchInteracEonModel<CloudType>::itEscape: {... } case PatchInteracEonModel<CloudType>::itSEck: {... } case PatchInteracEonModel<CloudType>::itRebound: {... } Escape, SEck, Reboundの型ごとに定義 Escape, SEck, Reboundで行うことはstandardWallInteracEonの場合と同じ
24.
Mul9Interac9on MulEInteracEonクラス 継承したメンバ オーバーライド したメンバ 派生クラス上で 定義するメンバ UName interacEonTypeToWord wordToInteracEonType
correct info read acEve 何を行っているか? 以下のクラスを見ていく • correct • read • acEve
25.
Mul9Interac9on (Mul9Interac9on.C) Correctクラス label origFacei = p.face(); label patchi = pp.index(); 粒子とpatchの情報を取得 interacted変数を初期化 bool interacted = false; forAll(models_, i) { ... } 各Patchでの(複数)モデルに対してループ この後、coincidentBaffleInteracEon用等に実装しているが、 coincidentBaffleInteracEonのクラスがない? 実際にはまだMulEInteracEonモデルは使用できない?
26.
衝突時のモデル(Rebound) Reboundでは面(patch) に衝突した後、反発し た速度を返すモデル UFactor(図中C)の係数 で反発後の速度を変 更できる
27.
衝突時のモデル(S9ck) SEckでは面(patch)に衝 突した後、粒子速度を 0にするモデル 粒子は存在したままに する
28.
衝突時のモデル(Escape) Escapeでは面(patch)に 衝突した後、粒子を消 去するモデル 流出口等で使用する
29.
まとめ Patch InteracEon Modelあり Patch InteracEon Modelなし LocalInteracEonクラス MulEInteracEonクラス NoInteracEonクラス Reboundクラス StandardWallInteracEonクラス • Patchごとの定義 • 一括定義 Reboundモデル SEckモデル Escapeモデル Reboundモデル SEckモデル Escapeモデル MulEInteracEonは複 数モデルを定義可 (使用出来るかまで は解読できず) LocalInteracEonは patchごとにモデルを 変更できる 境界が壁(wall)なら
Download now