2D_StretchX

Top  Previous  Next

{

This example demonstrates moving meshes in 2D.

A 1D Gaussian distribution is defined on a 2D mesh.

The mesh is then stretched to twice its initial X size,

while the Gaussian remains fixed in space.

 

Mesh motion is imposed by explicit positions of the endpoints.

}

TITLE "2D brick stretching in x"

 

VARIABLES

u

vx

xm = move(x)

 

DEFINITIONS

Hl = 1/2

wid = 0.01

gwid = 0.15

u0= exp(-x^2/gwid^2)

lmove = Hl + t

 

INITIAL VALUES

u= u0

vx = x/Hl

 

EQUATIONS

U:  dt(u)=100*dyy(u)

Vx: div(grad(vx)) = 0

Xm:  dt(xm) = vx

 

BOUNDARIES

REGION 1

   START(-Hl,0)  Line to (Hl,0)

   value(u)=0 value(vx)=1 value(xm)=lmove

   line to (Hl,wid)

   natural(u)=0 nobc(vx) nobc(xm)

   line to (-Hl,wid)

   value(u)=0 value(vx)=-1 value(xm)=-lmove

   line to close

 

TIME 0 TO 0.5 by 0.01

 

MONITORS

for time=0

   grid(x,10*y) as "Initial mesh"

   contour(vx)

 

for cycle=1

   grid(x,10*y)

   contour(u) zoom(-2*Hl,0, 4*Hl,2*wid)

   contour(vx) zoom(-2*Hl,0, 4*Hl,2*wid)

   contour(dt(xm)) zoom(-2*Hl,0, 4*Hl,2*wid)

   elevation(u,u0) from(-10*Hl,wid/2) to (10*Hl,wid/2) range (0,1)

   elevation(vx) from(-10*Hl,wid/2) to (10*Hl,wid/2) range (0,1)

   elevation(dt(xm)) from(-10*Hl,wid/2) to (10*Hl,wid/2) range (0,1)

 

PLOTS

for cycle=1

!  for time=0.1 by 0.1 to endtime

   grid(x,10*y)

   contour(u) zoom(-2*Hl,0, 4*Hl,2*wid)

   contour(vx) zoom(-2*Hl,0, 4*Hl,2*wid)

   contour(dt(xm)) zoom(-2*Hl,0, 4*Hl,2*wid)

   elevation(u,u0) from(-10*Hl,wid/2) to (10*Hl,wid/2) range (0,1)

END