ofm_dynamic — 動的境界対応ワンステップ流れ写像(修士論文実装)
概要
このリポジトリは、修士論文「One-Step Flow Maps for Real-time Fluid Simulation with Dynamic Boundaries」の研究成果に基づく実装をまとめたものです。元となるLeapfrog Flow Maps(LFM)手法を拡張し、動く境界(移動するオブジェクトや開閉する障害物)を扱えるように設計されています。GPU(CUDA)上で計算を行うことで、実時間性を重視しつつ、流体場の安定性や境界条件の忠実な反映を狙っています。サンプルやソースコード、補助ツールを含み、研究・プロトタイプ開発向けの出発点として有用です。
リポジトリの統計情報
- スター数: 7
- フォーク数: 1
- ウォッチャー数: 7
- コミット数: 30
- ファイル数: 10
- メインの言語: Cuda
主な特徴
- 動的な境界(移動するオブジェクト)を考慮したワンステップ流れ写像(One-Step Flow Maps)手法の実装
- Leapfrog Flow Maps(LFM)を基盤としつつ、境界変化への追従性を改善
- CUDAベースのGPU実装で実時間処理を目指す構成
- 研究目的のコードベースで再現性と実験の容易さを重視
技術的なポイント
本プロジェクトの中心は「流れ写像(flow map)」の効率的な構築と更新にあります。流れ写像はある時刻の流体場位置を別時刻へ写像するマッピングで、時間発展やアドベクションを扱う際に重要です。Leapfrog Flow Maps(LFM)は時間離散化における安定性と精度を両立する手法ですが、本実装では境界が時間的に変化するケースを扱うために以下の点が工夫されています。
- 動的境界の取り扱い:移動物体や開閉する障害物による境界条件の変化は、従来の事前計算型のフローマップでは不整合を生みやすい。ここでは境界に対する追跡・再投影(reprojection)や、境界による流線の切断・再接続を考慮する処理を導入し、マップ更新をオンラインで行います。
- GPU最適化:大量のセル/パーティクルを同時に処理するためCUDAカーネルを用いて並列化している。メモリレイアウト(連続的な配列、coalescedアクセス)や共有メモリの活用、分岐回避により性能を確保します。さらに、フロー写像更新は局所的なデータ依存性が強いため、原子演算やレデュース操作の使用や、境界処理での条件分岐を最小化する工夫が重要です。
- 数値手法と安定化:時間積分にはleapfrog系の手法や半ラグランジアン(semi-Lagrangian)的な考えを取り入れ、CFL条件下での安定性を保ちます。動的境界に対しては境界近傍でのリサンプリングや補正(velocity extrapolation、pressure projectionの調整)を行うことで非物理的な侵入や数値的不安定を低減します。
- 再現性と評価:学術目的の実装であるため、実験の再現性を重視したパラメータ出力やログ、実行時オプションを備えている想定で、異なるケース(速度場、境界運動)での比較が容易です。
実装自体は研究コードの性格が強く、プロダクション向けの高度な抽象化よりもアルゴリズムの直接的な表現と性能評価を優先しています。GPU実装のため、算術精度や並列アルゴリズムのトレードオフ(メモリ使用量 vs 計算量)が設計上の主要関心事です。
プロジェクトの構成
主要なファイルとディレクトリ:
- .clang-format: file
- .gitignore: file
- .gitmodules: file
- LICENSE: file
- README.md: file
…他 5 ファイル
まとめ
研究実装として動的境界を扱うリアルタイム流体シミュレーションをGPU上で実験できる有益なリポジトリ。
リポジトリ情報:
- 名前: ofm_dynamic
- 説明: Master’s thesis
- スター数: 7
- 言語: Cuda
- URL: https://github.com/Mr-222/ofm_dynamic
- オーナー: Mr-222
- アバター: https://avatars.githubusercontent.com/u/58129388?v=4
READMEの抜粋:
ONE-STEP FLOW MAPS FOR REAL-TIME FLUID SIMULATION WITH DYNAMIC BOUNDARIES
This repository contains the source code and resources for my master’s thesis, One-Step Flow Maps for Real-time Fluid Simulation with Dynamic Boundaries, completed at the Georgia Institute of Technology.
The project builds upon the Leapfrog Flow Maps (LFM) method for real-time fluid simulation, originally proposed by Sun et al. (available here). This implementation …