数値計算

平面内における2線分どうしの交錯判定と交錯点計算について

やあ子どもたち。夏はいいよね。でも秋もいいよね。秋も深まってきたけど元気でやっているか。今日は平面内における2線分の交錯判定と、交錯点の計算について考えてみるよ。以下考察の中では一応外積とか使ってるから3次元じゃねーかとか一瞬思うかも知れ…

高速フーリエ変換(FFT)をおじさんもC++で作ってみたよ

マンガでわかるフーリエ解析作者:渋谷道雄,晴瀬ひろきオーム社Amazon やあ子どもたち。数値配列を日常的に扱っている俺達プログラマーにとって、フーリエ変換がいかに簡単かというイメージを忘れないように以前日記を書きました。その中で、DFT(離散フーリ…

プログラムの国のフーリエ変換

やあ子どもたち。花粉症は大丈夫か。今年は花粉症どころかPM2.5の方が空気中の微粒子として何やら気になるから無用の外出は禁物だぞ。 今日はプログラムの世界でのフーリエ変換の話をしよう。コンピュータを使ったプログラムで出来るのは離散フーリエ変換(DF…

WindowsでCLAPACKを使おう

やあ子供たち。もうすっかり秋も深まり、庭の柿の木になってる柿もすっかり刈り取り時期を迎えたよ。けど今年はあまり採れなかった。昨年は300個近くとれたのだけど今年は50個も採れてないんじゃないかな。 さあ今日はWindowsでCLAPACKを使う話だよ。それも…

マーチングキューブズ(7) テセレーション準備

3D Volumentric Visualization of MRI Images with Improved Marching Cube: A Smart way to diagnose作者:Patel, NikhilLAP LAMBERT Academic PublishingAmazonマーチングキューブズ(MarchingCubes)アルゴリズムの探求も、残すところ14のプライマリコンフィ…

大規模疎行列のデータ構造とアルゴリズムその3

さて、数日前に、大規模疎行列のCRS,CCS構造体の話をし、次の日にはタプル要素間の任意値での比較用ファンクタ、そしてまた次の日にはstable_sortの本質と使い方について順を追って説明してきたね。 以上の流れで見てきた中で気付くのは、 CRSは、非ゼロ要素…

最小二乗法の確認

さて、昨晩は最小二乗法についての確認をしたのでメモしておこう。 これは ⇒ Lxの計算結果が極力bになる、そんなxを決めるためには、xに関する方程式、 = を満たすようなxを求めればよいのだったということを思い出している情景を表現してみたものなんだ。ま…

疎行列のデータ構造入門再び

やあみんな。秋シーズンもいよいよ本番だね、今日なんかはもみじ狩りに最適なんじゃないかこれ。 以前疎行列のデータの持ち方について書いたけど読み返してみると本命のCCSやCRSの説明は最後までせずに回り道だけして終ってしまうという非常に残念な内容とな…

マーチングキューブズ(6)14グループの描画確認

コンフィギュレーション#6の件などで、マーチングキューブズの穴問題について各種文献を調査中だ。 ところでその中で気付いたのだが、15グループを基本コンフィギュレーションとしている文献が結構見受けられる。これまでの考察により、私としては256通り…

マーチングキューブ(5)…そしていやな予感

コンフィギュレーション#6のループ形状作成とテセレーションについて考えてみた。が!。何通りも可能なソリューションがエッライぎょうさんあるやないかーい。全然14パターンとかそういう単純な話ちゃうやないかーい。ルネッサーンス! まずループ二つがいい…

マーチングキューブズ(4)穴のあくケース

マーチングキューブにおける問題点。グループ#6の場合。一見どちらのテセレーションでもよさそうなのだが、片方だけしか使ってないとこのような穴形状を生じてしまう。たしかにアルゴリズムの持つ本質的な不具合といえそうだ。 これはサンプリングが粗いか…

マーチングキューブズの旅(3):各エントリの相対配置について

暇つぶしとしてのマーチングキューブズ自作研究も3回目を迎えたよ。今回は、各グループにおける、各コンフィギュレーションエントリと、そのプライマリコンフィギュレーションとの相対配置関係を情報化することを考えよう。 マーチングキューブズにおいて予…

マーチングキューブズの「14通り」を探す旅(2)

前回に引き続き、あまり語られてこなかったマーチングキューブズ法の謎を追う旅の途中だが、ここでは前回示した、14グループとそのコンフィギュレーションの探索を行った際の、実装上の詳細とノウハウをメモしておく。格子内の8つの頂点について、IDを振る…

マーチング・キューブズ法の「14通り」の謎を解く

Isosurfaces: Geometry, Topology, and Algorithms作者: Rephael Wenger出版社/メーカー: A K Peters/CRC Press発売日: 2013/07/31メディア: ハードカバーこの商品を含むブログ (1件) を見るマーチング・キューブズ法(Marching Cubes)は、3次元格子の頂点位…

2次元の等高線を作成する関数テンプレート

2次元の等高線を作成する関数テンプレートを作成したよ。よかったら使ってみてくれ。縦横の格子の各頂点に高さ、温度、密度などの「値」がセットされていたとして、あとは閾値さえ与えてやれば、 等高線の輪郭線形状 等高線の輪郭線形状で囲まれた図形領域の…

粒子法シミュレーション:浮力

粒子法シミュレーションでは、粒子間の相互作用計算しかしてないのに、シーンの構築さえ適切に行ってやれば、いろいろな身近な物理現象によく似た挙動が簡単に再現できてしまうところが楽しい。物理現象と呼ばれているものは、人間がそれを見てどこで抽象化…

粒子法もどき:小胞のシミュレーション

弾性体のパラメータがひとまずわかってきたので、今度はこの弾性体を膜に見立てて、一定数粒子からなる中身が膜に包まれた構造を持つ小胞をたくさん作成して、赤血球のようなものが互いに絡み合いながら、然るべき経路を旅する様子を再現してみた。 それなり…

粒子法ししおどし〜弾性体による

弾性体を導入し、日本の伝統的なシシオドシライクなシステムを作ってみた。そろそろ飽きてきた気もするが、PUMP面環境は意外にいろいろ試すのに便利だから何かと流用してしまう。今回は右側のポンプの回転数を落としているがそれはシシオドシの喜びを際立た…

ループ階層とループ数は最小化するべし(粒子法による流体シミュ開発の中で)

粒子が循環するようにしてみた。粒子の色の色相はその世代(生まれた時刻)を、粒子の色の明度はその粒子が感じている圧力の対数強度を表している。今日はこの粒子間相互作用の計算方法のコツについてメモ。まず空間を、相互作用のカットオフ距離と同じ長さ…

TBB::concurrentなコンテナの内容の重複って…

粒子法に限らず、分子動力学計算とかでもそうだと思うのだが、カットオフ距離で空間分割を行って、周囲粒子探索を効率化するという話はもちろんなのだが、それ以外に、相互作用の計算は、2粒子間のペアごとに計算していくわけなのであるから、2つの粒子の…

インテルTBBライブラリを用いた並列処理の実装

粒子法シミュレーションに本格的にハマっていくうちに、計算時間が気になりだしたので、せっかくCore2Duoのマシンなんだし(Quadでないのが悔やまれた!)、マルチスレッド化でもしてみようかと、インテルのTBBライブラリの、parallel_for機能を使ってみた。…

コンプレッサーをつけてみた

シーンのモデリング、粒子座標更新、計算結果のレンダリングを全てmain()関数の中で簡潔してしまうという、一発もの粒子法流体シミュレーションシリーズ、今日はパスカルの法則の実験をしていたのだが、すぐに飽きて、コンプレッサーをつけてみた。 パスカル…

界面活性剤の粒子法シミュレーションは可能か

粒子法で、界面活性剤のシミュレーションとかできないだろうかなんて、ふと思いついた。界面活性剤を水の中に入れると、自身で集まって球体やレイヤーなどが形成されて面白そう。 でも水の中における界面活性剤のそうした面白さは、実は界面活性剤そのもので…

粒子法による流体シミュレーションの実験

流体力学なるものにはこれまで全く無縁で生きてきたが、CFDとか有限要素法とか知らなくてもかっちょいい流体のシミュレーションができるということで話題を呼んでいる、「粒子法」について調べてみた。以下は自分が入門書を斜め読みして理解しかけた最低…