PR

Salome-Mecaで片持ち梁を解析して、主応力の方向を描く方法

機械設計

無料CAE統合パッケージ「Salome-Meca」で片持ち梁を解析して、主応力の方向を図示してみました。
結果や操作手順をレポートします。

スポンサーリンク

はじめに

この記事では、オープンソースの無料CAE統合パッケージ「Salome-Meca」を使って、片持ち梁を解析して主応力の方向を図示する方法を紹介します。

なかなか上手く結果が出ず苦労したので、なるべく順を追って操作手順を記録しました。

Salome-Meca とは?

Salome-Mecaはフランス電力会社(Electricite de France, EDF)が開発した、オープンソースの無料CAE統合パッケージです。有限要素法を使用して応力、熱など様々な問題の解析ができます。
公式には、Linux向けに提供されています。
Salomeは作図などの解析前・後処理を行うソフトウェアで、Code_Asterは解析を行うソルバーの名前です。
変位の描画などの視覚化は、同梱されているParavis(Paraview)というソフトで行います。

GUI環境が用意されているので、ある程度は画面を観ながら操作を進められます。

おススメの導入環境は物理環境のUbuntuですが、Windowsにもインストールできます。詳しくは、別記事にまとめています。

完成図

課題として片持ち梁を解析しました。仕上がり結果を以下に示します。
Salome-Meca(ソルバーはcode_aster)で解析後、Paravisで視覚化しました。詳しい条件、結果は、次項で説明します。

主応力の方向を図示

※ 画像はクリックorタップすると拡大できます。

salome-mecaで解析。片持ち梁の主応力の方向を流線として表示した図
最大・最小主応力の方向を、流線として表示。黒色:最大主応力、赤色:最小主応力。
salome-mecaで解析。片持ち梁の最大主応力の方向を、グリフとして表示
最大主応力(引張応力)の方向を、グリフとして表示
salome-mecaで解析。片持ち梁の最小主応力の方向を、グリフとして表示
最小主応力(圧縮応力)の方向を、グリフとして表示

曲げ応力や変位など

作業の概要

目的

Salome-mecaを使い片持ち梁を解析して、最小、最大主応力の方向を図示します。
また解析精度の評価の為、変位と曲げ、せん断応力のデータも取得します。

形状の定義

長さL200×高さh50×幅b10 の板材の先端に、100Nの荷重Wがかかる片持ち梁です。

境界条件

  • 固定端 AB:DX =0 , DY=0
  • 自由端 CD :荷重W=100 Nを、エッジCDに、断面積あたりの荷重 \(0.2 \mathrm{\: N/mm^2}\) (=100/(50*10))として適用します

材料の定義

  • ポワソン比 ν:0.33
  • ヤング率 E:210 GPa

メッシュデータについて

200×50 mmの2D平面を作り、40×10個の格子状に分割します。厚みは作図しません。
負荷は解析コード上で「断面積あたりの荷重」として指示します。

salome-mecaのmeshモジュールでメッシュを作成した様子

 Code_Aster解析仕様

  • Modeling : C_PLAN
  • Node数 : 1,301
  • Mesh数 : 500 (Quad8 400, SEG3 100)

使用ソフト

  • Salome-Meca 2019
    ソルバー:Code_Aster Modified 14.4.0 version 21/08/2019

材料力学の理論解

後で解析結果と比較するため、材料力学の公式を使って理論解を計算しておきます。

たわみの最大変位

たわみは自由端で最大となり、変位λ は以下の式で計算できます。
\[\lambda=\frac{WL^3}{3EI} \mathrm{\: [mm]}\]

以下の条件を代入します。

  • 荷重 W = 100 N
  • 梁の長さ L = 200 mm
  • ヤング率 E = 210,000 MPa
  • 断面二次モーメント I = 104,166.7 (\(=bh^3/12\))

すると、変位は \(\lambda=1.219\times10^{-2} \mathrm{\: [mm]}\) です。

曲げ応力

曲げ応力 \(\sigma_{x}\) は、以下の式で計算できます
\[\sigma_{x}=\frac{My}{I} \mathrm{\: [N/mm^2]}\]

代表的な値を計算すると、以下の通りです。左端の列が、固定端にあたります。
※ プログラミング言語のJuliaで計算しました。

julia> display(sigma) #曲げ応力
5×5 Array{Float64,2}:
  4.8   3.6   2.4   1.2   0.0
  2.4   1.8   1.2   0.6   0.0
 -0.0  -0.0  -0.0  -0.0  -0.0
 -2.4  -1.8  -1.2  -0.6  -0.0
 -4.8  -3.6  -2.4  -1.2  -0.0

せん断応力

せん断応力は、以下の式で求められます。
(F:せん断力、Q:中立軸(z軸)に関する断面一次モーメント)

\[\tau_{xy}=\frac{FQ}{bI} \mathrm{\: [N/mm^2]}\]

代表的な値を計算すると、以下の通りです。左端の列が、固定端にあたります。
y=0で最大となり、全長に渡って、一定です。
※ プログラミング言語のJuliaで計算しました

julia> display(tau) #せん断応力
5×5 Array{Float64,2}:
 0.0    0.0    0.0    0.0    0.0
 0.225  0.225  0.225  0.225  0.225
 0.3    0.3    0.3    0.3    0.3
 0.225  0.225  0.225  0.225  0.225
 0.0    0.0    0.0    0.0    0.0

主応力の方向

主応力の大きさと方向は、梁の各点の曲げ応力とせん断応力から固有値と固有ベクトルを計算すると、求められます。

簡単に図にすると、以下のようになります。

片持ち梁の主応力の方向図

上図は、プログラミング言語のJuliaで作成しました。
詳しい方法は、別記事にまとめています。

解析結果

Salome-mecaでの解析結果です。
精度の評価の為、変位と応力については、前述の材料力学の理論解と比較します。

変位

理論解 [mm]code_aster 解析結果 [mm] % 差異
\(1.219×10^{-2} \) \(1.274× 10^{-2} \) 約4.5 %

変位は理論値 \(1.219×10^{-2} \) mmに対し、解析結果は \( 1.274× 10^{-2} \) mm 。差異は、約4.5 %でした。

近い値は出ていますが、似たケースのcode_asterの検証ドキュメント SSLP303では、差異が更に小さく0.4%でした。はっきりと要因を特定できていませんが、梁の形状のせいかもしれません。
SSLP303 は長さ/高さが200の細長い形です。今回の課題の比率は4 なので、試しに8にしたら、1%程度になりました。

変位の分布図

※ https://www.code-aster.org/V2/doc/default/en/man_v/v3/v3.02.303.pdf

曲げ応力とせん断応力

特定の1点だけに注目すると、理論解よりも極端に値が大きい箇所がありました。
後でグラフを示しますが、固定端と自由端の付近です。

私が読んだ本には、「集中荷重・点拘束を設定した場所は, 局所的に応力値が非常に大きな値を取ることがある.(中略)このような点を応力特異点と呼ぶ.([3], p.76)」と解説されていました。

そこで、応力を長さ全域のグラフとして表示し、他の部分を確認してみます。

▼ まず、グラフとして表示する場所の定義の為、各位置にA~Gの名前をつけました。
例えばAの座標は(0,25)、Cなら(200,25)です。

以下の3つについて、グラフで確認します。

  1. AからCの曲げ応力 \(\sigma_{x}\)
  2. OからEのせん断応力 \(\tau_{xy}\)
  3. FからGの曲げ応力 \(\sigma_{x}\)と、せん断応力 \(\tau_{xy}\)

1. AからCまでの曲げ応力σx

上図は、材料力学の理論解と一緒にプロットしています。SIXXが解析結果です。
右側には、安定している中心付近(60≦x≦100 mm) の拡大グラフを表示しています。
固定端と自由端付近で差異が大きく、中央部(40~160mmあたり)はごくわずかで0.005%以下でした。メッシュの切り方や条件設定で変わるのかもしれませんが、検証できていません。

2. OからEのせん断応力τxy

上図も、材料力学の理論解と一緒にプロットしています。SIXYが解析結果です。
右側には、安定している中心付近(60≦x≦100 mm) の拡大グラフを表示しています。
SIXXと同様、固定端と自由端付近で差異が大きく、中央部は約0.7%でした。
こちらもメッシュの切り方や条件設定で変わるのかもしれませんが、検証できていません。

3. FからGの曲げ応力 σx と、せん断応力 τxy

上図は、梁の中央を垂直に切ってプロットしました。左は曲げ応力、右はせん断応力です。
縦軸がy方向の位置で、+25がF、-25はGです。
曲げ応力は、梁の断面の図心より上側に+の引張応力が、下側には-の圧縮応力が発生しています。
解析精度の確認というよりは、興味本位で見てみました。よく教科書で曲げ応力の解説の際に載っている図が、きれいに再現されて面白いと思いました。

主応力の方向

少し乱れている箇所もありますが、力の流れがおよそ把握できる図になりました。
ソルバーのcode_Asterは、主応力の値だけではなくその方向を各点の座標要素として出力できます。
その結果をParavisに読み込み、ベクトルに変換し、流線やグリフとして描画しました。

では、以降は実際にSalome-Mecaを使って解析の方法を説明します。

大まかな操作の流れ

工程に応じて、Salome-Mecaに同梱されたモジュールを以下のように適宜呼び出して実行していきます。

  1. Geometryで作図する
  2. Meshでメッシュを切る
  3. AsterStudyで境界条件を指定し解析を実行する
  4. Paravisで視覚化する。

作業環境

モジュール名使用ソフトOS
Geometry、Mesh、ParavisWindows版のSalome-Meca 2019Windows 10
AsterStudyLinux版のSalome-Meca 2019仮想環境上のUbuntu

ややこしいのですが、私の環境では使うモジュール(ソフト)によってOSが違います。
例えば私のPCではWindows版だと「解析が終わらない」という症状が出るので、AsterStudyを使う際はUbuntuというOSに入れたSalome-Mecaを使いました。
片や仮想環境のUbuntuではAsterStudyは正常に動作するものの、Geometry、Meshで画像処理のエラーがでてしまうのです。
よって、Windowsと仮想環境のLinux版を使い分けています。

インストールについては、詳しく別記事にまとめています。

Salome-Mecaを立ち上げる

ではSalome-Mecaを立ち上げます。Windows版だとSalome-Mecaのフォルダ直下の run_salome.bat をダブルクリックすると立ち上がります。

ひとまず保存する

まずはFile→Saveas で.hdfという拡張子のファイルを保存しておきます。
hdfファイルは、これから作っていく一連の設定データ(メッシュや解析ファイル)が一まとまりになっています。

Geometryでモデリング

上部のメニューからGeometryというモジュールを選択して呼び出します。

メニューバーのNew Entity→Primitives→ Rectangleで長方形を描く機能を呼出します。サイズを適宜入力して、OKします。今回は、200×50の長方形を作ります。

そして、原点を固定端の中央にします。メニューバーのOperations→Translationをクリックし、設定値を入力します。DXに100と入力します。

▼ 原点の位置が、長方形中心から左端に移動しました。

Meshでメッシュを切る

次に、上部のメニューからMeshというモジュールを選択して呼び出します。

先ほどの図形を対象として選択し、これからメッシュを切ります。
メッシュの粗さなど仕様は細かく設定できます。

メッシュの設定と作成

先ほど作った図形”Translation_1”を選択した状態で、メニューバーのMesh→Create Meshをクリック。設定項目を入力します。

とりあえず、今回はこの設定でメッシュを作成します。

  • 1D
    • Algorithm:Wire Discretisation
    • Hypothesis:Local Length (Length:5)
  • 2D
    • Algorithm:Quadrangle: Medial Axis Projection
    • Hypothesis:<Default>
1Dタブでの設定内容
2Dタブでの設定内容

条件を設定したら、Apply and close をクリックして設定画面を閉じます。

そして、左側のオブジェクトブラウザー内に表示されているメッシュ名を右クリックし、Computeをクリックするとメッシュが作成されます。

salome-mecaでメッシュをconpute
メッシュ名を右クリックし、Computeをクリックするとメッシュが作成される
メッシュが作成された

四角形二次要素へ変換する

四角形のメッシュが切られましたが、デフォルトでは一次要素です。解析精度向上のため、二次要素へ変換します。
前者はCode_Aster上でQUAD4と呼ばれていて、ノードが頂点にしかありません。後者はQUAD8で、エッジの中点にもノードがあります。

QUAD4とQUAD8の違いの図

▼ 作ったメッシュを右クリックし、Convert to/from quadratic を選び、出てきた画面で Convert to quadratic を選択して Apply and close で閉じます。

メッシュを二次要素へ変換する機能

要素のグループを作る

解析時に必要な部位を、これから適当な名前を付けてグループ化しておきます。
先ほど作ったメッシュのMesh_1を選択した状態で、上部のメニューバーのMesh→Create Groupをクリックすると、設定画面が出てきます。

今回は、以下の3つを作ります。

  • 長方形の面全体:BEAM_P
  • 固定端のエッジ:BC
  • 自由端のエッジ:Load

例えば面全体をグループ化する場合は、Elements TypeにFaceを選び、NameにはBEAM_Pと記入、ContentはSelect Allにチェックを入れて、Applyボタンを押せばOKです。

次に、エッジの一部分をグループ化する場合は、Elements TypeにEdgeを選び、ContentはEnable manual editionにチェックを入れて、任意のエッジを囲んで選択し、Addボタンを押すと、エッジのエレメントIDが追加されます。
そして、Applyボタンを押せば、エッジのグループが作成されます。

▼ エッジのグループを作る様子です。

メッシュのグループを作る様子

メッシュをエクスポートする

作成が終わったら、左側のオブジェクトブラウザー内のメッシュを右クリックし、Export→MED fileをクリックして、任意の場所へメッシュファイルを保存します。

AsterStudyで解析ファイルを作成

次は、要である解析条件を設定していきます。

上部のメニューから AsterStudyというモジュールを選択して呼び出します。

まずはステージを追加

Data Settings パネルのCurrentCaseを右クリックし、Add Stageを選択します。
すると、Stage_1という項目が追加されます。ここに、これから解析条件を設定します。

テキストモードにする

Stage_1を右クリックし、Text Modeを選択します。
そしてStage_1をダブルクリックすると、解析条件をテキストとして編集できる状態になります。

テキストモードに切り替える様子

なお、テキストで書かずとも、画面上をクリックしながら解析条件の設定は出来ます。
しかし一から逐一設定項目を追加するのは大変なので、大まかなコードはテキストモードで直接書いておくと楽です。

そして細かい設定値を変える時だけ、AsterStudyの画面上で行うと効率的でした。

今回書いたコード

今回の解析コードは以下の通りです。
各項目の意図は、コメントとして書いておきました。

▼ 出力するフィールドについて

主応力を見たい場合、出力するフィールドにSIEQ_ELGAが必要です。
詳しくは、オペレーターのCALC_CHAMPのドキュメントをご覧ください。
※ https://www.code-aster.org/V2/doc/v13/en/man_u/u4/u4.81.04.pdf

▼コードをテキストモードで書いた様子です。

Asterstudyのテキストモードでコードを書いた様子

グラフィカルモードにする

コードを一通り書き終わったら、グラフィカルモードにもどします。

テキストモード画面の右下のOKボタンを押した後、Stage_1を右クリックし、Graphical Modeを選択します。

もしコードの文法などが間違っていたら、ある程度はデバッグしてエラーを吐いて教えてくれます。
問題が無ければ、Data SettingsパネルのStage_1に、解析項目がツリー状に格納された状態になっています。

解析項目がツリー状に格納された状態になっている

メッシュや、出力先の場所を指定する

メッシュファイルの場所や結果の出力先は、解析コードには記述していません。
これらは、AsterStudy上で指定する必要があります。

中央のData Files of Stage_1 パネルを見ると、入出力先が未設定の項目が赤く表示されているのがわかります。

その各項目をダブルクリックすると右側に設定画面が表示されるので、適宜設定します。

メッシュは、medファイルを指定する

一番上はmeshに関する項目です。
ダブルクリックし、右側の設定画面のFilenameの行の…をクリックし、先にエクスポートした.medファイルを指定します。

出力ファイルは、.rmedファイルとして

そして、二番目の赤い項目は、解析結果ファイルの出力についてです。
先ほどと同様、ダブルクリックして、ファイル名を指示します。

出力ファイルは、.rmedという拡張子のファイル名にします。
例えば今回は、「cantilever-analyze.rmed」という名前にしておきます。※拡張子まで書く必要あり

コードをエクスポートする

Stage_1を右クリックしExport command fileを選択すると、書いたコードを独立したファイルとしてエクスポートできます。

.commという拡張子のファイルになり、テキストエディタで開くことができます。
別の環境で使う際などに、便利です。

そもそも解析コードはどう書けば?……と思った方へ

ここで、初めてcode_asterを使う方なら「そもそも何をどうかけば!??」と多分戸惑われると思います。私も最初はかなり困りました。

対策として一番有用なのは、Code_Asterの検証ドキュメントを読むことでした。
たとえば、以下のサイトをご覧ください。

番号と課題名が付けられたドキュメントが一覧になっています。
ドキュメントはPDFファイルで、様々な解析課題と結果が見られます。

また、これらの課題ファイルはAsterstudyから呼出して閲覧できます。
上部のメニューバーからOperations→Import Testcase を選択し、出てきたボックスに検証番号を入力します。
例えば、forma01と入力すると”forma01a”という候補が出てくるので、クリックすると解析ファイルが読み込まれます。

そして、読み込まれたファイルは、FORMA01という名前のドキュメントに対応しています。
ドキュメントのPDF:https://www.code-aster.org/V2/doc/default/en/man_v/v3/v3.02.326.pdf

Testcaseを呼び出す様子

解析実行!

はい、これでやっと準備ができたので、あとは実行するだけです。

ここからの手順は、Ubuntu上でLinux版を使用します。

Windows版が正常に動く方は、Linuxは使う必要はありません。

冒頭で書きましたが、私のWindowsの環境では、解析が異常終了します。
そこで解析実行時のみ、仮想環境のUbuntu上でLinux版を使います。

Ubuntuへの導入については、別記事に詳細を書いています。

Linux版のSalome-Mecaを立ち上げる

ターミナルから操作します。インストールしたフォルダをカレントディレクトリにして、./salomeと書いて実行します。

コードを読み込む

Asterstudyモジュールを立ち上げ、.commファイルをインポートし、先ほど書いたコードを読み込みます。(先ほどの手順と同様にテキストモードにしてコードをコピペしてもOKです)

▼ .commファイルをインポートする様子

Ubuntuにて、Asterstudyにcommファイルをインポートする様子
Ubuntu上のAsterstudyに、commファイルをインポートする様子

メッシュや保存先を指定

そして、改めてメッシュファイルや出力先を設定します。
方法は先述のWindows版と同様で、左中段のData filesパネルのをダブルクリックし、右側に出たfilename行の…をクリックしてファイルを指定します。

今回の設定内容は以下の通りです。

  • mesh (Read a mesh) ・・・ 作った*.medファイルを指定する
  • [noname] (Set output results) ・・・解析結果のファイル名と場所を指定。
    名前は何でも良いですが、cantilever-analyze.rmed とします。 (拡張子まで書くこと)

実行

History viewタブを開き、CurrentCaseのプラスボタン(緑色の椎茸のような絵)を押します。
そして下側のAutoRefresh:5sを選択し、Runを押して実行します。あとは待つだけです。

Ubuntu上のAsterstudyで解析を実行する様子
Ubuntu上のAsterstudyで解析を実行する様子

何が間違っていれば、赤色のランプが灯ります。成功なら緑です。
今回、試行錯誤したため何回も赤色を見ることになりました。

解析結果のファイルが存在しているか確認

先ほどAsterStudy上で指定した「cantilever-analyze.rmed」が存在しているか確認して下さい。
あれば、成功です。あとは、結果を視覚化する工程に移ります。

▼ ファイルマネージャーで確認した様子。ちゃんとありました。

結果のファイルが出力されているか、確認。

Paravisで結果を確認する

解析したデータを目に見えるようにするには、同梱されたParavisというソフトを使います。
これは有名な視覚化ソフトParaviewがベースなので、詳しい使い方はParaviewの資料にあたればOKです。

この工程は、Windows版のSalome-Mecaを使用しています。

上部のメニューから Paravisというモジュールを選択して呼び出します。

読み込む

左上部のPipeline Browserの中で右クリック→Openをクリックし、解析結果ファイルを読み込みます。

▼データが読み込まれました。

変位を確認

まず、変位を確認してみます。
上部のメニューからresult_DEPL、DYを選択すると、変位の分布が表示されます。

Paravisで変位を表示する様子
Paravisで変位を表示する様子

▼各点の値を確認する場合は、View上側のHover Points Onをクリックして、カーソルを当てると見られます。

ParavisのHover Points On でカーソルを当てた様子
ParavisのHover Points On でカーソルを当てた様子

曲げ応力、せん断応力を確認

次に曲げ応力、せん断応力を確認してみます。
これらの値は、SIGM_NOEUという名前のフィールドに保存されています。

▼上部のメニューからSIGM_NOEU、SIXXを選択すると曲げ応力の分布が見られます。

▼SIGM_NOEU、SIXYだとせん断応力が見られます。

任意の線をグラフ表示する

PlotOverlineというフィルタを使うと、任意の場所の値をグラフとしてプロット表示ができます。

▼ 例えば、SIXXを梁の上端(y=25)で水平にグラフ表示すると、こんな感じです。

Paravisで主応力の方向を確認する

さて、この記事の目的は「片持ち梁の主応力の方向を図示する」でした。
やっとこれからその最終工程です。

SIEQ_ELGAを見られる状態にする

主応力の情報は、先ほどの変位などとは別のフィールド “SIEQ_ELGA” に保存されているので、操作が必要です。
上部メニューのFilters→Mechanics→Elga Field To Point Gaussianをクリックし、フィルタをかけます。

すると、SIEQ_ELGAがメニューより選択できるようになりました。

ParavisでElga Field To Point Gaussianを実行する様子

▼ この手順は、Windows版のCode_Asterサイトで解説されていました。

Beginning with post-processing Paravis module in Salome-Meca
This post presents some useful tricks to get started with Salome-Meca Pavavis module (or Paraview). Let’s assume you alr...

Delaunay 2Dフィルタ

次に、Delaunay 2Dというフィルターをかけます。
これは元データの入力点から、ドロネー三角形分割を行うフィルターです。

▼ Delaunay 2Dフィルターをかけている様子

ParavisでDelaunay 2Dフィルターをかけている様子

このフィルタは後で流線を描画する機能を使うために必要です。この工程がないと、主応力方向の配列が認識されず流線が描画できませんでした。

フィルタの詳しい仕様は、以下のドキュメントをご覧ください。

VTK: vtkDelaunay2D Class Reference

主応力方向の配列をつくる

主応力方向は、解析結果のデータの中に、SIEQ_ELGA_VECT_n(nは1~3の数字) という名前で格納されています。
そのままでは他の結果に紛れてるので、抽出して主応力方向の配列を作ります。

Pipeline BrowserのDelaunay2D1を選択した状態で、Calclatorというフィルタを実行し、以下の式を入力します。入力が終わったら、Applyボタンを押します。

▼ Calclatorのフィルター画面

paravisのCalclatorのフィルター画面
Calclatorのフィルター画面

▼ この式は最大主応力です。Result Array NameはResult_aとでもしておきます。

unnamed0SIEQ_ELGA_PRIN_3*(unnamed0SIEQ_ELGA_VECT_3_X*iHat+unnamed0SIEQ_ELGA_VECT_3_Y*jHat)

▼ また、最小主応力はSIEQ_ELGA_PRIN_1に格納されているので、入力する式は以下の通りです。
Result Array NameはResult_bとしておきます。

unnamed0SIEQ_ELGA_PRIN_1*(unnamed0SIEQ_ELGA_VECT_1_X*iHat+unnamed0SIEQ_ELGA_VECT_1_Y*jHat)

iHat、jHatは単位ベクトルです。これで新しく作った配列は、各点の主応力の方向をベクトルとして扱えるようになりました。

ちなみに、グリフ (Glyph)というフィルターをかければ、各点の方向を矢線として表示できます。

▼ Result_b(SIEQ_ELGA_PRIN_1)にグリフフィルターをかけた結果

paravisで主応力をグリフとして表示

流線を描く

Evenly Spaced Streamline 2Dというフィルタを使って、流線を書きます。
基になる配列は、先ほど作ったResult_aとResult_bです。

Calclator1を選択した状態で、Filters→Searchをクリックし、頭文字のEveと何文字か入力すると候補が出てくるので、クリックして実行します。

Evenly Spaced Streamline 2Dを実行する様子
Evenly Spaced Streamline 2Dを実行する様子

パラメータを適宜調整すると、流線が表示されます。

▼ Result_b (SIEQ_ELGA_PRIN_1)を流線表示した結果

▼ このフィルターについては、別記事でも紹介しています。

完成

これで完成です。

▼ 必要があれば、プロパティーパネルで背景色や線の太さなど体裁を整えられます。

今回の解析ファイル

Githubに、今回の解析コードやメッシュファイルを置いています。

files/code_aster-cantilever-analysis at main · mechanoboyu/files
Contribute to mechanoboyu/files development by creating an account on GitHub.

さいごに

解析に着手した当初は何もわからず右往左往しましたが、code_Asterのドキュメントが充実しており、助かりました。
沢山ある各機能(オペレーター)のドキュメントを一から読むのは途方にくれますが、解析課題の検証文書のコードと一緒に確認すると、理解がしやすく感じました。前述の通りAsterstudyから呼び出せるので、メッシュと見比べながらコードを眺められます。

また操作手順だけでなく、有限要素法、材料力学、弾性力学など機械工学の理解をもっと深めないと結果を扱えない事も実感しました。
今回は単純な片持ち梁なので、理論解との比較で結果の検証ができました。
しかし、未知の複雑な構造だと、モデル化や解析コードの記述から苦労しそうです。

ともあれSalome-Mecaのような高機能のソフトが無料で使えるのはありがたいです。資料もたくさんありますし、今後も楽しみながら勉強を進められそうです。

参考文献

Salome-meca (Code_aster) について

Code_aster 検証ドキュメント

解析にあたり、以下の検証ドキュメントを参考にしました。

  • SSLP01 – Shearing and flexbeam in its plan
    • https://www.code-aster.org/V2/doc/default/en/man_v/v3/v3.02.001.pdf
    • 内容)C_PLANで、分布荷重をエッジにかけて片持ち梁を解析
  • SSLP303 – Plate cantilever charged with sound end
    • https://www.code-aster.org/V2/doc/default/en/man_v/v3/v3.02.001.pdf
    • 内容)C_PLANで、荷重をFORCE_CONTOURとしてかけて片持ち梁を解析
Documentation - code_aster

↑ 検証ドキュメントは、PDFです。ファイルは上記のcode_asterのwebページで、文書名のコード(”SSLP01” など)をCtrl+Fでページ内検索すると見られます。

Code_aster ドキュメント

コードを書くにあたり、オペレーター等の仕様について、以下のドキュメントを参照しました。

  • [U4.81.04] Operator CALC_CHAMP
    • https://www.code-aster.org/V2/doc/default/en/man_u/u4/u4.81.04.pdf
    • 主応力が出力できる結果の形式を調べるために閲覧しました。
  • [U3.13.01] AXIS, D_PLAN, C_PLAN models
    • https://www.code-aster.org/V2/doc/default/en/man_u/u3/u3.13.01.pdf
    • 今回採用したモデルのC_PLANの仕様です。設定できるパラメータなどが載っています。

その他資料

Beginning with post-processing Paravis module in Salome-Meca
This post presents some useful tricks to get started with Salome-Meca Pavavis module (or Paraview). Let’s assume you alr...

↑Windows版のcode_asterのWebサイトです。解析後のデータをParavisに読み込んで、隠れたフィールドを表示し処理する手順が解説されています。このサイトを読む前、ファイルを読み込んだだけでは見られないフィールドの存在に困っていたので、助かりました。

Glossary of Code_Aster Abbreviations [Code_Aster wiki]

↑ソルバーのcode_asterで使われる略語(フランス語が基)と英語の対照表です。
元のリンクが切れているので、Webアーカイブのデータです。過去にcode_asterのwikiが存在しており、その中のコンテンツだったようです。code_asterのフォーラムで紹介されているのを発見しました。例えば「略語のAFFEは英語ではAssignにあたる」などが一覧になっていて重宝しました。

有限要素法、材料力学

  1. 竹園茂男, ほか. 「2.1.4 主応力と主せん断応力」. 弾性力学入門: 基礎理論から数値解法まで, 森北出版, 2007年, pp. 19–26.
  2. 日本機械学会. 「3・8 せん断によるはりの応力とたわみ」. 機械工学便覧 基礎編 α3 材料力学, 初版, 日本機械学会, 2005年, pp. 30–31.
  3. 泉聡志, と酒井信介. 「4.7 結果の分析と解釈」. 実践有限要素法シミュレーション : 理論と実務がつながる : 汎用コードで正しい結果を得るための実践的知識, 森北出版, 2010年, pp. 72–78.

本について補足

参考文献のうち、特に気に入っている本の感想です。

この本は材料力学の知識を有限要素法に丁寧に橋渡ししてくれるので、沢山出てくる行列など数式に圧倒されて「一体、今何をやっているんだっけ……?」と立ち位置が分からなくなる事がありません。

解析に興味を持たれた時点では、既に材料力学は履修済の方が多いと思います。
私も同じ状況だったので、両端支持梁や片持ち梁などの具体的な課題で、理論解と解析結果を比較しながら進む解説に、とても理解が助けられました。また、ソフトで出した解析結果の「何をどう扱えば良いのか」という疑問にも解答があります。データを見て、自分なりに結果を捉えることができるようになります。
もちろん、構造解析については更に勉強すべきことは山積みなんですが、「何もかもわからない」から「難しそうだが、やってみよう」という希望が湧いてくる本です。

動画

この記事の手順の動画を作りました。22分の長い動画になってしまったので、概要欄に目次を設けています。(概要欄は、Youtubeのサイト上で見られます)

※音声入りです。

タイトルとURLをコピーしました