gridZ = arange(0, nz, dtype='float64') grid = gridX, gridY, gridZ ###### Flow preparations #################################################### # constant start velocity uLB in x direction for the lower half delimiter = fromfunction(lambda x, y, z: (z*2 + sin(x/10)*3 + sin(y/10)*3 < nzl), (nx, ny, nz)) vel = fromfunction(lambda d, x, y, z: (1-d)*(2-d)*uLB*2, (3, nx, ny, nz)) vel[0, delimiter] = 0; fin = equilibrium(1.0, vel) os.chdir(outputFolder) savingOptions = (saveEveryN, skipFirstN, grid, prefix) ###### Main time loop ########################################################## for time in range(maxIterations): (rho, u) = getMacroValues(fin) #minRho = amin(rho) #print minRho #fpost = BGKCollide(fin, rho, u, omega) fpost = cumulantCollide(fin, rho, u, omega) fin = stream(fpost) visualize(rho, u, time, *savingOptions) os.chdir(workingFolder)
(rho, u) = getMacroValues(fin) predensity = sum(rho) preVelX = sum(u[0,:,:]) preVelY = sum(u[1,:,:]) print amin(rho) feq = equilibrium(rho, u) # Collision step. #fpost = BGKCollide(fin, feq, omega) fpost = cumulantCollide(fin, rho, u, omega) #fpost = cumulantCollideAll(fin, rho, u, omega, omega, omega, omega) #fpost = centralMomentSRT(fin, feq, u, omega) (rho, u) = getMacroValues(fpost) deltaRho = sum(rho) - predensity deltaVelX = sum(u[0,:,:]) - preVelX deltaVelY = sum(u[0,:,:]) - preVelY maxRho = amax(rho) minRho = amin(rho) #print minRho # Streaming step fin = stream(fpost) visualize(u, rho, time, *plottingData) os.chdir(workingFolder)