# homeworkCFD **Repository Path**: pcphp/homework-cfd ## Basic Information - **Project Name**: homeworkCFD - **Description**: 计算流体力学课程作业 喷管网格划分以及流场计算 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2024-05-31 - **Last Updated**: 2024-05-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 计算流体力学课程作业 作者:李文韬 BY2115141 Email: lwt_2017@buaa.edu.cn ## 文件结构 - C++代码,使用CMake实现项目构建,使用git实现版本控制 - 已在Windows操作系统完成测试运行,文件编码采用GB2312以避免中文乱码 - 已在Linux操作系统(已安装GNU Scientific Library)完成测试运行,由于文件编码采用GB2312而控制台采用UTF8,所以中文可能出现乱码 - CMakeLists.txt中包含了项目构建规则,共包括三个应用程序:MeshGenerator网格划分、Simulation数值仿真和Thrust推力理论计算 - build文件夹是CMake生成的,其中包含编译所得的可执行程序 - cwd文件夹是工作目录,所有的输入存放于此。在cwd中运行依次可执行文件MeshGenerator和Simulation,可以得到网格划分结果和流场计算结果 - src文件夹存放所有代码 - lib文件夹中存放依赖的库函数:GNU Scientific Library,包含Windows版本的.dll和Linux版本的.so ## 项目一:Hilgenstock方法生成二维喷管网格 - 首先使用代数方法生成网格文件 - 求解拉普拉斯方程得到新的网格 - 每一次迭代循环中使用Hilgenstock方法更新泊松方程的源项,最终得到正交性良好的网格 ![网格](pic/Grid_S1.png) ## 项目二:喷管流场计算 - 采用楔形结构化网格和有限体积法实现2D旋转对称拉瓦尔喷管的计算 - 扩散项采用中心差分,对流项采用Steger-Warming矢通量分裂格式(一阶迎风),时间项采用显式欧拉格式 - 输入文件包括:Case.dat,Condition.dat,Grid_Posion_Source.dat。输出文件位于Results文件夹内。 - 每5000步导出一次计算结果,并计算喷管的推力 - 每5000步暂存结果为temp文件,下次运行时将暂存结果作为初始值 ![速度场](pic/Velocity.png) ## 主要参考文献 [1] 张正科, 庄逢甘, 朱自强. 两种椭圆型方程求源项方法在喷管内流场网格生成中的应用[J]. 推进技术,1997(02): 95-97. [2] White J. Elliptic grid generation with orthogonality and spacing control on an arbitrary number of boundaries[C]. 21st: 21st Fluid Dynamics, Plasma Dynamics and Lasers Conference, 1990. [3] 张德良. 计算流体力学教程[M]. 北京:高等教育出版社,2010, 161-168. [4] Moukalled F, Mangani L, Darwish M. The finite volume method in computational fluid dynamics: An advanced introduction with OpenFOAM and Matlab[M]. New York: Springer, 2016, 137-160, 270-290.