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