QQCCMMVVGGTT
4669 お知恵を拝借させてください。

機体表面の境界層内の三次元流れを調べるためにつかえるCFDコード(CまたはFortran)でよいものがないか探しています。

主な関心事は巡航時の摩擦抵抗を減らすため、機体全体(翼+胴体+その他)の形を直接設計することにあります。

PowerMac G5 一台程度の処理能力を持った最近のデスクトップマシンでつかえる(コンパイル+ラン)物をと考えてるのですが、「こんなのがあるよ」と言うのがありましたら、助言いただけないでしょうか。
Prolog

  1. まず一言言わせて頂ければ、所謂市販のシミュレーションコード(熱流体解析コードというカテゴリになるでしょうか?)を買ってきたところで、簡単には計算精度を上げる事が出来ないことを知るべきです。

    格子計算系の場合、座標がEuler系であってもLagrange系であっても、出来る限り正しい計算精度を導き出しつつ計算時間を減らすといった、実用域での数値計算を行う場合においては、所謂メッシュの切り方、打ち切り誤差の設定及び、自前で作る境界方程式といった運用ノウハウを必要とします。

    また、当然ですがより詳細な保存系もしくは非保存系の気体の状態方程式及び流れの境界条件をユーザー側で定義できなければ、定性的な分析以上は行えないものと考えてください。(それでも10年前から考えれば、かなり楽になりましたがね。Sliding MeshといったRe-Zoning Methodが強力になりましたから)

    で、市販の有名どころで言いますと、FLUENT(色々な物理モデルに適用できるでしょう)、PowerFlow(ダクト内の流れが得意です)、Star-CD(比較的新しい汎用コードですが、クラスタ化対応といった勢いがある)くらいがお勧めでしょうか?また、これを運用する場合はAVSといった可視化ツール、I-DEAS等のCAD/Mesh Generation Toolが必要になります。多分、Star-CDならばマックへのPorting作業をしてくれるかもしれません。Linux版がありますので。

    そして、0からCFD及びCFDモドキを作りたいならば、有名どころで朝倉書店の流体解析(1),(2)がお勧めでしょう。これにはC及びFortranのソースがついていますので、プログラムとしての実装技術が学べます。(当然の事ですが、流体力学の基礎を学んでいることが前提です。ま、とにかく計算して遊んでみたいというレベルならば、ソースの入出力をちょっと弄ってみればそれなりの解が出てきますが(ただし陰解法であり、陽解法で計算させるにはやはり基礎知識が必要です))

    最後にCFDを用いた、プロトタイピングですが、これを0から実用レベルまで持ち込むためには専任の研究者(ポスドク)が3人居たとしても10年近く掛かるでしょう。ま、てきとーに計算し、てきとーなフィードバックループを形成するプロトタイピングならばもっと短期間で行える可能性がありますが。

    真面目に作ろうが不真面目に作ろうが、結局はphysical simulation技法及びそのデータとのフィッティング技法及びフィードバック技法といった、実構造の開発技法を必要とするので、その辺は要注意といった感があります。はっきり言って、既存の形状最適化システムは目眩がするくらいの結果をはき出してくれますので、使ってみた程度以上の結果は得られない事を覚悟してください。

    以上、実務経験者の狭い視点に基づく投稿でした。
    sorya

  2. C/Fortranソース以外の選択肢の事を忘れていました、Matlab、Mathematica、Octave(Matlab互換)、Scilab(微妙にMatlabと互換)、Math-Cadといった数式の直接計算エンジン及び、汎用計算エンジンを用いるという手段もなくはありません。ただし専用のソルバではありませんので、計算速度に難がありますが、実装は非常に楽です。ある程度関数化がなされていますので。
    sorya

  3. バブル時代、世田谷か成城の自宅の相続納税額がえらいことになったので
    家を売った金でクレイ1やらスパコンを買い集めて奥さんを社長にして
    流体計算請け負い会社を設立した東大工学部の教授がいませんでしたか?

    自分の研究室の大学院生にその会社の計算機をバンバン使わせていたとか。
    Navy

  4. それはiCFDのKさん(仮名)ですね。個人的に知っていますよ。Kさんのおかげで日本におけるSuperComputingの幕が上がったとも言えなくもないくらいの、歴史的なキーマンです。今まではチマチマとファイルを開け、計算し、計算結果をファイルに落とすといった、solverの設計とは全く関係のないスキルが絶対的に必要だった時代に、supercomputerによる大容量メモリ、高速計算を背景にした可読性の高い(元式に近い記述)ソース記述法という実装法の提案を数多く行うことにより、その手法をメインストリームに押し上げた人です。

    iCFDではNagareという名のCFD codeを売っていますが、残念ながら非圧縮性流体のみがその適用範囲になります。圧縮性流体まで適用しようとした場合、ユーザーサブルーチンの形でソルバーを組む必要性があるでしょう。
    sorya

  5. soryaくん、ここはキミが自慢話をする場所ではありません。キミの論述は「オレはアレもコレも知っている」という自慢のために非常に分かり難くなっています。キミの書きこみが理解できる人はそんな内容はとっくに承知している人だけですよ。
    気をつけるように。
    どう

  6. >5. ここは回答を書くところです。
    ささき

  7. では、その聡明な頭で何がわかりにくいのかを具体的に述べてくれないかな?#1においては1)シミュレーションコードは万能ではない、2)有名どころの市販コードの紹介、3)自ら学習したい場合に最適な初心者向け教科書、4)プロトタイピングの難しさ、という順序で述べられていることが分かると思いますが。

    >キミの書きこみが理解できる人はそんな内容はとっくに承知している人だけですよ。

    普通、#1のような書き込みがされたときは「投稿された内容が理解できなければ、安易に手を出すべきではない」という忠告として設問者は受け取るものです。もっともばり氏には知識の羅列にしか感じられないし、そもそも私が何を言いたいのかすら何故か全く理解できないみたいですけど。

    特定個人に噛みつくばかり「だけ」は幼稚で芸がないですよ? 私以上の適切な論述というものを聡明なばり氏にお願いしたいところです。ではどうぞ:-D
    sorya

  8. おっと、失礼致しました。"どう"氏でしたね。ばり氏に陳謝致します。

    では改めて、どう氏。その批判に値する適切な書き込みをお願い致します。#1〜#2は無視して良いですよ。貴方にとっては内容のない書き込みのようですから。どうぞ。
    sorya

  9. さまざまな可能性についてクリティカルな言及をいただきましが、いくつか誤解があったかもしれないので、この機会を活用して言葉を重ねます。

    いわゆるコマーシャルパッケージははじめから検討していません。興味があるのは素性のいいコード(ソース、コンフィグ、メイク、およびドキュメンテーション)なのです。

    私が考えているのは、CFDを機体造形上の発見法の一助として使うことです。解の数値的精度それ自体よりも、どういう造形がどういう空力影響をもたらすかを比較的細かいレベル(3D境界層遷移など)で見てゆきたい、と言うことです。

    ちなみにこれはCFDの古くからの用途(かつてカオスさえ発見した定性的ツールとして)の一つであったとおもいます。

    そのためにはもちろん、理論的なもののほかに、スキームや実装法等をコードレベルで把握し、解のどういう振舞いがどこに淵源するのかを、ある程度推定しうることが前提となるでしょう。ソースレベルで求める所以です。

    (非常に良くできたドキュメンテーションと豊富なテスト結果がある場合に限って、ライブラリのみであっても検討の価値はあると思います、ちなみに。)

    もちろんゼロからコードを書こうとも思いません。ある程度効率の良いプログラムを書こうとすれば(デスクトップマシンを使おうというのです)、比較的ローレベルの言語を使わざるをえませんが、そのためのデバッグに何十時間も奪われるわけに行かないからです。(たとえば頑健な汎用CFDsuitの開発など別世界の話です。特定の飛行機設計が目的です)
    Prolog

  10. >ちなみにこれはCFDの古くからの用途(かつてカオスさえ発見した定性的ツールとして)の一つであったとおもいます。

    これに関する答えはイエスでありノーです。CFDは熱流体の流れを計算するだけのツールであって、条件を導き出すツールではありません。そのような用途を行うためにはCFDで得られた解の何処を評価し、そしてフィードバックする/多変量分析を行うかという、分析スキームの開発が予めあって初めて成立するものです。CFDだけでそんな事ができるなんて事は考えない方が良いです。もし、そのような考えでやるなら、申し訳ないけどやるだけ無駄作業。シミュレーションはしましたという結果しか得られないでしょう。これだけは確実に認識してください。

    フリーウェアレベルで業務用に…というのが微妙に理解しがたいものがあるのですが(Prolog氏の配下に計算物理のスペシャリストがいるならともかく)、とりあえず私が自前でHydrodynamics Codeを製作する上でインスパイアされたものを挙げます。LosAlamosのcfdlib(ライブラリ。ALE座標系を用います)、NASA(Langley)のCFL3D(比較的汎用向きソルバですね)及びFUN2D/3D(これも比較的汎用向きソルバ)、AFLのCobalt(これは現在入手可能かどうかは分かりませんが、超音速の数値計算に最適化しています)、CCSEのCCSE Application Suit程度(陽解法の汎用ソルバです)でしょうか。

    少なくともCCSEASには陽解法ソルバにおける解の安定性に関して、多大なヒントをいただいています。CCSEASは今でも最新バージョンがダウンロードできるはずですよ。
    sorya

  11. >CFDは熱流体の流れを計算するだけのツールであって、条件を導き出すツールではありません。

    私が発見法の一助と言う際のレベルを若干誤解されているようです。パラメーター間の条件の導出がシミュレイションとは別立てである、というのはそれはそのとおりです。しかしこれは、実験観測仮説演繹という伝統的な理論構成観の「通念」を別様に言い換えたもので、なにもCFDに限ったことではないですね。その通念を否定しようと言うのではなく、発見の技法として使うというときツールの役割は自足的には決められないし敢えて決めることもない、とただそれだけです。目的は飛行機の設計にあります。(議論ボードではないので誤解の補正に必要最低限にとどめますが、意義が通じれば幸いです)

    >フリーウェアレベルで業務用に…というのが微妙に理解しがたいものがあるのですが

    これは業務用ではありません。そういうふうに聞こえましたか?これはプライベートな企てで、(まだ)どこからも金は出てません。コンピュータを含めすべてポケットマネーです。リソースの点で制約はありますが、唯一自由なのは納期に期限がないということでしょうか?(プランはありますが)。マンパワについてはネットワークを活用すると言うにとどめて置きます。無理は承知です。ただし、仮に商売にするにしてもマーケットの規模からして、悪くないスタートと考えています。言い忘れましたが、軽飛行機です。

    本題に戻ります。

    CFDLIBはウェッブページの説明によるとモジュール化が進んでいるようで、興味をそそられました。残念ながらマニュアルもペーパーも直接ダウンロードできないようなので、それらに目を通したうえで考えたいと思っています。

    LaRCのCFL3Dは目をつけていたのですが、まだ入手していません。(コードとは直接関係ありませんが、開発環境(CVS)が気に入っています。)バージョン5のマニュアルが比較的充実しているので、助かります。

    AFLのコードは、だいぶ流れのターゲットがちがうので、みていませんがパスしました。残念ながらCCSE Application Suitは幾つか検索をかけても見つかりませんでした。活きているリンクをご存知ですか。

    やはりとは思いましたが、ガバメント以外では良い情報源がないということでしょうか。日本国内の団体や研究機関からの還元もあるといいのですが。

    貴重な情報に感謝です。
    Prolog

  12. >>Prolog氏
    誤解"した"ではなく、誤解"させられた"が正確なところですよ。数値計算物理を少しでも囓っている人なら判る話なのですが、数値計算はパラメトリックスタディ、仮想プロトタイピング及びリバースエンジニアリング用途に供されます。当然ながら、この3つの用途は似ているようで(共通項があるという意味で)実際はかなり異なるのです。(アプローチでさえも)

    ですがProlog氏はプロトタイピングであり、パラメトリックスタディでもあるかような発言に始終し(普通、この二つだけでも企業は数億円くらい余裕で使うような仕事ですよ?)、何をやりたいかが私には全く見えない。そのようなフォーカスが全く定まっていない説明しかできない時点で計算物理に一度も本気で関わっていない素人さん(上っ面の知識だけはある)もしくはアマチュア研究家と判断し、執拗なまでの忠告を行っています。シミュレーションと同様、結果には要因があることを認識すべきでしょう。

    >ガバメント以外では良い情報源がないということでしょうか。日本国内の団体や研究機関からの還元もあるといいのですが。

    根本的な部分で間違いがあると思いますよ。必要なのは実装に供した方程式集であり、実装されたものは添え物でしかありません。実際国内における発表例を見てみれば判りますが、ソルバーを実式の形で示していることが圧倒的に多い。ソフトウェア(=シミュレーションコード)なぞ、今やMathematicaやMatlabでも容易に実装できるのですから、その傾向がますます加速しています。今後はもっと入手が難しくなるだろうと私は断言しますよ。汎用機を使っていた時代のように、姑息な計算エンジンを作り込む必要がありませんから。(ソースを読めば非常に簡単な構文の羅列にて構築されていることがわかるはずです)

    @CCSE Application Suite
    CCSE。つまりはC-enter for C-omputational Sciences and E-ngineeringですので、以下のURLにて参照可能です。

    http://seesar.lbl.gov/CCSE/Software/index.html
    sorya


Back