HoledPlate20260610

>100 Views

June 14, 26

スライド概要

Salome_Meca2024 for Windowsで円孔付き平板の弾性応力解析を行った。過去にSalome_Meca2023で同じ解析を行っています。

profile-image

技術士(機械工学),博士(工学),日本機械学会計算力学上級アナリスト(固体力学分野の有限要素法),通訳案内士(英語)

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

Salome-Mecaによる平⾯応⼒ 解析(⽳あき平板の応⼒集中問題) PE/計算固体⼒学研究室 1

2.

学習⽬標 • ⼆次元問題を通じて精度のよいメッシュ作成⽅ 法を学ぶ • 多点拘束(変位従属)を体験する • 応⼒集中問題の取り扱いを通じて,結果の後処 理を学ぶ • 疲労設計への発展を展望する 2

3.

解析の流れ 問題の設定 Geometry Module • 解析対象の形状,⼨法,材料特性の準備 • 解析結果処理に必要な情報の確認 • ⽳あき平板の形状作成 • 四辺形要素分割のためのパーティション • 境界条件を与える節点グループに名前をつける Mesh Module • メッシュの作成と保存 Aster Module • AsterStudyを⽤いたコマンドファイルの修正 • Studyケースの設定 • 解析の実⾏ ParaVis Module • 変形図によるおおまかな妥当性の確認 結果の評価 • テキスト出⼒の確認 • ワークシートによる検討 • 解析精度の検討 3

4.

50 200 解析対象(形状と境界条件) • • • • • • • • • y x 帯板を念頭に縦⻑/幅⽐ = 4 1/4モデル 対称⾯(下端)は y ⽅向拘束 対称⾯(左端)は x ⽅向拘束 上端は y ⽅向変位従属(多点拘 束) 上端の1節点に y ⽅向集中荷重 ヤング率 E = 200 GPa ポアソン⽐  = 0.3 疲労評価を念頭に円孔縁の応⼒ 集中の評価精度を検討 円孔付き平板 4

5.

予習(応⼒集中) 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

6.

解析⽅法 • Salome-Meca2024 for windows(code-aster ver. 16.7.9,Salome 9.12.0)を使⽤ • 平⾯応⼒でモデル化(modelsation = C_PLAN) • AsterStudy の Assistant でコマンドファイルのひな型 を作成し,修正して使⽤ • テキスト出⼒のワークシート処理により応⼒分布を確認 • モデル作成の途中で Script を出⼒し,Script の編集に よるモデル変更を容易にする 6

7.

形状データの作成 • Geometry モジュールを使って平板から Boolean で円孔を 開け(cut),円孔付き帯板を作成 • 境界条件を与える上端(Top),下端(Bottom),左端 (Left)のエッジに要素グループ名をつける • メッシュを制御するため円弧に要素グループ名(RootX, RootY)をつけ,Sub-meshを定義する • できるだけ正⽅形に近い四辺形要素で分割できるよう, パーティションした領域が4つの線で囲まれるようにする • 作業記録を Script に出⼒する 7

8.

SalomeMecaの起動 (1) run_Salome.bat をダブルクリック 8

9.

Geometryの起動 1 (1) Geometry モ ジュールを開く 9

10.

視線の変更 (1) 視線を -OZ に変更 10

11.

平板の作成 1 (1) New Entity -> Primitices -> Rectangle 11

12.

平板の作成 1 (1) OXY平⾯上で,⾼さ = 50 mm,幅 = 200 mm,名 前は Face_1 (2) 適⽤して 閉じる 12

13.

平板の作成 (1) Fit All 13

14.

平板の平⾏移動 1 (1) Operation -> Transformation -> Translation 14

15.

平板の平⾏移動 (1) Face_1 を 選ぶ (2) x ⽅向に 25 mm,y ⽅向に 100 mm 移動 2 (3) コピーはしない (チェックをはずす) (4) 適⽤して 閉じる 15

16.

円筒の作成 (2) New Entity -> Primitives -> Cylinder (1) Fit All 16

17.

円筒の作成 (1) 半径 = 20 mm (3) Panning (2) 適⽤して 閉じる (4) 左ボタンでモデルをド ラッグし,⾒やすい位置 に持ってくる 17

18.

円孔の作成 1 (1) Operation -> Boolean -> Cut 18

19.

円孔の作成 (1) Main Object = Face_1 Tool Object = Cylinder_1 (2) 適⽤して 閉じる 19

20.

パーティションのための線の作成 3 (3) New Entity -> Basic -> Point 2 (2) Fit All 1 (1) Cut_1 を選ぶ 20

21.

パーティションのための線の作成 (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

22.

パーティションのための線の作成 (1) Fit All 2 Vertex_4 (2) ⽬のマークを点滅 させてモデル上の点の 位置を確認 Vertex_2 Vertex_5 Vertex_3 Vertex_1 22

23.

パーティションのための線の作成 1 (1) New Entity -> Basic -> Line 23

24.

パーティションのための線の作成 (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

25.

パーティションのための線の作成 1 Line_3 (1) ⽬のマークを点滅 させてモデル上の点の 位置を確認 Line_2 Line_1 25

26.

パーティションのための線の作成 1 (1) New Entity -> Basic -> Circle 26

27.

パーティションのための線の作成 (1) 中⼼と半径 を指定 (2) 中⼼は原点,法線 ベクトルは z 軸(デ フォルトのまま) 3 (3) 半径 = 30 mm (4) 適⽤して 閉じる 27

28.

パーティションの実⾏ 1 (1) Operation -> Partition 28

29.

パーティションの実⾏ (1) Object = Cut_1 Tool Object = 3つの直線と1 つの円を選ぶ(Cntl を押し ながら Object Browser 上で ピックする) 1 (2) 適⽤して 閉じる 29

30.

パーティションの実⾏ (1) Partition_1 を選ぶ (2) 分割を確認 30

31.

グループの作成 (2) New Entity -> Group -> Create Group 1 (1) Partition_1 を 選択 31

32.

グループの作成 (1) 線を選ぶ (2) Name = Top 2 4 5 (3) 上端のエッジ をピック (4) 追加する (5) 適⽤する 32

33.

グループの作成 (1) Top (2) Left 2 (3) LineY100 ※ 同様に境界条件を設定する エッジに右図のように名前を つける (4) LineY50 (5) Bottom 33

34.

グループの作成 (1) Fit Area (2) 拡⼤する領域を囲む(四⾓形 の頂点でマウスの左ボタンを押 して,対⾓にある頂点で離す) 34

35.

グループの作成 2 (2) New Entity -> Group -> Create Group 1 (1) Partition_1 を選ぶ 35

36.

グループの作成 (1) 線を選ぶ 2 (2) Name = RootX (1) RootY(円 孔縁の円弧) (4) 追加する (3) RootX(円孔縁付 近の底⾯)をピック (5) 適⽤する (6) 同様に円孔縁付近の 円弧を RootY とする 36 1

37.

グループの作成 1 Left Top LineY100 (1) ⽬のマークを点滅 させてモデル上の点の 位置を確認 LineY50 RootY Bottom RootX 37

38.

グループの作成 (1) Partition_1 を 右クリック 2 (2) グループの 作成 38

39.

グループの作成 (1) 点を選ぶ 2 (2) 名前は Load (4) ピックした 点を追加 3 (3) 右上の 点をピック (5) 適⽤して 閉じる 39

40.

Script の保存 1 (1) File -> Dump Study 40

41.

Script の保存 (1) 作業フォルダ を開く (2) ファイル名は Geometry.py (3) 保存する 3 41

42.

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

43.

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

44.

メッシュデータの作成 • Meshモジュールを⽤いてメッシュ(有限要 素によるモデル)を作成する • 四辺形主体でメッシュを作成 • Root に Submeshを定義する • ⼆次要素とする • メッシュデータをファイル出⼒(エクスポー ト)する 44

45.

Meshの起動 1 (1) Meshモジュー ルを起動 45

46.

Geometry の表⽰ (2) 視線を -OZ にする (3) Fit All 1 (1) Partition_1 を表⽰ 46

47.

メッシュの作成 1 (1) Mesh -> Create Mesh 47

48.

メッシュの作成 (1) Geometry = Partition_1 を確認 (2) 2D タブを 確認 2 3 (3) Mapped Quadrangulation (配置された四辺形化)を 選ぶ 48

49.

メッシュの作成 (1) 均等8分割 2 (2) OK する 49

50.

メッシュの作成 1 (1) 適⽤して 閉じる 50

51.

サブメッシュの作成 2 1 (2) Sub-mesh を作成 (1) Mesh_1 を 右クリック 51

52.

サブメッシュの作成 (1) Geometry を指定 (3) RootX が選 択されている 4 2 (2) RootX を選択 (4) Algorithm = Wire Discretisation(線の 離散化)を選ぶ 52

53.

サブメッシュの作成 (1) 設定(⻭⾞マーク) をクリック 2 (2) セグメントの数 (分割数) 53

54.

サブメッシュの作成 (1) 4 分割 2 (2) OK する 54

55.

サブメッシュの作成 (2) 反対側のエッジまで貫通 (4分割を四辺形の反対の辺 まで適⽤する) 1 (1) 仮定の 追加 (3) 適⽤する 3 55

56.

サブメッシュの作成 (1) Geometry を指定 (2) RootY を選 ぶ 2 56

57.

サブメッシュの作成 ⻭⾞マークを クリック (2) 分割数を 指定 2 57

58.

サブメッシュの作成 (1) 8分割 2 (2) OK する 58

59.

サブメッシュの作成 (1) 反対側のエッジまで 貫通を確認 59

60.

サブメッシュの作成 (1) 適⽤して閉じる 60

61.

メッシュの⽣成 (1) Mesh_1を 右クリック (2) Compute 61

62.

メッシュの⽣成 (1) メッシュ を確認 (2) 閉じる 62

63.

メッシュの⼆次要素化 (2) Modification -> Convert to/from quadratic (1) Mesh_1 を選択 63

64.

メッシュの⼆次要素化 (1) 2次要素にする (2) 適⽤し て閉じる 64

65.

メッシュの⼆次要素化 2 (2) Mesh information (1) Mesh_1を 右クリック 65

66.

メッシュの⼆次要素化 (1) 2次要素で 320 要素 (2) OK する 66

67.

メッシュファイルの保存 (2) Export -> MED (1) Mesh_1 を 右クリック 67

68.

メッシュファイルの保存 (1) 作業フォルダ を開く (2) File name は Mesh_1.med (3) 保存する 68

69.

Script の保存(Meshまで) 1 (1) File -> Dump Study 69

70.

Script の保存(Meshまで) (1) File name は Mesh_1.py 1 (2) 保存する 70

71.

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

72.

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

73.

解析条件データの作成 • AsterStudy の Assistant を使ってコマンド ファイルの原型を作成する • コマンドファイルを修正する • AsterStudy を⽤いてファイルのメッシュファ イルと出⼒ファイルの割当を⾏う • 解析を実⾏する 73

74.

AsterStudyの起動 (1) Asterモジュール を起動 74

75.

AsterStudyの起動 1 (1) 安定版で OK する 75

76.

新しいステージの作成 (1) Operation -> Add Stage with Assistant -> Isotropic linear elasticity 76

77.

新しいステージの作成 (1) 次に進む 77

78.

メッシュファイルの指定 (1) Mesh_1.med を探す 1 78

79.

メッシュファイルの指定 (2) Mesh_1.med を選ぶ (1) 作業フォルダ を開く (3) 開く 79

80.

新しいステージの作成 (1) 次に進む 80

81.

モデル化の指定 (1) モデルはC_PLAN (平⾯応⼒) (2) 次に進む 81

82.

弾性材料特性の設定 (1) ヤング率 E = 200000 MPa, ポアソン⽐  = 0.3 (2) 次に進む 2 82

83.

境界条件の設定 (1) 境界条件の追加 (緑のプラス) 2 (2) 編集 83

84.

境界条件の仮設定 (1) Left を選ぶ 2 (2) OK する 84

85.

境界条件の仮設定 (1) DX = 0 (2) 次に進む 2 85

86.

境界条件の仮設定 (1) 境界条件の追加 (緑のプラス) 2 (2) 編集 ※ 境界条件は複雑なたウィザードでは設定で きないため,ここでは仮設定にしておく(あ とで修正する) 86

87.

境界条件の仮設定 (1) Top を選ぶ 2 (2) OK する 87

88.

境界条件の仮設定 (1) なにもしない 2 ※ 境界条件は複雑なたウィザードでは設定で きないため,ここでは仮設定にしておく(あ とで修正する) (2) 次に進む 88

89.

結果ファイルの設定 (1) 結果ファイルを保 存する場所を探す 1 89

90.

結果ファイルの設定 (2)ファイル名は HoledPlate01.rmed (1) 作業フォルダ を開く (3) 保存する ※ バイナリファイルで保存するときは, 拡張⼦を rmed とする 90

91.

Assistant の終了 (1) 終了する 1 91

92.

メッシュファイルの指定 (1) LIRE_MAILLAGE(メッ シュの読込み)をダブルク リック (2) UNITE(ファイルユ ニット) = Mesh_1.med FORMAT = MED を確認 (3) OK する 2 3 92

93.

境界条件の設定 (1) AFFE_CHAR_MECA(機械的 条件の割当)のうち,mecabc をダブルクリック (3) アイテムを追加 (2) DDL_IMPO(変 位拘束)を開く 2 (4) 追加されたアイ テムを編集する 93

94.

境界条件の設定 (2) GROUP_MA(メッシュグ ループ)をチェックして編集 する (1) DY = 0 1 94

95.

境界条件の設定 (1) Bottom をチェック (2) グループの 位置を確認 1 (3) OK する 3 95

96.

境界条件の設定 (1) OK する 1 96

97.

境界条件の設定 (2) コマンド ファイルを確認 (1) 適⽤する 1 97

98.

多点拘束の設定 (1) LIAISON_UNIF(統⼀ の関係)をチェック (2) アイテムを 追加する (3) 編集する 98

99.

多点拘束の設定 (1) DDL = DY (y ⽅ 向変位をそろえる) を選ぶ 99

100.

多点拘束の設定 (1) 要素グルー プをチェック (2) 編集する 100

101.

多点拘束の設定 (2) グループの 位置を確認 (1) Top をチェック 2 (3) OK する 3 101

102.

多点拘束の設定 (1) OK する 1 102

103.

境界条件の設定 (2) コマンド ファイルを確認 (1) 適⽤する (3) OK する 3 103

104.

荷重条件の設定 1 (3) FORCE_NODALE(節 点荷重)をチェック (4) アイテムを追加 (1) AFFE_CHAR_MECA の mecach をダブルクリック (5) 編集する (2) PRES_REP(圧⼒) のチェックをはずす 104

105.

荷重条件の設定 (4) 編集する (3) GROUP_NO(節点 グループ)をチェック (1) FY(y⽅向荷 重)をチェック (2) FY = 50 N 105

106.

荷重条件の設定 (2) 節点グループ の場所を確認 (1) Load をチェック (3) OK する 106

107.

荷重条件の設定 (1) OK する 107

108.

荷重条件の設定 (2) コマンド ファイルを確認 (1) 適⽤する (3) OK する 3 108

109.

ポスト処理の設定 (1) Commans -> Post Procesing -> CALC_CHAMP (場の計算) 1 109

110.

ポスト処理の設定 (2) アイテムの追加 (1) CONTRAINTE(応⼒) をチェック 1 (3) SIGM_NOEU(節点上に外 挿した応⼒成分を選ぶ 3 110

111.

ポスト処理の設定 (2) アイテムの追加 (1) CRITERES(基準)を チェック (3) SIEQ_NOEU(節点上に 外挿した相当応⼒)を選ぶ 3 111

112.

ポスト処理の設定 (1) コンセプト名は 解析を継承する (3) コマンドファ イルを確認 (2) 適⽤する (4) OK する 4 112

113.

結果出⼒の設定 (1) IMPR_RESU(結果 の出⼒)をダブルク リック (2) RESU を 編集する 113

114.

結果出⼒の設定 (1) MAILLAGE を チェックする (2) RESULTAT を CALC_CHAMP にする (4) OUI(= yes)を チェックする (3) TOUT_CHAM(= all fields)をチェックする (5) OK する 5 114

115.

結果出⼒の設定 (2) コマンドファ イルを確認 (1) 適⽤する (3) OK する 3 115

116.

結果出⼒の設定 (1) Commans -> Output -> IMPR_RESU(結果の出⼒)を 追加する 1 116

117.

結果出⼒の設定 (1) FORMAT に RESULTAT (テキスト出⼒)を指定 (2) 出⼒の保存先 を探す 117

118.

結果出⼒の設定 (1) 作業フォルダを開く 2 (3) 保存する (2) ファイル名は HoledPlate01.txt 3 118

119.

結果出⼒の設定 (2) アイテムを追加 (1) RESU を チェック (3) 編集する 119

120.

結果出⼒の設定 (1) RESULTAT は CALC_CHAMP にする (2) NOM_CHAM(場 の名称)をチェック (3) SIGM_NOEU(応 ⼒成分)を選ぶ 120

121.

結果出⼒の設定 (2) 要素グループを チェックして,編集する (1) IMPR_COOR(座標の 出⼒)をチェックして, OUI(= yes)にする 121

122.

結果出⼒の設定 (1) Bottomをチェック (2) モデル上の場所 を確認 (3) OK する 122

123.

結果出⼒の設定 (1) OK する 1 123

124.

結果出⼒の設定 (2) コマンドファ イルを確認 (1) 適⽤する (3) OK する 3 124

125.

コマンドファイルの保存 (1) Stage 名を右クリックし て,名前を変更 125

126.

コマンドファイルの保存 (1) Stage 名を HoledPlate01 に変更する 2 (2) コマンドファイルを エキスポートする 126

127.

コマンドファイルの保存 1 (1) 作業フォルダ を開く (2) ファイル名 を確認 (3) 保存する 127

128.

コマンドファイルの確認 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

129.

作業ファイルの保存 (1) File -> Save As(名 前をつけて保存) 129

130.

作業ファイルの保存 (1) 作業フォルダ を開く (2) 作業ファイル 名を指定 (3) 保存する 130

131.

解析の実⾏ (1) History タブを 開く (4) 緑のプラスを クリック (2) 計算機の条件 を確認 (5) Run (3) Auto Refresh を 5 秒おきにする 131

132.

解析の実⾏ (1) 緑になればエ ラーなし (2) メッセージ を確認 132

133.

解析結果の確認と利⽤ • ParaVisを⽤いて,解析結果を可視化し,定 性的な妥当性を確認する • 解析結果のテキストファイル(*.txt)を開 き,結果を確認する 133

134.

ParaVis の起動 (1) Case View タブ を開く (2) rmed ファイル を右クリック 3 (3) ParaVis で開く 134

135.

結果の可視化 (3) 適⽤する 1 2 (1) 必要な結果を チェックする (2) ベクトルを⽣成する 135

136.

変形図の表⽰ (1) Filters -> Common -> Warp By Vector を開く 136

137.

変形図の表⽰ (3) 画⾯に 合わせる 3 (2) 適⽤する (4) 変形を確認 (1) Scale Factor の⻘い棒を 真ん中くらいに置く 137

138.

変形図の表⽰ (1) SEIQ_NOEU から VMIS (von Mises)を選ぶ (2) 応⼒集中を 確認 138

139.

結果テキストファイルの確認(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

140.

応⼒集中係数の確認 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

141.

まとめ • 参照解がある円孔付き帯板の応⼒集中係数を算 出した • 応⼒集中問題におけるメッシュ作成のノウハウ (なるべく正⽅形にする,⼆次要素にする, etc)を確認した 141