脈動する球体

先頭へ  前へ  次へ

 

 

前記のメッシュバランシングの手法を用いて作成したスクリプトを以下に示します。

 

TITLE 'Heat flow around an Insulating blob'

VARIABLES

Phi                 { the temperature }

Xm = MOVE(x)        { surrogate X }

Ym = MOVE(y)        { surrogate Y }      

 

DEFINITIONS

K = 1               { default conductivity }

R0 = 0.75           { initial blob radius }

 

EQUATIONS

Phi:        Div(-k*grad(phi)) = 0

Xm:         div(grad(Xm)) = 0

Ym:         div(grad(Ym)) = 0

 

BOUNDARIES

REGION 1 'box'

START(-1,-1)

VALUE(Phi)=0

VELOCITY(Xm)=0 VELOCITY(Ym)=0

LINE TO (1,-1)

NATURAL(Phi)=0      

LINE TO (1,1)

VALUE(Phi)=1      

LINE TO (-1,1)

NATURAL(Phi)=0

LINE TO CLOSE

REGION 2        'blob'        { the embedded blob }

k = 0.001

START 'ring' (R,0)

VELOCITY(Xm) = -0.25*sin(t)*x/r

VELOCITY(Ym) = -0.25*sin(t)*y/r

ARC(CENTER=0,0) ANGLE=360 TO CLOSE

TIME 0 TO 2*pi

PLOTS

FOR T = pi/2 BY pi/2 TO 2*pi

GRID(x,y)

CONTOUR(Phi)

VECTOR(-k*grad(Phi))

ELEVATION(Phi) FROM (0,-1) to (0,1)

ELEVATION(Normal(-k*grad(Phi))) ON 'ring'

END

 

Flash playerがインストールされている環境であれば出力はアニメーションとして表示されます。

 

関連するフォームについては以下を参照ください。

 

Samples | Moving_Mesh | 2D_Position_Blob.pde
Samples | Moving_Mesh | 2D_Velocity_Blob.pde
Samples | Moving_Mesh | 3D_Position_Blob.pde
Samples | Moving_Mesh | 3D_Velocity_Blob.pde