質問: 有限要素法について教えてください 私は、有限要素法を使用して梁による骨組構造物の固有値解析・モード解析をc++でプログラムを作成しようとしています。昨年、一応それらしいプログラムを作成しましたがうまくいかず悩んでいます。梁の剛性マトリクスはできましたが梁を部材座標から全体座標(または基準座標)に直す式がはっきり分かりません。私のプログラムに使用した座標変換の式は研究室独自のものでだれもその式の持つ理由を知りません。(ちなみに担当の教授に聞いても分かりませんでした)また、固有値解析の方法には、サブスペース法を使用しています。梁は三次元で解析したいと思います。ねじりについても知りたいです。 ここで知りたい事柄を箇条書きにします。 ・三次元の梁における座標変換の方法 ・整合質量マトリクスの求め方作成の仕方 ・サブスペース法は、全体(集合)剛性マトリクスで解けるのか? ・サブスペース法を求めるさいの剛性マトリクスの形はなにかルールがあるのか ・ねじりついてのことがら ・あなたのおすすめする文献 ・c++を使用してこれらのプログラムを作成するにあたってのアドバイス ・あなたがおすすめする固有値解析ができるソフト 式を説明するにあたってはそちらの座標系で結構ですのでお願いします。なるべくたくさんの方々に、アドバイスしていただきたいのでホームページのアドレスなどでも結構なのでよろしくお願いします。 最後に私はまだこのことに関して勉強中なので不適切な表現や意味不明の発言をしているかもしれないのでそのことについてもアドバイスをお待ちしております。
回答: 20年以上前にfemで構造解析をやってました。自分では一寸書いただけです。ですから極一部しか、助言できません。 (1)三次元の梁における座標変換の方法 : 梁だろうと、シェルだろうと、変わりません。局所座標系-->全体座標系に変換するだけです。基本的な考え方は、 1)局所x,y,z軸を行ベクトルとする3*3行列が、全体座標系-->局所座標系、回転に関する座標変換行列。 2)その逆行列(=この場合、転置行列)が局所座標系-->全体座標系、回転に関する座標変換行列。 3)任意の点(=全体座標)は、その座標値から局所座標系原点を引き、上の回転を加えると、局所座標値が得られる。 4)だから、局所座標値-->全体座標値への変換はその逆。といっても、回転は行列、平行移動はベクトルの足し算。そこで、「同次座標」というのを使うと、4次元表現ながら、回転と平行移動をまとめて扱える。一つの4*4行列になる。 (2)おすすめ文献 : o.c.ツエンケビッツ「マトリックス有限要素法」培風館 (3)c++を使用してのプログラム作成: 1)c,c++は倍精度計算が基本で、精度は兎も角、場合によっては遅くなる。学校で使うなら問題ないか..。 2)可変配列を取る時、cだと下手に書くとすぐメモリーリークするが、c++なら、コンストラクタ、デストラクタをキチンと定義すれば、リークし難い。 3)更に、microsoft依存になるが、「new」よりも、「mfc」の「carray」や「clist」、「cmap」を使うと、簡単に書ける。onlinemanualで見て下さい。 ---------------------------- ■その他に付いては、一部覚えているのもあるのですが、ウソこくと申しわけないでで差し控えます。詳しい方がいらしたらフォローお願いします。 ■座標変換に関しては、線形代数の本を見てください。教養過程でやっているはず。「同次座標」に関しては、cgやcad関係の本に必ず出ています。