⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cfd beam-worming格式.cpp

📁 CFD各种差分格式,ENO/Lax-Friedriches/Beam-Worming/Lax实例
💻 CPP
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -