www.pudn.com > DemoFluid2D.zip > smProcessPboundary2D.psh


!!FP1.0 
#2d FLUID Boundary Codition Processing Part for pressure 
#TEX0 -- Obstacle Information 
#------i 
ADD R0, f[WPOS].xyxy, {1,0,-1,0}; 
#Obstacle(i+1,j) 
TEX R1, R0.xyww, TEX0, RECT; 
#B_O 
MUL R2, R1.wwww, {8,8,8,8}; 
 
#Obstacle(i-1,j) 
TEX R1, R0.zwww, TEX0, RECT; 
#B_W 
MAD R2, R1.wwww, {4,4,4,4}, R2; 
 
#------j 
ADD R0, f[WPOS].xyxy, {0,1,0,-1}; 
#Obstacle(i,j+1) 
TEX R1, R0.xyww, TEX0, RECT; 
#B_N 
ADD R2, R1.wwww, R2; 
 
#Obstacle(i,j-1) 
TEX R1, R0.zwww, TEX0, RECT; 
#B_S 
MAD R2, R1.wwww, {2,2,2,2}, R2; 
 
#ADD itself here 
TEX R1, f[WPOS], TEX0, RECT; 
MAD R2, R1.wwww, {16}, R2; 
 
#B_N--1 
SEQ R0.x, R2.x, 1; 
MUL R3, R0.x, {0,1,0,0}; 
 
#B_O--8 
SEQ R0.x, R2.x, 8; 
MAD R3, R0.x, {1,0,0,0}, R3; 
 
#B_S--2 
SEQ R0.x, R2.x, 2; 
MAD R3, R0.x, {0,-1,0,0}, R3; 
 
#B_W--4 
SEQ R0.x, R2.x, 4; 
MAD R3, R0.x, {-1,0,0,0}, R3; 
 
#B_NO--9 
SEQ R0.x, R2.x, 9; 
MAD R3, R0.x, {1,1,0,0}, R3; 
 
#B_SO--10 
SEQ R0.x, R2.x, 10; 
MAD R3, R0.x, {1,-1,0,0}, R3; 
 
#B_SW--6 
SEQ R0.x, R2.x, 6; 
MAD R3, R0.x, {-1,-1,0,0}, R3; 
 
#B_NW--5 
SEQ R0.x, R2.x, 5; 
MAD o[COLR], R0.x, {-1,1,0,0}, R3; 
 
#TEX R2,f[WPOS], TEX0, RECT; 
#MOV o[COLR], R2; 
 
END