作り方は教えてください。
どのような、ソフトが最適でしょうか?
ソフトの知識は殆どありませんが、シミュレーションで使う計算はできるものとしてください。
理想は下記のHPのようなシミュレーションです。
http://www-in.aut.ac.jp/~minemura/pub/Flow/BetaFlow/BetaFlow.html
加えて、
・オフラインで作用できること
・フリーソフト、安価なソフトの組合わせで計算できる
・シミュレーションの形状を任意の形に変更できる
・各パラメーターを変更できる
一口に流体シミュレーションと言っても多岐にわたります。
熱の移動や影響、気液混合など混相流、非ニュートン流体等々をどこまで考慮するか、それらにより計算量は爆発的に増えますので、目的によっては地球シミュレーターのようなスパコンが利用されています。逆に言えば、用途等から前提条件を設けて単純化したり、局部に絞ってみたり、あと、CG用だったり、また、有限要素法とか粒子法など、それをどう数値解析するかで様々な手法がある様です。
ですので「どのようなソフトが最適か?」と言われても、専門でやってる人ほど答えにくいのではないかと思います。
と、前置きしつつ、リンク先のページ(といってもjavaは実行出来ないのでシミュレーション結果は見てませんが)によると非圧縮粘性流体でリアルタイムでやってるくらいだから、基本的なシミュレーターでOKなのかな?と、素人ですがググって見ました。あと、以下にあげるのは基本的に数値解析部で、別途モデリングや前処理を行うソフト等が必要になると思います。その辺は各ソフトのヘルプやチュートリアルにあるかと思います。
まず二つ。二次元つまり断面のみの物です。いずれも有限要素法によるものの様に思います。例のリンクのものは有限差分法で、その二つがどのくらい違うのかは知りません。
次に、ちょっと違う方向性の、3DCGアニメーションを作成するBlenderというソフトによる方法です。格子ボルツマン法を使用しているようです。
格子ボルツマン法を使ったソフトウェアについては英語版wikipediaにリンクがありました。
次に粒子法によるものです。英語版wikipediaにはソフトへのリンクがありました。CGアニメーションで流体を扱うための他、銀河や星雲等の動きの解析などにも使われているような感じです(その辺は良く分かりません)。
あと、最後に本格的なものを。このレベルになると複数のパソコンやスパコンを使用する分散並列処理に対応していてOSもlinux前提だったりするようです(一部Windows環境でもコンパイル出来たりするようですが)。
どこまで流体の数値シミュレーションを理解されているか解りませんが、ターゲットのHPではBFC(境界適合座標系)を使っているため、
>・フリーソフト、安価なソフトの組合わせで計算できる
>・シミュレーションの形状を任意の形に変更できる
これが実際は矛盾しています。
>ソフトの知識は殆どありませんが、シミュレーションで使う計算はできるものとしてください。
本当に理解されているのならFreeのFORTRANコンパイラが幾つも提供されていますので、それを利用されてはいかがでしょうか。
http://www.thefreecountry.com/compilers/fortran.shtml
ただし、例えば圧縮機の数値シミュレーションの草分け的存在であるカッツァニスのようにプログラムらしきものは公開されていますが、そのままでは使い物にはなりません。
ご回答ありがとうございます。
質問文の不足が多く、申し訳ございません
>ソフトの知識は殆どありませんが、シミュレーションで使う計算はできるものとしてください。
勉強として、シミュレーションを行いたいと考えているので
理解は後追いで・・(きっと苦労すると思いますが・・・覚悟の上で・・)
少し調べてみると、FORTRANという物をよく見かけるのですが
やっぱり計算には強いのでしょうかね?
#a2です。補足します。
数値流体計算における有限要素法って、まだメジャーなんですかね?1990年代には廃れたと思っていたのですが。
>少し調べてみると、FORTRANという物をよく見かけるのですが
>やっぱり計算には強いのでしょうかね?
ついにFORTRANもそこまで落ちぶれてしまいましたか(笑)
1990年代後半でもかなり資産が残っていたりしたものですが。大型計算機が主流だった時代には、COBOLかFORTRANしかなかったですからね。言語自体が数値計算に強いわけではなく、ライブラリが豊富だったんですよ。
三角関数みたいな関数も標準で持っていましたしね。ライブラリで覚えているのは誤差関数を使ってみたら誤差が大きいので、自分で作り直してみたなんてことがありました。
現在ならBasicでもある程度の関数は揃えてくれていますので、それはそれでいいと考えます。
他のコメントにも言及しておきますと、
>どの言語のどのソフトで作るべき?PCの制約?(並列計算?スパコン?)わからないことも多々あり
特に個人で勉強される分には低価格で入手できることもそうですが、実現にはメモリをどこまで使えるかが重要です。私の諸先輩方が苦労された、1950年代後半から1970年代前半はメモリが使えませんでしたからね。
ある文献を読んでいたら、「階差法」とあってメモリを大量に使用すると書いてある。解らないから他の学部の先生に聞いてみたら、
「こりゃ差分法だよ。640kなんてパソコンでも積んでいる」
と大笑いされたのを思い出しました。
並列計算やスパコンは意識されなくても、いいでしょう。形状を詳細に記述して、計算回数を増やした時の逃げ道だとお考え下さい。
最後に、HPですが「棚橋隆彦」で検索してみると面白いものが見つかります。
ご回答ありがとうございました。
有限要素法による、流体計算は・・・
有限要素法自体がメジャーなので勉強しやすそうという判断基準で、勉強してみようと思ったところです。
そんなに、必要に迫られて、会社に提出するとかそういう話ではないので
資料のおおい計算方法を選んでみました。
おはなし、教えていただいた
「棚橋隆彦」先生の資料も合わせてみると
シミュレーションの発展の歴史そのものもなかなか面白そうですね。
どの程度一般に公開されているのかわかりませんが・・・
いろいろ教えていただきありがとうございます。
ご回答ありがとうございます。
自分の質問がまずかったのですが、ご理解いただき多岐にわたるリンクを付けていただきありがとうございます。
内容としては、家庭用PCで有限要素法をベースにもう一度、勉強したいと考えておりますが・・・
(手の届く範囲なのかどうか(自分の頭がついていくのか)・・・)
シミュレーションとしては、会社では3次元、2次元ともに高価なものを取り扱っているものの・・
もう位置どゼロからやり直したいと思い・・・
今回は
家庭での勉強としての計算をメインとして考えております。
流体シミュレーションにもいろいろあるので
おすすめのソフトやHPを教えていただければと思い質問させていただきました。
BASIC、javaなどを用いたシミュレーションの本など出回っているのですが
流体の場合ですと、各種の計算方法(LESや粒子法)もあり
どの言語のどのソフトで作るべき?PCの制約?(並列計算?スパコン?)わからないことも多々あり
おすすめを教えていただきたいと・・・
出来心で・・・
血迷っているのですが
シミュレーションの本当の理想は地球ごと!宇宙ごと!まとめて計算!!
ですが・・・
技術者としては、いらないものを省いて、軽く!早く!
経験値と理屈、実際と計算が必要なのは分かってきたので、勉強したいなと・・・