FreeCAD FEM ワークベンチ


先の記事にて、表題の挙動が怪しいと記しましたが、その後の調査で依然不明点はいくつかあるものの、ある程度使えそうと判断するに至ったので、新たに判明した点と併せて、ここにまとめておきます。

計算例

とりあえず、このくらいの計算は、ちゃちゃっと出来そうです。

範囲を選択_101

同じ題材(パンテオン神殿)を使って、Salome-MecaとAdventureを比較した約4年前の記事がありましたが、あれらに比べて遜色ないというか、GUI操作は格段に楽チンです。いくつか課題もありますけどね・・・

Verの問題

このFEMワークベンチは、まだまだ開発途上のようです。件の書籍では、現時点の正式版(Ver-0.15)をベースの記事でしたが、簡単なモデルならともかく、上記例題のレベルになると、簡単に昇天してしまいます。⇒Pre-release版の使用を強く推奨します。本記事で使用したヴァージョンは以下の通りです。

Windows版、Linux-Mint版ともに 0.16-6420 (2016/2/12)

Mac版については検証していません(出来ません)ので悪しからず。

Linuxにおける問題

Linux版は、拙作のDEXCS2015 for OpenFOAM(R)の仮想マシンにて検証していますが、上記ヴァージョンの問題以前に、Calculixを自前でインストールする必要がある事が判明。当初、先達の経験談を聞いたり、自分でもCalculixのインストールガイドを読んで・・・諦めかけていたのですが、FreeCADのFEM Install というページがあって、Ubuntu系であればパッケージインストールも出来る事が判って即採用⇒OKでした。
コマンド端末にて、

sudo apt-get update

sudo apt-get install ccx

sudo apt-get install freecad

と入力すれば一発OKなんですが、あくまでコマンド入力は駄目!という人向け、GUI(パッケージマネージャ)を使ってやる方法は、こちらを参照。

また、DEXCS2014 (ubuntu 14.04 LTS)をお使いの場合には、

sudo add-apt-repository ppa:freecad-maintainers/freecad-daily

と、レポジトリを追加する必要があります。

 

使い物になる!と思った点

CAE教育を主用途として開発し、拙が共著「はじめてのオープンCAE」に同梱の「DEXCS2010 for Adventure」がありまして、本格的なCAE(弾性解析だけですが・・・)を簡単に使えるという意味で、これまでこれを超えるものは存在しないと自負しておりましたが、本ツールを使えばもっと簡単に出来そうです。特に優れていると感じた箇所は2点。

  1. 境界条件設定が楽チン
  2. 固有値解析も出来る

特に拘束面を指定する操作は、CADモデルを直接対象として、Faceレベルで区分けが出来てさえいれば、ほとんどストレスなく操作できます。強いて言えば、さすがに広い範囲の面を指定すると、負荷になる(待ち時間が長くなる)ようなので、複数面指定の際には、広い大きな面は一番最後に指定する事くらいでしょうか。

また、固有値の計算結果例を以下に掲載しておきます。

範囲を選択_102

 

 

ざっくりとした操作手順

まずは形状データ(入手先はこちら)のインポート。

範囲を選択_078

ワークベンチを切り換えます

範囲を選択_079

モデル②を選択して「解析ケース作成」ボタン③Fem Analysis.svgを押します

範囲を選択_080

デフォルトのままでもメッシュ作成は可能ですが、本例の場合は、①2次要素のチェックマークを外し、②をデフォルトの「中程度」から「細かい」レベルに変更しました(理由は後述)。

範囲を選択_081

約5分ほど待って、メッシュ完成です。

範囲を選択_082

問題なければ「OK」ボタンを押します。

範囲を選択_083

次に、「拘束面作成」ボタンFem ConstraintFixed.svgを押して拘束面を設定します。

範囲を選択_084

3D画面上でマウスを移動すると、選択候補面がベージュ色に変わるので、固定したい拘束面が選択できたらクリック。⇒選択済の部分は赤いピンのようなマークが付与されます。場所を変えて、続いてクリックしていくだけで複数箇所を設定できます。

範囲を選択_085

全部選択できたら、「OK」ボタンを押して完了。この場合は、パンテオン神殿の接地面をすべて固定拘束しています。

範囲を選択_086

続いて、「荷重設定ボタン」Fem ConstraintForce.svgを押して、設定メニューを起動します。

範囲を選択_087

拘束の場合の時と同様ですが、複数面に設定したい場合は、その都度「参照を追加」ボタン①を押す必要があります。また荷重方向は、「方向」ボタン③を押してから、3D画面上で方向に相応するエッジを選択します。

設定が終わったら、「OK」ボタン④を押して完了。

範囲を選択_088

最後に、「材質設定」ボタンFem Material.svgを押して、材料定数の設定メニューを起動します。

範囲を選択_089

「素材」のプルダウンメニューにて・・・

範囲を選択_090

下の図はLinux版の場合。Windows版では、こんなに多くない。

範囲を選択_092

下図には直接見えていませんが、縦スクロールバーにて、最下部にヤング率、ポアソン比、材料密度の具体的な値を確認でき、直接変更も可能です。⇒問題なければ「OK」ボタンを押す。

範囲を選択_093

以上で、解析条件が全て整ったので、「計算実行」ボタンFem NewAnalysis.svgを押します。

範囲を選択_094

まずは「Write .inp file」のボタンを押して、Calculix計算用の入力ファイルを作成します。

範囲を選択_095

入力ファイルが出来上がると、「Edit .inp file」「Calcuilx を実行」ボタンが使えるようになります。

範囲を選択_096

「Calcuilx を実行」ボタンを押した後、この問題では約1分後、計算終了で、下記のようなメッセージが出力されます。

範囲を選択_097

「Close」ボタンを押す。

範囲を選択_098

最後に、「結果表示」ボタンFem Result.svgを押して、計算結果を可視化します。

範囲を選択_099

表示したい変数(変位または応力)を選択するだけです。

範囲を選択_100

 

 

FEMツールバー

FreeCADのヴァージョンアップに伴って、FEMツールバーも大きく変わりました。

  • Ver-0.15

範囲を選択_103

  • Ver-0.16

範囲を選択_104

追加されたボタンは、いくつかありますが、

  • Fem ConstraintPressure.png 圧力を設定
  • 範囲を選択_105 強制変位を設定

あたりは、すぐにでも使えそうなボタン。但し、強制変位指定は少し怪しい。

その他、

  • Fem BeamSection.svgビーム要素設定
  • Fem ShellThickness.svgシェル要素設定

や、また、従前からの謎のツールボタン

  • Fem ConstraintBearing.svgベアリング拘束
  • Fem ConstraintGear.svgギア拘束
  • Fem ConstraintPulley.svgプーリー拘束

などあって、どうやって使うのか・・・今後の調査がお楽しみ・・・です。

 

とは言え、

課題もいくつか

ありそうなので、以下に記しておきます。

  • 計算結果の再読み込みは出来るのか?

計算の終わったモデルをファイル保存して、FreeCADを終了。FreeCADを再立ちあげして上記モデルを読み込むと・・・メッシュや拘束条件、結果はモデルツリー上に残っているが、FEMツールバーが有効にならず、結果を表示出来ない?!

範囲を選択_106

MexhanicalAnalysisのタグを選択してマウス右クリックすると・・・

範囲を選択_107

Activate analysis がありました! ⇒ これにて結果表示がOKとなります。

  • メッシュ作成ダイヤログの疑問

メッシュ作成ダイヤログはデフォルトで、

範囲を選択_109

通常は、上部の3項目(最大サイズの指定、2次精度のチェック有無、細かさ指定)で事足りる。ただNetgenを使った経験上、細かさの程度に応じて、見え消しになっている「増加率」や「・・・セグメント数」が変わったという記憶なんだが、これらの数字が、細かさの程度を変更しても変化しない。メッシュそのものは確かに変わっているので、この数字が連動していないということのようだ。

「細かさ」をユーザー定義にすれば、これらの数字を直接変更できるので、問題があるということではないのだが・・・

範囲を選択_110

  • メッシュ作成の成功/不成功問題

ここに取り上げたパンテオンの問題では、メッシュパラメタによっては、メッシュが出来なくて先へ進めない場合もあれば、メッシュは出来たものの、いざ計算実行するとエラーで止まるという状況もあった。問題は後者で、エラーメッセージは以下のようなもの。

*ERROR in e_c3d: nonpositive jacobian determinant in element 132183

これって、メッシュを作成した時点で検出できないのかしらん?・・・と思ってはみたものの、根っ子は深そうで、FreeCADのフォーラムでも何かと話題になっているようです。⇒解決策があるのかないのか?・・・自分の英語力では理解不能でした。

  • 拘束や荷重条件の表示問題

拘束面には赤い画鋲のようなマーク、荷重面には赤い矢印マークが表示されるが、そのサイズが解析モデルの大きさに対して、なんともアンバランス。

解析モデルとして角柱の片持ち梁を想定、角柱のサイズを変えたらどうなるかを比較表示してみた。

範囲を選択_111

範囲を選択_114

範囲を選択_115

角柱の長さとして、上から順に10,100,1000 mmと変えてみた。

拘束や荷重マークのサイズが一定の大きさになっているわけではないようだが・・・お粗末ですね。

もっともこれらは、Ver-0.15の場合。最新版(Ver-0.16)ではもう少し改善されて、

範囲を選択_112

範囲を選択_113範囲を選択_116

という状況。3つのサイズの順番はVer-0.15で比較したのと同じ。

なんとか、許容レベル・・・かな?

 

パッケージマネージャの使い方

Synapticパッケージマネージャを起動します。

範囲を選択_064

①再読み込みしてから、「ccx」にて②クイック検索し、表示されたccxを③選択、マウスボタンを右クリックで、④インストール指定を選択。

範囲を選択_072

関連パッケージも併せて追加

範囲を選択_073

「適用」ボタンを押す

範囲を選択_074

範囲を選択_075

範囲を選択_076

ccxが緑色になってくれれば、めでたくインストール完了。

範囲を選択_077

また、DEXCS2015 for OpenFOAM(R)に搭載したFreeCADもそのままではヴァージョンが古くて使い物になりません。これもパッケージの最新版を再インストールが可能でした。

範囲を選択_067

何故か、「再インストール指定」のメニューは有効になってくれなかったので、まずは「削除指定」です。

範囲を選択_068

削除出来たら、今度は「インストール指定」

範囲を選択_069

範囲を選択_070

範囲を選択_071

FreeCADの起動はこれまで通り

範囲を選択_065

ヴァージョンの確認

範囲を選択_066

 

阿竹 克人

このサイトで勉強させていただいています。FEM初学者の建築設計者(意匠)です。パンテオンは無事解析できましたが、設計した耐震シェルターで解析しようとするとメッシュ割で下記のようなワーニングがでて、
Warning : Surface mesh: worst distortion = -1.09168 (avg = 0.977133, 8 elements with jac.
計算をさせるとエラーメッセージはたくさん出るものの一応終了までたどり着きますが、結果が表示されません。
前略
*ERROR in e_c3d: nonpositive jacobian
determinant in element 29539
*ERROR in e_c3d: nonpositive jacobian
determinant in element 29539
*ERROR in e_c3d: nonpositive jacobian
determinant in element 29541
*ERROR in e_c3d: nonpositive jacobian
determinant in element 29541
*ERROR in e_c3d: nonpositive jacobian
determinant in element 29541
*ERROR in e_c3d: nonpositive jacobian
determinant in element 29541
*ERROR in e_c3d: nonpositive jacobian
determinant in element 31324
*ERROR in e_c3d: nonpositive jacobian
determinant in element 31324
*ERROR in e_c3d: nonpositive jacobian
determinant in element 31392
*ERROR in e_c3d: nonpositive jacobian
determinant in element 31392
Factoring the system of equations using the symmetric spooles solver
Using up to 1 cpu(s) for spooles.
15.0: CalculiX done!
15.2: Loading result sets…

 なんとかお知恵を貸していただきたくコメントいたします。

ちなみにVer0.17でメッシュはGmshを使いました。パラメーターはいろいろ試していますが、同じです。ちなみにNのほうだと30分待っても計算が終わりません。
 Ver0.18も試してみましたが、素材設定ウインドウが開きません。

お忙しいと存じますが、よろしくお願いいたします。

あるいはフォーラムのほうがよろしいでしょうか。

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください