




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
5! Lax-wendroff1D.for !-!利用Lax-wendroff两步差分格式求解一维激波管问题! !- program Laxwendroff1D 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.3 !总时间 Sf=0.8 !时间步长因子 call Init(U,dx) T=01 dt=CFL(U,dx) T=T+dt write(*,*)T=,T,dt=,dt call Laxwendroff_1D_Solver(U,Uf,Ef,dx,dt)call bound(U,dx) if(T.lt.TT)goto 1 call Output(U,dx) 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)!-!左侧初始条件:1=1, u1=0, p1=1!右侧初始条件:2=0.125,u1=0, p1=0.1!- rou1=2.0 u1=0 p1=1.0 rou2=0.1 u2=0 p2=0.1 dx=dL/J !网格宽度!-! 薄膜放在激波管正中位置!- do 1 i=0,J/2 U(i,0)=rou1 U(i,1)=rou1*u1 U(i,2)=p1/(GAMMA-1)+0.5*rou1*u1*u11 continue do 2 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*u22 continue 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, 上一时刻U矢量,! Uf、Ef,临时变量,! dx,网格宽度,dt,,时间步长;!出口: U, 计算得到得当前时刻U矢量。!- subroutine Laxwendroff_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 20 i=1,J do 20 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) 20 continue do 21 k=0,2 do 21 i=1,J U(i,k)=Ef(i,k)21 continue call U2E(U,Ef,0,J+1) do 22 i=0,J do 22 k=0,2!U(n+1/2)(i+1/2) Uf(i,k)=0.5*(U(i+1,k)+U(i,k)-0.5*r*(Ef(i+1,k)-Ef(i,k) 22 continue !E(n+1/2)(i+1/2) call U2E(Uf,Ef,0,J) do 23 i=1,J do 23 k=0,2!U(n+1)(i) U(i,k)=U(i,k)-r*(Ef(i,k)-Ef(i-1,k) 23 continue end!-!边界条件!流动出口边界条件:NI,J=NI-1,J!入口: 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!-!输出结果, 用*.txt数据格式文件,再用Origin8.0画图!入口: 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=Lax-Wendroff_1D result.txt,status=unknown) do 50 i=0,J+1 rou=U(i,0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国大豆种植行业市场深度调研及前景趋势与投资研究报告
- 环境科学实习协议
- 基于氢氧稳定同位素的定西市水汽再循环率评估研究
- 初中文言文批注式阅读教学研究
- 腔长和输出镜反射率可调的自锁模Nd-YVO4激光器实验特性研究
- 非小细胞肺癌PD-1-PD-L1免疫治疗疗效血清标志物的蛋白质组学研究
- 考虑碳交易的网储协调规划研究
- 电商合作协议补充协议
- 窥视设备采购协议
- 装修行业标准合同
- 全国水利ABC证单选题七
- 曾国藩人生修炼日课
- 深入浅出Serverless:技术原理与应用实践课件
- 公路施工技术高职PPT完整全套教学课件
- 年产十万吨丙烯腈生产工艺设计
- 人教版高中物理必修二全册同步课时练习
- 城市社区管理中存在的问题及对策研究正文内容
- 年产10吨功能益生菌冻干粉的工厂设计改
- (完整)人教版 高一物理课后习题答案
- GB/Z 26337.1-2010供应链管理第1部分:综述与基本原理
- GB 150-1998钢制压力容器
评论
0/150
提交评论