FAQ No.00001

5/4/2000

 

Q1、一つの解析に2つの荷重セットを入れるのと別々の解析にするのではどちらが速いのか?

一般的には一つの解析に2つの荷重セットを入れた方が速いとなっている。これは、メカニカが各パスにおいて両方の荷重について次数を上げるからとの説明がある。つまり収束ループを2回繰り返さず2種類の荷重について同時に行っているらしい。

また、他の解析ソフトでも同様だが、剛性マトリックスも解き直してないはずなのでかなり速くなることが予想される。

しかし実際にやってみるとたいして速くなってないというのが実感である。

サマリーファイルに表示されている数値を比較すると、確かにトータルタイムが短縮されているのだが、大きな計算では黙り込まれている時間が長いと結構こちらのストレスが溜まるので、別々にやった方が精神衛生上は良いかもしれない。

また、複数の荷重セットを入れると結果を見る時に係数をかけてたし合わせる事ができるので便利ではある。

 

Q2、軸対称モデルの解析で注意すべき点は?

2000iからは統合モードでも軸対称モデルの解析が可能になった。これはうまく使うとかなり解析時間の短縮になるし、結果もきれいに出るので良いと思う。

荷重は全周分(360°)で入力する。I−DEAS等は1RADIAN単位の値を入れることになっているので、こちらに慣れている人は注意が必要だ。

ばね要素も使用できる。しかし、こちらは1RADIAN分で与える(この整合性の無さには注意が必要・・・)。つまり1RADIAN分に相当する剛性を与える必要がある。ばねは周方向にぐるりと全周に存在しているとみなされる。

これを荷重との整合性を考えた時どう換算したらよいのであろうか?

ばねの方も全周に対応させて考えれば良い。

すなわち、全周分で1N/mのばね常数が必要ならばそれを2πで割って

K=1/(2π)

として与えれば良い。

 

 

Q3、最適化アルゴリズムのSQPとGDAってなに?

SQPは、sequential quadratic programming algorithm(逐次2次プログラミング)

GDAは、gradient projection algorithm(傾斜投影)

問題のタイプによって使い分ける。

多くの場合SQPの方がGDAよりも最適値を速く求めるがそれぞれに特徴がある。

SQPは変更するパラメータが多い時はより早く最適値に到達する可能性が高い。しかし、最適値に到達する途中の段階では制約条件を満たす保証をしない。

一方で、パラメータが1つであればGDAの方が速いであろう。この方法では制約条件を満たしながら、順次山を登っていくので、繰り返し計算の途中でもそれなりの適応解が得られるというメリットがある(その分1つづつのパラメータについて律義に山を登ろうとするので時間がかかるのだ)。こう見てみるとSQPの方は多分にヒューリステックな手順であるといえる。

ディフォルトはGDAなのでとりあえずこれでやって、時間がかかりすぎるようならSQPを使うという手順で良いであろう。

 

Q4、「スムーズ」、「要素作成」とは何でしょう?

これらは、「デザインスタディ」を作成する時に下の方に表示されるオプションだ。

ただし、独立(もしくはリンク)モードでしか使えない。

「スムーズ」にチェックを入れると形状が変更された時にその要素の節点の位置を変更することによって要素の歪みを自動的に修正してくれる。

「要素作成」は、とりあえず上記の節点移動を行った後、それでもだめなら要素を削除して作成し直してくれる。

 

Q5、実行時のRAM設定はどのくらいにすれば良いのか?

実装メモリの半分を超えては行けない。しかし、RAM設定が大きいほど計算時間が早くなることを考えると、結果的に実装RAMの半分程度が適切であろう。実際には反復ソルバーではここでの設定値の1.167倍、ダイレクトソルバー(デフォルトのやつ)では設定値+2メガバイトが使用される。

 

Q6、スワップスペース(仮想メモリ)の設定はどのくらいにしたら良いか?

まずは、スワップはローカルディスクに設定すべきである。リモートのディスクに作成すると、アクセスのために非常にパフォーマンスが悪化する。

目処として、最小の値は以下のうちの最大値を選べば良いであろう。

250Mb

実装RAMの2

実行時の使用メモリの1.5倍

実行時の使用メモリはとりあえずパス1とパス2を実行させてみて(マルチパスの場合である)その比から線形外挿しよう。以下のようである。

Pass1 50Mb

Pass2 100Mb

Pass7ではまあ350Mbといったところか(大体の線形外挿)・・・

もしマシンの実装が256Mbであるならば、

Swap=max(250Mb,2x256Mb,1.5x350Mb)=525 となる、、、が

まあ今の時代、ディスクに余裕があれば、1Gbから2Gb程度設定しておくのが安全である。

 

Q7,Iterativeソルバーはどんな時に使うのか?

ディフォルトのダイレクトソルバーではディスクを食い過ぎる時。同じく時間がかかりすぎる時。

もっとも、これは対象とする問題によりけりでいつも速いわけではない。

めやすとしては、Iterativeソルバーは「塊もの」では結構速い。

薄物か塊もので判断することになるであろう。

まあ、とりあえずはディフォルトのダイレクトソルバーで実行するのが無難である。

 

Q8、リスタート解析ってどんな時にどうやって実行するの?

まずは、リスタート解析ができる条件を整理しておこう。

少なくとも一つのPループパスの解析が実施されて保存されていること。

反復ソルバーでは使えない。理由は反復ソルバーではPループパスの解析ごとにその結果を保存せずに消してしまうからだ。

単独の解析にしか使えない。デザインスタディの項目では使えないということだ。

除外要素が設定されていてはならない。

では、どんな時にリスタート解析を実行するのだろうか?

・マルチパスで最高次数を上げて解析する時

・収束基準を厳しくし直す時

・同じくプロッティンググリッド数を変更する時

・同じく、応力、熱流束等の解析出力のオプションを設定し直す時。

・RAM設定をし直す時(途中まででRAM設定が小さすぎて止まった時は有効)

 

Q9、プロッティンググリッド数って結果の精度に関係あるの?

あくまでも結果表示の精度だけに関係する。計算の精度は要素の形状とP次数で決まるので関係ない。当然の事ながら、あまり小さいと必要な情報が欠落し、結果的に解析結果の精度を低下させることになる。

 

Q10、どんなソルバーが使われているの?

大きく3つのソルバーに分けられる。通常のダイレクトソルバーとスパース法ソルバーそして反復ソルバーだ。

通常のダイレクトソルバーはガウスの消去法を使ってマトリックス計算を行う。これが最も安定している。

次にマルチフロントスパースソルバーだ。ディスクスペースも少なく計算時間も短い。今のところ動解析には使えない。

反復法はPCG(Preconditioned Gradient Method 前処理付き共役勾配法)を使っている。低次のパスでの剛性マトリックスをプリコンディショナーとして用いる。各反復での解析が実メモリー内で実行可能であれば解析は非常に早くできる。詳細はわからないので省略。

スパース法ソルバーはメモリに余裕があれば内部的に勝手に切り替えてくれる。

 

Q11、ストレスエラーエスティメーター(SEE)って何?

SEEとは、実際の正確な応力値とFEMで得られた値の誤差である。

最後のパスで各要素のエッジ上でSEEが計算される。

SEEのRMS値は(シンギュラリティーを起こすエッジは含まれない、拘束されたエッジやリエントラントコーナー等)StressErrorとして報告される。

で、この値がメジャーとして指定された最大主応力値と比較される。結果は最大主応力値のパーセンテージで表される。

 

Q12、シェルとソリッドを混在させて解析するにはどうしたらいいの?

これは、統合モードだけでは基本的にできない(できなくも無いがシェルとソリッドの形状の整合性が取れない)。まずは統合モードで必要な部位のペアを作成しておいて独立モードに移行する。

サーフェスとボリュームの混在したジオメトリが生成されるのでそれぞれにAUTOGEMをかけよう。この時にソリッドが浮いてしまっていると独立モードに転送されないので注意。

ソリッドとシェルがちゃんと接するように、配置を調整しなくてはいけない。

また、ペア化は部品単独レベルでしかできないので注意が必要だ。

 

Q13、一つの解析に複数の荷重条件を入れてそれらの結果を合成したい。

静解析の場合、複数の荷重条件を一つの解析セットに入れると、解析はそれぞれの荷重ごとに単独に行われるが、結果を見る時にそれらを合成してみることができる(それぞれに係数をかけることもできる)。

ただしこれは、接触解析ではできないので注意が必要である。

これの応用として複数の解析セット(拘束条件も違う場合)の結果を合成する方法があるので紹介しておこう。

ただし、この方法は独立モードでないとうまく行かない。

これは、モデルは対称だが荷重が非対称の時に良く用いられる方法だ。

まず、複数の解析セットに対してそれぞれに解析を実行し、結果が保存される(それぞれに結果のフォルダーができる)。この時荷重はダミーのものを含めて複数選択されていた方が良い、単一の荷重ケースの場合は後でanlys1の下のanlys1を立ち上げて解析セットにダミーの荷重を含めた上で保存すれば良い)。

これらの2つの解析を実施すると2つの結果フォルダーができる。

これらのディレクトリを仮に解析セット1 anlys1 解析セット2anlys2 としよう。

OS上でanlys1anlys1の下にanlys2anlys2のファイルを丸ごとコピーしよう。

ここで、中身のファイルを見ていただくと、1つの解析中の各荷重ごとの結果はanlys1.s01 anlys1.s02・・・

というように保存されていくので、まずはダミーであるオリジナルのanlys1.s02を削除する。先ほどコピーしたanlys2.s02anlys1.s02に名前を変更する。

ちなみにs02は応力の結果であり、他の結果も同様に変更可能だ(d01は変位の結果)。

こうして、解析セット2の荷重2の結果を解析セット1の荷重1の結果と組み合わせることができる。この後の操作はマニュアルどおりだ。

ちなみに、解析セット1側が静解析であれば、解析セット2側が接触解析でもかまわない。

 

Q14,拘束条件にばね拘束を使えるか?

マニュアルに以下の記述がある。

―――――――――――――――――――――――――――――――――――――

静解析およびプリストレス静解析の場合は、1つの拘束セットおよび1つ、または複数の荷重セットを選択して解析に含めます。モデルにポイントとグランドをつなぐばねが含まれていない場合は、拘束条件セットを選択する必要があります。このばねは、拘束条件と同等のものです。

プリストレス静解析では、モデルの材料特性が温度依存型の場合、熱荷重のある荷重セットを選択できません。

これ、やってみると本当にできる。ばねがあって十分に拘束されていれば、拘束条件セット無しで解析セットが作成できる。

 

Q15,ベアリング荷重はどのような分布になっているか?

ベアリング荷重の方向は、内部的な円筒座標系で取られる。この座標系の原点は選択した円筒面の中心であり、Zは円筒軸方向である。RTは荷重を負荷した方向で決められる。

荷重は圧力分布として与えられ、以下の式による。

 

 

 

Q16、マルチパスアダプティブ法についてもっと教えて?

マルチパスアダプティブ法はユーザーにより精度の高い解を提供できると考えられている。

これは一回ごとの解析で、一つ前の解析結果と比較して誤差の収束具合をチェックしつつP次数を上げて再計算をさせていくからだ。

この繰り返し計算の中でMechanicaは各要素のエッジのP次数を収束の許容値に達するまで上げていく。

ソリッド要素では、最終のMPAの解は超収束解だ。超要素解の応力関数は局所的な応力が全体の連続的応力場と一致するように同時並行的に解かれる

新しい応力場は要素ごとの応力場に対してかなり精度が高い。

解の質から言ってStructureの解析モデル作成で最も重要なことは、解析の定義である。

P次数は各エッジごとに独立して与えることができ、Structureは局所的なP次数の更新の手順を踏む。

解の精度は、この時の収束の%と収束に用いた基準によって大きく影響される。

収束に用いる基準には以下のもののうち一つが選択できる。

・局所変位&局所歪みエネルギー

これは、ディフォルトである。モデル全体の変位とひずみエネルギーをチェックする。

・局所変位&局所歪みエネルギー、全体RMS応力

このオプションの方が解の精度は高くなる。解析時間も長くなる。

・メジャー

1つかそれ以上のメジャーを収束基準にすることもできる。メジャーを収束基準とすることで、解析のポイントを絞り、全体の解析時間を短縮できる可能性がある(必要の無い部位の解析精度は無視するという意味で)。

 

Q17、.rptファイル中のストレスエラーエスティメータって何?

SPAを使った時にサマリーファイルの中にstress error estimatorというのが示される。

最後のパスでスーパーコンバージェント(超収束)パッチストレスと単一の要素の応力の差を算出する。この値をSdとしよう。

ここですべての要素のSd値のRMS値をとることにする。

RMS Sd = sqrt((Sd_1^2 + ... + Sd_n^2)/n)

ここでRMS Sd(シンギュラリティーのあるエッジの値は含めないものとする)をstress errorと称する。さらに、この値をメジャーで指定されている最大主応力の最大値(Sg)と比較し%をとる。

E(%)=(SdSg)*100

このEassigned error estimator percentageあるいは、単にstress error estimatorと呼ぶ。

ちなみにSPAでこの値から次のP次数を予測するには内部的に以下の2つの手順を踏んでいる。

まず、このETtarget internal error estimator)と比較する。ここでTは経験的に決められた数値であり、システムが内部的に持っている基準値のようなものである。ETと比較する事により誤差の度合いをはかり、これをP次数を向上させる指標とする。

次にダブルチェックとして、要素内の応力の積分値と外力の釣り合いを計算し誤差を測定する方法を取っている。これと、前記の方法を組み合わせる事によって最終的な誤差の指標とし、2回目に使用するエッジのP次数を求めている。

 

ここで、シンギュラリティーのあるエッジとは以下のようなものを言う。

・拘束のある部位

・リエントラントコーナー(内角)

・点に負荷された荷重

まずはSPAで解析を実施し注目部位の応力勾配を見るのと同様にstress errorを確認しよう。そして、解析精度は十分であるかを確認しよう。ここでのstress errorは最大値でも平均値でもなくRMS値であることに注意していただきたい。

もし、精度が十分でなければMPAを使用することになるが解析時間が非常に増大することは避けられないであろう。

 

Q18、スポット溶接(>30)やリンク(>50)を多用したら解析が途中で止まってしまった。

以下の環境変数を試してみる。

setenv new_edge_map ON (UNIX)

set new_edge_map=ON (DOS)

 

Q19、伝熱解析の時、荷重の組み合わせのチェックボタンがでないんですけど

静解析でも熱解析でも強制変位、指定温度、熱伝達係数が指定されている時は、結果の作成のところで荷重の組み合わせのチェックボタンは表示されない。

 

Q20、シェル要素の適用限界について教えて。

まず非定常熱伝導解析と接触解析には使えません(シェルソリッド混合でもだめです)。

それから、統合モードではソリッドのある面をカバーするようなミッドサーフェスは取れません(この部分だけシェルに穴が空いたようになります)。シェル特性でサーフェスに指定してあげればできなくもないですが、ソリッド要素が3角なのにシェルは4角になってしまします。

定常熱伝導解析ではシェル、シェルソリッド混合、どちらでもOK

熱膨張解析もOK

ただしどちらも板厚方向の変化は見られません。

 

Q21、どうしたら非定常熱伝導解析を速くできますか?

1) Quick Check を使ってみてください、SPAとそんなに結果の差はないはずです

2) コマンドラインオプションで -pmax 4 or -pmax 5 (デフォルトは6) を使ってみてください。

3) 熱荷重や熱伝導条件にramp functions を使ってみてください。

時間0の時にいきなりある値を与えるのではなく、徐々に増加するように与えてみます。たとえば以下の式を使います。

Q(time) = Q*MIN(1.0,time/2)

4) 解析精度を0.01 程度まであげてみます。しかしこれは、解析の精度が低下するのであまり良い方法ではありません。

Q22、温度依存の熱伝導係数、比熱は指定できますか?

今のところできません。

 

Q23、結果表示をもっときれいにする方法はありませんか?

NEW_EDGE_MAP ON をセットしてみてください。

これは、テトラ要素を形状に正確にマップする方法です。

 

Q24、rwdタイプの結果が読み込めない時

解析結果の名前をanlys1以外にして見てください。

解析結果フォルダーのあるディレクトリからメカニカを立ち上げてみてください。そのディレクトリにrwdファイルがある必要はありません。

 

 

Q25、ALFA NTで大変形結果がおかしいのですが(TLAPとトータル荷重時)

R21.2以降で直る予定です。

 

Q26、binaryで走らせた結果をASCIIにしたいのですが

convert <existing file> <new_file>

例えば

convert study1/anlys1/anlys.d01 disp_res

 

Q27、途中で止まってしまった解析の結果にアクセスしたいのですが?

This results output directory for study “/studyname “ has not been unlocked for access please try again」と表示される時があります。

まずは*.lokファイルを探し出してこれを削除します。

  1. 解析に関係あるプロセスをすべてKILLします。
  2. *.tmpファイルを削除します。
  3. /studyをチェックします(*.err *.rpt *.stt *.pas 等が読めることを確認)
  4. *.lokファイルを探し出してこれを削除
  5. 結果を見る