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

📄 cfd lax-wendroff格式.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][100]*/;
	for(j=0;j<=100;j++)       u[j][0]=1;     //初始条件离散;
	for(j=101;j<=200;j++)     u[j][0]=0;
#ifdef PRINT_INIT
	cout<<"初始条件离散结果:"<<endl;
    for(j=0;j<=200;j++)  cout<<"u["<<j<<"][0]="<<u[j][0]<<' ';
	cout<<endl;
#endif;
    //////////////////用Lax-wendroff格式求解;
	for(n=0;n<100;n++)
		for(j=n+1;j<200-n;j++)
			u[j][n+1]=-0.125*u[j+1][n]+0.75*u[j][n]+0.375*u[j-1][n];
	//////////////////在文本文件中分层输出u值;
      FILE *fp;
	fp=fopen("d:\A1.txt","w");
    for(n=0;n<=100;n++)
	   {  
		  fprintf(fp,"%s%f%c","t=",n*T,'\n');
		  for(j=n;j<=200-n;j++)
     		   fprintf(fp,"%f%c",u[j][n],' ');
          fprintf(fp,"%c",'\n');
	}
    fclose(fp);
///////////////任意指定j或者n,在屏幕上输出u[j][n]的值;
	for(;;)
	{
	cout<<"输入j与n值:"<<endl;
	cin>>j>>n;
	if(j<0||n<0) break;     //当j或者n输入负数即跳出循环;
	cout<<"j="<<j<<",n="<<n<<endl;
	cout<<"u["<<j<<"]["<<n<<"]="<<u[j][n]<<endl;
}
}

⌨️ 快捷键说明

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