bound.c

来自「这是一个用SIMPLE法模拟的矩形流场的程序」· C语言 代码 · 共 43 行

C
43
字号
#include "global.h"
void bound()
{
	factor=0.0;
/*	for(i=2;i<=outlen+1;i++)
		factor=factor+v(i,m-1)*dx;
	factor=flowin/factor;
	for(i=2;i<=outlen+1;i++)
		v(i,m)=v(i,m-1)*factor;
*/
	//出口切向速度取齐次Neumann条件
	for(i=3;i<=outlen1+1;i++)
		u(i,m)=u(i,m-1);//有点问题!!
	for(i=l-1;i>=l-outlen2;i--)
		u(i,m)=u(i,m-1);
	for(j=2;i<=1+outlen3;j++)
		v(l,j)=v(l-1,j);

	//出口法向速度
	for(i=2;i<=outlen1+1;i++)
		v(i,m)=v(i,m-1)-dy/dx*(u(i+1,m-1)-u(i,m-1));//满足局部质量守恒
	for(i=l-1;i>=l-outlen2;i--)
		v(i,m)=v(i,m-1)-dy/dx*(u(i+1,m-1)-u(i,m-1));
	for(j=2;j<=1+outlen3;j++)
		u(l,j)=u(l-1,j)-dx/dy*(v(l-1,j+1)-v(l-1,j));
		//总体质量守恒修正
	for(i=2;i<=outlen1+1;i++)
		factor=factor+v(i,m)*dx;
	for(i=l-1;i>=l-outlen2;i--)
		factor=factor+v(i,m)*dx;
	for(j=2;j<=1+outlen3;j++)
		factor=factor+u(l,j)*dy;	
	
	factor=flowin/factor;
	for(i=2;i<=outlen1+1;i++)
		v(i,m)=v(i,m)*factor;
	for(i=l-1;i>=l-outlen2;i--)
		v(i,m)=v(i,m)*factor;
	for(j=2;j<=1+outlen3;j++)
		u(l,j)=u(l,j)*factor;

}
 

⌨️ 快捷键说明

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