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


!!FP1.0 
#2d FLUID Diffuse for Pressure 
DECLARE TexPARA = {0,0,0,0}; 
#TEX0 -- DIVERGENCE OF VELOCITY 
#TEX1 -- PRESSURE 
 
ADD R0, f[WPOS].xyxy, {1,0,-1,0}; 
 
#P(i+1,j)-- 
TEX R1, R0.xyww, TEX1, RECT; 
#P(i-1,j)-- 
TEX R2, R0.zwww, TEX1, RECT; 
ADD R3.x, R1.x, R2.x; 
MUL R3.x, R3.x, TexPARA.x; 
 
ADD R0, f[WPOS].xyxy, {0,1,0,-1}; 
#P(i,j+1)-- 
TEX R1, R0.xyww, TEX1, RECT; 
#P(i,j-1)-- 
TEX R2, R0.zwww, TEX1, RECT; 
ADD R1.x, R1.x, R2.x; 
 
MAD R3.x, R1.x, TexPARA.y, R3.x; 
 
#divergence of velocity 
TEX R0, f[WPOS], TEX0, RECT; 
SUB R0.x, R3.x, R0.x; 
 
#sum up 
MUL R0.x, R0.x, TexPARA.z; 
 
#Tex2 ----Obstacle 
TEX R1, f[WPOS], TEX2, RECT; 
 
#old pressure 
TEX R2, f[WPOS], TEX1, RECT; 
 
LRP o[COLR], R1.wwww, R0, R2; 
 
END