ソフトウェア開発したい日記

「面白い!」と思った頭の体操や、数学の問題を載せていきます
その他ロードバイクででかけた先の写真や、ソフト開発のメモ等

【問題23】双子のようで・・

2010年05月31日 20時22分51秒 | 頭の体操
【問題23】
顔つきがそっくりで、生年月日も両親の名前も全く同じ
二人の男性がいました。
ところが「双子ですか?」と尋ねると「いいえ」と否定されました。
二人の関係は?

 解答はこちら 

【解答】
三つ子(あるいはそれ以上)のうちの二人

「双子ではない」と聞いた瞬間
三つ子以上を思い浮かべることができる人は
きっと頭が柔らかいですね。

しょっぱい粒子法による流体シミュレータができた

2010年05月30日 20時27分48秒 | ソフト開発日記
いろいろ粒子法の勉強をちょこちょこして、
ちょこちょこJavaでシミュレータ作ってたら
しょっぱいシミュレータができました。

粒子数550くらい。でかい球は質量の大きい剛体。
これくらいだったらリアルタイム計算でもそこそこヌルヌル動いてくれました。

こっからちゃんとしたのに発展していきたい。

昔の有限要素法と粒子法に関するメモ

2010年05月29日 22時42分47秒 | ソフト開発日記
古いフォルダ漁ってたら、なんか2年くらい前に調べたメモがあったので
それをそのまま。

物理シミュレーションについて

連続体の振動解析においての問題点は,対象となる構造物の形状や
境界条件が複雑になるほど連立方程式を導くのが困難となり,
事実上解析が不可能となる点.
このような場合,構造物を連続体として取り扱うのではなく,
差分法や有限要素法等を用いて分割(離散化)して考える必要がある.

有限要素法とは
物体を仮想的に有限の大きさの要素に分割,
すなわち領域全体の支配方程式を比較的単純で共通な補間関数を持つ
小領域に分割することで,解析をしやすくする方法.
個々の要素に対する荷重と変位の関係がわかっていれば,
構造全体の特性を導き,解析すること出来る.
つまり,実際には複雑な形状・性質を持つ物体を,
単純な形状・性質の小部分(要素)に分割し,その1つ1つの要素の特性を,
数学的な方程式を用いて近似的に表現した後,この単純な方程式を組み合わせ,
すべての方程式が成立する解を求めることによって,
全体の挙動を予測しようとするものである.現在最もメジャーな方法である.
有限要素法の利点
1) 構造体の形状が複雑であったり,
 複数の材料で構成されたものにでも簡単に適用することができる.
2) 各種の条件に対して,全く同様の計算手法で解析ができるため,
 容易に汎用的なプログラムを作ることができる.
3) プログラム化された有限要素法は,利用者には原理や理論の理解なしに
 ブラックボックスとして非常に容易に利用することができる.
4) 原理が比較的簡単で,理解しやすく,異なる種類の解析に対し,
 部分的なルーチン交換の他は,ほとんど同様の手法で適用できる.

粒子法とは
メッシュを用いず(格子分割を行わず)粒子によって連続体の運動方程式を
離散化する方法で,自由液面の複雑な挙動などを扱いやすい.
粒子の運動は単純な運動方程式を取り入れるだけでシミュレーションとして
成り立つことが出来る.

プリプロセッサの概要
粒子法では格子分割を行わない代わりに粒子の初期位置を決める必要がある.
粒子の初期位置は非圧縮条件を満足するように,すなわち,粒子数密度が
一定となるように決定する.全くランダムに粒子を配置して粒子数密度を一定と
するのは困難だが,ある程度規則的に配置することで比較的容易に
粒子配置を決めることができる.
粒子法の利点
・格子生成の手間が不要
・移動境界問題への的要請に優れている
・自由液面の取り扱いが容易
・液体-構造連成問題への的要請に優れている
有限要素法では計算不可能な自然対流も粒子法によって計算することが出来る.
物理法則を手軽に体感出来る”Phun”というソフトでは,
水の表現をこの粒子法で行っていると考えられる.

・・色々怪しいけど最後の一文がものすごく怪しい。

いろいろな粒子法

2010年05月28日 13時45分26秒 | ソフト開発日記
前回はMPS法で即つまづいたけれど
今回はいろいろな粒子法について、その概要をとりあえず調べることに。

直接シミュレーションモンテカルロ法(DSMC法)
 分子動力学における衝突の計算を確率的におこなうことにより効率化した方法で、
希薄流体の解析によく用いられる。

格子ガスオートマトン
 セルオートマトン法の一種で、流体を衝突と並進を繰り返す多数の粒子の
集合体と捉える流れの数値計算法。

個別要素法
 解析の対象を、要素の集合体としてモデル化し、
要素間の相互作用を考慮し、各時刻におけるそれぞれの
要素の運動を逐次追跡して解析する手法。

うーん・・
実例が欲しいところ

「\12288 は不正な文字です。」という謎エラー

2010年05月27日 16時58分14秒 | ソフト開発日記
NetBeansでJavaのソース書いていたら

「12288 は不正な文字です。」

という謎エラーが突然。
しかも今まで全然問題の無かったところに。

悪戦苦闘すること15分、ネットで調べたら即解決しました。

"12288" とは全角スペースを指しているようで、
プログラム中のどこかに全角スペースが入っちゃってたみたいです。

ただ、NetBeansのバグなのか
実際に全角スペースが入っていた箇所とはかけ離れた
全然違う行でエラーが出ていて、見つけにくかった・・