|
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 |