免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
! MacCormack1D.for !-!利用MacCormack两部差分格式求解一维激波管问题! !- program MacCormack1D implicit double precision (a-h,o-z) parameter (M=1000) common /G_def/ GAMMA,PI,J,JJ,dL,TT,Sf dimension U(0:M+1,0:2),Uf(0:M+1,0:2) dimension Ef(0:M+1,0:2) GAMMA=1.4 !气体常数 PI=3.1415926 J=M !网格数 dL=2.0 !计算区域 TT=0.4 !总时间 Sf=0.8 !时间步长因子 call Init(U,dx) T=01 dt=CFL(U,dx) T=T+dt write(*,*)T=,T,dt=,dt call MacCormack_1D_Solver(U,Uf,Ef,dx,dt)call bound(U,dx) if(T.lt.TT)goto 1 call Output(U,dx) end!-!计算时间步长!入口: U, 当前物理量,dx, 网格宽度;!返回: 时间步长。!- double precision function CFL(U,dx) implicit double precision (a-h,o-z) common /G_def/ GAMMA,PI,J,JJ,dL,TT,Sf dimension U(0:J+1,0:2) dmaxvel=1e-10 do 10 i=1,J uu=U(i,1)/U(i,0) p=(GAMMA-1)*(U(i,2)-0.5*U(i,0)*uu*uu) vel=dsqrt(GAMMA*p/U(i,0)+dabs(uu) if(vel.gt.dmaxvel)dmaxvel=vel10 continue CFL=Sf*dx/dmaxvel end !-!初始化!入口: 无;!出口: U, 已经给定的初始值,dx,网格宽度。!- subroutine Init(U,dx) implicit double precision (a-h,o-z) common /G_def/ GAMMA,PI,J,JJ,dL,TT,Sf dimension U(0:J+1,0:2)!初始条件 rou1=1.0 u1=0 v1=0 p1=1.0 rou2=0.125 u2=0 v2=0 p2=0.1 dx=dL/J do 20 i=0,J/2 U(i,0)=rou1 U(i,1)=rou1*u1 U(i,2)=p1/(GAMMA-1)+0.5*rou1*u1*u120 continue do 21 i=J/2+1,J+1 U(i,0)=rou2 U(i,1)=rou2*u2 U(i,2)=p2/(GAMMA-1)+0.5*rou2*u2*u221 continue end!-!边界条件!入口: dx,网格宽度;!出口: U, 已经给定边界。!- subroutine bound(U,dx) implicit double precision (a-h,o-z) common /G_def/ GAMMA,PI,J,JJ,dL,TT,Sf dimension U(0:J+1,0:2)!左边界 do 30 k=0,2 U(0,k)=U(1,k)30 continue!右边界 do 31 k=0,2 U(J+1,k)=U(J,k)31 continue end!-!根据U计算E!入口: U,当前U矢量;!出口: E,计算得到的E矢量,! U、E定义见Euler方程组。!- subroutine U2E(U,E,is,in) implicit double precision (a-h,o-z) common /G_def/ GAMMA,PI,J,JJ,dL,TT,Sf dimension U(0:J+1,0:2),E(0:J+1,0:2) do 40 i=is,in uu=U(i,1)/U(i,0) p=(GAMMA-1)*(U(i,2)-0.5*U(i,1)*U(i,1)/U(i,0) E(i,0)=U(i,1) E(i,1)=U(i,0)*uu*uu+p E(i,2)=(U(i,2)+p)*uu40 continue end!-!一维 差分格式求解器!入口: U, 上一时刻U矢量,! Uf、Ef,临时变量,! dx,网格宽度,dt,,时间步长;!出口: U, 计算得到得当前时刻U矢量。!- subroutine MacCormack_1D_Solver(U,Uf,Ef,dx,dt) implicit double precision (a-h,o-z) common /G_def/ GAMMA,PI,J,JJ,dL,TT,Sf dimension U(0:J+1,0:2),Uf(0:J+1,0:2) dimension Ef(0:J+1,0:2) r=dt/dx dnu=0.25 do 60 i=1,J do 60 k=0,2!开关函数 q=dabs(dabs(U(i+1,0)-U(i,0)-dabs(U(i,0)-U(i-1,0)/(dabs(U(i+1,0)-U(i,0)+dabs(U(i,0)-U(i-1,0)+1e-10)!人工黏性项 Ef(i,k)=U(i,k)+0.5*dnu*q*(U(i+1,k)-2*U(i,k)+U(i-1,k) 60 continue do 61 k=0,2 do 61 i=1,J U(i,k)=Ef(i,k)61 continue call U2E(U,Ef,0,J+1) do 63 i=0,J do 63 k=0,2!U(n+1/2)(i+1/2) Uf(i,k)=U(i,k)-r*(Ef(i+1,k)-Ef(i,k)63 continue !E(n+1/2)(i+1/2) call U2E(Uf,Ef,0,J) do 64 i=1,J do 64 k=0,2!U(n+1)(i) U(i,k)=0.5*(U(i,k)+Uf(i,k)-0.5*r*(Ef(i,k)-Ef(i-1,k) 64 continue end!-!输出结果, 用 数据格式画图!入口: U, 当前时刻U矢量,! dx,网格宽度;!出口: 无。!- subroutine Output(U,dx) implicit double precision (a-h,o-z) common /G_def/ GAMMA,PI,J,JJ,dL,TT,Sf dimension U(0:J+1,0:2) open(1,file=MacCormack_1D result.txt,status=unknown) do 80 i=0,J+1 rou=U(i,0) uu=U
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学语文《为中华之崛起而读书》课件
- 生猪养殖碳排放影响因素分析
- 楼宇对讲系统云对讲升级项目可行性研究报告
- 建筑施工组织管理要点
- 建筑工程技术实务指南
- 国有企业设备保养方案
- 2025-2026学年匆匆板块教学设计
- 2025-2026学年比例尺教学设计语文模板
- 2025年道路运输企业安全生产管理人员复审考试及考试题库及答案
- 2025-2026学年六年级下册比例教案
- 出纳员职业技能鉴定考试复习题库(附答案)
- 加油站风险辨识与安全管控培训
- 《中华人民共和国生态环境法典》深度培训
- GB 26396-2026洗涤用品安全技术规范
- 2026年中考语文作文热点:科技、AI主题作文范文
- 广东省安装工程综合定额(2018)Excel版
- 生命哲学:爱、美与死亡智慧树知到期末考试答案章节答案2024年四川大学
- 计算机视觉(段先华)课后习题及答案 第4-7章
- 动物检验检疫学课件
- CTO介入治疗的正向导丝技术课件
- GB/T 19672-2021管线阀门技术条件
评论
0/150
提交评论