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


!!FP1.0 
#2d FLUID ADVECT to modify velocity according to pressure 
DECLARE TexPARA = {0,0,0,0}; 
 
ADDH H0, f[WPOS].xyxy, {1,0,-1,0}; 
#Pressure(i+1,j)---Tex0 
TEX R1, H0.xyww, TEX0, RECT; 
 
#Pressure(i-1,j) 
TEX R2, H0.zwww, TEX0, RECT; 
SUB R3.x, R1.x, R2.x; 
 
ADDH H0, f[WPOS].xyxy, {0,1,0,-1}; 
#Pressure(i,j+1) 
TEX R1, H0.xyww, TEX0, RECT; 
 
#Pressure(i,j-1) 
TEX R2, H0.zwww, TEX0, RECT; 
SUB R3.y, R1.x, R2.x; 
 
MUL R3.xy, R3, TexPARA.xyxx; 
 
#Velocity(i,j)---Tex1 
TEX R0, f[WPOS], TEX1, RECT; 
SUB R3.xy, R0, R3; 
 
#don't change the density component in B & A channels 
MOV R3.zw, R0; 
 
#Import the boundary condition 
TEX R1, f[WPOS], TEX2, RECT; 
 
#old velocity 
TEX R2, f[WPOS], TEX1, RECT; 
 
MOV R2.zw, R3; 
 
LRP o[COLR], R1.wwww, R3, R2; 
 
 
 
END