>100 Views
June 14, 26
スライド概要
Salome_Meca2024 for Windowsで円孔付き平板の弾性応力解析を行った。過去にSalome_Meca2023で同じ解析を行っています。
技術士(機械工学),博士(工学),日本機械学会計算力学上級アナリスト(固体力学分野の有限要素法),通訳案内士(英語)
Salome-Mecaによる平⾯応⼒ 解析(⽳あき平板の応⼒集中問題) PE/計算固体⼒学研究室 1
学習⽬標 • ⼆次元問題を通じて精度のよいメッシュ作成⽅ 法を学ぶ • 多点拘束(変位従属)を体験する • 応⼒集中問題の取り扱いを通じて,結果の後処 理を学ぶ • 疲労設計への発展を展望する 2
解析の流れ 問題の設定 Geometry Module • 解析対象の形状,⼨法,材料特性の準備 • 解析結果処理に必要な情報の確認 • ⽳あき平板の形状作成 • 四辺形要素分割のためのパーティション • 境界条件を与える節点グループに名前をつける Mesh Module • メッシュの作成と保存 Aster Module • AsterStudyを⽤いたコマンドファイルの修正 • Studyケースの設定 • 解析の実⾏ ParaVis Module • 変形図によるおおまかな妥当性の確認 結果の評価 • テキスト出⼒の確認 • ワークシートによる検討 • 解析精度の検討 3
50 200 解析対象(形状と境界条件) • • • • • • • • • y x 帯板を念頭に縦⻑/幅⽐ = 4 1/4モデル 対称⾯(下端)は y ⽅向拘束 対称⾯(左端)は x ⽅向拘束 上端は y ⽅向変位従属(多点拘 束) 上端の1節点に y ⽅向集中荷重 ヤング率 E = 200 GPa ポアソン⽐ = 0.3 疲労評価を念頭に円孔縁の応⼒ 集中の評価精度を検討 円孔付き平板 4
予習(応⼒集中) P 遠⽅での引張応⼒ 0 = 1 MPa 遠⽅での引張荷重 P = 100 N b = 50 mm, a = 20 mm, t = 1.0 mm = 2.24(⽂献(*) の表 9-1) 4b b P max n 2 b a t 3.74 MPa ︓応⼒集中係数 n ︓基準応⼒(ここでは実断 ⾯応⼒) y x 円孔付き平板 ※ 延性材料からなる部材の場合, 最⼤応⼒は疲労評価に使⽤する (*) ⻄⽥正孝,応⼒集中(増補版),森北出版,1973,pp. 260-264. 5
解析⽅法 • Salome-Meca2024 for windows(code-aster ver. 16.7.9,Salome 9.12.0)を使⽤ • 平⾯応⼒でモデル化(modelsation = C_PLAN) • AsterStudy の Assistant でコマンドファイルのひな型 を作成し,修正して使⽤ • テキスト出⼒のワークシート処理により応⼒分布を確認 • モデル作成の途中で Script を出⼒し,Script の編集に よるモデル変更を容易にする 6
形状データの作成 • Geometry モジュールを使って平板から Boolean で円孔を 開け(cut),円孔付き帯板を作成 • 境界条件を与える上端(Top),下端(Bottom),左端 (Left)のエッジに要素グループ名をつける • メッシュを制御するため円弧に要素グループ名(RootX, RootY)をつけ,Sub-meshを定義する • できるだけ正⽅形に近い四辺形要素で分割できるよう, パーティションした領域が4つの線で囲まれるようにする • 作業記録を Script に出⼒する 7
SalomeMecaの起動 (1) run_Salome.bat をダブルクリック 8
Geometryの起動 1 (1) Geometry モ ジュールを開く 9
視線の変更 (1) 視線を -OZ に変更 10
平板の作成 1 (1) New Entity -> Primitices -> Rectangle 11
平板の作成 1 (1) OXY平⾯上で,⾼さ = 50 mm,幅 = 200 mm,名 前は Face_1 (2) 適⽤して 閉じる 12
平板の作成 (1) Fit All 13
平板の平⾏移動 1 (1) Operation -> Transformation -> Translation 14
平板の平⾏移動 (1) Face_1 を 選ぶ (2) x ⽅向に 25 mm,y ⽅向に 100 mm 移動 2 (3) コピーはしない (チェックをはずす) (4) 適⽤して 閉じる 15
円筒の作成 (2) New Entity -> Primitives -> Cylinder (1) Fit All 16
円筒の作成 (1) 半径 = 20 mm (3) Panning (2) 適⽤して 閉じる (4) 左ボタンでモデルをド ラッグし,⾒やすい位置 に持ってくる 17
円孔の作成 1 (1) Operation -> Boolean -> Cut 18
円孔の作成 (1) Main Object = Face_1 Tool Object = Cylinder_1 (2) 適⽤して 閉じる 19
パーティションのための線の作成 3 (3) New Entity -> Basic -> Point 2 (2) Fit All 1 (1) Cut_1 を選ぶ 20
パーティションのための線の作成 (1) Vertex_1 = (0, 0, 0), Vertex_2 = (0, 50, 0), Vertex_3 = (50, 50, 0), Vertex_4 = (0, 100, 0), Vertex_5 = (50, 100, 0) (3) 同様に繰り返して, Vertex_2 = (0, 50, 0), (Apply), Vertex_3 = (50, 50, 0), (Apply), Vertex_4 = (0, 100, 0), (Apply), Vertex_5 = (50, 100, 0) を作成 (4) (Vertex_5 を定義したあ と)適⽤して閉じる (2) 適⽤する 21
パーティションのための線の作成 (1) Fit All 2 Vertex_4 (2) ⽬のマークを点滅 させてモデル上の点の 位置を確認 Vertex_2 Vertex_5 Vertex_3 Vertex_1 22
パーティションのための線の作成 1 (1) New Entity -> Basic -> Line 23
パーティションのための線の作成 (1) Line_1 は Point 1 = Vertex_1 Point 2 = Vertex_3 (2) 適⽤する (4) 適⽤して閉じる (3) 同様に, Line_2 = Vertex_2 and Vertex_3 (Apply), Line_3 = Vertex_4 and Vertex_5 24
パーティションのための線の作成 1 Line_3 (1) ⽬のマークを点滅 させてモデル上の点の 位置を確認 Line_2 Line_1 25
パーティションのための線の作成 1 (1) New Entity -> Basic -> Circle 26
パーティションのための線の作成 (1) 中⼼と半径 を指定 (2) 中⼼は原点,法線 ベクトルは z 軸(デ フォルトのまま) 3 (3) 半径 = 30 mm (4) 適⽤して 閉じる 27
パーティションの実⾏ 1 (1) Operation -> Partition 28
パーティションの実⾏ (1) Object = Cut_1 Tool Object = 3つの直線と1 つの円を選ぶ(Cntl を押し ながら Object Browser 上で ピックする) 1 (2) 適⽤して 閉じる 29
パーティションの実⾏ (1) Partition_1 を選ぶ (2) 分割を確認 30
グループの作成 (2) New Entity -> Group -> Create Group 1 (1) Partition_1 を 選択 31
グループの作成 (1) 線を選ぶ (2) Name = Top 2 4 5 (3) 上端のエッジ をピック (4) 追加する (5) 適⽤する 32
グループの作成 (1) Top (2) Left 2 (3) LineY100 ※ 同様に境界条件を設定する エッジに右図のように名前を つける (4) LineY50 (5) Bottom 33
グループの作成 (1) Fit Area (2) 拡⼤する領域を囲む(四⾓形 の頂点でマウスの左ボタンを押 して,対⾓にある頂点で離す) 34
グループの作成 2 (2) New Entity -> Group -> Create Group 1 (1) Partition_1 を選ぶ 35
グループの作成 (1) 線を選ぶ 2 (2) Name = RootX (1) RootY(円 孔縁の円弧) (4) 追加する (3) RootX(円孔縁付 近の底⾯)をピック (5) 適⽤する (6) 同様に円孔縁付近の 円弧を RootY とする 36 1
グループの作成 1 Left Top LineY100 (1) ⽬のマークを点滅 させてモデル上の点の 位置を確認 LineY50 RootY Bottom RootX 37
グループの作成 (1) Partition_1 を 右クリック 2 (2) グループの 作成 38
グループの作成 (1) 点を選ぶ 2 (2) 名前は Load (4) ピックした 点を追加 3 (3) 右上の 点をピック (5) 適⽤して 閉じる 39
Script の保存 1 (1) File -> Dump Study 40
Script の保存 (1) 作業フォルダ を開く (2) ファイル名は Geometry.py (3) 保存する 3 41
Script の確認(1) つづく #!/usr/bin/env python ### ### This file is generated automatically by SALOME v9.12.0 with dump python functionality ### Geometry.py をテキストエディタで 開くとこうなっている import SALOMEDS geompy = geomBuilder.New() O = geompy.MakeVertex(0, 0, 0) OX = geompy.MakeVectorDXDYDZ(1, 0, 0) OY = geompy.MakeVectorDXDYDZ(0, 1, 0) import sys OZ = geompy.MakeVectorDXDYDZ(0, 0, 1) import salome Face_1 = geompy.MakeFaceHW(50, 200, 1) geompy.TranslateDXDYDZ(Face_1, 25, 100, 0) salome.salome_init() Cylinder_1 = geompy.MakeCylinderRH(20, 300) import salome_notebook Cut_1 = geompy.MakeCutList(Face_1, [Cylinder_1], True) notebook = salome_notebook.NoteBook() Vertex_1 = geompy.MakeVertex(0, 0, 0) sys.path.insert(0, r'C:/OpenCAE/Salome2024Win/v2024/MyCases/HoledPlate') Vertex_2 = geompy.MakeVertex(0, 50, 0) Vertex_3 = geompy.MakeVertex(50, 50, 0) Vertex_4 = geompy.MakeVertex(0, 100, 0) ### Vertex_5 = geompy.MakeVertex(50, 100, 0) ### GEOM component Line_1 = geompy.MakeLineTwoPnt(Vertex_1, Vertex_3) ### Line_2 = geompy.MakeLineTwoPnt(Vertex_2, Vertex_3) Line_3 = geompy.MakeLineTwoPnt(Vertex_4, Vertex_5) import GEOM Circle_1 = geompy.MakeCircle(None, None, 30) from salome.geom import geomBuilder import math 42
Script の確認(2) つづき Partition_1 = geompy.MakePartition([Cut_1], [Line_1, Line_2, Line_3, Circle_1], [], [], geompy.ShapeType["FACE"], 0, [], 0) Top = geompy.CreateGroup(Partition_1, geompy.ShapeType["EDGE"]) geompy.UnionIDs(Top, [23]) LineY100 = geompy.CreateGroup(Partition_1, geompy.ShapeType["EDGE"]) geompy.UnionIDs(LineY100, [16]) LineY50 = geompy.CreateGroup(Partition_1, geompy.ShapeType["EDGE"]) geompy.UnionIDs(LineY50, [4]) Bottom = geompy.CreateGroup(Partition_1, geompy.ShapeType["EDGE"]) geompy.UnionIDs(Bottom, [37, 42]) Left = geompy.CreateGroup(Partition_1, geompy.ShapeType["EDGE"]) geompy.UnionIDs(Left, [11, 21, 14, 32]) RootX = geompy.CreateGroup(Partition_1, geompy.ShapeType["EDGE"]) geompy.UnionIDs(RootX, [42]) RootY = geompy.CreateGroup(Partition_1, geompy.ShapeType["EDGE"]) geompy.UnionIDs(RootY, [44]) Load = geompy.CreateGroup(Partition_1, geompy.ShapeType["VERTEX"]) geompy.UnionIDs(Load, [24]) geompy.addToStudy( O, 'O' ) geompy.addToStudy( OX, 'OX' ) geompy.addToStudy( OY, 'OY' ) geompy.addToStudy( OZ, 'OZ' ) geompy.addToStudy( Face_1, 'Face_1' ) geompy.addToStudy( Cylinder_1, 'Cylinder_1' ) geompy.addToStudy( Cut_1, 'Cut_1' ) geompy.addToStudy( Vertex_1, 'Vertex_1' ) geompy.addToStudy( Vertex_2, 'Vertex_2' ) geompy.addToStudy( Vertex_3, 'Vertex_3' ) geompy.addToStudy( Vertex_4, 'Vertex_4' ) geompy.addToStudy( Vertex_5, 'Vertex_5' ) geompy.addToStudy( Line_1, 'Line_1' ) geompy.addToStudy( Line_2, 'Line_2' ) geompy.addToStudy( Line_3, 'Line_3' ) geompy.addToStudy( Circle_1, 'Circle_1' ) geompy.addToStudy( Partition_1, 'Partition_1' ) geompy.addToStudyInFather( Partition_1, Top, 'Top' ) geompy.addToStudyInFather( Partition_1, LineY100, 'LineY100' ) geompy.addToStudyInFather( Partition_1, LineY50, 'LineY50' ) geompy.addToStudyInFather( Partition_1, Bottom, 'Bottom' ) geompy.addToStudyInFather( Partition_1, Left, 'Left' ) geompy.addToStudyInFather( Partition_1, RootX, 'RootX' ) geompy.addToStudyInFather( Partition_1, RootY, 'RootY' ) geompy.addToStudyInFather( Partition_1, Load, 'Load' ) if salome.sg.hasDesktop(): salome.sg.updateObjBrowser() 43
メッシュデータの作成 • Meshモジュールを⽤いてメッシュ(有限要 素によるモデル)を作成する • 四辺形主体でメッシュを作成 • Root に Submeshを定義する • ⼆次要素とする • メッシュデータをファイル出⼒(エクスポー ト)する 44
Meshの起動 1 (1) Meshモジュー ルを起動 45
Geometry の表⽰ (2) 視線を -OZ にする (3) Fit All 1 (1) Partition_1 を表⽰ 46
メッシュの作成 1 (1) Mesh -> Create Mesh 47
メッシュの作成 (1) Geometry = Partition_1 を確認 (2) 2D タブを 確認 2 3 (3) Mapped Quadrangulation (配置された四辺形化)を 選ぶ 48
メッシュの作成 (1) 均等8分割 2 (2) OK する 49
メッシュの作成 1 (1) 適⽤して 閉じる 50
サブメッシュの作成 2 1 (2) Sub-mesh を作成 (1) Mesh_1 を 右クリック 51
サブメッシュの作成 (1) Geometry を指定 (3) RootX が選 択されている 4 2 (2) RootX を選択 (4) Algorithm = Wire Discretisation(線の 離散化)を選ぶ 52
サブメッシュの作成 (1) 設定(⻭⾞マーク) をクリック 2 (2) セグメントの数 (分割数) 53
サブメッシュの作成 (1) 4 分割 2 (2) OK する 54
サブメッシュの作成 (2) 反対側のエッジまで貫通 (4分割を四辺形の反対の辺 まで適⽤する) 1 (1) 仮定の 追加 (3) 適⽤する 3 55
サブメッシュの作成 (1) Geometry を指定 (2) RootY を選 ぶ 2 56
サブメッシュの作成 ⻭⾞マークを クリック (2) 分割数を 指定 2 57
サブメッシュの作成 (1) 8分割 2 (2) OK する 58
サブメッシュの作成 (1) 反対側のエッジまで 貫通を確認 59
サブメッシュの作成 (1) 適⽤して閉じる 60
メッシュの⽣成 (1) Mesh_1を 右クリック (2) Compute 61
メッシュの⽣成 (1) メッシュ を確認 (2) 閉じる 62
メッシュの⼆次要素化 (2) Modification -> Convert to/from quadratic (1) Mesh_1 を選択 63
メッシュの⼆次要素化 (1) 2次要素にする (2) 適⽤し て閉じる 64
メッシュの⼆次要素化 2 (2) Mesh information (1) Mesh_1を 右クリック 65
メッシュの⼆次要素化 (1) 2次要素で 320 要素 (2) OK する 66
メッシュファイルの保存 (2) Export -> MED (1) Mesh_1 を 右クリック 67
メッシュファイルの保存 (1) 作業フォルダ を開く (2) File name は Mesh_1.med (3) 保存する 68
Script の保存(Meshまで) 1 (1) File -> Dump Study 69
Script の保存(Meshまで) (1) File name は Mesh_1.py 1 (2) 保存する 70
Script の確認(1) つづく ### (1) RootX と RootY の ### SMESH component 分割数が書かれている ### RootY_1 = Mesh_1.GroupOnGeom(RootY,'RootY',SMESH.EDGE) Load_1 = Mesh_1.GroupOnGeom(Load,'Load',SMESH.NODE) Regular_1D_1 = Mesh_1.Segment(geom=RootX) Number_of_Segments_2 = Regular_1D_1.NumberOfSegments(4) import SMESH, SALOMEDS Propagation_of_1D_Hyp = Regular_1D_1.Propagation() from salome.smesh import smeshBuilder 1 Regular_1D_2 = Mesh_1.Segment(geom=RootY) Number_of_Segments_3 = smesh = smeshBuilder.New() Regular_1D_2.NumberOfSegments(8) #smesh.SetEnablePublish( False ) # Set to False to avoid publish in study if not needed or in some particular situations: status = Mesh_1.AddHypothesis(Propagation_of_1D_Hyp,RootY) # multiples meshes built in parallel, isDone = Mesh_1.Compute() complex and numerous mesh edition (performance) [ Top_1, LineY100_1, LineY50_1, Bottom_1, Left_1, RootX_1, RootY_1, Load_1 ] = Mesh_1.GetGroups() Mesh_1 = smesh.Mesh(Partition_1,'Mesh_1') Mesh_1.ConvertToQuadratic(0) Regular_1D = Mesh_1.Segment() Number_of_Segments_1 = Regular_1D.NumberOfSegments(8) [ Top_1, LineY100_1, LineY50_1, Bottom_1, Left_1, RootX_1, RootY_1, Load_1 ] = Mesh_1.GetGroups() Quadrangle_2D = smesh.SetName(Mesh_1, 'Mesh_1') Mesh_1.Quadrangle(algo=smeshBuilder.QUADRANGLE) try: Top_1 = Mesh_1.GroupOnGeom(Top,'Top',SMESH.EDGE) LineY100_1 = Mesh_1.GroupOnGeom(LineY100,'LineY100',SMESH.EDGE) LineY50_1 = Mesh_1.GroupOnGeom(LineY50,'LineY50',SMESH.EDGE) Bottom_1 = Mesh_1.GroupOnGeom(Bottom,'Bottom',SMESH.EDGE) Left_1 = Mesh_1.GroupOnGeom(Left,'Left',SMESH.EDGE) RootX_1 = Mesh_1.py の中⾝(Geometry の部分は除く) Mesh_1.GroupOnGeom(RootX,'RootX',SMESH.EDGE) 71
Script の確認(2) つづき smesh.SetName(Propagation_of_1D_Hyp, 'Propagation of 1D Hyp. on Opposite Edges_1') Mesh_1.ExportMED( r'C:/OpenCAE/Salome2024Win/v2024/MyC smesh.SetName(Number_of_Segments_2, 'Number of Segments_2') ases/HoledPlate/Mesh_1.med', 0, 41, 1, Mesh_1, 1, [], '',-1, 1 ) smesh.SetName(Number_of_Segments_1, 'Number of pass Segments_1') except: smesh.SetName(Number_of_Segments_3, 'Number of print('ExportPartToMED() failed. Invalid file name?') Segments_3') Sub_mesh_1 = Regular_1D_1.GetSubMesh() smesh.SetName(Sub_mesh_2, 'Sub-mesh_2') Sub_mesh_2 = Regular_1D_2.GetSubMesh() smesh.SetName(Sub_mesh_1, 'Sub-mesh_1') ## Set names of Mesh objects smesh.SetName(Load_1, 'Load') smesh.SetName(Regular_1D.GetAlgorithm(), 'Regular_1D') smesh.SetName(Quadrangle_2D.GetAlgorithm(), 'Quadrangle_2D') smesh.SetName(Mesh_1.GetMesh(), 'Mesh_1') smesh.SetName(Top_1, 'Top') smesh.SetName(LineY100_1, 'LineY100') smesh.SetName(LineY50_1, 'LineY50') smesh.SetName(Bottom_1, 'Bottom') smesh.SetName(Left_1, 'Left') smesh.SetName(RootX_1, 'RootX') smesh.SetName(RootY_1, 'RootY') if salome.sg.hasDesktop(): salome.sg.updateObjBrowser() 72
解析条件データの作成 • AsterStudy の Assistant を使ってコマンド ファイルの原型を作成する • コマンドファイルを修正する • AsterStudy を⽤いてファイルのメッシュファ イルと出⼒ファイルの割当を⾏う • 解析を実⾏する 73
AsterStudyの起動 (1) Asterモジュール を起動 74
AsterStudyの起動 1 (1) 安定版で OK する 75
新しいステージの作成 (1) Operation -> Add Stage with Assistant -> Isotropic linear elasticity 76
新しいステージの作成 (1) 次に進む 77
メッシュファイルの指定 (1) Mesh_1.med を探す 1 78
メッシュファイルの指定 (2) Mesh_1.med を選ぶ (1) 作業フォルダ を開く (3) 開く 79
新しいステージの作成 (1) 次に進む 80
モデル化の指定 (1) モデルはC_PLAN (平⾯応⼒) (2) 次に進む 81
弾性材料特性の設定 (1) ヤング率 E = 200000 MPa, ポアソン⽐ = 0.3 (2) 次に進む 2 82
境界条件の設定 (1) 境界条件の追加 (緑のプラス) 2 (2) 編集 83
境界条件の仮設定 (1) Left を選ぶ 2 (2) OK する 84
境界条件の仮設定 (1) DX = 0 (2) 次に進む 2 85
境界条件の仮設定 (1) 境界条件の追加 (緑のプラス) 2 (2) 編集 ※ 境界条件は複雑なたウィザードでは設定で きないため,ここでは仮設定にしておく(あ とで修正する) 86
境界条件の仮設定 (1) Top を選ぶ 2 (2) OK する 87
境界条件の仮設定 (1) なにもしない 2 ※ 境界条件は複雑なたウィザードでは設定で きないため,ここでは仮設定にしておく(あ とで修正する) (2) 次に進む 88
結果ファイルの設定 (1) 結果ファイルを保 存する場所を探す 1 89
結果ファイルの設定 (2)ファイル名は HoledPlate01.rmed (1) 作業フォルダ を開く (3) 保存する ※ バイナリファイルで保存するときは, 拡張⼦を rmed とする 90
Assistant の終了 (1) 終了する 1 91
メッシュファイルの指定 (1) LIRE_MAILLAGE(メッ シュの読込み)をダブルク リック (2) UNITE(ファイルユ ニット) = Mesh_1.med FORMAT = MED を確認 (3) OK する 2 3 92
境界条件の設定 (1) AFFE_CHAR_MECA(機械的 条件の割当)のうち,mecabc をダブルクリック (3) アイテムを追加 (2) DDL_IMPO(変 位拘束)を開く 2 (4) 追加されたアイ テムを編集する 93
境界条件の設定 (2) GROUP_MA(メッシュグ ループ)をチェックして編集 する (1) DY = 0 1 94
境界条件の設定 (1) Bottom をチェック (2) グループの 位置を確認 1 (3) OK する 3 95
境界条件の設定 (1) OK する 1 96
境界条件の設定 (2) コマンド ファイルを確認 (1) 適⽤する 1 97
多点拘束の設定 (1) LIAISON_UNIF(統⼀ の関係)をチェック (2) アイテムを 追加する (3) 編集する 98
多点拘束の設定 (1) DDL = DY (y ⽅ 向変位をそろえる) を選ぶ 99
多点拘束の設定 (1) 要素グルー プをチェック (2) 編集する 100
多点拘束の設定 (2) グループの 位置を確認 (1) Top をチェック 2 (3) OK する 3 101
多点拘束の設定 (1) OK する 1 102
境界条件の設定 (2) コマンド ファイルを確認 (1) 適⽤する (3) OK する 3 103
荷重条件の設定 1 (3) FORCE_NODALE(節 点荷重)をチェック (4) アイテムを追加 (1) AFFE_CHAR_MECA の mecach をダブルクリック (5) 編集する (2) PRES_REP(圧⼒) のチェックをはずす 104
荷重条件の設定 (4) 編集する (3) GROUP_NO(節点 グループ)をチェック (1) FY(y⽅向荷 重)をチェック (2) FY = 50 N 105
荷重条件の設定 (2) 節点グループ の場所を確認 (1) Load をチェック (3) OK する 106
荷重条件の設定 (1) OK する 107
荷重条件の設定 (2) コマンド ファイルを確認 (1) 適⽤する (3) OK する 3 108
ポスト処理の設定 (1) Commans -> Post Procesing -> CALC_CHAMP (場の計算) 1 109
ポスト処理の設定 (2) アイテムの追加 (1) CONTRAINTE(応⼒) をチェック 1 (3) SIGM_NOEU(節点上に外 挿した応⼒成分を選ぶ 3 110
ポスト処理の設定 (2) アイテムの追加 (1) CRITERES(基準)を チェック (3) SIEQ_NOEU(節点上に 外挿した相当応⼒)を選ぶ 3 111
ポスト処理の設定 (1) コンセプト名は 解析を継承する (3) コマンドファ イルを確認 (2) 適⽤する (4) OK する 4 112
結果出⼒の設定 (1) IMPR_RESU(結果 の出⼒)をダブルク リック (2) RESU を 編集する 113
結果出⼒の設定 (1) MAILLAGE を チェックする (2) RESULTAT を CALC_CHAMP にする (4) OUI(= yes)を チェックする (3) TOUT_CHAM(= all fields)をチェックする (5) OK する 5 114
結果出⼒の設定 (2) コマンドファ イルを確認 (1) 適⽤する (3) OK する 3 115
結果出⼒の設定 (1) Commans -> Output -> IMPR_RESU(結果の出⼒)を 追加する 1 116
結果出⼒の設定 (1) FORMAT に RESULTAT (テキスト出⼒)を指定 (2) 出⼒の保存先 を探す 117
結果出⼒の設定 (1) 作業フォルダを開く 2 (3) 保存する (2) ファイル名は HoledPlate01.txt 3 118
結果出⼒の設定 (2) アイテムを追加 (1) RESU を チェック (3) 編集する 119
結果出⼒の設定 (1) RESULTAT は CALC_CHAMP にする (2) NOM_CHAM(場 の名称)をチェック (3) SIGM_NOEU(応 ⼒成分)を選ぶ 120
結果出⼒の設定 (2) 要素グループを チェックして,編集する (1) IMPR_COOR(座標の 出⼒)をチェックして, OUI(= yes)にする 121
結果出⼒の設定 (1) Bottomをチェック (2) モデル上の場所 を確認 (3) OK する 122
結果出⼒の設定 (1) OK する 1 123
結果出⼒の設定 (2) コマンドファ イルを確認 (1) 適⽤する (3) OK する 3 124
コマンドファイルの保存 (1) Stage 名を右クリックし て,名前を変更 125
コマンドファイルの保存 (1) Stage 名を HoledPlate01 に変更する 2 (2) コマンドファイルを エキスポートする 126
コマンドファイルの保存 1 (1) 作業フォルダ を開く (2) ファイル名 を確認 (3) 保存する 127
コマンドファイルの確認 MODELE=model) DEBUT(LANG='FR') mesh = LIRE_MAILLAGE(FORMAT='MED', UNITE=20) model = AFFE_MODELE(AFFE=_F(MODELISATION=('C_PLAN', ), PHENOMENE='MECANIQUE', TOUT='OUI'), MAILLAGE=mesh) mater = DEFI_MATERIAU(ELAS=_F(E=200000.0, NU=0.3)) materfl = AFFE_MATERIAU(AFFE=_F(MATER=(mater, ), TOUT='OUI'), MODELE=model) mecabc = AFFE_CHAR_MECA(DDL_IMPO=(_F(DX=0.0, GROUP_MA=('Left', )), _F(DY=0.0, GROUP_MA=('Bottom', ))), LIAISON_UNIF=_F(DDL=('DY', ), GROUP_MA=('Top', )), MODELE=model) mecach = AFFE_CHAR_MECA(FORCE_NODALE=_F(FY=50.0, GROUP_NO=('Load', )), result = MECA_STATIQUE(CHAM_MATER=materfl, EXCIT=(_F(CHARGE=mecabc), _F(CHARGE=mecach)), MODELE=model) result = CALC_CHAMP(reuse=result, CONTRAINTE=('SIGM_NOEU', ), CRITERES=('SIEQ_NOEU', ), RESULTAT=result) IMPR_RESU(FORMAT='MED', RESU=_F(MAILLAGE=mesh, RESULTAT=result, TOUT_CHAM='OUI'), UNITE=80) IMPR_RESU(FORMAT='RESULTAT', RESU=_F(GROUP_MA=('Bottom', ), IMPR_COOR='OUI', NOM_CHAM=('SIGM_NOEU', ), RESULTAT=result), UNITE=8) FIN() コマンドファイルをテキストエディ タで開くとこうなる 128
作業ファイルの保存 (1) File -> Save As(名 前をつけて保存) 129
作業ファイルの保存 (1) 作業フォルダ を開く (2) 作業ファイル 名を指定 (3) 保存する 130
解析の実⾏ (1) History タブを 開く (4) 緑のプラスを クリック (2) 計算機の条件 を確認 (5) Run (3) Auto Refresh を 5 秒おきにする 131
解析の実⾏ (1) 緑になればエ ラーなし (2) メッセージ を確認 132
解析結果の確認と利⽤ • ParaVisを⽤いて,解析結果を可視化し,定 性的な妥当性を確認する • 解析結果のテキストファイル(*.txt)を開 き,結果を確認する 133
ParaVis の起動 (1) Case View タブ を開く (2) rmed ファイル を右クリック 3 (3) ParaVis で開く 134
結果の可視化 (3) 適⽤する 1 2 (1) 必要な結果を チェックする (2) ベクトルを⽣成する 135
変形図の表⽰ (1) Filters -> Common -> Warp By Vector を開く 136
変形図の表⽰ (3) 画⾯に 合わせる 3 (2) 適⽤する (4) 変形を確認 (1) Scale Factor の⻘い棒を 真ん中くらいに置く 137
変形図の表⽰ (1) SEIQ_NOEU から VMIS (von Mises)を選ぶ (2) 応⼒集中を 確認 138
結果テキストファイルの確認(SIGM_NOEU) -------------------------------------------------------------------------------CONCEPT 00000007 DE TYPE EVOL_ELAS ENTITES TOPOLOGIQUES SELECTIONNEES GROUP_MA : Bottom テキストエディターで 内容を確認 ======> ------> CHAMP AUX NOEUDS DE NOM SYMBOLIQUE SIGM_NOEU NUMERO D'ORDRE: 1 INST: 0.00000000000000E+00 NOEUD X Y SIXX SIYY SIZZ SIXY N11 5.00000000000000E+01 0.00000000000000E+00 -1.31102596149952E-03 7.88016794747962E-01 0.00000000000000E+00 -3.28289160958809E-04 N12 3.00000000000000E+01 0.00000000000000E+00 3.43811243374167E-01 1.74994953351867E+00 0.00000000000000E+00 5.01277229725251E-04 N13 2.00000000000000E+01 -4.89858719658941E-15 2.48167918897288E-02 3.72232192111332E+00 0.00000000000000E+00 -2.07364041920283E-03 N104 3.25000000000000E+01 0.00000000000000E+00 2.90988264829440E-01 1.59537883377013E+00 0.00000000000000E+00 4.95159973430103E-04 N105 3.50000000000000E+01 0.00000000000000E+00 2.33353699970985E-01 1.47408109174310E+00 0.00000000000000E+00 7.81161623513219E-04 N106 3.75000000000000E+01 0.00000000000000E+00 1.76590248934326E-01 1.37217772670345E+00 0.00000000000000E+00 8.71334560300593E-04 N107 4.00000000000000E+01 0.00000000000000E+00 1.23449179227566E-01 1.27794283195662E+00 0.00000000000000E+00 9.90196611150927E-04 N108 4.25000000000000E+01 0.00000000000000E+00 7.61000897837931E-02 1.18200034518253E+00 0.00000000000000E+00 1.09202702117412E-03 N109 4.50000000000000E+01 0.00000000000000E+00 3.68931510292802E-02 1.07539401930924E+00 0.00000000000000E+00 1.14088666446790E-03 N110 4.75000000000000E+01 0.00000000000000E+00 9.05494882489614E-03 9.47907473072963E-01 0.00000000000000E+00 8.52107986364645E-04 N118 2.25000000000000E+01 0.00000000000000E+00 3.09280055911802E-01 2.81858975336924E+00 0.00000000000000E+00 -5.25637694569896E-04 N119 2.50000000000000E+01 0.00000000000000E+00 3.88006969752403E-01 2.29766208849181E+00 0.00000000000000E+00 1.15276224122835E-04 N120 2.75000000000000E+01 0.00000000000000E+00 3.83868729205798E-01 1.97097899465338E+00 0.00000000000000E+00 5.40618693625562E-04 N470 3.12500000000000E+01 0.00000000000000E+00 3.17229114230513E-01 1.67290100884209E+00 0.00000000000000E+00 6.63479306711174E-04 N471 3.37500000000000E+01 0.00000000000000E+00 2.62108956029251E-01 1.53481483305437E+00 0.00000000000000E+00 5.71370686861132E-04 N472 3.62500000000000E+01 0.00000000000000E+00 2.04954411188249E-01 1.42318123928054E+00 0.00000000000000E+00 8.30780903469330E-04 N473 3.87500000000000E+01 0.00000000000000E+00 1.50013938599645E-01 1.32507605541783E+00 0.00000000000000E+00 9.42659757359732E-04 N474 4.12500000000000E+01 0.00000000000000E+00 9.97897326133853E-02 1.22996603036826E+00 0.00000000000000E+00 1.06677889753430E-03 N475 4.37500000000000E+01 0.00000000000000E+00 5.65271154099614E-02 1.12867244725967E+00 0.00000000000000E+00 1.18138921772482E-03 N476 4.62500000000000E+01 0.00000000000000E+00 2.30504331739632E-02 1.01160544748873E+00 0.00000000000000E+00 1.02780807728232E-03 N477 4.87500000000000E+01 0.00000000000000E+00 3.72182031752330E-03 8.68202957520030E-01 0.00000000000000E+00 1.05826475214868E-04 N486 2.12500000000000E+01 0.00000000000000E+00 1.70013103802254E-01 3.26608747512684E+00 0.00000000000000E+00 -1.32631901707423E-03 N487 2.37500000000000E+01 0.00000000000000E+00 3.47030777506217E-01 2.56048557313765E+00 0.00000000000000E+00 -1.36417252284152E-04 N488 2.62500000000000E+01 0.00000000000000E+00 3.85178381557538E-01 2.13530761113385E+00 0.00000000000000E+00 3.37310892393468E-04 N489 2.87500000000000E+01 0.00000000000000E+00 3.63531679380072E-01 1.86093137107192E+00 0.00000000000000E+00 3.88776158031683E-04 139
応⼒集中係数の確認 Vertical stress, y (MPa) (1) 最⼤応⼒ = 3.72 MPa 4.00 3.50 3.00 2.50 2.00 1.50 1.00 0.50 0.00 0.0 10.0 20.0 30.0 40.0 50.0 60.0 Horizonral distance, x (mm) 140
まとめ • 参照解がある円孔付き帯板の応⼒集中係数を算 出した • 応⼒集中問題におけるメッシュ作成のノウハウ (なるべく正⽅形にする,⼆次要素にする, etc)を確認した 141