本演習の目的
モデルの一部に発熱部がある場合のモデル各部の温度分布を求めます。
ここでは基本的な解析に留めます(Wizardを使った解析のみ)。
この資料はオープンCAE勉強会@岐阜で公開されているFS氏ご提供の「SALOME-Mecaの使用法解説:13.0 熱流解析」をSalome-Meca 2019で採用されたWizard(Add Stage with Assistant)を用いて設定し、同じく新しく採用されたPost-processを用いて結果評価を行います。
解析の概要
モデルはL字モデルを使い、片側の端面を一定温度に保ち、反対側の端面に発熱部があるものとして、モデルの温度分布を求めます。
モデル寸法および境界条件を示します。
ジオメトリ
- モデル形状内寸
- 長さ:10mm
- 深さ:5mm
- 幅 :3mm
- 板厚:0.5mm
のL字モデル
材料
熱伝導率は適当な値に設定しているので注意してください。
- 材料Fe 熱伝導率$\lambda$:83.5 mW/mm·℃
境界条件
const部を20℃に保ち、heat部は単位面積あたり100mWの発熱があるものとします。
グループ名 | トポロジ | 境界条件の種類 | 条件 |
---|---|---|---|
const | 面 | 温度 | 20℃ |
heat | 面 | 熱流束 | 100mW/mm2 |
解析手順
~/CAE/thermo/というフォルダーを作り、この中で解析することにします。
モデル形状のインポート
Salome-Meca2019を起動します。
Salome-Mecaの起動画面から、SALOMEモジュールの選択ドロップダウンリストを「Geometry」に変更します。
メニューバーより、「File」>「Import」>「STEP」で、L字モデル「bar-2.stp」をインポートします。
単位変換を行うかWarning画面が表示されますので、「No」をクリックします。
const部のグループ化を行います。
グループ化は、Salome-Mecaのメインツールバーで、「NewEntity」>「Group」>「Create Group」とし、「Create Group」画面上で「Shape Type」の「Face」にチェックします。
Nameは、この場合「const」とします。
Main Shapeは、矢印ボタンをクリックした後、Object Browserツリー内にインポートしたジオメトリ名(Product_1)をクリックして指定します。
モデル上で「Product_1」端面をクリックして指定し、「Create Group」画面上の「Add」ボタンをクリックします。
「Apply」をクリックします。
同様にして、「heat」という名前でグループを作成し、「Apply and Close」をクリックします。
要素分割
Salome-Mecaのメインツールバーで、「Geometry」と表示されている下向き矢印をクリックし、「Mesh」を選択します。
メニューバーより、「Mesh」>「Create Mesh」をクリックし、「Create Mesh」画面を表示します。
名前はデフォルトの「Mesh_1」のままにします。
「Product_1」がGeometryフィールドにあることを確認します(そうでない場合は、Geometryの横にある曲線矢印を選択し、Object Browser上より、「Product_1」を選択します)。
メッシュタイプは「Any」のままとします。
「Assiign a set of hypotheses」から「3D:Automatic Tetralization」を選択します。
「Hypothesis Construnction」画面が表示されますので、「キャンセル」をクリックします。
「1D」タブをクリックします。
「Hypothesis」のGear(歯車)ボタンをクリックし、「Automatic Length」を選択します。
ポップアップ表示される「Hypothesis Construnction」画面で、「Fineess」を「0.2」に変更して、「OK」をクリックします。
「Create mesh」画面に戻ります。
「Apply and Close」をクリックします。
メニューバーより、「Mesh」>「Compute」を選択してメッシュを作成します。
メッシュ作成が終了すると、「Mesh computation succeed」画面がでるので、Nodes(節点)=1376個、Tetrahedrons(四面体の1次要素)=4576個と確認できます。
「Close」をクリックします。
メニューバーより、「Modification」>「Conver to/from quadratic」を選択して、「Mesh_1」を2次要素に変換します。
「Apply and Close」をクリックします。
メニューバーより、「Mesh」>「Create Groups from Geometry」を選択して、Geometryモジュールで追加したグループをメッシュにも作成します。
Geometryモジュールで作成したグループを選択すると、次図のようにグループ名が追加されます。
「Apply and Close」をクリックします。
このファイルを保存します。
解析条件の設定
コマンドファイル作成のアシスタント機能を用いて、コマンドファイルを作成します。
Salome-Mecaのメインツールバーで、Mesh表示されている下向き矢印をクリックし、AsterStudyを選択します。
メニューバーより、「Operations」>「Add Stage with Assistant」>「Liner thermal Aanalysis」をクリックします。
「Modal Aanalysis」のイントロダクションが表示されますので、「Next>」をクリックします。
「Mesh_1」が選択されていることを確認し、「Next>」をクリックします。
「3D」が選択されていることを確認し、「Next>」をクリックします。
材料物性値の定義
熱伝導率$\lambda$:83.5 mW/mm·Kを入力し、「Next」ボタンをクリックします。
境界条件の定義
温度を指定します。
Group:constを選択します。
TEMP=20(℃)を入力します。
「Next」ボタンをクリックします。
熱流速を指定しますので、「Yes」を選択します。
Group:heatを選択します。
Steam=100(mmW/mm2 )を入力します。
「Next」ボタンをクリックします。
発熱量の指定が可能ですが、今回は指定しませんので、「No」を選択し、「Next」ボタンをクリックします。
結果ファイル名を設定します。
今回は、GeometryやMeshファイルと同じフォルダー(~CAE/thermo)に「thermo.rmed」として設定しました。
「Finish」ボタンをクリックしてアシスタント設定は完了します。
Liner thermal analysis上で右クリック>Analysis_Summary
で、今回の解析モデルの概要が表示されます。
解析の実行
Object Browserで、「History View」タブを選択します。
ここでは、すべてのケースと実行中の解析を確認できます。
現在、「Stage_1」には赤い「□」ボタンにチェックが付いていますので、「+」ボタンをクリックします。
パネル下部の「Run」で解析を実行します。
パネル右下の「Auto Refresh:No」をプルダウンして、「Auto Refresh:5s」に変更します。
すべてが正常に実行されると、解析が正常に完了したことを示す緑色の丸が表示されます。
結果の表示
「Data Files Summary」より、結果ファイル(thermo.rmed)を右クリックして、「Post-process」を選択します。
新しいウィンドウの初期化を待ちます。
Post-processが開き、次の画面になります。
「Results」タブがアクティブになります。
この結果が次図となります。
「Toggle min/max」ボタンをクリックし、最小値/最大値を表示します。
heat部は38.3°Cとなり、約18°C上昇する事がわかります。
単位
熱関係の単位を以下に示します。
単位 | mKgS | mmTonS | |
---|---|---|---|
エネルギー | energy | J | mJ |
仕事量 | power | W | mW |
熱伝導率 | Theamal conductivity | W/m·℃ | mW/m·℃ |
熱流束 | Heat flux | W/m2 | mW/mm2 |
比熱 | Specific heat | J/kg·℃ | mJ/Ton·℃ |
Code_Asterコマンドファイル
DEBUT(LANG='EN')
mesh = LIRE_MAILLAGE(FORMAT='MED',
UNITE=20)
model = AFFE_MODELE(AFFE=_F(MODELISATION='3D',
PHENOMENE='THERMIQUE',
TOUT='OUI'),
MAILLAGE=mesh)
mater = DEFI_MATERIAU(THER=_F(LAMBDA=83.5))
matfield = AFFE_MATERIAU(AFFE=_F(MATER=mater,
TOUT='OUI'),
MAILLAGE=mesh)
loadst = AFFE_CHAR_THER(FLUX_REP=_F(FLUN=100.0,
GROUP_MA=('heat', )),
MODELE=model,
TEMP_IMPO=_F(GROUP_MA=('const', ),
TEMP=20.0))
temp = THER_LINEAIRE(CHAM_MATER=matfield,
EXCIT=_F(CHARGE=loadst),
MODELE=model)
IMPR_RESU(FORMAT='MED',
RESU=_F(RESULTAT=temp),
UNITE=80)
FIN()