www.pudn.com > DemoFluid2D.zip > smRealOffset2D.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