资源简介
拟一维喷管流动数值解代码,运行环境vs2019,自己写的,代码段有注释。cellField类的定义在我的博客里有,直接复制粘贴到class.h就好。
https://blog.csdn.net/weixin_39124457/article/details/101038218
https://blog.csdn.net/weixin_39124457/article/details/101038218
代码片段和文件信息
#include“class.h“
#include
#include
constexpr auto gamma = 1.4;//气体比热比
constexpr auto R = 287.0;//空气常数
constexpr auto cfl = 0.5;//库朗数
constexpr auto timeStep = 1000;//时间步
constexpr auto deltaX = 0.1;//x方向间距
using namespace std;
int main() {
cout << “开始,t=0s“ << endl;
cellField rho V T Aa;//定义物理量(rho-密度,V-速度,T-温度,A-截面积)
cellField drhodt dVdt dTdtrhopVpTp;//定义预估步偏导预估值
cellField drhopdt dVpdt dTpdtdrhodtavdVdtavdTdtav;//定义校正步偏导,校正值
cellField X deltaTime;//定义空间步、时间步
double i jk;//定义下标
ofstream Rfile;//定义文件类
Rfile.open(“data.dat“);//打开文件
//*********************初始化**************************//
for (i = 0; i <= cellNumber; i++)
{
X[i] = i * deltaX;
A[i] = 1.0 + 2.2 * (X[i] - 1.5)* (X[i] - 1.5);//公式7-73,p219
rho[i] = 1.0 - 0.314 * X[i];//公式7-74a,p220
T[i] = 1.0 - 0.2314 * X[i];//公式7-74b,p220
V[i] = (0.1 + 1.09 * X[i]) * sqrt(T[i]);//公式7-74c,p220
a[i] = sqrt(T[i]);//公式7-75,p222
}
//输出初始场
Rfile << “开始,t=0s“ << endl;
Rfile.precision(3);
Rfile.setf(ios::fixed);
Rfile << “No\tx\tA\trho\tV\tT\ta“ << endl;
for (i = 0; i <= cellNumber; i++)
{
Rfile << i << “\t“ << X[i]<< “\t“ << A[i]<< “\t“ << rho[i]
<< “\t“ << V[i]<< “\t“ << T[i]<< “\t“ << a[i]<< endl;
}
//******************************************************//
for (k = 0; k <= timeStep; k++)//开始计算timeStep个时间步
{
//*******************求最小时间步*****************//
cellField Va = V + a;
deltaTime.inverse(Va cfl * deltaX);//公式7-67,p217
j = 0;
for (i = 0; i <= cellNumber; i++)
{
if (deltaTime[j] > deltaTime[i])
j = i;//求最小时间间隔,将下标储存为j,即deltaTime[j]为最小时间步
//cout << deltaTime[j] << endl;
}
//*************************************************//
//********************预估步***********************//
for (i = 0; i < cellNumber; i++)
{
drhodt[i] = -V[i] * (rho[i + 1] - rho[i]) / deltaX
- rho[i] * (V[i + 1] - V[i]) / deltaX
- rho[i] * V[i] * (log(A[i + 1]) - log(A[i])) / deltaX;//7-51p215
dVdt[i] = -V[i] * (V[i + 1] - V[i]) / deltaX
- 1 / gamma * ((T[i + 1] - T[i]) / deltaX + T[i] / rho[i] * (rho[i + 1] - rho[i]) / deltaX)
相关资源
- C++删除指定文件夹下N天及之前日志文
- C++实现简易文本编辑器
- 使用C++实现迷宫游戏
- C++实现银行排队系统
- linux环境下模拟实现简单命令解释器
- stdafx.h头文件
- VC++串口操作的代码及文档
- C++课程设计影碟出租管理
- Visual c++ 网络编程 郑阿奇
- 银行家算法源程序包含C语言+C++两种代
- 吕鑫VS2015之C.C++.MFC完整视频
- C++图书管理系统 C++图书管理系统
- VC++病毒编程入门
- PBIL算法源代码C++
- c++ 屏幕截图源程序,这个截图程序思
- C++ Builder利用PDFLib生成PDF文档
- ICP算法源代码拿走不谢
- c++编写的傅里叶变换FFT程序
- 元胞自动机的NS模型
- 基于SOCKET的文件传输服务端+客户端
- 多边形填充的扫描线c++算法
- VS与串口通信
- 美国Delta Tau公司PMAC多轴运动控制卡的
- c++实现决策树分类算法(内附测试数
- C++ Primer 第五版 中文版 带书签 百度云
- c++代码生成器
- C#加载C++\\C的DLL动态链接库
- c++小游戏五子棋,带AI
- Raize Components 6.1.12 for C++builder XE10的安
- segy文件读取C++源码
评论
共有 条评论