propagate.cpp

来自「Lattice Boltzmann用于模拟方腔流的程序。 生成的plt文件需用」· C++ 代码 · 共 77 行

CPP
77
字号
#include "global.h"
void propagate()
{
	register int x,y;


	for(y=max_y-2;y>=0;y--)
	{
		for(x=max_x-1;x>0;x--)
		{
			f[1][y][x]=f[1][y][x-1];
		}
		for(x=0;x<max_x-1;x++)
		{
			f[3][y][x]=f[3][y][x+1];
		}
	}

	for(y=max_y-2;y>0;y--)
	{
		for(x=max_x-1;x>0;x--)
		{
			f[5][y][x]=f[5][y-1][x-1];
		}
		for(x=0;x<max_x-1;x++)
		{
			f[6][y][x]=f[6][y-1][x+1];
		}
	}
	
	for(y=0;y<max_y-1;y++)
	{
		for(x=max_x-1;x>0;x--)
		{
			f[8][y][x]=f[8][y+1][x-1];
		}
		for(x=0;x<max_x-1;x++)
		{
			f[7][y][x]=f[7][y+1][x+1];
		}
	}
	for(x=0;x<max_x;x++)
	{
		for(y=max_y-2;y>0;y--)
		{
			f[2][y][x]=f[2][y-1][x];
		}
		for(y=0;y<max_y-1;y++)
		{
			f[4][y][x]=f[4][y+1][x];
		}
	}
	/*下边界*/
	for(x=0;x<max_x;x++)
	{
		f[2][0][x]=f[4][0][x];
        f[5][0][x]=f[7][0][x];
        f[6][0][x]=f[8][0][x];
	}
	/*左边界*/
	for(y=1;y<max_y-1;y++)
	{
		f[1][y][0]=f[3][y][0];
        f[5][y][0]=f[7][y][0];
		f[8][y][0]=f[6][y][0];
	}
	/*右边界*/
    for(y=1;y<max_y-1;y++)
	{
		f[3][y][max_x-1]=f[1][y][max_x-1];
        f[6][y][max_x-1]=f[8][y][max_x-1];
		f[7][y][max_x-1]=f[5][y][max_x-1];
	}

		
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?