Sample Script

〔6-1〕 3D 熱伝導解析 【3D_Bricks.pde】

1.概要

3D 定常熱伝導解析の例です。それぞれ異なる4種類の熱伝導率(K)を持つ直方体の集合体内部に、ガウス形分布の熱源があります。全ての表面(6面)は、0度に保持されています。 一定の時間が経過しますと、温度は安定した分布状態に到達します。本サンプルは、3D_Bricks+Time.pdeの定常状態に類似しています。

2.メッシュ図

3d_bricks-メッシュ

3.解析結果

図中の {Fig.A},{Fig.B} は、4項で対応するスクリプトを示します。

 温度分布図(Dicer)湿度分布図

4.スクリプト

下記のスクリプトをマウスでコピーし、FlexPDE エディット・ウィンドウに貼り付けて実行する際には、日本語のコメントを除去して下さい。そのままですと、コンパイル・エラーが発生する場合があります。

{ 3D_brICKS.PDE

 This problem demonstrates the application of FlexPDE to steady-state
 three dimensional heat conduction.  An assembly of four bricks of
 differing conductivities has a gaussian internal heat  source,  with all
 faces held at zero temperature.  After a time, the  temperature reaches
 a stable distribution.

 This is the steady-state analog of problem 3D_brICKS+TIME.PDE
}

title 'steady-state 3D heat conduction'

select
    regrid=off  { use fixed grid }
    painted	{ 等高線図を色分けで塗りつぶします。}

coordinates
    cartesian3

variables
    Tp		{ 温度 }

definitions
    long = 1
    wide = 1
    K   { thermal conductivity -- values supplied later 熱伝導率:値は後で設定します。}
    Q = 10*exp(-x^2-y^2-z^2)    { Thermal source ガウス形分布の熱源 }

initial values
    Tp = 0.

equations
    Tp : div(k*grad(Tp)) + Q = 0    { the heat equation }

extrusion z = -long,0,long      { divide Z into two layers Z軸を2つのlayerに分割します。}

boundaries
    Surface 1 value(Tp)=0       { fix bottom surface temp }
    Surface 3 value(Tp)=0       { fix top surface temp }

    Region 1    { define full domain boundary in base plane }
       layer 1 k=1              { bottom right brick }
       layer 2 k=0.1            { top right brick }
       start(-wide,-wide)
         value(Tp) = 0          { fix all side temps }
         line to (wide,-wide)   { walk outer boundary in base plane }
           to (wide,wide)
           to (-wide,wide)
           to close

    Region 2    { overlay a second region in left half }
       layer 1 k=0.2            { bottom left brick }
       layer 2 k=0.4            { top left brick }
       start(-wide,-wide)
         line to (0,-wide)      { walk left half boundary in base plane }
           to (0,wide)
           to (-wide,wide)
           to close

monitors
    contour(Tp) on z=0  as "XY Temp"
    contour(Tp) on x=0  as "YZ Temp"
    contour(Tp) on y=0  as "ZX Temp"
    elevation(Tp) from (-wide,0,0) to (wide,0,0)  as "X-Axis Temp"
    elevation(Tp) from (0,-wide,0) to (0,wide,0)  as "Y-Axis Temp"
    elevation(Tp) from (0,0,-long) to (0,0,long)  as "Z-Axis Temp"

plots
	cdf(Tp)
    contour(Tp) on z=0  as "XY Temp"					{ Fig.A }
    contour(Tp) on x=0  as "YZ Temp"
    contour(Tp) on y=0  as "ZX Temp"
    elevation(Tp) from (-wide,0,0) to (wide,0,0)  as "X-Axis Temp"	{ Fig.B }
    elevation(Tp) from (0,-wide,0) to (0,wide,0)  as "Y-Axis Temp"
    elevation(Tp) from (0,0,-long) to (0,0,long)  as "Z-Axis Temp"

end