|
2D_Position_Blob |
Top Previous Next |
|
{ This problem illustrates moving meshes in 2D. A circular boundary shrinks and grows sinusoidally in time. The mesh coordinates are solved directly, without a mesh velocity variable.
See 2D_velocity_blob.pde for a version that uses mesh velocity variables. } TITLE 'Pulsating circle in 2D - position specification'
COORDINATES cartesian2
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 } Um = dt(Xm) Vm = dt(Ym)
INITIAL VALUES Phi = (y+1)/2
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' (R0,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
MONITORS for cycle=1 grid(x,y) contour(phi) PLOTS FOR T = 0 BY pi/20 TO 2*pi GRID(x,y) CONTOUR(Phi) notags nominmax VECTOR(-k*grad(Phi)) CONTOUR(magnitude(Um,Vm)) VECTOR(Um,Vm) fixed range(0,0.25) ELEVATION(Phi) FROM (0,-1) to (0,1) ELEVATION(Normal(-k*grad(Phi))) ON 'ring' END |