|
2D_Velocity_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 by reference to a mesh velocity variable.
See 2D_position_blob.pde for a version that uses no mesh velocity variables. } TITLE 'Pulsating circle in 2D - velocity specification'
COORDINATES cartesian2
VARIABLES Phi { the temperature } Xm = MOVE(x) { surrogate X } Ym = MOVE(y) { surrogate Y } Um(0.1) { mesh x-velocity } Vm(0.1) { mesh y-velocity }
DEFINITIONS K = 1 { default conductivity } R0 = 0.75 { initial blob radius }
INITIAL VALUES Phi = (y+1)/2
EQUATIONS Phi: Div(-k*grad(phi)) = 0 Xm: dt(Xm) = Um Ym: dt(Ym) = Vm Um: div(grad(Um)) = 0 Vm: div(grad(Vm)) = 0
BOUNDARIES REGION 1 'box' START(-1,-1) VALUE(Phi)=0 VELOCITY(Xm)=0 VELOCITY(Ym)=0 VALUE(Um)=0 VALUE(Vm)=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) = Um VELOCITY(Ym) = Vm VALUE(Um) = -0.25*sin(t)*x/r VALUE(Vm) = -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
|