首页 Fortran计算实例

Fortran计算实例

举报
开通vip

Fortran计算实例null13. 实例之一13. 实例之一1. 建模如流体力学方程组要点:作些简化后确定维数,注意诸项之取舍(如热传导、辐射、重力等)激波管问题初条null2. 无量纲化对1D情况2维流体力学方程组,*号已略去null3. 确定解域、划分网格及设置边界条件可划分为上千个格点模拟区域:网 格:均匀网格(最好用自适应网格)边 条:在激波传播至边界之前有效null4. 选取适当的差分格式Lax格式或Friedrichs格式精度: ...

Fortran计算实例
null13. 实例之一13. 实例之一1. 建模如流体力学方程组要点:作些简化后确定维数,注意诸项之取舍(如热传导、辐射、重力等)激波管问题初条null2. 无量纲化对1D情况2维流体力学方程组,*号已略去null3. 确定解域、划分网格及设置边界条件可划分为上千个格点模拟区域:网 格:均匀网格(最好用自适应网格)边 条:在激波传播至边界之前有效null4. 选取适当的差分格式Lax格式或Friedrichs格式精度: 稳定条件:模型方程对流体力学问题,其稳定条件为 null5. 编程及调试program shocktube parameter(im=1001) implicit double precision(a-h,o-z) dimension x(im),d(m),u(im),t(im) dimension d1(m),u1(im),t1(im) d0=1.67d-5 t0=3.d2 r=2.78d-2 v0=dsqrt(r*t0) L0=10 gamma=1.4d0 ……可将3个变量一起放在一个2维数组设定常数d: 密度; u: 速度;t: 温度nulldx=2.d0/dble(im-1) do 10 i=1,im x(i)=dx*dble(i-1)-1. continue do 20 i=1,(im+1)/2 d1(i)=1.d0 u1(i)=0.d0 t1(i)=1.d0 do 30 i=(im+1)/2+1,im d1(i)=1.d-1 u1(i)=0.d0 t1(I)=1.d0划分网格设定初值102030nulldt=0.9d0*dx continue do 40 i=1,im d (i)= d1 (i) u(i)= u1 (i) t(i)= t1(i) do 50 i=2,im-1 d1(i)=0.5d0*(d(i-1)+d(i+1))-dt*(u(i)*(d(i+1)-d(i-1))/2.d0/dx+ d(i)*(u(i+1)-u(i-1))/2.d0/dx) u1(i)= 0.5d0*(u(i-1)+u(i+1))-dt*(u(i)*(u(i+1)-u(i-1))/2.d0/dx+ (t(i+1)-t(i-1))/2.d0/dx +t(i)/d(i)*(d(i+1)-d(i-1))/2.d0/dx) t1(i)=0.5d0*(t(i-1)+t(i+1))-dt*(u(i)*(t(i+1)-t(i-1))/2.d0/dx+ (gamma-1.d0)*t(i)*(u(i+1)-u(i-1))/2.d0/dx)初始时间步长赋新值99940主体部分+++50可考虑加入人为耗散tim=0.d0初始时间nulld1 (1)= d (1) u1(1)= u (1) t1(1)= t (1) d1 (im)= d (im) u1(im)= u (im) t1(im)= t (im) tim=tim+dt dt=1.d0 do 60 i=2,im-1 dt=dmin1(dt,dx/(dsqrt(gamma*t1(i))+dabs(u1(i))) Continue write(*,*)tim,dt由柯朗条件定下一时间步长固定边界条件主体部分60局地无量纲声速屏幕输出供调试nullif(tim在某些时刻)call output(tim,d1,u1,t1) if(输出结果的次数等于tend/0.02)goto 888 If(dt.le.1.e-9) then输出”dt太小”并goto 888 goto 999 close(10) End Subroutine output(tim,d1,u1,t1) ….. If(tim.eq.0)open(10,…..form=‘unformatted’) write(10)d,u,t Return end主体部分如0.02, 0.04, 0.06, 0.08,……。即每0.02时间间隔则将结果输出到数据文件。停止运算的无量纲时间可采用另一计时变量,如tp, 其初值为0,tp=tp+dt,待tp快接近0.02,dt=0.02-tp,然后输出结果,并重新令tp=0.888实例之二实例之二磁场扩散磁场扩散方程(仅1D)1. 建模初条解析解null2. 无量纲化null3. 确定解域、划分网格及设置边界条件可划分为上千个格点模拟区域:网 格:均匀网格边 条:扩散至边界之前有效null4. 选取适当的差分格式模型方程全隐格式精度: 稳定条件:恒稳null5. 编程及调试program diffusion parameter(im=1001) implicit double precision(a-h,o-z) dimension x(im),bb(im) dimension b1(im) Dimension a(im),b(im),c(im),s(im) b0=1.67d-5 t0=1.d5 L0=1.d5 ……可将3个变量一起放在一个2维数组设定常数a, b,c 系数nulldx=1./dble(im-1) do 10 i=1,im x(i)=dx*dble(im-1) continue do 20 i=2, im b1(i)=1.d0 b1(1)=0.d0划分网格设定初值1020nulldt=(x(2)-x(1))**2 continue do 30 i=1,im bb (i)= b1 (i) do 50 i=2,im-1 a(i)=2.d0+dx*dx/dt b(i)= -1.d0 c(i)=-1.d0 s(i)= dx*dx/dt*bb(i) a(1)=1.d0 b(1)=0.d0 c(1)=0.d0 s(1)=0.d0 a(im)=1.d0 b(im)=0.d0 c(im)=0.d0 s(im)=1.d0初始时间步长赋新值99930主体部分50tim=0.d0初始时间计算三对角矩阵系数null此过程由上依次向下的递推过程俗称“追”。此过程由下依次向上的回代过程俗称“赶”。主体部分dt=1.d0 do 60 i=2,im-1 dt=5.d0*dmin1(dt,dx*dx/2.d0) Continue tim=tim+dt write(*,*)tim,dt60暂取步长为显格式的5倍nullif(tim在某些时刻)call output(tim,d1,u1,t1) if(输出结果的次数等于tend/0.02)goto 888 goto 999 close(10) End Subroutine output(tim,d1,u1,t1) ….. If(tim.eq.0)open(10,…..) Return end主体部分如0.02, 0.04, 0.06, 0.08,……。即每0.02时间间隔则将结果输出到数据文件。停止运算的无量纲时间可采用另一计时变量,如tp, 其初值为0,tp=tp+dt,待tp快接近0.02,dt=0.02-tp,然后输出结果,并重新令tp=0.888
本文档为【Fortran计算实例】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_204372
暂无简介~
格式:ppt
大小:180KB
软件:PowerPoint
页数:0
分类:工学
上传时间:2012-08-11
浏览量:33