cfd beam-worming格式.cpp

来自「CFD各种差分格式,ENO/Lax-Friedriches/Beam-Wormi」· C++ 代码 · 共 30 行

CPP
30
字号
#include<iostream.h>
#include<stdio.h>
#define PRINT_INIT
#define T 0.005
void main()
{   int j,n;
	double u[201][101];                      /*初始轴j从0-200,计算域为一直角三角形,下底0-200,顶点为u[100][200]*/;
	for(j=0;j<=100;j++)       u[j][0]=1;     //初始条件离散;
	for(j=101;j<=200;j++)     u[j][0]=0;
#ifndef PRINT_INIT
	cout<<"初始条件离散结果:"<<endl;
    for(j=0;j<=200;j++)  cout<<"u["<<j<<"][0]="<<u[j][0]<<' ';
	cout<<endl;
#endif;
	//////////////////用Beam-Worming格式求解。Beam-Worming格式的计算域为直角梯形,为了对比计算域取直角三角形,每计算一层少2点;
    for(n=0;n<100;n++)
		for(j=2*n+2;j<=200;j++)
	     	u[j][n+1]=-0.125*u[j-2][n]+0.75*u[j-1][n]+0.375*u[j][n];;
	//////////////////在文本文件中分层输出u值,注意写文件与前面不同;
      FILE *fp;
	fp=fopen("d:\A4.txt","w");
    for(n=0;n<=100;n++)
	   {  
		  fprintf(fp,"%s%f%c","t=",n*T,'\n');
		  for(j=2*n;j<=200;j++)  fprintf(fp,"%f%c",u[j][n],' ');
          fprintf(fp,"%c",'\n');
	}
    fclose(fp);
}

⌨️ 快捷键说明

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