CAE技術情報局

「CAE技術者のための情報サイト」の管理人JIKOのブログ。CAE技術者、機械系技術者向けの技術情報、ホームページの更新情報などを掲載していきます。
スポンサードリンク

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- --:-- ] スポンサー広告 | TB(-) | CM(-)

XFEM構造解析にバグ!

今回の週末は妻と子供が実家に帰ったので久しぶりに自分の時間が取れました。そこで先週XFEMのユーザの方から指摘された問題についていろいろ調べて見ることにしました。

問題というのは、XFEM構造解析において最大主応力および最小主応力を表示したときに、それぞれx方向の成分応力、y方向の成分応力と同じ結果がでるというのです。単純な引っ張りや圧縮荷重において主応力方向が成分応力に一致する場合はそのようなこともありえるかなと思ったのですが、曲げが発生するような荷重下で見るとおかしい結果であることがよくわかりました。例えば単純な曲げを考えたときに圧縮側の主成分は-側に大きな値になるので最大主応力でみると引っ張り側に比べて非常に小さな値になるはずなのですが、-側に大きな値が表示されていました。

ソースコードを調べてみると、特に間違った記述は見当たりません。しかしトレースしてみるとアークタンジェントを求める処理(atan2())で常に0を返していることが解りました。これは主応力の方向を求める処理であったので常に方向が0[rad]となり成分応力と一致してしまったわけです。さて、問題の場所は解ったのですが、なぜ常に0を返すのか??
ここでいろいろ悩んでしまって検証用のプログラムを作ったりいろいろしたのですが、結局原因は単純でatan2()の前に1/2をかけていて、つまり1/2*atan2()としていたのですがこの1/2が原因でした。この処理は実数で処理すべきなのですが、1/2を整数で記述していたので処理結果が整数となり小数点以下が切り捨てられ常に0となってしまったのです。解決策は簡単で1.0/2.0*とするか0.5*とすればすべてが実数で処理されます。

恥ずかしながら初歩的なミスをしてしまいました。ユーザの方には深くお詫びいたします。修正したものは以下からダウンロードできますので差し替え願います。

関連記事
[ 2005/07/03 12:14 ] 日記 | TB(0) | CM(0)
コメントの投稿












管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL

検索フォーム
プロフィール

JIKO

Author:JIKO
 とあるメーカに勤め、CAEを担当する技術士(機械部門)。 コンピュータシミュレーションにより製品の強度や性能を評価するのがお仕事。
 CAE技術者のスキルアップを支援する『CAE技術者のための情報サイト』の管理人。
ホームページの詳細プロフィール

↓よろしければブログランキングにご協力を
にほんブログ村 科学ブログ 技術・工学へ
にほんブログ村

カレンダー
04 | 2017/05 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
書籍
メールフォーム

名前:
メール:
件名:
本文:



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。