2012年9月3日月曜日

determinant

後輩からヘルプ。

Dtransu で見た事のないエラーが出てました。
**** ERROR ZERO JACOBISN DETERMINANT FOR 3/D ELEMENT
ELEMENT NO=
CONECTION TABLE=

調べてみると、要素の体積が、0か負の場合に出るエラーでした。

しかし、要素はきちんと6面体になっています。
エラーと一緒に吐き出されている負の数は何だろう?体積だろうか?と思いつつ、これだけでは解決法が分からないのでソースを見ることにしました。

ソースを追っていくと、どうもヤコビアンの determinant が負になっており、それが引っかかって吐き出されたようでした。納得。
しかし、計算過程のどこで determinant が使われていたのか思い出せません。で、FEMのテキストをあさる事に。

2日程経って、ようやく見つけました。単純です。逆行列の計算に使っていただけでした。JACOBISN DETERMINANT と書いてあるのに気付きませんでした。手計算でもやっていたのに忘れています。ダメですね。

ま、それならnodeの順番を変えてやれば正になるでしょうということで、変更してやるとすんなり通りました。解決です。


しかし、なぜこんな事が起こるのか?と思いつつ、原因を探っていくと、またもG-TRANが原因のようでした。CONECTION TABLE を正しく吐き出さないプリポスト、またもハマってしまったようです。

0 件のコメント:

コメントを投稿