トップページはこちらです。
1.0、2.0、4.0の記事の読了を前提として、操作についての記載を省略している場合があります。
ver1.1.1では近接している面を自動認識する機能が追加されていますが、ここでは使用しません。
解析内容
- 使用ファイル
- 6_01_Base.stp と 6_01_Top.stp (注1)
- 単位
- mm-ton
- 材料物性値:Top
- Aluminum (注2)
- 縦弾性係数:E=70600 [MPa]
- ポアソン比:ν=0.343
- 材料物性値:Base
- Steel (注2)
- 縦弾性係数:E=212000 [MPa]
- ポアソン比:ν=0.293
- (注1) 元の例題の形状セットには含まれていないため作成が必要でした。
- (注2) この値は元の例題での値です。ここでは PrePoMax の Material Library に登録済の近い値の材料を使います。
作成したファイルをこちらに置きました。
形状の読込
PrePoMaxの新規起動または新規作業開始をしてください。
unit system:mm,ton,s,℃ に設定してください。
6_01_Top.stp をインポートしてください。
オブジェクト・ブラウザのGeometryタブのツリーにSolid_part-1が作成され、グラフィック・パネルには部品が表示されます。
6_01_Base.stpをインポートしてください。
オブジェクト・ブラウザのGeometryタブのツリーにSolid_part-2が作成され、グラフィック・パネルには部品が表示されます。
ツリーに表示される名前の変更ができますが、ここでは
・Top部品のインデックス = 1
・Base部品のインデックス = 2
という規則で設定していきます。
メッシュ作成
Solid_part-1にCreate Meshを実行してメッシュを生成してください。
Solid_part-2にCreate Meshを実行してメッシュを生成してください。
※ 番号順に操作してください。
材料物性値の設定
Material Library から材料物性値を呼び出してください。
FE ModelタブのツリーのMaterialsの右クリックメニューのMaterial Library。
メニューバーの場合はProperty→Material library。
Steel:S185
Aluminum:1060_Alloy
ツリーのMaterialsの下に S185 と 1060_Alloy が表示されます。
セクションの設定をしてください。
FE ModelタブのツリーのSectionsの右クリックメニューのCreate。
メニューバーの場合はProperty→Section→Create。
Type = Solid selection
Properties
Name = Solid_selection-1 (デフォルトのまま)
Material = 1060_Alloy
Region type = Part name
Part = Solid_part-1
「OK-New」を左クリック
Type = Solid selection
Properties
Name = Solid_selection-2 (デフォルトのまま)
Material = S185
Region type = Part name
Part = Solid_part-2
ツリーのSectionsの下に Solid_selection-1 と Solid_selection-2 が表示されます。
面の命名
面に名前を付けてください。
FE ModelタブのツリーのMeshのSurfaces の右クリックメニューのCreate。
メニューバーの場合はModel→Surfce→Create
-
Properties
Name = fix
Surface type = Element
Region type = Selection - Surfaces, edges and vertices
- 面を選択してください。
- 「Ok-New」または「OK」を左クリックしてください。
同様にして、あと4つの面の設定をしてください。
Name = contBase
Name = contTop
Name = load
Name = symm
contTopを選択する時は、下側のBase部品を非表示状態にしたほうがやりやすいでしょう。非表示と表示を切り替える方法は下記です。
symm(面)を設定するときは2つの面を選択する必要があります。複数の面を選択するときは、Shittキーを押しながら左クリックすると面を追加できます。CTRLキーを押しながら左クリックすると選択済みの面をセットから外すことができます。
作業が終わったあとは、ツリーのSurfacesの下に fix、contBase、contTop、load、symm が表示されているはずです。
接触面(相互作用)の設定
接触面の設定をしてください。
FE ModelタブのツリーのMeshのContact → Surfaces interactions の右クリックメニューのCreate。
メニューバーの場合はInteraction → Contact → Surfaces interaction → Create
-
Data
Interaction name = Surface_interaction-1(デフォルトのまま)
2) Interaction models
Selected = Surface behavior
Properties
Data
Type = Linear
K = 10000000 N/mm³(デフォルト)から 70000 N/mm³に変更する
σ infinity = 1 MPa(デフォルトのまま)
Co = Default(デフォルトのまま)
3) Interaction models
Selected = Friction
Properties
Data
Friction coefficient = 1.5
Stick slope = Default
4) 「OK」を左クリックしてください。
≪補足≫
CaliculiXのマニュアルを見ると、以下のことが書いてありました。
「Type = Hard」という設定は「Type = Linear」のデフォルト条件である。
「Type = Linear」のKは、法線方向の接触剛性である。
「Type = Linear」のSlick slope(λ)と、接線方向の接触剛性Ktの関係式は下記である。
Kt = λ × Ap
Apは“スレーブ面のノードの代表”らしいのですが、意味がよくわかりません。
つまり、法線方向の接触剛性Kは、元の例題の E_N のことです。
元の例題の E_T は PrePoMaxのGUI画面では設定できません。Slick slope(λ)の指定によってE_Tを指定することになるのですがApの意味が判らないため、元の例題のE_T=7000に合わせた換算はしないでデフォルトのままとしておきます。CaliculiXの*.inpファイルをエクスポートすると、Slick slope(λ)は未指定の空欄(つまりデフォルト値)となっていました。したがって、この設定で元の例題に相当しているとみなします。
接触面ペアの設定をしてください。
FE ModelタブのツリーのMeshのContact → Contact pairs の右クリックメニューのCreate。
メニューバーの場合はInteraction → Contact → Contact pair → Create
-
Data
Name = Contact_Pair-1 (デフォルトのまま)
surface interaction = Surface_interaction-1 (デフォルトのまま)
Method = Surface to surface (デフォルトのまま)
Adjust = Yes (デフォルトのまま)
Adjustment size = Default (デフォルトのまま)
Master Region
Master region type = Surface name
Master surface = contBase
Slave Region
Slave region type = Surface name
Slave surface = contTop - 「Ok」を左クリックしてください。
解析設定
解析ステップを新規作成してください。
FE ModelタブのツリーのStepsの右クリックメニューのCreate。
メニューバーの場合はStep→Step→Createです。
Type = Static step
Data
Name = Step-1 (デフォルトのまま)
Solver = Default (デフォルトのまま)
Nlgeom = On
Incrementation = Default (デフォルトのまま)
固定する面を作成してください。
FE ModelタブのツリーのStep-1/BCsの右クリックメニューのCreate。
メニューバーの場合はStep→BC→Createです。
Type = Displacement/Rotation
Properties
Name = Displacement_rotation-1 (デフォルトのまま)
Region type = Surface name
Surfaces = symm
U1 = Unconstrained
U2 = Unconstrained
U3 = 0 mm
UR1 = Unconstrained
UR2 = Unconstrained
UR3 = Unconstrained
Color = Lime (デフォルトのまま)
Type = Displacement/Rotation
Properties
Name = Displacement_rotation-2 (デフォルトのまま)
Region type = Surface name
Surfaces = load
U1 = 0 mm
U2 = -0.5 mm
U3 = 0 mm
UR1 = Unconstrained
UR2 = Unconstrained
UR3 = Unconstrained
Color = Lime (デフォルトのまま)
Type = Displacement/Rotation Properties Name = Displacement_rotation-3 (デフォルトのまま) Region type = Surface name Surfaces = fix U1 = 0.5 mm U2 = 0 mm U3 = 0 mm UR1 = Unconstrained UR2 = Unconstrained UR3 = Unconstrained Color = Lime (デフォルトのまま)
≪補足≫
Displacement_rotation-2 がTop部品を押さえつける条件で、
Displacement_rotation-3 がBase部品を水平移動させる条件です。
今回は、静的計算(Static step)で、Nlgeom(幾何非線形)=On という設定です。
この設定で計算すると、2つの条件が同時進行で
Top部品の移動量 ( 0, 0, 0 ) → ( 0, -0.5, 0 )
Base部品の移動量 ( 0, 0, 0 ) → ( 0.5, 0, 0 )
という変化をする計算になります。
元の例題は、Displacement_rotation-2が最初から ( 0, -0.5, 0 ) という状態で、Displacement_rotation-3がランプ関数にしたがい( 0, 0, 0 ) → ( 0.5, 0, 0 )と変化する計算です。
元の例題に倣った設定での計算は、あとで行います。
≪ファイル保存≫
いったんファイルを保存してください。名前は任意ですが、ここでは06_10フォルダーの06_10_a.pmxファイルとしました。
ソルバー計算
ソルバー計算を実施してください。
≪補足≫
参考にさせていただいた元の例題(SalomeMeca)を熟読した人から質問があるかもしれないので、補足します。
元の例題には、『接触問題では2次要素は収束し難く計算が遅いため線形要素を使ったほうが良い』という記載があります。CalculiXのマニュアルには、『線形要素を使うときは接触面の計算方法(Method)を Node to surfaceで良いが、2次要素を使うときはMethodを Surface to surfaceとする。』旨の記載があります。今回は「Method = Surface to surface」で計算しています。
≪補足≫
元の例題の(2)では、ペナルティ法に代えてラグランジェ法(ラグランジュの未定乗数法)での計算をしています。CalculiXのマニュアルを読むとペナルティ法しかできないようです。自分はCaliculiXの初心者ですので、もしも勘違いがあれば御指摘ください。
2段階計算
ファイルを上書き保存してください。
そして、別名で保存してください。ファイル名は06_10フォルダーの06_10_b.pmxとしました。
解析ステップを追加作成してください。
FE ModelタブのツリーのStepsの右クリックメニューのCreate。
メニューバーの場合はStep→Step→Createです。
Type = Static step
Data
Name = Step-2 (デフォルトのまま)
Solver = Default (デフォルトのまま)
Nlgeom = On
Incrementation = Default (デフォルトのまま)
下の図のように、Step-1の次にStep-2が追加されます。Step-1の境界条件はStep-2に引き継がれます。
Step-1 の Displacement_rotation-3
Surfaces = fix
U1 = 0 mm に変える
U2 = 0 mm
U3 = 0 mm
UR1 = Unconstrained
UR2 = Unconstrained
UR3 = Unconstrained
ソルバー計算を実施してください。
表示例を示します。変形形状は True scale です。さきほどの結果と同じです。
2段階計算のバグについて
この記事を書いたあとに、2段階計算で一部の条件が引き継がれないというPrePoMaxの“仕様(笑)”が判りました。
発見に至った経緯は「5.0 線形熱応力」の最後に記載してあります。Initial Condition で設定した条件がソルバー計算の最初で初期化され、2段階計算のときは前のステップの境界条件をリセットされます。特に、前のステップの境界条件がリセットされるというは、非定常計算をする時には完全にダメです。
この記事では、2段階計算をしています。
本来ならば、第1ステップでTop部品へ印加したのちに第2ステップはその状態を保持します。“仕様(笑)”のせいでリセットされてしまいます。したがって、下の図の「この例題」と同じ状態です。
(他の記事は、2022/02/04 22:55頃に修正済です。この記事の追記修正を忘れていました。)