17
2D MPM (an example) Monday, 10/21/2002

2D MPM (an example)

Embed Size (px)

DESCRIPTION

2D MPM (an example). Monday, 10/21/2002. Particle information. mass:. position:. volume:. E , n. velocity:. stress:. density = 1000; E = 1000000; nu = 0.3; a = 1; ncelly=8; Vc=sqrt(E/density); dt = 0.1*a/Vc np=64; - PowerPoint PPT Presentation

Citation preview

Page 1: 2D MPM (an example)

2D MPM (an example)

Monday, 10/21/2002

Page 2: 2D MPM (an example)

Particle information

stress:

xx( p)

yy( p)

xy( p)

mass:

m(p )

velocity:

vx( p)

vy( p)

position:

x( p)

y( p)volume:

V (p )

E,

Page 3: 2D MPM (an example)

density = 1000;E = 1000000;nu = 0.3;a = 1;ncelly=8;Vc=sqrt(E/density);dt = 0.1*a/Vc

np=64;x_p=[0.25, 0.25, 0.25, 0.25, 0.75, 0.75, 0.75, 0.75, 1.25, 1.25, 1.25, 1.25, 1.75, 1.75, 1.75, 1.75, 2.25, 2.25, 2.25, 2.25, 2.75, 2.75, 2.75, 2.75, 3.25, 3.25, 3.25, 3.25, 3.75, 3.75, 3.75, 3.75, ... 8.25, 8.25, 8.25, 8.25, 8.25, 8.25, 8.25, 8.25, 8.75, 8.75, 8.75, 8.75, 8.75, 8.75, 8.75, 8.75, 9.25, 9.25, 9.25, 9.25, 9.25, 9.25, 9.25, 9.25, 9.75, 9.75, 9.75, 9.75, 9.75, 9.75, 9.75, 9.75];y_p=[3.25, 3.75, 4.25, 4.75, 3.25, 3.75, 4.25, 4.75, 3.25, 3.75, 4.25, 4.75, 3.25, 3.75, 4.25, 4.75, 3.25, 3.75, 4.25, 4.75, 3.25, 3.75, 4.25, 4.75, 3.25, 3.75, 4.25, 4.75, 3.25, 3.75, 4.25, 4.75, ... 2.25, 2.75, 3.25, 3.75, 4.25, 4.75, 5.25, 5.75, 2.25, 2.75, 3.25, 3.75, 4.25, 4.75, 5.25, 5.75, 2.25, 2.75, 3.25, 3.75, 4.25, 4.75, 5.25, 5.75, 2.25, 2.75, 3.25, 3.75, 4.25, 4.75, 5.25, 5.75];

m=a*a*1/4*density;m_p=linspace(m,m,np);

sxx_p=linspace(0,0,np);syy_p=linspace(0,0,np);sxy_p=linspace(0,0,np);

vx_p=linspace(0,0,np);vy_p=linspace(0,0,np);velocity=Vc*0.1;for p=1:np if( x_p(p)<6 ) vx_p(p)=velocity; else vx_p(p)=-velocity; endend

Particle Initialization

Page 4: 2D MPM (an example)

Mapping: particle grid

M (n ) m( p )N (n, p)

p

External force

Internal force

Mass matrix

M (n )v x(n) m(p )vx

( p)N (n, p )

p

M (n )v y(n) m(p )vy

( p)N (n, p )

p

Momentum

F x(n) m(p )N (n, p)bx

( p )

p

F y(n) m(p )N (n, p)by

( p )

p

f x(n ) V ( p) xx

( p)N,x(n, p ) xy

( p)N,y(n, p)

p

f y(n ) V ( p) xy

( p)N,x(n, p ) yy

( p)N,y(n, p)

p

Page 5: 2D MPM (an example)

Before Collecting Information

%collect information on the gridfor n=1:ngrid M_g(n)=0; vx_g(n)=0; vy_g(n)=0; fx_g(n)=0; fy_g(n)=0; ax_g(n)=0; ay_g(n)=0;end

Page 6: 2D MPM (an example)

Mappingfor p=1:np ix=ceil( x_p(p)/a ); iy=ceil( y_p(p)/a ); node(1)=(ncelly+1)*(ix-1)+iy; node(2)=node(1)+(ncelly+1); node(3)=node(2)+1; node(4)=node(1)+1; for i=1:4 n=node(i); [N,dN_dx,dN_dy]= shape([x_g(n),y_g(n)],[x_p(p),y_p(p)],a); M_g(n)=M_g(n) + m_p(p) * N; vx_g(n)=vx_g(n) + m_p(p) * vx_p(p) * N; vy_g(n)=vy_g(n) + m_p(p) * vy_p(p) * N; fx_g(n)=fx_g(n)-V_p(p)*(sxx_p(p)*dN_dx+sxy_p(p)*dN_dy); fy_g(n)=fy_g(n)-V_p(p)*(sxy_p(p)*dN_dx+syy_p(p)*dN_dy); endend

Page 7: 2D MPM (an example)

Ceil FunctionSyntax B = ceil(A)

Description:B = ceil(A) rounds the elements of A to the nearest integers greater than or equal to A. For complex A, the imaginary and real parts are rounded independently.

Examplesa = [-1.9, -0.2, 3.4, 5.6]a =-1.9000 -0.2000 3.4000 5.6000

ceil(a)

ans =-1.0000 0 4.0000 6.0000

Page 8: 2D MPM (an example)

Solve Equations on the Grid

a x(n ) 1

M (n)F x

(n) f x(n )

a y(n ) 1

M (n)F y

(n) f y(n )

Page 9: 2D MPM (an example)

Grid equations

for n=1:ngrid if(M_g(n)>0) vx_g(n) = vx_g(n)/M_g(n); vy_g(n) = vy_g(n)/M_g(n); ax_g(n) = fx_g(n)/M_g(n); ay_g(n) = fy_g(n)/M_g(n); endend

Page 10: 2D MPM (an example)

Update particle position

x( p) x( p) vx( p )t

y( p) y( p) vy( p )t

Page 11: 2D MPM (an example)

Update particle velocity

vx( p) vx

( p) t a x(n)N (n, p )

n

vy( p) vy

( p) t a y(n)N (n, p )

n

Page 12: 2D MPM (an example)

Linear Elastic Constitutive Model

Plane stress:

2

2

( )1

( )1

2(1 )

xx xx yy

yy yy xx

xy xy

E

E

E

Page 13: 2D MPM (an example)

Update particle stress

Linear elastic constitutive model (plane stress)

( ) ( )2

( ) ( )2

( ) ( )

( )1

( )1

2(1 )

p pxx xx xx yy

p pyy yy yy xx

p pxy xy xy

Et

Et

Et

Page 14: 2D MPM (an example)

Particle Strain Rate

( ) ( , )( ) ( )

( ) ( , )( ) ( )

( ) ( ) ( , ) ( , )( ) ( ) ( )1 1

2 2

p n pp nx

xx xn

p n pyp n

yy yn

p p n p n pyp n nx

xy y xn

v Nv

x x

v Nv

y y

v v N Nv v

x y x y

Page 15: 2D MPM (an example)

for p=1:np ix=ceil( x_p(p)/a ); iy=ceil( y_p(p)/a ); node(1)=(ncelly+1)*(ix-1)+iy; node(2)=node(1)+(ncelly+1); node(3)=node(2)+1; node(4)=node(1)+1; strain_rate_xx = 0; strain_rate_yy = 0; strain_rate_xy = 0; ax = 0; ay = 0; for i=1:4 n=node(i); [N,dN_dx,dN_dy] = shape([x_g(n),y_g(n)],[x_p(p),y_p(p)],a); ax = ax + ax_g(n)*N; ay = ay + ay_g(n)*N; strain_rate_xx= strain_rate_xx + vx_g(n) * dN_dx; strain_rate_yy= strain_rate_yy + vy_g(n) * dN_dy; strain_rate_xy= strain_rate_xy + (vx_g(n)*dN_dy+vy_g(n)*dN_dx)/2; end

x_p(p) = x_p(p) + vx_p(p)*dt; y_p(p) = y_p(p) + vy_p(p)*dt; vx_p(p) = vx_p(p) + ax*dt; vy_p(p) = vy_p(p) + ay*dt; sxx_p(p) = sxx_p(p) + E/(1-nu*nu)*(strain_rate_xx + nu*strain_rate_yy)*dt; syy_p(p) = syy_p(p) + E/(1-nu*nu)*(strain_rate_yy + nu*strain_rate_xx)*dt; sxy_p(p) = sxy_p(p) + E/(1+nu)/2*strain_rate_xy*dt;end

Update

Page 16: 2D MPM (an example)

Derivative of Shape Function (2D)

xc x A x B

2, yc

y A y C2

N (n) (1(n ))(1(n ))/ 4

x xc

L,

y yc

L

L is half of the cell size

dN (n)

dx(n ) 1

(n)4L

dN (n)

dy(n) 1 (n)

4L

Page 17: 2D MPM (an example)

Shape Function

function [n,dn_dx,dn_dy] = shape(g,p,gridSize)%g is a grid point, having 2 components&p is a position vector, having 2 components

x0 = sign( g(1) - p(1) );y0 = sign( g(2) - p(2) );if( x0==0) x0=-1; endif( y0==0) y0=-1; end

L = gridSize/2;x = ( p(1) - ( g(1) - x0*a ) ) / L;y = ( p(2) - ( g(2) - y0*a ) ) / L;

if(abs(x)>1 | abs(y)>1 ) dn_dx = 0; dn_dy = 0; n = 0;else dn_dx = x0*(1+y*y0)/4/L; dn_dy = y0*(1+x*x0)/4/L; n = (1+x*x0) * (1+y*y0) /4;end