構造研 | 後藤資料 | 野田資料 |

Salomeメモ - *Salomeの基本的な使い方

目次

Salomeの基本的な使い方

卒論の4年生、創造工房の3年生は、ここにSalomeの基本的な使い方を どんどんメモしていって下さい。

Salome-Mecaを単体でインストール

 新しいPCにCAELinuxをインストールすると、SalomeのGeometryで線や点がちゃんと表示されない。なので、Salome-Mecaを試しに単体でインストールしてみた。

インストール

Salome-Meca2015.2について

Salome-Meca2016.0について

Salomeの日本語化

sudo rsync -auv modules /opt/SALOME-MECA-2013.1/SALOME-MECA-2013.1-LGPL/
sudo rsync -auv tools /opt/SALOME-MECA-2013.1/SALOME-MECA-2013.1-LGPL/
で、modulesの中身とtoolsの中身を、Salomeがインストールされている同名のディレクトリ内にコピー

DEXCSのSalomeについて

インポート

 FreeCADとSalomeを使って、調査してみる。

STEPおよびBREP

 充実立体として、そのままSalomeにインポートして、計算にかけられるので一番取り扱いしやすそうな形式。しかし、AUTOCADからはエクスポートできない。

IGES

 AUTOCADからエクスポートできる形式。ほとんどの場合、表面の情報しか持っていないようなので、そのままでは数値計算できない。Salomeにインポートした後に、次の作業が必要。

stl

 3Dプリンター関係で使用する形式。表面の情報しか持っていないし、そのままSalomeのGeometryにインポートすることはできない(Meshにはインポートできるけど、ShellにもSolidにもなっていないので、全く役に立たない)。Salomeにインポートするには以下のようにFreeCADを経由する必要がある。

FreeCAD

Salome

salome user's guide

salomeの3Dモデル作成手順

salomeの基本操作

モデル作成に関して(特に複雑なモデルを作成する方へ)

点から(中身が詰まっていない)直方体を作る

面から(中身が詰まっている)直方体を作る

中身が詰まった三角錐を作る

体積を求める

後藤メモ(2014/11/6)

直方体は割と正確に(有効数字10桁以上)出るけど、球や円錐は有効数字1桁しか出ない(メッシュを細かくしても)。曲面のない角柱や角錐はどうでしょう? 誰か、調査して下さい。

後藤メモ(2014/11/7) 昨夜、自宅のマシンで計算してみたら、精度が悪かったのだが、大学のマシンでメッシュを細かくしてみたら、球でも有効数字3桁ぐらいの精度が出た。 昨晩、家で計算したときは円錐の体積が$\pi$になるようにと思って、 半径を100, 高さを333.3333とかと入れたのだけど、3で割るんだから高さは300にすべきですね。それで精度が悪いと思い込んでおりました。 昨夜は、酒もあんまり飲んでなかったはずなので(ビール200$\sim$300m$\ell$)、 ちょっとぼけてきたのかもしれません。

追記(2014/12/16) SalomeのGeometry操作中に求めたいオブジェクトを選択してMeasuresからBasicProperties?をクリックすれば体積が求まりました。球の体積も有効数字8桁ぐらいの精度が出ました。 追記(2016/10/21) メッシュの体積も求めることができます

物体の色を変更する

物体を木材などの色に変更したいとき

Colorが出ない人は……

色を物体ごとに変えたい時

2つの画面で物体を見比べるには

例えば、Mesh_1とMesh_2を見比べたり、Post-Proの結果を見比べたいとき

2材料を解くためsalomeでグルーピングするには

材料が2つのとき

メッシュをC3D4で切り、2つにグループ分けしたものなら、ccxc3d4unv2.f90で解く。 ccxc3d4unv2s.f90

salomeで.unvをつくり、プログラムで.inpにする方法

四面体要素C3D4

メッシュを切る手順

直方体要素C3D8で切る手順

salomeでダイヤカットを作る

c3d4or3dプリンタ用

s6用

Salomeモデリング上の注意

計算結果をcsvファイルで出力

手順

$cp linear-static.rmed linear-static.med
とかで拡張子を.medに変更する

メモ

New Entity

Primitive

basic

SALOMEで形状生成 → Netgenでメッシュ切り → cgxで境界条件設定 → CalculiXで計算

手順

SALOME

Netgen

cgx

$cgx -c hoge.inp
を実行でさっきつくったhoge.inpを開く

以下のcgxコマンドは全部「CalculiX Graphix」ウィンドウ(以下cgxウィンドウ)が手前にある状態で入力

plot n all
で全節点を表示
qadd hage
を実行
mode:a
と表示される
plot n hage
で確認
plot f all
で全面を表示後、同じくqadd→mode:a→r,r→fキーで面を選択(ピンク色に変わる)
plot f hige
qrem hige
を実行後、r,r→削りたい領域を矩形の中に入れる→fキー→qキー→
plot e all
plus n hage
plus f hige
で最終確認後、
send hage abq nam
で拘束点をhage.namというabaqus形式で出力、次に
send hige abq pres 10000
で載荷面をhige.dlo(面載荷の場合は拡張子が.dloみたい)というabaqus形式で出力(presは面載荷、数字は荷重)
*Node
という行に
*Node, NSET=Nall
と追加して
*Element, type=C3D4, ELSET=PART1
という行の「PART1」を「Eall」に変更する
$ccx_2.3 hoge
$cgx -v hoge.frd
で確認、.datファイルも作られている

荷重のかけ方

send hige abq force 1. 2. 3.

直方体に直方体メッシュを切って、拘束、載荷する手順

SalomeからCalculiXのinpファイルを生成

SalomeのunvファイルをCalculiXのinpに変換


$/opt/caelinux/unv2x.py hoge.unv
を実行すると、
/opt/caelinux/unv2x.py: line 17: class: コマンドが見つかりません
/opt/caelinux/unv2x.py: line 18:  a simple FEM object structure: コマンドが見つかりません
/opt/caelinux/unv2x.py: line 19: 期待してない token `(' のあたりにシンタックスエラー
/opt/caelinux/unv2x.py: line 19: `    def __init__(self):'
のエラー。 unv2x.pyはバグがあるとのことで、CAELinuxのサイトのどこかにあるアップデート版を 使うとうまくいくのかもしれないが、教室会議...

SalomeのmedファイルをCalculiXのinpに変換

$/opt/Calculix/MEDABA/medaba10-64bit hoge.med
すると、
argc=2
Lecture du fichier hoge.med.med
>> ERREUR : les fichier hoge.med.med n'est pas au format HDF V5 
みたいなエラー。

例題

マニュアル和訳

計算サーバーのsalomeを使う手順

ユーザー名   3721  0.1  0.2 143332  7308 ?        Sl   16:31   0:00 notifd -c /usr/local/bin/SALOME5/V5_1_3/KERNEL_V5_1_3/share/salome/resources/kernel/channel.cfg -DFactoryIORFileName /tmp/gakusei_rdifact.ior -DChannelIORFileName /tmp/gakusei_rdichan.ior -DReportLogFile /tmp/gakusei_notifd.report -DDebugLogFile /tmp/gakusei_notifd.debug
ユーザー名   3887  0.0  0.0   2800   804 pts/2    S+   16:32   0:00 grep --color=auto salome
みたいに表示されて、salome関係で走っているプロセスが表示されるので、 殺すべきプロセス番号を
kill -KILL 3721
みたいにして殺していったら、また ps ux|grep salomeをやって、grep だけのプロセスに なったら、logoutまたはexitでlogoutする。

動作状況等

Salome5.1.3のバイナリー版は、 Vine5.1上では、起動はするが、Geometryなどの新規作成をして、ちょっと動作させようとすると、
SIGSEGV 'segmentation vilolation' detected. Address 4
のエラーが出てハングアップする。 まだ、調査中だが、Ubuntu9.10では、上記のエラーは出ずに走っているようだ。 Salome専用サーバーをUbuntuで立ち上げようか。 日本語TeX環境の快適さを考えると、学生用の(後藤用のも)端末は、 Vineの方がいいだろうが。

練習

ここ と同じ事をやろうとするとメッシュを切るまでは問題なく進むが、 そのあとAsterに切り替えた瞬間に
Fatal error
SIGSEGV 'segmentation violation'detected Address 18
と表示され動かなくなる(Address 0 も確認)。Terminalでどんなエラーが出力されるかよく見る必要がある。

追記

salomeを再起動後、再度計算を試みた。 Linear elastic -> 3D までは問題ない。 次のselect a mesh from the salome object browser で、 作ったMesh_1を選択しても
The selected entry is not a mesh or the SMESH component must be activated
と言われてしまう。 salomeのフォーラム(古いけど)を見る限り、有効な解決策はないみたい。

code-asterの基本的な使い方(線形弾性)

 code-asterにはかなりたくさんの機能がある。詳しい使い方はここに載っている。

code-asterコマンドリスト

http://opencae.gifu-nct.ac.jp/pukiwiki/index.php?plugin=attach&refer=SALOME-Meca%A4%CE%BB%C8%CD%D1%CB%A1%B2%F2%C0%E2&openfile=00-00.pdf

「geometry」で固定や載荷をするところをつくる

「mesh」でメッシュ分割

「aster」で条件を入力

「commファイル」で各条件を編集

長さ応力(集中)荷重線荷重面荷重
mPaNN/mN/m$^2$
mmMPaNN/mmN/mm$^2$

MA=DEFI_MATERIAU(ELAS=_F(E=206000000000.0,
                         NU=0.3,),);
 ヤング率E,ポアソン比NUなどの材料定数の値をここで書き直せる。
MA1=DEFI_MATERIAU(ELAS=_F(E=206000000000.0,
                         NU=0.3,),);
MA2=DEFI_MATERIAU(ELAS=_F(E=69000000000.0,
                         NU=0.33,),);

MATE=AFFE_MATERIAU(MAILLAGE=MAIL,
                   AFFE=_F(TOUT='OUI',
                           MATER=MA,),);
MATE=AFFE_MATERIAU(MAILLAGE=MAIL,
                   AFFE=_F(GROUP_MA='part1',
                           MATER=MA1,),
                        _F(GROUP_MA='part2',
                           MATER=MA2,),);

CHAR=AFFE_CHAR_MECA(MODELE=MODE,
                    DDL_IMPO=
                        _F(GROUP_MA='fix',
                           DX=0.0,
                           DY=0.0,
                           DZ=0.0,),
                    FORCE_FACE=
                        _F(GROUP_MA='load_f',
                           FX=3183098.862,),
                    );
                    FORCE_NODALE=_F(GROUP_NO='load_n',
                           FX=1000.0,),);
        は点載荷だが、これを断面積A=0.01$^2$πで割ったものが、先ほどの面載荷で、実際にたわみはほぼ同じになる。

要素数が多くて計算が出来なかったときの対処方法

「post-pro」で結果の表示

「paravis」で結果の表示

rmedファイル(結果)をテキストファイルにするには

commファイルの編集(unvファイル)

 初期状態では、commファイルの一番下が、
IMPR_RESU(FORMAT='MED',
          UNITE=80,
          RESU=_F(MAILLAGE=MAIL,
                  RESULTAT=RESU,
                  NOM_CHAM=('SIGM_NOEU','SIEQ_NOEU','DEPL',),),);
 と、なっているので、この1行目を
IMPR_RESU(FORMAT='IDEAS',

に変えて、asterをrunすると、いつも通り同ディレクトリにlinear-static.rmedができている。名前は、med形式になっているが、viで中身を開いてみると、ちゃんとunv形式になっている。デフォルトでは、viでunvファイルを開いて、次のように打てば節点情報が見れる。

ちなみに、載荷線or面などのグループの節点番号を調べたい場合は、

Gmsh経由(posファイル)

 ぱっと見、節点番号が表示されていない気がしますが……。

直方体要素での解析方法

https://sites.google.com/site/codeastersalomemeca/home/salome-meca-chutoriaru1/meshmojuru#TOC-6-Geometry-を参照した

(解決したらここに方法を書く)

熱関係

asterで熱を解くやり方(材料一つ)

シェル要素

接触解析(摩擦あり)

座屈解析

直交異方性

LTNの向き

弾塑性解析

   20mmの角棒の片端を固定して引っ張ったときの先端の伸び      20mmの角棒を片持ち梁として曲げたときの先端のたわみ