接触問題?

395 views
Skip to first unread message

はんままにあ

unread,
Jul 15, 2020, 2:52:56 AM7/15/20
to Salome-Meca & Code_Aster + Code_Saturne
この投稿はオープンCAE勉強会@関西の代理投稿です。
-----
初めての投稿させて頂きます。佐藤と申します。
構造解析の初心者でsalome-mecaも今回初めて使っております。
情報など頂けましたら幸いです。

以下のスモールパンチ試験の論文の Fig.5 の様な解析をしようとしております。

https://www.jstage.jst.go.jp/article/jsmezairiki/2005/0/2005_115/_pdf/-char/ja

書籍や公開されているPDFを色々調べ、検討、以下のPDFの例が実施したい解析に一番近いと判断し、
モデル化・解析を進めております。この例では「DEFI_CONTACT」コマンドを使っております。

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=06-01.pdf

この「DEFI_CONTACT」コマンドで十分とか他のコマンドを使った方が良いとか等、助言等を頂ければ幸いです。

本来は2次元解析で十分かと思いますが、例との関係上3次元で解析しその後2次元にしようかと考えております。
(2次元の解析の例が無かった事もあります)
salome-mecaは2010.2を使っております。もっと新しいバージョンを使用したい所ですが、例がこれを前提にしているので。

kengo

unread,
Jul 15, 2020, 10:02:19 AM7/15/20
to Salome-Meca & Code_Aster + Code_Saturne

初投稿のユーザーの投稿は、管理人が承認するまで、投稿保留となっています。
元の投稿者の佐藤様の投稿を承認しておきましたので、今後は投稿がすぐに反映されると思います。


スモールパンチ試験の問題は、大変形+接触解析なので、構造解析では相当難易度が高く、
構造解析の初心者であれば、段階を踏んで解析技術を高めて、かなり根気よく続けなければ、
精度の良い結果を得ることはできないと思います。

また古いバージョンの code_aster では、剛体の接触解析には不具合があったように思います。
(はっきりと覚えているわけではありませんが)
ですので、なるべく新しいバージョンを使用したほうが良いと思います。


スモールパンチ試験と似たような問題は、下のリンクで contact で検索すれば、[V6.03.155] SSNP155 などが
見つかりますので、そのサンプルを参考に解析を行うのが良いと思います。



サンプルの使用方法は下のリンクを参考にして下さい。



また、下のリンクには、接触解析のノウハウの資料([U2.04.04] Instructions for use of contact)も
ありますので、それを読んで適した設定を探してみて下さい。



私は、この問題に確りと取り組んだことが無いので、これ以上のアドバイスはできませんが、
解析が上手くいくことを祈っています。


以上

ksa...@gmail.com

unread,
Jul 15, 2020, 10:35:10 PM7/15/20
to Salome-Meca & Code_Aster + Code_Saturne
kengo様

ご助言感謝いたします。
ご紹介頂いたリンクを参考に進めて行きます。

また、JunTatsunoさんの最新版のsalome-meca(2019.0.3版)に対応したファイルを見つけましたので、
この最新版で進めて行きます。

 
ありがとうございます。

ksa...@gmail.com

unread,
Jul 26, 2020, 10:57:44 PM7/26/20
to Salome-Meca & Code_Aster + Code_Saturne
佐藤です。

お世話になっております。
また詰まってしまいました、知恵をお借りできないでしょうか?

現状は以下の通りになっております。
SSNP155のサンプルファイルを探し出し、ASTEKでの計算が成功しました。
SSNP155のファイルは2種類見つけたのですが、片方では解析を実行させる事が出来たのですが、
もう片方では解析を実行出来るsalome-mecaが見つからなかったので、
解析を実行できる方のファイルで解析を進めて行くつもりです。
で、現状dexcs2014(code_aster11.7)を使っています。

解析の実行は出来たのでモデル作成の段階に進んでいます。
添付ファイルの様な2次元のモデルで、Geometryで作成を試みています。
円は問題ないのですが、長方形で行き詰りました。
線を複数集めて長方形を定義できるかと思ったのですが、そうはならない様です。

salome-mecaのGeometryを使った2次元モデル作成の例を検索したのですが、
見つけ出す事が出来ませんでした。
salome-mecaで2次元のモデルを作成するのは一般的ではないのでしょうか、 
FreeCADなどを使用して図形を作成し読み込ませた方が良いのでしょうか?
 
現状FreeCADなどを使う方法に傾いていますが、
どの様なものでしょうか? 知恵をお借し下さい。

 
r020727_salome.pdf

kengo

unread,
Jul 27, 2020, 6:23:13 AM7/27/20
to Salome-Meca & Code_Aster + Code_Saturne

Geometryモジュールで形状を作った後、Meshモジュールでメッシュを作って下さい。

FreeCADでも行うことは同じです。

最近の商用ソフトでは、メッシュ作成工程が見えないものもあるようですが。


以上

Jun Tatsuno

unread,
Jul 27, 2020, 6:54:26 PM7/27/20
to Salome-Meca & Code_Aster + Code_Saturne
> 解析の実行は出来たのでモデル作成の段階に進んでいます。
> 添付ファイルの様な2次元のモデルで、Geometryで作成を試みています。
> 円は問題ないのですが、長方形で行き詰りました。
> 線を複数集めて長方形を定義できるかと思ったのですが、そうはならない様です。
複数の線で閉じた形状を定義してあるなら、「New Entity/Build/Face」で作成できます。
(Salome9.3.0で確認しましたので、以前のSalomeでは、配置が違うかもしれませんが)。

もしくは、「New Entity/Primitives/Rectangle」で、長方形を作成できます。

> salome-mecaのGeometryを使った2次元モデル作成の例を検索したのですが、
> 見つけ出す事が出来ませんでした。
それぞれ、使用したSalomeのバージョンが異なりますので、多少、異なるかもしれませんが、以下のような日本語での作成事例があります。
▼Code_Aster & Salome-Meca 日本語解説「シェル解析用のメッシュ作成」
▼SlideShare「Salome-Mecaによる軸対称体の弾性解析」
▼OpenCAE Users Wiki 第11回勉強会「シェル高次メッシュ解析」
▼OpenCAE Users Wiki DEXCS-Salomeの使用法解説「16-01-A-Hsteel」

> salome-mecaで2次元のモデルを作成するのは一般的ではないのでしょうか、
> FreeCADなどを使用して図形を作成し読み込ませた方が良いのでしょうか?
FreeCADで作成できる形状なら、SalomeのGeometryモジュールで十分作成できます。

以上

2020年7月27日月曜日 19:23:13 UTC+9 kengo:

ksa...@gmail.com

unread,
Jul 28, 2020, 1:33:38 AM7/28/20
to Salome-Meca & Code_Aster + Code_Saturne
kengo 様
Jun Tatsuno  様

ありがとうございます。
お陰様で添付ファイルの様なモデルを作る事が出来、
やっとメッシュの作成までたどり着きました。

前に添付したPDFの1枚目の様なメッシュを目指して、
色々試行錯誤をしていますが、なかなか難しいようです。

補助線などを有効に活用してメッシュを作成しているようですが、
ここまでは行かないにしても、近いメッシュを作成したく思ってます。

参考に出来るサイト等は有りましょうか?
皆さん試行錯誤でメッシュを作成しているのでしょうか?
お知恵を借して頂けないでしょうか。


models.zip

kengo

unread,
Jul 28, 2020, 8:11:21 AM7/28/20
to Salome-Meca & Code_Aster + Code_Saturne

わざわざサンプルと同じメッシュにしなくても、四角形でも良いのでは。



良く考えて、問題に適した要素、メッシュを探して下さい。


以上

Yoshikatsu Akiyama

unread,
Jul 28, 2020, 9:52:35 AM7/28/20
to Salome-Meca & Code_Aster + Code_Saturne
佐藤様

添付のような感じで設定すれば同じようなメッシュは作成できると思います。
私は設定を自分で試行錯誤してメッシュを作成しています。

以上、よろしくお願いします。
Study1.hdf

ksa...@gmail.com

unread,
Jul 29, 2020, 3:42:29 AM7/29/20
to Salome-Meca & Code_Aster + Code_Saturne
kengo様
Akiyama様

情報提供有難うございます。
まず添付ファイルの様に四角形などで切って動かしてみましたが、
「A」の様なエラーが出ました。
「QUAD_LINE」が悪いのかと思い安直では有りますが「LINE_QUAD」に変更してみました。
「B」の様なエラーが出ました。これは明らかな間違いかと。

commファイルの先頭部分のエラー発生個所は下の「C」に示して有ります。
「CREA_MAILLAGE」は境界条件の設定項目の様で、
下のリンクのの説明書類を読んでみますが、どれを選ぶか見当がつかない状態です。

メッシュの切り方とcommファイルの記述が一致していないせいかと思いますが、
対処方法はご存じではないでしょうか?

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
A resuファイルのエラー表示部(サンプルファイル通り)
   !  Erreur utilisateur dans CREA_MAILLAGE / QUAD_LINE :                              !
   !   Vous avez demandé de transformer des mailles quadratiques en mailles linéaires. !
   !   Mais il n'y a aucune maille quadratique à transformer.                          !
(日本語訳)
! CREA_MAILLAGE / QUAD_LINEのユーザーエラー:!
! 2次メッシュを線形メッシュに変換するように要求しました。 !
!ただし、変換する2次メッシュはありません。 !
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
B resuファイルのエラー表示部(QUAD_LINE -> LINE_QUAD に換えてみた時)
   ! Erreur utilisateur dans la commande CREA_MAILLAGE :                                            !
   !   Pour créer le nouveau maillage, il faut créer de nouveaux noeuds.                            !
   !   Ici, on cherche à créer le noeud (NS1) mais il existe déjà.                                  !
   !                                                                                                !
   !   Par défaut, les nouveaux noeuds ont des noms commençant par le préfixe 'NS', mais ce préfixe !
   !   peut être modifié par l'utilisateur (mots clés XXXX / PREF_NOEUD).                           !
   !                                                                                                !
   ! Risques & conseils :                                                                           !
   !   Quand on utilise 2 fois de suite la commande CREA_MAILLAGE, il est en général nécessaire     !
   !   d'utiliser au moins une fois l'un des mots clés PREF_NOEUD                                   !
(日本語訳)
! CREA_MAILLAGEコマンドのユーザーエラー:!
!新しいメッシュを作成するには、新しいノードを作成する必要があります。 !
!ここでは、ノード(NS1)を作成しようとしていますが、すでに存在しています。 !
! !
!デフォルトでは、新しいノードにはプレフィックス「NS」で始まる名前がありますが、このプレフィックスです!
!ユーザーが変更できます(キーワードXXXX / PREF_NOEUD)。 !
! !
!リスクとアドバイス:!
!コマンドCREA_MAILLAGEを続けて2回使用する場合、通常は必要です。
!キーワードPREF_NOEUDの1つを少なくとも1回使用する!
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
C commファイルのメッシュ読込部

MESH1=LIRE_MAILLAGE(FORMAT='MED',);

MESH2=CREA_MAILLAGE(MAILLAGE=MESH1,
                   LINE_QUAD=_F(GROUP_MA=('Sheet','Top_sh','Bot_sh','Axe',),),);

MESH=CREA_MAILLAGE(MAILLAGE=MESH2,
# サンプルファイル通り
                   QUAD_LINE=(_F(GROUP_MA=('Punch','Die','Arc','Top_di',),),),);
# QUAD_LINE -> LINE_QUAD に換えてみた時
                   LINE_QUAD=(_F(GROUP_MA=('Punch','Die','Arc','Top_di',),),),);

MESH=MODI_MAILLAGE(reuse =MESH,
                   MAILLAGE=MESH,
                   ORIE_PEAU_2D=(_F(GROUP_MA='Arc',),
                                 _F(GROUP_MA='Top_sh',),
                                 _F(GROUP_MA='Bot_sh',),
                                 _F(GROUP_MA='Top_di',),),);
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

追伸
Akiyama様
ファイルを添付頂きありがとうございます。手持ちのsalome-mecaでファイルを開いたのですが、
バージョンが合っていないらしく正常に表示できませんでした。
よろしければ、ファイル作成時に使用したバージョンをお知らせください。

r020729-04.png

kengo

unread,
Jul 29, 2020, 8:30:11 AM7/29/20
to Salome-Meca & Code_Aster + Code_Saturne

QUAD_LINE、LINE_QUADは、要素の1次←→2次変換を行います。

メッシャーで作ったメッシュは、デフォルトでは1次なので、変換元が無いためエラーが出ています。
下のように書き換えれば通ると思います。


以上

MESH1=LIRE_MAILLAGE(FORMAT='MED',);

MESH=CREA_MAILLAGE(MAILLAGE=MESH1,
                   LINE_QUAD=_F(GROUP_MA=('Sheet','Top_sh','Bot_sh','Axe',),),);

ksa...@gmail.com

unread,
Jul 29, 2020, 8:12:28 PM7/29/20
to Salome-Meca & Code_Aster + Code_Saturne
kengo様

回答ありがとうございます。

動作を確認しました。
お陰様で、モデルの作成から解析まで一通り流れるようになりました。
今後は解析の精度を高めていきます。
感謝いたします。助かりました。

2020年7月29日水曜日 21:30:11 UTC+9 kengo:

ksa...@gmail.com

unread,
Jul 29, 2020, 9:53:42 PM7/29/20
to Salome-Meca & Code_Aster + Code_Saturne
解析は終わったと思ったのですが、1カ所エラーがありました。
messファイルでは「A」の様な表示で、
commファイルでは「B」が該当箇所と思われます。

「N3216」はノード番号で新しく作ったモデルは該当するノードが無い為のエラー表示と判断し、
サンプルファイルではどの場所に該当するか調べる為、
ノード番号の表示の仕方を調べると次のように見つかりました。

「メッシュ」モジュールで、右クリックし、「番号」>「ノードの表示」を選択して表示
ただし「メッシュ」モジュールと「Aster」モジュールでは番号の扱い方が違うので、
「Post Pro」モジュールを使用するとの事。

「メッシュ」モジュール で番号は表示されました。
「Post Pro」モジュールで表示させようと探しましたが、
dexcs2014の為かこれが無く「ParaVis」 で代用しようとしましたが、該当項目はなさそうです。

「rmed」ファイルを「Post Pro」が存在するsalome-mecaで読み込ませようとしておりますが、
どなたかここら辺の経緯とか情報をお持ちの方はおりませんでしょうか?

-------------------------------------------
A messファイルのエラー表示
   ! <S> Exception utilisateur levee mais pas interceptee. !
   ! Les bases sont fermees.                               !
   ! Type de l'exception : error                           !
   !                                                       !
   !  le noeud " N3216 " n'existe pas.                     !
(日本語訳)
! <S>ユーザー例外が発生しましたがキャッチされませんでした。 !
! 基地は閉鎖されています。 !
! 例外タイプ:エラー!
! !
! ノード「N3216」は存在しません。 !
-------------------------------------------
B commファイルの該当箇所

TEST_RESU(RESU=(_F(INST=0.9*Tmax,
                   RESULTAT=RESU,
                   NOM_CHAM='DEPL',
                   NOEUD='N3216',
                   NOM_CMP='DY',
                   VALE_CALC=-28.5,
                   TOLE_MACHINE=(1.E-3, 1.E-6),
                   ),
                _F(INST=1.0*Tmax,
                   RESULTAT=RESU,
                   NOM_CHAM='DEPL',
                   NOEUD='N3216',
                   NOM_CMP='DY',
                   VALE_CALC=-25.649999999999999,
                   TOLE_MACHINE=(1.E-3, 1.E-6),
                   ),
                ),
          )
-------------------------------------------

kengo

unread,
Jul 30, 2020, 7:15:57 AM7/30/20
to Salome-Meca & Code_Aster + Code_Saturne

今回は、Asterで2次要素化したので、「メッシュ」モジュールと番号が違うのだと思います。
メッシュに対して特別な操作をしなければ、「メッシュ」モジュールと「Aster」モジュールで同じだっと思います。


結果の「rmed」ファイルは、入力のmedファイルと同じ書式なので、
「メッシュ」モジュール で、「rmed」ファイルを MED file として import して、
ノード番号を表示させれば良いです。

N3216'は、V6.03.155] SSNP155のPDFを見る限り、パンチと接触するシート側の点だと思います。


「Post Pro」モジュールは、かなり前に開発終了しているので、medファイルが読めない可能性が高いです。


以上



ksa...@gmail.com

unread,
Jul 31, 2020, 2:52:20 AM7/31/20
to Salome-Meca & Code_Aster + Code_Saturne
kengo様

ご助言有難うございます。
参考にして解析を進めております。

2020年7月30日木曜日 20:15:57 UTC+9 kengo:

ksa...@gmail.com

unread,
Aug 5, 2020, 1:04:48 AM8/5/20
to Salome-Meca & Code_Aster + Code_Saturne
解析は可能になったので、メッシュに切り方を工夫して、
サンプルファイルの結果に近づけようとしておりますが、
上手くいきません。どこが悪いのでしょうか?
どなたか経験は有りませんでしょうか?

実施したことは以下の通りです。
1 物体の表面のメッシュを細かく
2 1次三角形要素から2次三角形要素に変更

1では値が安定し、有効でした。
 ただ、メッシュをより細かくしてもサンプルには近づきませんでした。

2では1と変わらないようです。
 サンプルは円状のpunchと受け側のdieは2次三角形要素で作成されていたので、
 それに倣って作成してみました。commファイルで以下の記述で、
 2次三角形要素から1次三角形要素に変換しており、無駄かも知れないとは思いましたが。

MESH=CREA_MAILLAGE(MAILLAGE=MESH2,
r020805_salome.pdf

kengo

unread,
Aug 6, 2020, 9:44:22 AM8/6/20
to Salome-Meca & Code_Aster + Code_Saturne

このような問題の経験は無いので、役に立つかはわかりませんが、
要素のサイズやアスペクト比を色々と振ってみて傾向見てはどうでしょうか。
要素形状の依存性がわかると思います。

資料([U2.04.04] Instructions for use of contact)を良く読めばヒントがあるかもしれません。


以上

ksa...@gmail.com

unread,
Aug 6, 2020, 8:43:40 PM8/6/20
to Salome-Meca & Code_Aster + Code_Saturne
kengo様

ご助言有難うございます。
実はこの件解決しました。受け側のダイの作図の誤りで、想定より大きな穴を作図しておりました。
Gmshで作図してこの誤りを見つけました。誤った情報を流してしまい申し訳ありません。

実はこの過程で新たな問題を発見いたしました。
出力されるdisplacement(X軸)の値がサンプルファイルと自作のメッシュでは明らかに異なるのです。
force(Y軸)の値はほぼ同等の値を得られています。添付ファイルを参照ください。
displacement(X軸)の値はサンプルファイルと自作のメッシュ で最大4程度違います。

以下長いですがcommファイルを貼り付けると。
「IMPR_FONCTION(FORMAT='XMGRACE', 」で該当の値を出力します。
「FONC_X=DEPL」がdisplacementの値に相当し、これをさかのぼると、
「DEPLA=RECU_FONCTION(RESULTAT=RESU, 」 で指定節点のY軸の値の変位を取得しています。

サンプルファイルを自作のメッシュでこのような差が生じるとは
思えないのですが、どの様なものでしょうか?
メッシュの作りが甘いとこの様になるのでしょうか?
 
----------------------------------------------
DEBUT();

MESH1=LIRE_MAILLAGE(FORMAT='MED',);

MESH2=CREA_MAILLAGE(MAILLAGE=MESH1,
#MESH=CREA_MAILLAGE(MAILLAGE=MESH1,
                   LINE_QUAD=_F(GROUP_MA=('Sheet','Top_sh','Bot_sh','Axe',),),);

MESH=CREA_MAILLAGE(MAILLAGE=MESH2,
                   QUAD_LINE=(_F(GROUP_MA=('Punch','Die','Arc','Top_di',),),),);

MESH=MODI_MAILLAGE(reuse =MESH,
                   MAILLAGE=MESH,
                   ORIE_PEAU_2D=(_F(GROUP_MA='Arc',),
                                 _F(GROUP_MA='Top_sh',),
                                 _F(GROUP_MA='Bot_sh',),
                                 _F(GROUP_MA='Top_di',),),);

MESH=DEFI_GROUP(reuse =MESH,
                MAILLAGE=MESH,
                CREA_GROUP_NO=_F(TOUT_GROUP_MA='OUI',),);

TRAC=LIRE_FONCTION(UNITE=38,
                   NOM_PARA='EPSI',
                   PROL_DROITE='LINEAIRE',);

rho=2.7E-3
MAT1=DEFI_MATERIAU(ELAS=_F(E=70500.0,
                           NU=0.342,
                           RHO=rho,),
                   TRACTION=_F(SIGM=TRAC,),);

MAT=AFFE_MATERIAU(MAILLAGE=MESH,
                  AFFE=_F(GROUP_MA='Sheet',
                          MATER=MAT1,),);

Tmax=1000
FONC=DEFI_FONCTION(NOM_PARA='INST',
                   VALE=(0.0,         0.0,
                    Tmax*0.9,         1.0,
                    Tmax*1.0,         0.9,
                         ),
                   PROL_DROITE='EXCLU',PROL_GAUCHE='EXCLU',);

Npas1=900
Npas2=200
L_INST=DEFI_LIST_REEL(DEBUT=0.0,
                      INTERVALLE=(_F(JUSQU_A=0.9*Tmax,
                                     NOMBRE=Npas1,),
                                  _F(JUSQU_A=1.0*Tmax,
                                     NOMBRE=Npas2,),),);

LINST=DEFI_LIST_INST(DEFI_LIST=_F(METHODE='MANUEL',
                                  LIST_INST=L_INST,),
                     ECHEC=_F(SUBD_PAS=4,
                              SUBD_NIVEAU=10,),);

MO=AFFE_MODELE(MAILLAGE=MESH,
               AFFE=(_F(GROUP_MA='Sheet',
                        PHENOMENE='MECANIQUE',
                        MODELISATION=('D_PLAN_SI',),),
                     _F(GROUP_MA=('Arc','Top_di',),
                        PHENOMENE='MECANIQUE',
                        MODELISATION=('D_PLAN',),),),);

CL=AFFE_CHAR_CINE(MODELE=MO,
                  MECA_IMPO=(_F(GROUP_MA='Axe',
                                DX=0.0,),
                             _F(GROUP_MA='Arc',
                                DX=0.0,),
                             _F(GROUP_MA='Top_di',
                                DX=0.0,
                                DY=0.0,),
                                ),);

CH=AFFE_CHAR_CINE(MODELE=MO,
                  MECA_IMPO=_F(GROUP_MA='Arc',
                               DY=-28.5,),);

algo='LAGRANGIEN'
COND=DEFI_CONTACT(MODELE=MO,
                FORMULATION='DISCRETE',
                ITER_GEOM_MAXI=50,
                ZONE=(
                _F(GROUP_MA_MAIT='Arc',
                   GROUP_MA_ESCL='Top_sh',
                   ALGO_CONT=algo,
),
                _F(GROUP_MA_MAIT='Top_di',
                   GROUP_MA_ESCL='Bot_sh',
                   ALGO_CONT=algo,
),),);

RESU=DYNA_NON_LINE(MODELE=MO,
                   CHAM_MATER=MAT,
                   EXCIT=(_F(CHARGE=CL,),
                          _F(CHARGE=CH,
                             FONC_MULT=FONC,),),
                   CONTACT=COND,
                   COMP_INCR=(_F(RELATION='VMIS_ISOT_TRAC',
                                DEFORMATION='PETIT_REAC',
                                GROUP_MA='Sheet',),
                              ),
                   INCREMENT=_F(LIST_INST=LINST,),
                   SCHEMA_TEMPS=_F(SCHEMA='HHT',
                                   FORMULATION='DEPLACEMENT',),
                   NEWTON=_F(PREDICTION='TANGENTE',
                             MATRICE='TANGENTE',
                             REAC_ITER=1,),
                   SOLVEUR=_F(SYME='OUI',
                              ),
                   ARCHIVAGE=_F(LIST_INST=L_INST,),
                   CONVERGENCE=_F(ITER_GLOB_MAXI=100,
                   ),
                   );

RESU=CALC_CHAMP(reuse=RESU,RESULTAT=RESU,CRITERES=('SIEQ_ELGA','SIEQ_ELNO'))


RESU=CALC_CHAMP(reuse =RESU,
             RESULTAT=RESU,
             FORCE=('FORC_NODA','REAC_NODA'),CRITERES='SIEQ_NOEU');

T_RELEV=POST_RELEVE_T(ACTION=_F(OPERATION='EXTRACTION',
                                INTITULE='Forces nodales sur la plaque',
                                RESULTAT=RESU,
                                NOM_CHAM='REAC_NODA',
                                GROUP_NO='Bot_sh',
                                RESULTANTE='DY',
                                ),);

F_RELEV=RECU_FONCTION(TABLE=T_RELEV,
                      PARA_X='INST',
                      PARA_Y='DY',);
#
#t_node='N1097'
#t_node='N1505'
#t_node='N3336'
t_node='N1211'
#t_node='N7920'

DEPLA=RECU_FONCTION(RESULTAT=RESU,
                    NOM_CHAM='DEPL',
                    NOM_CMP='DY',
#                   NOEUD='N3216',
#                   NOEUD='N1097',
                    NOEUD=t_node,
                    );

DEPL=CALC_FONCTION(COMB=_F(FONCTION=DEPLA,
                           COEF=-1.0,),);

FORC=CALC_FONCTION(COMB=_F(FONCTION=F_RELEV,
                           COEF=60.0,),);

IMPR_FONCTION(FORMAT='XMGRACE',
              UNITE=29,
              COURBE=_F(FONC_X=DEPL,FONC_Y=FORC,LEGENDE='--',MARQUEUR=0,),
              TITRE='Reponse force - deplacement',
              BORNE_X=(0.0,30.0,),
              BORNE_Y=(0,250.0,),
              ECHELLE_X='LIN',
              ECHELLE_Y='LIN',
              GRILLE_X=5,
              GRILLE_Y=50,
              LEGENDE_X='Deplacement (mm)',
              LEGENDE_Y='Force (N)',);

L_IMPR=DEFI_LIST_REEL(DEBUT=0.0,
                      INTERVALLE=(_F(JUSQU_A=900.0,
                                     NOMBRE=225,),
                                  _F(JUSQU_A=1000.0,
                                     NOMBRE=20,),),);

IMPR_RESU(FORMAT='MED',
          UNITE=80,
          RESU=_F(RESULTAT=RESU,
                  #NOM_CHAM=('DEPL','SIEQ_ELGA','SIEQ_ELNO','VALE_CONT','FORC_NODA',),
                  NOM_CHAM=('DEPL','VARI_ELGA','SIEQ_ELGA','VALE_CONT','FORC_NODA',),
                  LIST_INST=L_IMPR,
                  #NOM_CMP=('DX','DY',),
                  ),);

# ===========================================
# Tests

TEST_RESU(RESU=(_F(INST=0.9*Tmax,
                   RESULTAT=RESU,
                   NOM_CHAM='DEPL',
#                  NOEUD='N3216',
#                  NOEUD='N1097',
                   NOEUD=t_node,
                   NOM_CMP='DY',
                   VALE_CALC=-28.5,
                   TOLE_MACHINE=(1.E-3, 1.E-6),
                   ),
                _F(INST=1.0*Tmax,
                   RESULTAT=RESU,
                   NOM_CHAM='DEPL',
#                  NOEUD='N3216',
#                  NOEUD='N1097',
                   NOEUD=t_node,
                   NOM_CMP='DY',
                   VALE_CALC=-25.649999999999999,
                   TOLE_MACHINE=(1.E-3, 1.E-6),
                   ),
                ),
          )

FIN()


r020806_salome.pdf

ksa...@gmail.com

unread,
Aug 27, 2020, 1:37:05 AM8/27/20
to Salome-Meca & Code_Aster + Code_Saturne
本件、以下の文章などを読み、 色々試行錯誤しているのですが、解決策が見えてこない状況ですが、

目先を変えて参考になりそうな解析例を実際に解析してみようとして以下の文章を見つけました。

この中に今回参考にしているSSNP155もありますが、
この時はネットを色々調べ、commファイルとメッシュファイルを見つける事が出来ました。
同じようにSSNP154等のファイルを探しましたが見つかりません。

 NAFEMSにありそうな事を書いているようですが、以下にアクセスしても、
検索を掛けてもない様な感じです。

実際に解析例を解析したいとき、ファイルは何処で入手するのでしょうか?
どこか特別なサイトがあるのでしょうか?
SSNP155 はたまたまだったのでしょうか? 

どなたかご存じではないでしょうか?
 

kengo

unread,
Aug 27, 2020, 9:30:19 AM8/27/20
to Salome-Meca & Code_Aster + Code_Saturne

salome-meca をインストールしたフォルダ内を
ssnp154 などで検索すれば、サンプルファイルが見つかります。


以上

ksa...@gmail.com

unread,
Aug 27, 2020, 9:28:09 PM8/27/20
to Salome-Meca & Code_Aster + Code_Saturne
kengoさま

ありがとうございます。
そうでしたね、失念しておりました。
お手数かけました。

2020年8月27日木曜日 22:30:19 UTC+9 kengo:

Jun Tatsuno

unread,
Aug 28, 2020, 7:46:49 PM8/28/20
to Salome-Meca & Code_Aster + Code_Saturne
公式のValidationファイルはSalome-Mecaをインストールしましたら、一緒にインストールされています。
各バージョンによってファイルの保管場所は異なりますが、Salome-Meca 2019でしたら、
  1. AsterStudyモジュールを起動
  2. 「History View」タブせお選択
  3. メニューバーで、「Operations」>「Import Testcase」
で、インポート可能です。

2020年8月28日金曜日 10:28:09 UTC+9 ksa...@gmail.com:

kominami

unread,
Aug 28, 2020, 9:14:58 PM8/28/20
to Salome-Meca & Code_Aster + Code_Saturne
2020/08/07付けの投稿について

サンプルと同じGeometryで、同じ荷重と変位/拘束条件ですよね?
commファイルを見ると、接触判定アルゴリズムはLAGRANGIEN法で摩擦なし、荷重と変位の増分/減分のステップは、FONC=DEFI_FONCTION( 、L_INST=DEFI_LIST_REEL(、LINST=DEFI_LIST_INST で指定していますが、同一ですよね?

サンプルとの違いは、Asterのバージョンと、メッシュですか?
そうなると、バージョン依存性と、メッシュ依存性だと判断するしかないのです。

messファイルに、荷重と変位の増分/減分ステップ中の収束状況のログが含まれていると思うので、各々のステップでの収束状況を調べてみてはどうでしょうか(もっとも、各々のステップのどこかで収束不足が発生していると、最終的にはエラーになっていると思うので、外している可能性が大きいです。)

現実の状況を想像すると、変位と荷重の減分ステップで、佐藤さんの自作メッシュのように変位と荷重の線が垂直になるようなことは考え難いのです。現実に起きるとしたら、ウェブ部材の張力が抜ける、つまり(このモデルでの)X方向の拘束がおかしいばあいでしょうが、それもなさそうです。

佐藤さんの自作メッシュのように変位と荷重の線が垂直になっている状態でも、思考実験で、ウェブ部材の内部での歪み分布を無理やり作り出すと拘束条件を満たす解としては存在するので、“非線形問題での解の分岐”が起きている可能性も考えられます。“解の分岐”が原因だとすると、荷重と変位の増分ステップのほかに、メッシュや内部ソルバーの設定やアルゴリズムも関係してきます。つまり、メッシュ依存性とソフトのバージョン依存性です。

ためしに、減分ステップ中でのウェブ部材の応力または歪みの分布コンター図を出力してみてください。

以上 よろしくお願いいたします。

2020年8月29日土曜日 8:46:49 UTC+9 Jun Tatsuno:

kominami

unread,
Aug 29, 2020, 12:31:36 AM8/29/20
to Salome-Meca & Code_Aster + Code_Saturne
おや、今気がつきましたが、この例題での設定は微小変形ですね。
DEFORMATION='PETIT_REAC',

実際の解析では、この例題のGeometry だと大変形・回転にしないとモデル誤差が大きくなるはずですね。
2020年8月29日土曜日 10:14:58 UTC+9 kominami:

ksa...@gmail.com

unread,
Aug 30, 2020, 10:17:49 PM8/30/20
to Salome-Meca & Code_Aster + Code_Saturne
Tatsunoさま
kominami さま

コメント・助言有難うございます。
挫折しかけているのですが、なんとか糸口をつかめた感じです。
一つ一つやって行きます。 

ksa...@gmail.com

unread,
Oct 9, 2020, 1:41:30 AM10/9/20
to Salome-Meca & Code_Aster + Code_Saturne
皆様

色々検討し一応の結論に達しましたので投稿いたします。

結論としては、公開されている技術文章又は検証用のサンプルファイル(メッシュ、COMM)の両方またはどちらかに誤りがあると思われます。

解析のモデルとしては添付ファイルのP1,P2の様に2次元の軸対象モデル。観測用の節点としては「A」となっているが、実際は「A‘」になっていると思われる。

自作のメッシュでサンプルファイルの「A」に相当する節点での結果を作図したのがP3の右上の結果となり、サンプルとは一致しない。よく検討すると、force値はほぼ一致(P3の左下)するが、displacement値が明らかに違う(P3の右下)。自作のメッシュの切り方、COMMファイルのパラメータなどを色々検討したが、ほぼ同様な結果に。

「Gmsh」ソフトにより変位量(DEPL)の作図で比較を試みる、P4,P5の結果。上がサンプルファイルでの結果、下が自作メッシュでの結果、各タイムステップ毎に比較。ここのタイムステップ値はP3右下の横軸の値の1/4の値に相当するようである。結果としてサンプル及び自作で大きな差は認められない。

試しに自作メッシュで観測節点を「A‘」に変更して解析を実施、その結果がP6の上。P3左下の結果と同様な傾向。P3の結果を改めて評価、解析のタイムステップを横軸に自作とサンプルでforce値とdisplacement値を作図(P6の右下と左下)。force値は同等になるのは予想通り。 displacement値は自作ではP4,P5の作図結果(着底の様子)と同等になるが、サンプルは明らかに違う。「Punch」 (P1参照)の軌跡を表しているようだ。

で冒頭の結論に達する。観測用の節点は「A」ではなく「A‘」またはそれに類する節点に設定されているようだ。

この様な結論に達しましたが、どの様に思われますでしょうか?

一応の結論に達しましたので、今は摩擦有の場合の解析に取り掛かっています。

r021008_salome.pptx

kengo

unread,
Oct 9, 2020, 9:35:37 AM10/9/20
to Salome-Meca & Code_Aster + Code_Saturne

サンプルのメッシュファイルを探してきて確認しましたが、観測用の節点は元からパンチ側の接触点「A‘」になっています。
また、SSNP155 やNAFEMS のPDFのグラフを見ると、軸は、Punch displacement - Punch force となっていますので、パンチ側を参照するのが正のようです。
「A」点は、SSNP155のPDFの図示が間違っているか、何か別の目的で参照した点のようです。


以上

2020年10月9日金曜日 14:41:30 UTC+9 ksa...@gmail.com:

ksa...@gmail.com

unread,
Oct 11, 2020, 9:03:39 PM10/11/20
to Salome-Meca & Code_Aster + Code_Saturne
kengoさま

コメントありがとうございます。

commファイルにある「3216」という節点番号ですが、
番号を表示させ確かめたかったのですが、添付ファイルの様に「A」「A’」に相当する場所では
重なって番号が判別できなかったので、そのままにして解析を進めてきました。
結論が出た今もやはり正確には判別付かない状態です。
「3216」 のそばにある「3234」「3235」等で代用させ解析してみるという事も出来ますが、
正確に番号が分かる方法をご存じなら教えて頂けないでしょうか。


2020年10月9日金曜日 22:35:37 UTC+9 kengo:
r021012_salome.pdf

kengo

unread,
Oct 12, 2020, 9:09:22 AM10/12/20
to Salome-Meca & Code_Aster + Code_Saturne

添付の画像のように、対象のグループのみを表示させて、
Mesh Information > Element Info を表示させて、
対象の節点をマウスで直接選んでください。


以上

2020年10月12日月曜日 10:03:39 UTC+9 ksa...@gmail.com:
Screenshot at 2020-10-12 21-55-25.png

ksa...@gmail.com

unread,
Oct 13, 2020, 7:57:53 PM10/13/20
to Salome-Meca & Code_Aster + Code_Saturne
kengoさま

ありがとうございます。
この様な操作も出来るのですね、勉強になりました。

「A’」ですが、これの節点番号は 3215 でした。
COMMファイルにある 3216 を探したところ、Punchの最上部にありました。

色々罠がありました。

2020年10月12日月曜日 22:09:22 UTC+9 kengo:

ksa...@gmail.com

unread,
Oct 23, 2020, 2:37:14 AM10/23/20
to Salome-Meca & Code_Aster + Code_Saturne
皆様

摩擦が無い解析が一段落着いたので、摩擦がありの解析に取り掛かっていますが、
また行き詰ってしまいました。対処方法とかアイディアがあれば教えて頂けないでしょうか。
やった事は以下の通りです。

「SSNP155」と「friction」で検索を掛けたら以下の記事を見つけました。
これに従って「DEFI_CONTACT」を書き換え、
「DYNA_NON_LINE」を「STAT_NON_LINE」置き換えたものと「DYNA_NON_LINE」の一部を
書き換えた2種類のcommファイルを作成し、解析を試みました。

commファイルでは新たに「T」「B」が必要で調べたら添付ファイルの1ページ目のように「Sheet」の上の節点でした。
「DEFI_CONTACT」の「ITER_CONT_MAXI」「REAC_FROT」「NB_ITER_FROT」が無効の様なので、コメントアウトしました。

タイムステップの間隔が大きいとのエラーがあり、タイムステップを小さくしても全タイムステップで計算できなかったりして、
色々解析環境を試行錯誤して、唯一計算できたのが、「CAELinux2018」を使用した環境でした。
この結果が添付ファイルの2ページ目になります。値のばらつきが酷く、目標となる結果には程遠い結果となりました。

「ITER_CONT_MAXI」「REAC_FROT」「NB_ITER_FROT」 が有効になるバージョンで解析すれば良いのかなと思い、
検索でみつかった例が以下の記事で、「asterの10.2」の話題とか「2010年」の記事です。


「SSNP155」と「friction」で見つかった記事は「2012年」で
これら条に合致しそうなsalome-mecaのバージョンは現在ネット上には存在しないようで、
私が用意できた解析環境は添付ファイルの3ページ目に載せてますが、これで合致しそうな「dexcs2010」ですが、
摩擦なしの解析も「CALC_CHAMP is not defined」と言うエラーで解析できませんでした。

この様な状況です。
何か対処方法やアイディアは有りませんでしょうか?

r021023_salome.pdf

kengo

unread,
Oct 23, 2020, 9:20:06 AM10/23/20
to Salome-Meca & Code_Aster + Code_Saturne

接触解析機能は改善されてきているので、10.2のような古すぎるバージョンは使わないほうが良いと思います。

詳しくは調べていませんが、「ITER_CONT_MAXI」「REAC_FROT」「NB_ITER_FROT」は単に不要になって設定から無くなった可能性もあるので、
新しいバージョンで、同等の設定する方法を学んだほうが、将来的には良い結果になると思います。


以上

Jun Tatsuno

unread,
Oct 24, 2020, 10:55:05 PM10/24/20
to Salome-Meca & Code_Aster + Code_Saturne
バージョン14の公式ドキュメントに「SSNP155」は存在していますが?

実際にされている検索方法はわかりませんが、Code_Asterで何かを調べるときは公式ドキュメントから探されたほうがいいと思います。

2020年10月23日金曜日 22:20:06 UTC+9 kengo:

ksa...@gmail.com

unread,
Nov 6, 2020, 1:40:09 AM11/6/20
to Salome-Meca & Code_Aster + Code_Saturne
kengo様、Tatsuno様

ご助言有難うございました。返信が遅れて申し訳ありません。
お陰様で何とか摩擦有の解析が出来ました。
commファイルと結果のグラフを添付いたします。

解析が出来たのは良いのですが、ここで解せない事があります。
「T」「B」の節点の定義が必要なのですが、
この節点は何なのでしょうか? 摩擦有の計算の理論では該当部分は無さそうです。
どなたかご存じではありませんか?

因みに添付してあるcommファイルと結果ですが、CAELinux2018での結果です。
CAELinux2020で解析しようとしましたが、途中までしか計算出来ませんでした。
time stepを半分にしてもそうでした。
どこかのパラメータを調整すれば良いのかも知れませんが、色々使いこなしが難しい様です。

ーーーーーーーーーー
txtファイルを添付するとエラーが発生するので、貼り付けます。
commファイル
ーーーーーーーーーー
# coding=utf-8
# --------------------------------------------------------------------
# Copyright (C) 1991 - 2017 - EDF R&D - www.code-aster.org
# This file is part of code_aster.
#
# code_aster is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# code_aster is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with code_aster.  If not, see <http://www.gnu.org/licenses/>.
# --------------------------------------------------------------------

DEBUT(CODE=_F(NIV_PUB_WEB='INTERNET',),IGNORE_ALARM='MODELE1_63',);

MESH1=LIRE_MAILLAGE(FORMAT='MED',);

MESH2=CREA_MAILLAGE(MAILLAGE=MESH1,
#                    Tmax*1.0,         0.9,
                         ),
                   PROL_DROITE='EXCLU',PROL_GAUCHE='EXCLU',);

Npas1=900
#Npas2=200
Npas2=400
L_INST=DEFI_LIST_REEL(DEBUT=0.0,
                      INTERVALLE=(_F(JUSQU_A=0.9*Tmax,
                                     NOMBRE=Npas1,),
#                                  _F(JUSQU_A=1.0*Tmax,
#                                     NOMBRE=Npas2,),),);
                                     ),);

LINST=DEFI_LIST_INST(METHODE='MANUEL',
                     DEFI_LIST=_F(LIST_INST=L_INST,),
                     ECHEC=_F(SUBD_PAS=4,
                              SUBD_NIVEAU=10,),);

MO=AFFE_MODELE(MAILLAGE=MESH,
               AFFE=(_F(GROUP_MA='Sheet',
                        PHENOMENE='MECANIQUE',
                        MODELISATION=('D_PLAN_SI',),),
                     _F(GROUP_MA=('Arc','Top_di',),
                        PHENOMENE='MECANIQUE',
                        MODELISATION=('D_PLAN',),),),);

CL=AFFE_CHAR_CINE(MODELE=MO,
                  MECA_IMPO=(_F(GROUP_MA='Axe',
                                DX=0.0,),
                             _F(GROUP_MA='Arc',
                                DX=0.0,),
                             _F(GROUP_MA='Top_di',
                                DX=0.0,
                                DY=0.0,),
                                ),);

CH=AFFE_CHAR_CINE(MODELE=MO,
                  MECA_IMPO=_F(GROUP_MA='Arc',
                               DY=-28.5,),);

algo='CONTRAINTE'
#COND=DEFI_CONTACT(MODELE=MO,
#                  FORMULATION='DISCRETE',
#                  ITER_GEOM_MAXI=50,
#                  ZONE=(_F(GROUP_MA_MAIT='Arc',
#                           GROUP_MA_ESCL='Top_sh',
#                           ALGO_CONT=algo),
#                        _F(GROUP_MA_MAIT='Top_di',
#                           GROUP_MA_ESCL='Bot_sh',
#                           ALGO_CONT=algo,),),)

CON=DEFI_CONTACT(MODELE=MO,
                FORMULATION='CONTINUE',
                FROTTEMENT='COULOMB',
                REAC_GEOM='CONTROLE',
                NB_ITER_GEOM=2,
#                ITER_CONT_MAXI=50,
#                REAC_FROT='CONTROLE',
#                NB_ITER_FROT=3,
                ZONE=(
                _F(GROUP_MA_MAIT='Arc',
                   GROUP_MA_ESCL='Top_sh',
                   CONTACT_INIT='INTERPENETRE',
                   COULOMB=0.1342,
                   SANS_GROUP_NO_FR='T',
),
                _F(GROUP_MA_MAIT='Top_di',
                   GROUP_MA_ESCL='Bot_sh',
                   CONTACT_INIT='INTERPENETRE',
                   COULOMB=0.1342,
                   SANS_GROUP_NO_FR='B',
),),);

#RESU=DYNA_NON_LINE(MODELE=MO,
#                   CHAM_MATER=MAT,
#                   EXCIT=(_F(CHARGE=CL,),
#                          _F(CHARGE=CH,
#                             FONC_MULT=FONC,),),
                   #CONTACT=COND,
#                   CONTACT=CON,
#                   COMPORTEMENT=(_F(RELATION='VMIS_ISOT_TRAC',
#                                DEFORMATION='PETIT_REAC',
#                                GROUP_MA='Sheet',),
#                              ),
#                   INCREMENT=_F(LIST_INST=LINST,),
#                   SCHEMA_TEMPS=_F(SCHEMA='HHT',
#                                   FORMULATION='DEPLACEMENT',),
#                   NEWTON=_F(PREDICTION='TANGENTE',
#                             MATRICE='TANGENTE',
#                             MATR_RIGI_SYME='OUI',
#                             REAC_ITER=1,),
#                   ARCHIVAGE=_F(LIST_INST=L_INST,),
#                   SOLVEUR=_F(METHODE='MULT_FRONT',),
#                   CONVERGENCE=_F(ITER_GLOB_MAXI=100,
#                   CONVERGENCE=_F(ITER_GLOB_MAXI=50,
#                   ),
#                   );

RESU=STAT_NON_LINE(MODELE=MO,
                   CHAM_MATER=MAT,
                   EXCIT=(_F(CHARGE=CL,),
                          _F(CHARGE=CH,
                             FONC_MULT=FONC,),),
                   CONTACT=CON,
#                   COMP_INCR=(_F(RELATION='VMIS_ISOT_TRAC',
#                                DEFORMATION='SIMO_MIEHE',
#                                GROUP_MA='Sheet',),
#                              ),
                   COMPORTEMENT=_F(DEFORMATION='SIMO_MIEHE',
                                   RELATION='VMIS_ISOT_TRAC',
                                   GROUP_MA='Sheet'),
                   INCREMENT=_F(LIST_INST=LINST,),
                   NEWTON=_F(PREDICTION='ELASTIQUE',
                             MATRICE='TANGENTE',
                             REAC_ITER=1,),
                   SOLVEUR=_F(),
                   ARCHIVAGE=_F(LIST_INST=L_INST,),
                   CONVERGENCE=_F(ITER_GLOB_MAXI=25,
                   ),
                   );

RESU=CALC_CHAMP(reuse=RESU,RESULTAT=RESU,CRITERES=('SIEQ_ELGA','SIEQ_ELNO'))


RESU=CALC_CHAMP(reuse =RESU,
             RESULTAT=RESU,
             FORCE=('FORC_NODA','REAC_NODA'),CRITERES='SIEQ_NOEU');

T_RELEV=POST_RELEVE_T(ACTION=_F(OPERATION='EXTRACTION',
                                INTITULE='Forces nodales sur la plaque',
                                RESULTAT=RESU,
                                NOM_CHAM='REAC_NODA',
                                GROUP_NO='Bot_sh',
                                RESULTANTE='DY',
                                ),);

F_RELEV=RECU_FONCTION(TABLE=T_RELEV,
                      PARA_X='INST',
                      PARA_Y='DY',);

DEPLA=RECU_FONCTION(RESULTAT=RESU,
                    NOM_CHAM='DEPL',
                    NOM_CMP='DY',
                    NOEUD='N3216',
                  #NOM_CHAM=('DEPL','SIEQ_ELGA','SIEQ_ELNO','CONT_NOEU','FORC_NODA',),
                  NOM_CHAM=('DEPL','VARI_ELGA','SIEQ_ELGA','CONT_NOEU','FORC_NODA',),
                  LIST_INST=L_IMPR,
                  #NOM_CMP=('DX','DY',),
                  ),);

# ===========================================
# Tests

TEST_RESU(RESU=(_F(INST=0.9*Tmax,
                   RESULTAT=RESU,
                   NOM_CHAM='DEPL',
                   NOEUD='N3216',
                   NOM_CMP='DY',
                   VALE_CALC=0.0,   # validation : ignoré
                   REFERENCE='AUTRE_ASTER',
                   VALE_REFE=-28.5,
                   ),
                _F(INST=1.0*Tmax,
                   RESULTAT=RESU,
                   NOM_CHAM='DEPL',
                   NOEUD='N3216',
                   NOM_CMP='DY',
                   VALE_CALC=0.0,   # validation : ignoré
                   REFERENCE='AUTRE_ASTER',
                   VALE_REFE=-25.65,
                   ),
                ),
          )

FIN()

2020年10月25日日曜日 11:55:05 UTC+9 Jun Tatsuno:
r021106_salome.pdf

kengo

unread,
Nov 8, 2020, 6:38:35 AM11/8/20
to Salome-Meca & Code_Aster + Code_Saturne

「T」「B」の節点が設定されているSANS_GROUP_NO_FR は、
他の境界条件と競合する可能性のある部分を摩擦の計算処理から除外するために使用する、
とマニュアルに書いています。


以上

ksa...@gmail.com

unread,
Nov 9, 2020, 1:30:38 AM11/9/20
to Salome-Meca & Code_Aster + Code_Saturne
kengoさま

ご指摘ありがとうございます。
以下のリンクの 3.2.1 にありますね。

摩擦有の計算で、formulationを「CONTINUOUS」にした時に必要な設定の様ですね。
設定しない場合どうなるのか気になりますが、後で設定しない場合を試してみます。

ありがとうございました。

2020年11月8日日曜日 20:38:35 UTC+9 kengo:

ksa...@gmail.com

unread,
Nov 9, 2020, 10:06:44 PM11/9/20
to Salome-Meca & Code_Aster + Code_Saturne
メッシュの切り方と計算時間の関係を調べております。

自作のメッシュが公開されているメッシュ(ssnp155a.mmes)より解析時間がかかるのは納得は出来るのですが、
ssnp155a.mmes の解析時間を比べると、vmwareを介した場合とサーバー機にcode_asterをインストールした場合とで
劇的に差は出ないし、以下の情報でOpenBLASを有効化すると2倍速いとありますが、2倍には遠い結果です。


OpenBLASを有効化と言っても、ubuntu標準のもので、コンパイルしたのでこれのせいでしょうか?
皆様は高速化の為、何をされておりますでしょうか?
Intelコンパイラーの使用?
MPIを有効化してmakeする方法の調査を開始しておりますが、
ご意見・情報などを頂ければ幸いです。

r021110_salome.pdf

kengo

unread,
Nov 10, 2020, 6:26:38 AM11/10/20
to Salome-Meca & Code_Aster + Code_Saturne

OpenBLASを使うと速いというのは、Ubuntu標準のblas, lapackと比較しての話です。
比較したのもかなり前のことなので、今のUbuntu標準のblas, lapackが速くなっていて、
大差が無くなっているのかもしれません。

計算を速くするには、並列化と反復解法ソルバーのpetscを使うくらいしかありません。
以前に摩擦無しの接触解析でpetscを使ったら、かなり速くなった実績はあります。
petscで並列計算するのが、手っ取り早い高速化と思います。(petscで摩擦有りを計算したことはないですが)
ただし、並列化は簡易的なものなので、劇的に速くなるわけではないです。

最近のバージョンの並列化とpetscインストール方法は、公式のフォーラムを探せばあると思います。


ちなみにSalome-Mecaのblasは、intel MKL(単独版)が使われており、
OpenBLASよりも性能は良いです。

ですので単独計算では、LinuxサーバーにSalome-Mecaを入れて計算すれば、
OpenBLASよりも若干速くなると思います。


以上

ksa...@gmail.com

unread,
Nov 11, 2020, 1:18:11 AM11/11/20
to Salome-Meca & Code_Aster + Code_Saturne
kengo様

貴重な情報を有難うございます。
色々試行錯誤してみます。
まずは Salome-Meca から開始します。


2020年11月10日火曜日 20:26:38 UTC+9 kengo:

ksa...@gmail.com

unread,
Nov 12, 2020, 2:03:44 AM11/12/20
to Salome-Meca & Code_Aster + Code_Saturne
皆様のおかげで、
ようやくやりたい解析に取り掛かる事が出来ましたが、また、エラーで止まってしまいました。
これが解消できれば、あと自力で出来ると思います。
もう一歩お力をお借り出来ないでしょうか。

やりたい解析は添付ファイルの通り、今まで実施していた解析に追加して、
「sheet」の上に「Clasp」と言う剛体を置いて、「Sheet」の上昇を抑える役割を持たせた解析です。
実績があるのはdexcs2014とCAELinux2018を使用した解析ですが、
計算時間の短さと操作性を優先してdexcs2014で解析し、そのあとCAELinux2018で解析する予定です。

commファイルとmesファイルも添付しました。
ssnp155aの公開ファイルの一部を修正したファイル(test3.comm)を元に
「Clasp」を追加したファイル(test3_cl.comm)を作成しました。
efficasではエラーは出ていません。

messファイルでエラー部分を抜粋すると以下の様になります。
------------------------------------------
   ! <A> <CALCULEL2_63>                                                                  !
   !                                                                                     !
   !   -> La maille M611 porte un élément fini de bord, mais elle ne borde               !
   !      aucun élément ayant une "rigidité".                                            !
   !                                                                                     !
   !   -> Risque & Conseil :                                                             !
   !      Cela peut entraîner des problèmes de "pivot nul" lors de la résolution.        !
   !      Si la résolution des systèmes linéaires ne pose pas de problèmes, vous         !
   !      pouvez ignorer ce message.                                                     !
   !      Sinon, vérifier la définition du modèle (AFFE_MODELE) en évitant l'utilisation !
   !      de l'opérande TOUT='OUI'.                                                      !
   !                                                                                     !
   ! Ceci est une alarme. Si vous ne comprenez pas le sens de cette                      !
   ! alarme, vous pouvez obtenir des résultats inattendus !                              !
------------------------------------------
(gogoleの日本語訳)
-> M611メッシュは有限のエッジ要素を持っていますが、境界はありません「剛性」を持つ要素はありません。! !! !
->リスクとアドバイス:! !これにより、解決時に「ゼロピボット」の問題が発生する可能性があります。! !
線形システムを解くことは問題ではないなら、あなた! !このメッセージは無視できます。! !
そうでない場合は、使用を避けながらモデルの定義(AFFE_MODELE)を確認してください。 !
オペランドのTOUT = 'OUI'。! !! !! !
これはアラームです。これの意味がわからない場合は! !アラーム、予期しない結果が生じる可能性があります。!  
------------------------------------------
検索して出て来た以下のURLに寄ると、追加した「Clasp」のメッシュが悪さをしているようですが、
確認はしたのですが、他と同じように作成してあり、どこが悪いのが見当が付きません。他のQ&Aをみても同様です。

また以下の様な表示もあり、メッシュが悪いようですが、
------------------------------------------ 
   !  les 18 mailles imprimées ci-dessus n'appartiennent pas au modèle et pourtant elles ont été affectées dans le mot-clé facteur : !
   ! FORCE_COQUE  
------------------------------------------ 
(gogoleの日本語訳)
 !上に印刷された18メッシュはモデルに属していませんが、キーワードファクターの影響を受けています。 
 !FORCE_COQUE!  
------------------------------------------ 
以下のURLを参考に、「FORCE_COQUE 」を「FORCE_ARETE」に変更したりしましたが、原因の特定に至っておりません。

類似した解析を調べ、以下のサイト等を参考に色々検討していますが、
作成したcommファイルの何処が悪いのか分からない状態です。


r021112_salome.pdf
r021112.tar

kengo

unread,
Nov 12, 2020, 8:38:21 AM11/12/20
to Salome-Meca & Code_Aster + Code_Saturne

まず、<A> <CALCULEL2_63>   の部分はアラートでエラーではありません。
計算が進んで精度良い結果が得られるなら、無視しても構いません。

エラーは、FORCE_COQUE の方です。
これはシェル要素用なので、2Dでは FORCE_CONTOUR を使うようです。


以上


2020年11月12日木曜日 16:03:44 UTC+9 ksa...@gmail.com:

ksa...@gmail.com

unread,
Nov 12, 2020, 8:31:41 PM11/12/20
to Salome-Meca & Code_Aster + Code_Saturne
kengo様

何時もありがとうございます。助かっております。

ご指摘通り変更してみました。結果は変わりませんでした。
「AFFE_CHAR_MECA」を説明した以下の文章を参考に該当しそうな物に色々変えてみました。

結果は以下の通り変わりませんでした。
------------------------------------------   
   !  les 18 mailles imprimées ci-dessus n'appartiennent pas au modèle et pourtant elles ont été affectées dans le mot-clé facteur : !
   ! FORCE_COQUE                                                                                                                     !
             !
   !  les 18 mailles imprimées ci-dessus n'appartiennent pas au modèle et pourtant elles ont été affectées dans le mot-clé facteur : !
   ! FORCE_CONTOUR                                                                                                                   !

   !  les 18 mailles imprimées ci-dessus n'appartiennent pas au modèle et pourtant elles ont été affectées dans le mot-clé facteur : !
   ! FORCE_ARETE  

   !  les 18 mailles imprimées ci-dessus n'appartiennent pas au modèle et pourtant elles ont été affectées dans le mot-clé facteur : !
   ! FORCE_INTERNE  

   !  les 18 mailles imprimées ci-dessus n'appartiennent pas au modèle et pourtant elles ont été affectées dans le mot-clé facteur : !
   ! FORCE_FACE  
------------------------------------------  

試しに添付ファイルの様に負荷に関するコマンド類を削除してみたら、
当然上記の様なエラーは出ないのですが、第一段階のタイムステップの計算が収束せず、
以下の様なエラーを出力し終了します。

------------------------------------------ 
   ! <MatriceSinguliereError> <MECANONLINE9_4>                                                          !
   !                                                                                                    !
   !    Arrêt pour cause de matrice non inversible.                                                     !
   !    La base globale est sauvegardée. Elle contient les pas archivés avant l'arrêt.                  !
   !                                                                                                    !
   !    Conseils :                                                                                      !
   !       - Vérifiez vos conditions aux limites.                                                       !
   !       - Vérifiez votre modèle, la cohérence des unités.                                            !
   !       - Si vous faites du contact, il ne faut pas que la structure ne "tienne" que par le contact. !
------------------------------------------ 
(gogoleの日本語訳) 
!! !非可逆マトリックスのために停止します。
! !グローバルデータベースが保存されます。これには、シャットダウン前にアーカイブされたステップが含まれています。
! !! !チップ:
! !-境界条件を確認してください。
! !-モデル、ユニットの一貫性を確認してください。
! !-接触する場合、構造は接触だけで「保持」してはなりません。!  
------------------------------------------ 

2020年11月12日木曜日 22:38:21 UTC+9 kengo:
r021113.tgz

ksa...@gmail.com

unread,
Dec 21, 2020, 8:50:27 PM12/21/20
to Salome-Meca & Code_Aster + Code_Saturne
本問題をcode_asterのサイトにも書き込んでみました。

1件解決できそうな回答があったのですが、途中で途切れてしまいました。
この回答で指摘され点ですが、解決できそうですが、理解できない点がありました。
どなたかお気づきな点など解説をお願いできないでしょうか?

この追加した物体「Clasp」の負荷を加える部分「load」ですが、
「fake 3D elements」偽の3次元の要素と言いましょうか、これで定義すると良いと
書かれているようで、実際にメッシュを作成し、commファイルも編集頂き、
実際に途中までは解析できたらしく、
メッシュファイルとcommファイルを添付頂き、私も試行しよう思いましたが、
メッシュファイルが壊れているようで継続することが出来ませんでしたし、
再度の添付もお願いしたのですが、1月以上経った果されないままです。

commファイルをみると「Part1_el」をどこかに置いていて、
これが「fake 3D elements」に相当する物の様ですが、詳細は不明です。

作成頂いたcommファイルと、code_asterに書き込んだ時のPDFの一部を添付します。
PDFの最終ページですが、これが解析したいモデルでGmshで可視化してみました。
追加した物体「Clasp」ですが、これだけ他の物体と色が違います。
なので、なにか扱いが違うのだろうとは気が付いていましたが、
具体的な対処方法は分からない状態です。

どなたかお気づきの点はありませんでしょうか?


r021222.zip
Reply all
Reply to author
Forward
0 new messages