常用軟體教學COMSOL - 台大化工系

114
台大化工所 劉凱昕 September 16, 2014 103年度台大化工系常用軟體教學 COMSOL Multiphysics [email protected]

Transcript of 常用軟體教學COMSOL - 台大化工系

台大化工所 劉凱昕

September 16, 2014

103年度台大化工系常用軟體教學

COMSOL Multiphysics

[email protected]

COMSOL的主要功能

3

手繪任意幾何形狀

給定一個或多個微分方程及邊界條件

COMSOL利用數值方法解微分方程

COMSOL使用數值方法求解

4

解析解(Analytical solution) 數值解(Numerical solution)

–由常見數學運算及函數組成,可被

快速運算出來

– Exact solution

– Discrete form(離散)

– Approximate solution(近似程度

可由使用者決定)

求解:𝑑𝑦

𝑑𝑥= 𝑥, 𝑦 0 = 0

𝑦 = 0.5𝑥2

𝑀𝑒𝑠ℎ 𝑠𝑖𝑧𝑒 = 5 𝑀𝑒𝑠ℎ 𝑠𝑖𝑧𝑒 = 2.5

利用數值方法解微分方程

優點

‒ 不是所有問題都可以找到解析解,但只要微分方程和邊界條件不違背基本

物理定律,數值方法幾乎可以解。

‒ 可處理複雜的幾何形狀

‒ 數值方法容易寫成電腦程式

5

常見的數值方法

– 有限元素法(Finite element method)

– 有限差分法(Finite difference method)

– 有限體積法(Finite volume method)

← COMSOL

COMSOL的操作介面

6

功能選項區 細部設定區 結果顯示區

功能選項快速列

COMSOL的功能選項

7

建立模型形狀

輸入材料參數與指定邊界條件

求解方式與數值方法設定

網格設定

結果顯示與分析

例一 圓管的流體輸送

𝑃0

𝑃𝐿

𝑧

𝑟

𝑅𝐿

8

𝑁𝑒𝑤𝑡𝑜𝑛′𝑠 𝑙𝑎𝑤 𝑜𝑓 𝑣𝑖𝑠𝑐𝑜𝑠𝑖𝑡𝑦

𝜌𝜕𝒖

𝜕𝑡+ 𝒖 ∙ 𝜵𝒖 = −𝜵𝑝 − 𝜵 ∙ 𝝉 + 𝜌𝒈

𝑆𝑡𝑒𝑎𝑑𝑦 𝑠𝑡𝑎𝑡𝑒 (𝜕𝒖

𝜕𝑡= 0)

𝜌 𝒖 ∙ 𝜵𝒖 = −𝜵𝑝 + 𝜇𝜵2𝒖 + 𝜌𝒈

𝐴𝑠𝑠𝑢𝑚𝑒 𝒖 = 𝜹𝑧𝑢𝑧(𝑟, 𝑧)

0 = −𝜕𝑃

𝜕𝑧+ 𝜇

1

𝑟

𝜕

𝜕𝑟(𝑟𝜕𝑢𝑧𝜕𝑟

)

𝑢𝑧 =(𝑃0 − 𝑃𝐿)𝑅

2

4𝜇𝐿[1 − (

𝑟

𝑅)2]

𝝉 = −𝜇 𝜵𝒖 + 𝛁𝒖 𝑇 + (2

3𝜇 − 𝜅)(𝜵 ∙ 𝒖)𝜹

𝐼𝑛𝑐𝑜𝑚𝑝𝑟𝑒𝑠𝑠𝑖𝑏𝑙𝑒 𝑓𝑙𝑜𝑤 (𝜵 ∙ 𝒖 = 0)

𝑁𝑎𝑣𝑖𝑒𝑟 − 𝑆𝑡𝑜𝑘𝑒𝑠 𝑒𝑞𝑢𝑎𝑡𝑖𝑜𝑛𝑠

例一 圓管的流體輸送

2 𝑎𝑡𝑚

1 𝑎𝑡𝑚

0.1 𝑚

4 𝑚

9

𝜌 = 1 𝑘𝑔/𝑚3

𝜇 = 1 𝑃𝑎 ∙ 𝑠

𝑧

𝑟

𝑢𝑧 = 0

𝑢𝑧, 𝑚𝑎𝑥

𝑃𝑎𝑟𝑎𝑏𝑜𝑙𝑖𝑐 𝑣𝑒𝑙𝑜𝑐𝑖𝑡𝑦 𝑑𝑖𝑠𝑡𝑟𝑖𝑏𝑢𝑡𝑖𝑜𝑛 𝑢𝑧(𝑟)

𝐿𝑖𝑛𝑒𝑎𝑟 𝑚𝑜𝑚𝑒𝑛𝑡𝑢𝑚 𝑓𝑙𝑢𝑥 𝑑𝑖𝑠𝑡𝑟𝑖𝑏𝑢𝑡𝑖𝑜𝑛 𝜏𝑟𝑧(𝑟)

𝜏𝑟𝑧 = 0

𝜏𝑟𝑧, 𝑚𝑎𝑥

𝑢𝑧 =(𝑃0 − 𝑃𝐿)𝑅

2

4𝜇𝐿[1 − (

𝑟

𝑅)2]

𝜏𝑟𝑧 = −𝜇𝑑𝑢𝑧𝑑𝑟

=𝑃0 − 𝑃𝐿2𝐿

𝑟

𝑃𝑎𝑟𝑎𝑚𝑒𝑡𝑒𝑟𝑠𝐺𝑜𝑣𝑒𝑟𝑛𝑖𝑛𝑔 𝑒𝑞𝑢𝑎𝑡𝑖𝑜𝑛

0 = −𝜵𝑝 + 𝜇𝜵2𝒖 + 𝜌𝒈

𝐺𝑒𝑜𝑚𝑒𝑡𝑟𝑦 𝑎𝑛𝑑 𝐵𝐶𝑠

例一 步驟1 開啟程式後選擇Model Wizard

10

例一 步驟2 選擇維度

11

選擇「3D」

例一 步驟3 加入物理模組

12

Fluid Flow → Single-Phase Flow → Laminar Flow (spf),按下「Add」→「Study」

例一 步驟4 挑選研究類型

13

選擇「Stationary」(Steady State) 並按「Done」

例一 步驟5 建立一圓柱體

14

在Geometry 1上按滑鼠右鍵,點擊「Cylinder」

例一 步驟6 設定圓柱體的幾何性質

15

將半徑設為0.1[m],高度為4[m]。設定完後按「Build All Objects」

例一 步驟7 檢查微分方程式是否合理

16

例一 步驟7 檢查微分方程式是否合理

17

選擇「Incompressible flow」及勾選「Neglect inertial term (Stokes flow)」

例一 步驟8 設定流力參數

18

將Density及Dynamic viscosity都設為1

例一 步驟9 查看邊界條件

19

預設的邊界條件為「No slip」

點擊可展開此邊界條件的數學式

例一 步驟10 加入入口端邊界條件

20

例一 步驟10 加入入口端邊界條件

21

將入口端壓力設為2[atm]

例一 步驟11 加入出口端邊界條件

22

例一 步驟11 加入出口端邊界條件

23

將出口端壓力設為1[atm]

例一 步驟12 之前的邊界條件已經改變了

24

例一 步驟13 建構網格

25

將網格大小設為「Coarser」,設定完後按「Build All」

例一 步驟14 開始計算

26

按「Compute」

例一 步驟15 預設會產生流速的分布圖

27

例一 步驟16 調整slice數目並顯示yz平面

28

例一 步驟17 繪製圓管中間段截面的流速分布

29

例一 步驟17 繪製圓管中間段截面的流速分布

30

設定完線段的兩端點後按「Plot」即可看到該線段𝑧

0.1 𝑚

2 𝑚

𝑥𝑦

例一 步驟17 繪製圓管中間段截面的流速分布

31

在Result加入「1D Plot Group」

例一 步驟17 繪製圓管中間段截面的流速分布

32

在1D Plot Group 3加入「Line Graph」

例一 步驟17 繪製圓管中間段截面的流速分布

33

改變Data set為剛剛加入的「Cut Line 3D 1」

例一 步驟17 繪製圓管中間段截面的流速分布

34

設定兩軸顯示的物理量,X軸設為負Z方向流速(-w),Y軸設為x座標

例一 步驟17 繪製圓管中間段截面的流速分布

35

再加入一個「Line Graph」來繪製解析解 𝑢𝑧 =(𝑃0 − 𝑃𝐿)𝑅

2

4𝜇𝐿[1 − (

𝑟

𝑅)2]

1[atm]*(0.1[m])^2*(1-(sqrt(x^2+y^2))^2/(0.1[m])^2)/(4*1[Pa*s]*4[m])

例一 步驟17 繪製圓管中間段截面的流速分布

36

將Line Graph 1改成以標記表示

例一 步驟18 嘗試以更精細的網格來計算

37

例一 步驟18 嘗試以更精細的網格來計算

38

例一 步驟19 Shear Stress

39

𝜏𝑟𝑧 = −𝜇𝑑𝑢𝑧𝑑𝑟

=𝑃0 − 𝑃𝐿2𝐿

𝑟

將Recover改成「Everywhere」

☺ Data set要記得更改

例一 步驟20 檢查Reynolds number

40

例一 步驟20 檢查Reynolds number

41

𝑅𝑒 =𝑙0𝑣0𝜌

𝜇

例一 如果步驟18改成更精細的網格失敗了

42

失敗的原因可能是電腦的記憶體不夠用,此時可試著在維度地方選擇「2D Axisymmetry」

例一 如果步驟18改成更精細的網格失敗了

43

Geometry的地方改為建立一個長方形

例一 如果步驟18改成更精細的網格失敗了

44

此時網格大小使用「Fine」應該可以計算了

例一 如果步驟18改成更精細的網格失敗了

45

如果要畫截面流速分布,Data Sets的地方要改成加入「Cut Line 2D」

例一 如果步驟18改成更精細的網格失敗了

46

Cut Line 2D 1裡面的Data set改成「Solution 2」

例一 如果步驟18改成更精細的網格失敗了

47

此時空間變數是r不是x,故Line Graph的Y軸改為輸入r

例一 如果步驟18改成更精細的網格失敗了

48

例二 二維穩態熱傳導

49

𝜕2𝑇

𝜕𝑥2+𝜕2𝑇

𝜕𝑦2= 0

𝛻2𝑇 = 0

𝑇 𝑥, 𝑦 = 𝑇1 + (𝑇2 − 𝑇1) ×2

𝜋

𝑛=1

∞(−1)𝑛+1+1

𝑛𝑠𝑖𝑛

𝑛𝜋𝑥

𝐿

sinh(𝑛𝜋𝑦𝐿

)

sinh(𝑛𝜋𝑊𝐿 )

𝑦

𝑥

𝑇1 𝑇1

𝑇1

𝑇2

00 𝐿

𝑊

𝑇(𝑥, 𝑦)

分離變數法

𝐻𝑒𝑎𝑡 𝑒𝑞𝑢𝑎𝑡𝑖𝑜𝑛

𝑃𝑎𝑟𝑎𝑚𝑒𝑡𝑒𝑟𝑠

𝐺𝑒𝑜𝑚𝑒𝑡𝑟𝑦 𝑎𝑛𝑑 𝐵𝐶𝑠

例二 二維穩態熱傳導

50

𝛻2𝑇 = 0𝑦

𝑥

100℃

25℃

00 1 𝑚

1 𝑚

𝑇(𝑥, 𝑦)

100℃

100℃

𝑘 = 1𝑊/(𝑚 ∙ 𝐾)

𝜌 = 1 𝑘𝑔/𝑚3

𝑐𝑝 = 1 𝐽/(𝑘𝑔 ∙ 𝐾)

𝐺𝑜𝑣𝑒𝑟𝑛𝑖𝑛𝑔 𝑒𝑞𝑢𝑎𝑡𝑖𝑜𝑛

例二 步驟1 2D、Heat Transfer in Solids、s-s

51

例二 步驟2 建立一正方形

52

邊長設為1[m]

例二 步驟3 檢查微分方程式

53

𝛻2𝑇 = 0

例二 步驟4 設定熱傳參數

54

例二 步驟5 將上邊界的溫度設為定值

55

例二 步驟5 將上邊界的溫度設為定值

56

上邊界的溫度設為25[degC]

例二 步驟6 將左、下及右邊界的溫度設為定值

57

其它邊界的溫度設為100[degC]

例二 步驟7 建構網格

58

網格大小使用預設的「Normal」

例二 步驟8 開始計算

59

例二 步驟9 預設會產生溫度的分布圖

60

例二 步驟10 調整溫度的顯示單位

61

例二 步驟10 調整溫度的顯示單位

62

例二 步驟11 調整溫度顯示範圍

63

例二 步驟12 改變溫度顯示顏色

64

例二 步驟13 求單點溫度

65

例二 步驟13 求單點溫度

66

設定坐標為(0.5,0.5),按「Plot」後可看到該點位置

例二 步驟13 求單點溫度

67

例二 步驟13 求單點溫度

68

改變Data set為剛剛加入的「Cut Point 2D 1」,並按「Evaluate」,右下角會出現結果

例二 步驟13 求單點溫度

69

將Cut Point 2D 1的坐標改成(0.2,0.8),計算該點溫度

例二 步驟14 加入等溫線

70

例二 步驟14 加入等溫線

71

例二 步驟14 加入等溫線

72

例二 步驟15 改變等溫線數目及溫度單位

73

例二 步驟16 顯示熱通量

74

例二 步驟16 顯示熱通量

75

例二 步驟16 顯示熱通量

76

例二 步驟17 改變箭頭大小

77

例二 步驟18 取消Surface溫度顯示

78

例二 步驟18 取消Surface溫度顯示

79

𝑃𝑎𝑟𝑎𝑚𝑒𝑡𝑒𝑟𝑠

𝐺𝑒𝑜𝑚𝑒𝑡𝑟𝑦 𝑎𝑛𝑑 𝐵𝐶𝑠

例三 二維暫態熱傳導

80

𝑦

𝑥

100℃

25℃

00 1 𝑚

1 𝑚

𝑇(𝑥, 𝑦; 𝑡)

100℃

100℃

𝑘 = 1𝑊/(𝑚 ∙ 𝐾)

𝜌 = 1 𝑘𝑔/𝑚3

𝑐𝑝 = 1 𝐽/(𝑘𝑔 ∙ 𝐾)

𝐺𝑜𝑣𝑒𝑟𝑛𝑖𝑛𝑔 𝑒𝑞𝑢𝑎𝑡𝑖𝑜𝑛

𝑇 𝑥, 𝑦; 𝑡 = 0 = 25℃

𝑘(𝛻2𝑇) = 𝜌𝑐𝑝𝜕𝑇

𝜕𝑡

例三 Study選擇「Time Dependent」

81

例三 查看微分方程式

82

例三 薄板的初始溫度

83

例三 欲求解的時間範圍

84

設定Times為「range(0,0.005,0.2)」,表示從0解到0.2秒,間隔是0.005秒

例三 計算後可查看各時間的溫度分布

85

例三 製作動畫

86

例四 熱水器(熱傳+流力)

87

𝐷 = 0.5 𝑖𝑛

𝑇𝑖,𝑎𝑣𝑔 = 20℃

𝑚 = 0.05 𝑘𝑔/𝑠𝑇𝑜,𝑎𝑣𝑔 → 37℃

𝑞𝑠′′ = ?

𝐿 = 1 𝑚

𝑊𝑎𝑡𝑒𝑟

𝑃𝑎𝑟𝑎𝑚𝑒𝑡𝑒𝑟𝑠

使用內建材料庫

𝐺𝑜𝑣𝑒𝑟𝑛𝑖𝑛𝑔 𝑒𝑞𝑢𝑎𝑡𝑖𝑜𝑛𝑠

𝜌 𝒖 ∙ 𝜵𝒖 = −𝜵𝑝 + 𝜇𝜵2𝒖 + 𝜌𝒈

𝐺𝑒𝑜𝑚𝑒𝑡𝑟𝑦 𝑎𝑛𝑑 𝐵𝐶𝑠

𝜌𝑐𝑝𝒖 ∙ 𝜵𝑇 = 𝜵 ∙ 𝑘𝜵𝑇 + 𝑄 + 𝑄𝑣ℎ +𝑊𝑝

𝑃 = 1 𝑎𝑡𝑚

例四 步驟1 維度選擇「2D Axisymmetric」

88

例四 步驟2 選擇物理模組

89

在選擇物理模組的地方加入「Laminar Flow」及「Heat Transfer in Fluids」

例四 步驟3 研究類型選擇「Stationary」

90

例四 步驟4 加入全域參數

91

在Global Definition按右鍵,點擊「Parameters」

例四 步驟4 加入全域參數

92

D 0.5[in]

L 1[m]

mfr 0.05[kg/s]

power 2[kW]

hflux power/(pi*D*L)

例四 步驟5 建立幾何形狀

93

例四 步驟6 使用內建材料庫

94

在Materials按右鍵,點擊「Add Material」

例四 步驟6 使用內建材料庫

95

選擇「Built-In」→「Water, liquid」,點擊「Add to Component」

例四 步驟7 加入邊界條件

96

Laminar Flow的上邊界設為「Inlet」,Mass flow rate設成mfr

例四 步驟7 加入邊界條件

97

Laminar Flow的下邊界設為「Outlet」,Pressure設成1[atm]

例四 步驟7 加入邊界條件

98

Heat Transfer in Fluids的上邊界設為「Temperature」,溫度設成20[degC]

例四 步驟7 加入邊界條件

99

Heat Transfer in Fluids的右邊界設為「Heat Flux」,General inward heat flux設成hflux

例四 步驟7 加入邊界條件

100

Heat Transfer in Fluids的下邊界設為「Outflow」

例四 步驟8 設定熱傳的速度場為流力的計算結果

101

將Absolute pressure及Velocity field改成來自spf/fp,並且不要勾選Reference pressure

例四 步驟9 將mesh設定成「Coarser」

102

設定完後即可進行計算

例四 步驟10 查看出口平均溫度

103

Result → Derived Values → Average → Line Average

例四 步驟10 查看出口平均溫度

104

𝑇 = 0𝑅𝑇 × 2𝜋𝑟𝑑𝑟

0𝑅2𝜋𝑟𝑑𝑟

= 0𝑅𝑇 × 2𝜋𝑟𝑑𝑟

𝜋𝑅2= 0𝑅(𝑇 × 2𝜋𝑟)𝑑𝑟

𝑅×

1

𝜋𝑅

𝐿𝑖𝑛𝑒 𝑎𝑣𝑒𝑟𝑎𝑔𝑒

例四 步驟11 直接修改參數再算一次

105

將power改成2[kW],再算一次

例四 步驟11 直接修改參數再算一次

106

例四 步驟12 使用Parametric Sweep

107

在Study 1按右鍵,點擊「Parametric Sweep」

例四 步驟12 使用Parametric Sweep

108

點選加號以新增參數,參數選擇「power」,並設定範圍與間隔。設定完後即可進行計算

也可以寫成1[kW] * range(1,1,4)

例四 步驟12 使用Parametric Sweep

109

COMSOL Applications: Plug Flow Reactor

110

COMSOL Applications: CSTR

111

COMSOL Applications: Chemical Vapor Deposition

112

COMSOL Applications: 柳橙電池

113

COMSOL Applications: 先進材料研發

114

115