方腔顶盖驱动流动

合集下载

4.2 顶盖驱动流(8)

4.2 顶盖驱动流(8)

4.2顶盖驱动流4.2.1物理模型在一个正方形的二维空腔中充满等密度的空气,方腔每边长为0.1m,其顶板以0.1m/s 的速度向右移动,同时带动方腔内流体的流动,流场内的流体为层流。

计算区域示意图如图4-2-1所示。

图4-2-1 计算区域示意图4.2.2在Gambit中建立模型Step1:启动Gambit并选择求解器为Fluent5/6。

Step2:创建面操作:→→打开对话框如图4-2-2所示。

输入长度和宽度10,在Direction中选择XY Centered。

图4-2-2 创建面设置对话框Step3:划分面网格操作:→→打开对话框如图4-2-3所示,Shift+鼠标左键选择正方形面,Internal size=0.5,其它保留默认,点击Apply确认。

划分后的网格如图4-2-4所示。

图4-2-3 网格划分设置对话框图4-2-4 计算区域网格图Step4:设置边界类型操作:→●在Name栏输入边界名称wall-1,将Type栏选为Wall,在Entity栏选取Edges,并选中方腔顶部边线。

●在Name栏输入边界名称wall-2,将Type栏选为Wall,在Entity栏选取Edges,并选中方腔其它三条边线。

Step5:输出网格文件操作:Fil m→export→mesh打开对话框如图4-2-5所示,选中Export 2-D mesh 前面的复选框,输出网格文件。

图4-2-5 网格文件输出对话框4.2.3求解计算Step1:启动Fluent选择2d单精度求解器,点击Run,如图4-2-6所示。

图4-2-6 启动求解器图4-2-7 网格尺寸设置对话框Step2:导入并检查网格1.读入网格文件操作:Fil e→Read→Case...找到文件后,单击OK按键确认。

2.检查网格操作:Grid→Check网格读入后,一定要进行网格检查,注意最小体积不能为负值。

3.网格比例设置操作:Grid→Scale...在Gambit中,生成网格使用的单位是cm,在Grid Was Created In下拉菜单中,选取cm,如图4-2-7所示,然后单击Scale,关闭对话框。

方腔顶盖驱动流动

方腔顶盖驱动流动

一、问题描述方腔顶盖驱动流动如图1所示的一个简化两维方腔(高,宽都等于L),内部充满水分。

上表面为移动墙,非维化速度为u/u0 =1。

其他三面为固定墙。

试求方腔内水分流动状态。

u=1, v=0u=0, v=0 u=0,v=0u=0, v=0图1常微分方程理论只能求解极少一类常微分方程;实际中给定的问题不一定是解析表达式,而是函数表,无法用解析解法.二、离散格式数值解法:求解所有的常微分方程 计算解函数 y(x) 在一系列节点a = x 0< x 1<…<x n = b 处的近似值),...,1()(n i x y y i i =≈节点间距为步长,通常采用等距节点,即取 hi = h (常数)。

步进式:根据已知的或已求出的节点上的函数值计算当前节点上的函数值,一步一步向前推进。

因此只需建立由已知的或已求出的节点上的函数值求当前节点函数值的递推公式即可。

欧拉方法1(,) 0,1,...n n n n y y h f x y n +=+=几何意义在假设 y n = y (x n ),即第 n 步计算是精确的前提下,考虑公式或方法本身带来的误差: R n = y (x n +1) y n +1 , 称为局部截断误差.截断误差: 实际上,y (x n ) ? y n , y n 也有误差,它对y n +1的误差也有影响,见下图。

但这里不考虑此误差的影响,仅考虑方法或公式本身带来的误差,因此称为方法误差或截断误差。

局部截断误差的分析:由于假设y n = y (x n ) ,即y n 准确,因此分析局部截断误差时将y (x n +1) 和 y n +1都用点x n 上的信息来表示,工具:Taylor 展开。

显式欧拉公式一阶向前差商近似一阶导数推导如下:223111232()[()()()()][ (,)] ()()h n n n n n n n n n h n R y x y y x hy x y x O h y hf x y y x O h +++'''=-=+++-+''=+1()()()n n n y x y x y x h+-'≈111()()() ()()(,)n n n n nn n n n n y x y x hy x y x y y x y y h f x y +++'≈+↑≈≈=+隐式欧拉公式xn +1点向后差商近似导数 推导如下:几何意义设已知曲线上一点 P n (x n , y n ),过该点作弦线,斜率为(x n +1 , y n +1 ) 点的方向场f (x ,y )方向,若步长h 充分小,可用弦线和垂线x =x n +1的交点近似曲线与垂线的交点。

方腔顶盖驱动流流场数值预测

方腔顶盖驱动流流场数值预测

方腔顶盖驱动流流场数值预测摘要:本文分别采用一阶迎风格式(FUD)、中心差分格式(CD)和乘方格式(PLD)计算方腔顶盖驱动流,计算结果同Ghia et al结果进行比较。

由计算结果可得出,一阶迎风引起的假扩散最大,计算结果偏离基准解最远,中心差分格式和乘方格式同基准解已经非常接近。

但中心差分格式不稳定,不易收敛。

网格数变化也会对结果产生影响,网格划分越多,计算结果与基准解越接近,而计算的时效性越差,所以在划分网格时,我们需要综合考虑其准确性和时效性,选用合理网格数。

关键字:一阶迎风格式,中心差分格式,乘方格式,网格数The prediction of flow field in the flow in driven cavity Abstract:In this paper, the three discrete formats of the equation convection (PLD, FUD and CD) was used to calculation the flow field in the flow in driven cavity. Through the compared with Ghia et al, we found that the false diffusion is the largest caused by the FUD, and the deviation of the calculation results from the exact solution, CD is the least , PLD come next and FUD is the largest. But CD is instability, it’s difficult converg ence. The changes of grid number will have an impact on the results. By the analysis, the more grid, the closer of the calculated results with the exact solution, and the worse of the calculated timeliness, so meshing, we need consideration of it’s accurac y and timeliness, to get a reasonable number of grid.Key words: FUD ,CD,PLD, the number of grid引言对流-扩散方程离散格式的稳定性与准确性一直是数值传热学中的一个重要问题,而对流-扩散方程的离散关键在于对流项的离散。

方腔驱动实验报告(3篇)

方腔驱动实验报告(3篇)

第1篇1. 方腔流动概述方腔流动是指在一个封闭的矩形腔体中,由于外部驱动力的作用,腔体内流体产生的流动现象。

常见的驱动方式有顶盖驱动、双边驱动等。

2. 流动特性分析2.1 顶盖驱动方腔流动- 雷诺数(Re):方腔尺寸为1m×1m,顶盖以1m/s的速度向右移动,流体粘性系数为0.001m²/s,因此Re = UL/ν = 1000,属于过渡流区域。

- 网格划分:采用100×100的网格,贴壁第一层网格高度为1.3mm,保证壁面处y 足够小。

- 求解器:使用OpenFOAM中的icoFoam和pisoFoam求解器,分别对应层流和湍流模型。

- 结果分析:两种求解器获得的最终流场完全相同,说明在过渡流区域,层流和湍流模型对结果的影响不大。

2.2 双边反向驱动方腔流动- 研究目的:探究双边驱动方腔内流流场的过渡流临界特性,捕捉各种流动分岔点,分析其对流场特性带来的改变。

- 方法:基于格子玻尔兹曼方法的数值模拟,计算各流动状态发生变化时的临界雷诺数,绘制Hopf和Neimark-Sacker流动分岔点以及湍流临界点随速度比的函数图像。

- 结果分析:- 双边驱动内流流场的稳定性较强,说明第二条边的驱动条件可以有效提高流场的稳定性。

- 流场稳定性最强时,双边驱动条件相同时可以更好地提高流场稳定性。

3. 数值模拟方法3.1 OpenFOAM- OpenFOAM是一款开源的CFD(计算流体力学)软件,广泛应用于各种流体流动问题的模拟。

- icoFoam和pisoFoam是OpenFOAM中的不可压缩求解器,分别适用于层流和湍流模拟。

3.2 格子玻尔兹曼方法- 格子玻尔兹曼方法是一种基于统计物理的数值模拟方法,适用于模拟复杂流体流动问题。

- 该方法具有计算效率高、并行性好等优点。

4. 总结方腔流动是一个典型的流体力学问题,通过数值模拟方法可以研究其流动特性。

本文分析了顶盖驱动和双边反向驱动方腔流动的数值模拟结果,揭示了流场稳定性和过渡流临界特性等方面的规律。

方腔顶盖驱动流动

方腔顶盖驱动流动

一、二、问题描述方腔顶盖驱动流动如图1所示的一个简化两维方腔(高,宽都等于L),内部充满水分。

上表面为移动墙,非维化速度为u/u0 =1。

其他三面为固定墙。

试求方腔内水分流动状态。

u=1, v=0u=0, v=0u=0,v=0u=0, v=0图1常微分方程理论只能求解极少一类常微分方程;实际中给定的问题不一定是解析表达式,而是函数表,无法用解析解法.二、离散格式数值解法:求解所有的常微分方程 计算解函数 y(x) 在一系列节点a = x 0< x 1<…<x n = b 处的近似值),...,1()(n i x y y i i =≈节点间距为步长,通常采用等距节点,即取 hi = h (常数)。

步进式:根据已知的或已求出的节点上的函数值计算当前节点上的函数值,一步一步向前推进。

因此只需建立由已知的或已求出的节点上的函数值求当前节点函数值的递推公式即可。

欧拉方法1(,) 0,1,...n n n n y y h f x y n +=+=几何意义在假设 y n = y (x n ),即第 n 步计算是精确的前提下,考虑公式或方法本身带来的误差: R n = y (x n +1)y n +1 , 称为局部截断误差.显式欧拉公式一阶向前差商近似一阶导数223111232()[()()()()][ (,)] ()()h n n n n n n n n n h n R y x y y x hy x y x O h y hf x y y x O h +++'''=-=+++-+''=+推导如下:隐式欧拉公式x n +1点向后差商近似导数 推导如下:1()()()n n n y x y x y x h+-'≈111()()() ()()(,)n n n n nn n n n n y x y x hy x y x y y x y y h f x y +++'≈+↑≈≈=+11()()()n n n y x y x y x h++-'≈11()()()()n n n n ny x y x hy x y x y ++'≈+↑≈几何意义设已知曲线上一点 P n (x n , y n ),过该点作弦线,斜率为(x n +1 , y n +1 ) 点的方向场f (x ,y )方向,若步长h 充分小,可用弦线和垂线x =x n +1的交点近似曲线与垂线的交点。

OpenFOAM顶盖驱动流详解使用说明材料(中文翻译版)

OpenFOAM顶盖驱动流详解使用说明材料(中文翻译版)

OpenFOAM顶盖驱动流详解使⽤说明材料(中⽂翻译版)引⾔这是开源场运算和操作c++库类(openfoam)的使⽤指南。

他详细描述了OpenFOAM 的基本操作。

⾸先通过第⼆章⼀系列教程练习。

然后通过对更多的独⽴组件的更详细的描述学习openfoam。

Of ⾸先主要是⼀个c++库类,主要⽤于创建可执⾏⽂件,⽐如应⽤程(application)。

应⽤程序分成两类:求解器,都是为了解决特定的连续介质⼒学问题⽽设计的;公⽤⼯程,这些是为了执⾏包括数据操作等任务⽽设计的。

Of 包括了数量众多的solver和utilities,牵涉的问题也⽐较⼴泛。

将在第三章进⾏详尽的描述。

Of 的⼀个强项是⽤户可以通过必要的预备知识(包括数学,物理和编程技术)创建新的solvers 和utilities。

Of 需要前处理和后处理环境。

前处理、后处理接⼝就是of本⾝的实⽤程序(utilities),以此确保协调的数据传输环境。

图1.1是of 总体的结构。

第4章和第五章描述了前处理和运⾏of 的案例。

既包括⽤of提供的mesh generator划分⽹格也包括第三⽅软件⽣成的⽹格数据转换。

第六章介绍后处理。

Chapter 2指导⼿册在这⼀章中我们详细描述了安装过程,模拟和后进程处理⼀些OpenFOAM测试案例,以引导⽤户运⾏OpenFOAM的基本程序。

$FOAM_TUTORIALS ⽬录包含许多案件演⽰of提供的所有求解器以及许多共⽤程序的使⽤,在试图运⾏教程之前,⽤户必须⾸先确保他们已经正确地安装了OpenFOAM。

该教程案件描述blockMesh预处理⼯具的使⽤,paraFoam案例设置和运⾏OpenFOAM 求解器及使⽤paraFoam进⾏后处理。

使⽤OpenFOAM⽀持的第三⽅后处理软件的⽤户可以选择:他们要么可以按照教程使⽤paraFoam,或当需要后处理时参阅第六章的第三⽅软件使⽤说明。

OpenFOAM安装⽬录下的tutorials⽬录中所有的指导⼿册都是可复制的。

顶盖驱动流计算程序

顶盖驱动流计算程序

!此?程ì序ò用?QUICK格?式?求ó解a顶¥盖?驱y动ˉ流ⅰ?!对?压1力求ó解a利?用?人?工¤压1缩?法ぁ?求ó解aprogram QUICK_cavityimplicit none!mx和ímy分?别纄表括?示?网?格?节ú点?数簓integer :: i,j,mx,my,numcharacter(len=15) :: name,name1!c2表括?示?人?工¤压1缩?系μ数簓的?平?方?,dt非?稳è态?前°后ó时骸?间?间?隔?!dx和ídy表括?示?网?格?间?距à,x1和íy1表括?示?边?长¤,err表括?示?判D断?人?工¤压1缩?法ぁ?求ó解a收?敛?的?标括?准?!u0表括?示?顶¥盖?运?动ˉ的?速ù度è,relax表括?示?人?工¤压1缩?系μ数簓real(kind=8) :: c2,relax,dt,dx,dy,x1,y1,err,abc,u0!density表括?示?流ⅰ?体?密ü度è,Viscosity表括?示?流ⅰ?体?粘3度è,Re表括?示?雷ぁ?诺μ数簓real(kind=8) :: density,Viscosity,Re!表括?示?t时骸?刻ì的?速ù度è和í压1力值μreal(kind=8),allocatable :: u(:,:),v(:,:),p(:,:)!表括?示?t+dt时骸?刻ì的?速ù度è和í压1力值μreal(kind=8),allocatable :: un(:,:),vn(:,:),pn(:,:)!最?终?各÷节ú点?上?的?速ù度è和í压1力值μreal(kind=8),allocatable :: uc(:,:),vc(:,:),pc(:,:)!定¨义?涡D量?和í流ⅰ?函ˉ数簓real(kind=8),allocatable:: flow_function_u(:,:),flow_function_v(:,:),vortex_function(:,:)!给?各÷节ú点?定¨义?坐?标括?矩?阵óreal(kind=8),allocatable :: x(:),y(:)open(3,file="parameter.dat")read(3,*) mx,my,x1,y1 !读á入?网?格?节ú点?数簓和í边?长¤read(3,*) relax,dt,u0 !读á入?压1缩?系μ数簓,时骸?间?间?隔?和í顶¥盖?移?动ˉ速ù度èread(3,*) density,Viscosity !读á入?密ü度è和í粘3度èclose(3)allocate(u(mx,my+1),v(mx+1,my),p(mx+1,my+1))allocate(un(mx,my+1),vn(mx+1,my),pn(mx+1,my+1))allocate(uc(mx,my),vc(mx,my),pc(mx,my))allocate(flow_function_u(mx,my),flow_function_v(mx,my),vortex_function(mx,my))allocate(x(mx),y(my))dx=x1/(mx-1)dy=y1/(my-1)num=0err=100.0c2=relax**2Re=u0*density*x1/Viscosity!对?流ⅰ?场?进?行D初?始?化ˉdo i=1,mx+1,1do j=1,my+1,1p(i,j)=1.0end doend dodo i=1,mx,1do j=1,my+1,1u(i,j)=0.0if(j==my+1) u(i,j)=3.0*u0/2.0if(j==my) u(i,j)=u0/2.0end doend dodo i=1,mx+1,1do j=1,my,1v(i,j)=0.0end doend do!利?用?人?工¤压1缩?法ぁ?求ó解a流ⅰ?场?值μdo while(err>0.00001.and.num<1000000)err=0.0!调獭?用?quick子哩?程ì序ò中D的?QUICK离?散Α?格?式?计?算?un和ívn的?值μcall quick(u0,u,v,p,mx,my,dx,dy,dt,density,Viscosity,un,vn)!调獭?用?calp子哩?程ì序ò求ó解a压1强?pn值μcall calp(un,vn,pn,mx,my,dx,dy,dt,c2,p)!校£验é流ⅰ?场?信?息¢,?得?到?收?敛?判D断?准?则òerr,?同?时骸?更ü新?u、¢v、¢p !利?用?单蹋?位?时骸?间?间?隔?前°后ó时骸?刻ì之?间?的?差?值μ的?绝?对?值μ作痢?为a 判D据Ydo i=1,mx,1do j=1,my+1,1abc=abs(un(i,j)-u(i,j))/dtif(abc>err) err=abcu(i,j)=un(i,j)end doend dodo i=1,mx+1,1do j=1,my,1abc=abs(vn(i,j)-v(i,j))/dtif(abc>err) err=abcv(i,j)=vn(i,j)end doend dodo j=1,my+1,1abc=(abs(pn(i,j)-p(i,j))/c2)/dtif(abc>err) err=abcp(i,j)=pn(i,j)end doend dowrite(*,*) "error=",errnum=num+1write(*,*) numend do!---------循-环·结á束?-------------------------------------------------------do i=1,mx,1x(i)=(i-1)*dxend dodo j=1,my,1y(j)=(j-1)*dyend do!计?算?节ú点?上?的?涡D量?do i=2,mx-1,1do j=2,my-1,1vortex_function(i,j)=(un(i,j+1)-un(i,j))/dy-(vn(i+1,j)-vn(i,j))/dx end doend dodo j=1,my,1vortex_function(1,j)=(un(1,j+1)-un(1,j))/dy-(vn(2,j)-vn(1,j))/dxvortex_function(mx,j)=(un(mx,j+1)-un(mx,j))/dy-(vn(mx+1,j)-vn(mx,j))/dx end dodo i=2,mx-1,1vortex_function(i,1)=(un(i,2)-un(i,1))/dy-(vn(i+1,1)-vn(i,1))/dxvortex_function(i,my)=(un(i,my+1)-un(i,my))/dy-(vn(i+1,my)-vn(i,my))/dx end do!计?算?节ú点?上?的?速ù度è值μdo i=1,mx,1do j=1,my,1uc(i,j)=0.5*(u(i,j)+u(i,j+1))vc(i,j)=0.5*(v(i,j)+v(i+1,j))pc(i,j)=0.25*(p(i,j)+p(i,j+1)+p(i+1,j)+p(i+1,j+1))end doend do!计?算?节ú点?上?的?流ⅰ?函ˉ数簓flow_function_u=0.0flow_function_v=0.0do i=2,mx-1,1flow_function_u(i,j)=dy*uc(i,j)+flow_function_u(i,j-1)flow_function_v(i,j)=-dx*vc(i,j)+flow_function_u(i-1,j)end doend do!输?出?数簓据Y到?文?件t夹D中Dwrite(name,"(f10.4)") Reopen(10,file='Reout'//trim(adjustl(name))//'.dat')write(10,*) 'TITLE = "result"'write(10,*) 'VARIABLES = "X","Y","U","V","P"'write(10,*) 'ZONE I=',mx,'J=',my,'F=POINT'write(10,"(5(f15.8,5x))") ((x(i),y(j),uc(i,j),vc(i,j),pc(i,j),i=1,mx),j=1,my)close(10)write(name1,"(f10.4)") Reopen(20,file='Refunction'//trim(adjustl(name1))//'.dat')write(20,*) 'TITLE = "result"'write(20,*) 'VARIABLES = "X","Y","FLOW_FUNCTION_U","FLOW_FUNCTION_V","VORTEX_FUNCTION"'write(20,*) 'ZONE I=',mx,'J=',my,'F=POINT'write(20,"(5(f15.8,5x))")((x(i),y(j),flow_function_u(i,j),flow_function_v(i,j),vortex_function(i,j),i=1,mx),j=1, my)close(20)stopend!利?用?一?阶×迎?风?格?式?和íQUICK格?式?求ó解a速ù度è值μsubroutine quick(u0,u,v,p,mx,my,dx,dy,dt,density,Viscosity,un,vn)implicit noneinteger :: i,j,mx,myreal(kind=8) :: dx,dy,dt,Viscosity,density,u0real(kind=8) :: u(mx,my+1),v(mx+1,my),p(mx+1,my+1)real(kind=8) :: un(mx,my+1),vn(mx+1,my)real(kind=8) :: fw,fe,fs,fn,df,dw,de,ds,dnreal(kind=8) :: aw,aww,ae,aee,as,ass,an,ann,apreal(kind=8),external :: alfa!求ó解ax方?向ò的?速ù度èundo i=3,mx-2,1do j=3,my-1,1!求ó解aQUICK格?式?中D的?系μ数簓fw=0.5*density*(u(i-1,j)+u(i,j))*dyfe=0.5*density*(u(i,j)+u(i+1,j))*dyfs=0.5*density*(v(i,j-1)+v(i+1,j-1))*dxfn=0.5*density*(v(i,j)+v(i+1,j))*dxdf=fe-fw+fn-fsdw=Viscosity*dy/dxde=Viscosity*dy/dxds=Viscosity*dx/dydn=Viscosity*dx/dyaw=dw+0.75*alfa(fw)*fw+0.125*alfa(fe)*fe+0.375*(1.0-alfa(fw))*fwaww=-0.125*alfa(fw)*fwae=de-0.375*alfa(fe)*fe-0.75*(1.0-alfa(fe))*fe-0.125*(1.0-alfa(fw))*fwaee=0.125*(1.0-alfa(fe))*feas=ds+0.75*alfa(fs)*fs+0.125*alfa(fn)*fn+0.375*(1.0-alfa(fs))*fsass=-0.125*alfa(fs)*fsan=dn-0.375*alfa(fn)*fn-0.75*(1.0-alfa(fn))*fn-0.125*(1.0-alfa(fs))*fsann=0.125*(1.0-alfa(fn))*fnap=aw+aww+ae+aee+as+ass+an+ann+dfun(i,j)=u(i,j)+dt/(dx*dy)*(-ap*u(i,j)+aw*u(i-1,j)+ae*u(i+1,j)+as*u(i,j-1)+an*u(i,j+1)+& aww*u(i-2,j)+aee*u(i+2,j)+ass*u(i,j-2)+ann*u(i,j+2))-dt*(p(i+1,j)-p(i,j))/dx end doend do!----------------------------------------------------------------------!内ú层?边?界?由?一?阶×迎?风?离?散Α?格?式?计?算?得?到?j=2do i=3,mx-2,1call upbound_u(u,v,p,mx,my,dx,dy,dt,density,Viscosity,i,j,un)end doj=mydo i=3,mx-2,1call upbound_u(u,v,p,mx,my,dx,dy,dt,density,Viscosity,i,j,un)end doi=2do j=2,my,1call upbound_u(u,v,p,mx,my,dx,dy,dt,density,Viscosity,i,j,un)end doi=mx-1do j=2,my,1call upbound_u(u,v,p,mx,my,dx,dy,dt,density,Viscosity,i,j,un)end do!--------------------------------------------------------------------!计?算?外猘层?边?界?do i=2,mx-1,1un(i,1)=-un(i,2)un(i,my+1)=2.0*u0-un(i,my)end dodo j=1,my+1,1un(1,j)=0.0un(mx,j)=0.0end do!--------------------------------------------------------------------!求ó解ay方?向ò的?速ù度èvndo i=3,mx-1,1do j=3,my-2,1!求ó解aQUICK格?式?中D的?系μ数簓fw=0.5*density*(u(i-1,j)+u(i-1,j+1))*dyfe=0.5*density*(u(i,j)+u(i,j+1))*dyfs=0.5*density*(v(i,j-1)+v(i,j))*dxfn=0.5*density*(v(i,j)+v(i,j+1))*dxdf=fe-fw+fn-fsdw=Viscosity*dy/dxde=Viscosity*dy/dxds=Viscosity*dx/dydn=Viscosity*dx/dyaw=dw+0.75*alfa(fw)*fw+0.125*alfa(fe)*fe+0.375*(1.0-alfa(fw))*fwaww=-0.125*alfa(fw)*fwae=de-0.375*alfa(fe)*fe-0.75*(1.0-alfa(fe))*fe-0.125*(1.0-alfa(fw))*fwaee=0.125*(1.0-alfa(fe))*feas=ds+0.75*alfa(fs)*fs+0.125*alfa(fn)*fn+0.375*(1.0-alfa(fs))*fsass=-0.125*alfa(fs)*fsan=dn-0.375*alfa(fn)*fn-0.75*(1.0-alfa(fn))*fn-0.125*(1.0-alfa(fs))*fsann=0.125*(1.0-alfa(fn))*fnap=aw+aww+ae+aee+as+ass+an+ann+dfvn(i,j)=v(i,j)+dt/(dx*dy)*(-ap*v(i,j)+aw*v(i-1,j)+ae*v(i+1,j)+as*v(i,j-1)+an*v(i,j+1)+& aww*v(i-2,j)+aee*v(i+2,j)+ass*v(i,j-2)+ann*v(i,j+2))-dt*(p(i,j+1)-p(i,j))/dy end doend do!------------------------------------------------------------------------------!内ú层?边?界?由?一?阶×迎?风?离?散Α?格?式?计?算?得?到?j=2do i=3,mx-1,1call upbound_v(u,v,p,mx,my,dx,dy,dt,density,Viscosity,i,j,vn)end doj=my-1do i=3,mx-1,1call upbound_v(u,v,p,mx,my,dx,dy,dt,density,Viscosity,i,j,vn)end doi=2do j=2,my-1,1call upbound_v(u,v,p,mx,my,dx,dy,dt,density,Viscosity,i,j,vn) end doi=mxdo j=2,my-1,1call upbound_v(u,v,p,mx,my,dx,dy,dt,density,Viscosity,i,j,vn) end do!----------------------------------------------------------------------!计?算?外猘层?边?界?do i=2,mx,1vn(i,1)=0.0vn(i,my)=0.0end dodo j=1,my,1vn(1,j)=-vn(2,j)vn(mx+1,j)=-vn(mx,j)end doreturnend subroutine!-----------------------------------------------------------------!定¨义?一?个?函ˉ数簓function alfa(x)implicit nonereal(kind=8) :: alfa,xif(x>0.0) thenalfa=1.0elsealfa=0.0end ifreturnend!利?用?一?阶×迎?风?格?式?求ó解a内ú层?边?界?上?的?速ù度è值μsubroutine upbound_u(u,v,p,mx,my,dx,dy,dt,density,Viscosity,i,j,un) implicit noneinteger :: i,j,mx,myreal(kind=8) :: dx,dy,dt,density,Viscosityreal(kind=8) :: u(mx,my+1),v(mx+1,my),p(mx+1,my+1)real(kind=8) :: un(mx,my+1)real(kind=8) :: df,dw,de,ds,dnreal(kind=8) :: aw,ae,as,an,apdw=Viscosity*dy/dxde=Viscosity*dy/dxds=Viscosity*dx/dydn=Viscosity*dx/dyaw=dw+max(0.5*density*(u(i-1,j)+u(i,j))*dy,0.0)ae=de+max(0.0,-0.5*density*(u(i,j)+u(i+1,j))*dy)as=ds+max(0.5*density*(v(i,j-1)+v(i+1,j-1))*dx,0.0)an=dn+max(0.0,-0.5*density*(v(i,j)+v(i+1,j))*dx)df=0.5*density*(u(i+1,j)-u(i-1,j))*dy+0.5*density*(v(i,j)+v(i+1,j)-v(i,j-1)-v(i+1,j-1)) *dxap=aw+ae+as+an+dfun(i,j)=u(i,j)+(dt/(dy*dx))*(-ap*u(i,j)+aw*u(i-1,j)+ae*u(i+1,j)+as*u(i,j-1)+an*u(i,j+1) )-dt*(p(i+1,j)-p(i,j))/dxreturnend subroutine!利?用?一?阶×迎?风?格?式?求ó解a内ú层?边?界?上?的?速ù度è值μsubroutine upbound_v(u,v,p,mx,my,dx,dy,dt,density,Viscosity,i,j,vn)implicit noneinteger :: i,j,mx,myreal(kind=8) :: dx,dy,dt,density,Viscosityreal(kind=8) :: u(mx,my+1),v(mx+1,my),p(mx+1,my+1)real(kind=8) :: vn(mx+1,my)real(kind=8) :: df,dw,de,ds,dnreal(kind=8) :: aw,ae,as,an,apdw=Viscosity*dy/dxde=Viscosity*dy/dxds=Viscosity*dx/dydn=Viscosity*dx/dyaw=dw+max(0.5*density*(u(i-1,j)+u(i-1,j+1))*dy,0.0)ae=de+max(0.0,-0.5*density*(u(i,j)+u(i,j+1))*dy)as=ds+max(0.5*density*(v(i,j-1)+v(i,j))*dx,0.0)an=dn+max(0.0,-0.5*density*(v(i,j)+v(i,j+1))*dx)df=0.5*density*(u(i,j)+u(i,j+1)-u(i-1,j)-u(i-1,j+1))*dy+0.5*density*(v(i,j+1)-v(i,j-1)) *dxap=aw+ae+as+an+dfvn(i,j)=v(i,j)+(dt/(dy*dx))*(-ap*v(i,j)+aw*v(i-1,j)+ae*v(i+1,j)+as*v(i,j-1)+an*v(i,j+1) )-dt*(p(i,j+1)-p(i,j))/dyreturnend subroutine!人?工¤压1缩?法ぁ?求ó解a下?一?时骸?刻ì的?压1强?值μsubroutine calp(un,vn,pn,mx,my,dx,dy,dt,c2,p)implicit noneinteger :: i,j,mx,myreal(kind=8) :: dx,dy,dt,c2real(kind=8) :: un(mx,my+1),vn(mx+1,my),pn(mx+1,my+1)real(kind=8) :: p(mx+1,my+1)!根ù据Yun和ívn求ó解a压1强?pn的?值μ!利?用?连?续?性?方?程ì求ó解a压1力do i=2,mx,1do j=2,my,1pn(i,j)=p(i,j)-dt*c2*((un(i,j)-un(i-1,j))/dx+(vn(i,j)-vn(i,j-1))/dy) end doend do!利?用?虚é拟a边?界?条?件t求ó解a压1力值μdo i=2,mx,1pn(i,1)=pn(i,2)pn(i,my+1)=pn(i,my)end dodo j=1,my+1,1pn(1,j)=pn(2,j)pn(mx+1,j)=pn(mx,j)end doreturnend subroutine。

顶部驱动钻井装置简介

顶部驱动钻井装置简介

顶部驱动钻井装置简介目录•顶部驱动钻井装置概述•顶部驱动钻井装置结构组成•顶部驱动钻井装置工作原理与性能特点•顶部驱动钻井装置安装与调试•顶部驱动钻井装置操作与维护保养•顶部驱动钻井装置在石油工程中的应用实例01顶部驱动钻井装置概述定义与基本原理定义顶部驱动钻井装置,简称顶驱,是一种直接安装在钻柱顶端,能够旋转钻柱并施加扭矩的钻井设备。

基本原理通过电动机或液压马达驱动齿轮减速机构,将扭矩传递给钻柱,同时通过控制系统实现钻柱的旋转、提升、加压等操作。

发展历程及现状发展历程顶驱技术起源于20世纪60年代,经历了从机械式到电动式、从单一功能到多功能的发展历程。

随着技术的不断进步,顶驱已经成为现代钻井技术的重要组成部分。

现状目前,顶驱技术已经广泛应用于石油、天然气、地热等领域的钻井作业中。

随着非常规油气资源的开发,顶驱技术也在不断发展和创新,以适应更复杂、更恶劣的钻井环境。

应用领域与市场需求应用领域顶驱主要应用于石油、天然气、地热等领域的钻井作业中。

它可以提高钻井效率、降低钻井成本、减少井下事故等。

市场需求随着全球能源需求的不断增长和非常规油气资源的开发,顶驱市场需求将持续增长。

同时,随着环保要求的提高和技术的进步,市场对顶驱的性能、可靠性、安全性等方面也提出了更高的要求。

02顶部驱动钻井装置结构组成提供驱动力,驱动传动系统工作。

柴油机或电动机液压泵站冷却系统为控制系统和辅助系统提供液压动力。

对动力系统进行冷却,确保其在高温环境下正常工作。

030201将动力系统的输出转速和扭矩调整到适合钻井作业的范围。

变速箱实现传动系统与动力系统的连接与断开,方便操作和维护。

离合器将动力传递给钻井装置的其他部分,如转盘、绞车等。

传动轴主控制器对整个顶部驱动钻井装置进行集中控制,实现自动化操作。

传感器监测钻井装置的工作状态,如转速、扭矩、温度等,并将数据传输给主控制器。

执行器根据主控制器的指令,控制传动系统、辅助系统等的工作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、问题描述
方腔顶盖驱动流动
如图1所示的一个简化两维方腔(高,宽都等于L),内部充满水分。

上表面为移动墙,非维化速度为u/u0 =1。

其他三面为固定墙。

试求方腔内水分流动状态。

u=1, v=0
u=0,v=0
u=0, v=0
图1
常微分方程理论
只能求解极少一类常微分方程;实际中给定的问题不一定是解析表达式,而是函数表,无法用解析解法.
二、离散格式
数值解法:求解所有的常微分方程
计算解函数 y(x) 在一系列节点a = x0< x1<…<
x n = b处的近似值)
,
...
,1
(
)
(n
i
x
y
y
i
i
=

节点间距
为步长,通常采
用等距节点,即取 hi = h (常数)。

步进式:根据已知的或已求出的节点上的函数值计算当前节点上的函数值,一步一步向前推进。

因此只需建立由已知的或已求出的节点上的函数值求当前节点函数值的递推公式即可。

欧拉方法
1(,) 0,1,...
n n n n y y h f x y n +=+=
几何意义
在假设 y n = y (x n ),即第 n 步计算是精确的前提下,考虑公式或方法本身带来的误差: R n = y (x n +1) - y n +1 , 称为局
部截断误差.
显式欧拉公式
一阶向前差商近似一阶导数
22
3
1112
3
2
()[()()()()]
[ (,)] ()()
h n n n n n n n n n h n R y x y y x hy x y x O h y hf x y y x O h +++'''=-=+++-+''=
+
推导如下:
隐式欧拉公式
x n +1点向后差商近似导数
推导如下:
1()()
()n n n y x y x y x h
+-'≈111()()() ()()(,)
n n n n n
n n n n n y x y x hy x y x y y x y y h f x y +++'≈+↑≈≈=+11()()()n n n y x y x y x h
++-'≈11()()()
()n n n n n
y x y x hy x y x y ++'≈+↑≈
几何意义
设已知曲线上一点 P n (x n , y n ),过该点作弦线,斜率为(x n +1 , y n +1 ) 点的方向场f (x ,y )方向,若步长h 充分小,可用弦线和垂线x =x n +1的交点近似曲线与垂线的交点。

比较 显式公式和隐式公式及其局部截断误差
显式公式
x n x n+1
P n
P n+1
x
y y(x )
1(,) 0,1,...
n n n n y y h f x y n +=+=23
1112
()()()
h n n n n R y x y y x O h +++''=-=
+
隐式公式
中点欧拉公式
中心差商近似导数
h x y x y x y 2)
()()(021-≈
'
1
,...,1),(211-=+=-+n i y x f h y y i i i i
111(,)
n n n n y y h f x y +++=+23
1112
()()()
h n n n n R y x y y x O h +++''=-=-
+))
(,(2)()(1102x y x f h x y x y +≈
x 0 x 2
x 1
控制方程
交错网格
因为方腔顶盖驱动流动的流动不均与性,u、v及压力p的变化存在交错的现象。

P 点位置
u 点位置
v 点位置
P 点控制微元体u点控制微元体v点控制微元体
守恒形式N-S方程
动量方程离散(x-方向)
方程(1)
推导过程:
⎪⎪⎭

⎝⎛
+=+-j
i j i j
i u u u ,21,21,2
1
综上有:
动量方程离散(y-方向)
方程(2)
三、压力修正的基本思想
压力修正方程推导
方程(1)
欧拉显式
方程(3)
方程(2)欧拉显式
方程(4)
压力修正方程
U*,V*,P* 中间值
方程(5)
U’,V’,P’修正值(N+1时间步)
U N+1,V N+1, P N+1,满足连续方程的值
方程(6)
方程(7)
方程(8)
综合方程3,5,6,可得
方程(9)
综合方程4,5,7,可得
方程(10)将方程9,10,5 代入方程8,可得
方程(11)
四、SIMPLE算法流程图
M程序语言:
已知条件
L=H; 方腔的宽,高
u=1, v=0;方腔上表面的速度
u=0, v=0;方腔左表面的速度
u=0, v=0;方腔右表面的速度
u=0, v=0;方腔下表面的速度
网格划分
Y方向网格数为: M。

节点在Y方向序号变量为 i。

1< =i<= M
X方向网格数为: N。

节点在X方向序号变量为 j。

1<= j<= N
节点矩阵:
OT=zeros(M,N); OT 旧值某个节点 OT(i, j)
NT=zeros(M,N); NT 新值间距
dx=L/(N-1); X方向间距dy=H/(M-1); Y方向间距控制方程离散
方程(11)。

相关文档
最新文档