下板不动, 上板匀速平板间流动(c++)【转载】
摘自《FLUENT流体工程仿真计算实例与分析》,程序略有修改
两个间距为1cm水平平板,如下图所示:
上板匀速平板间流动(c++)【转载】" title="下板不动, 上板匀速平板间流动(c++)【转载】">
充满着运动黏度系数υ=1cm2/s的液体。上板做水平运动并在0.1s时间内,速度线性由0线性地增加到10cm/s,如下图所示:
上板匀速平板间流动(c++)【转载】" title="下板不动, 上板匀速平板间流动(c++)【转载】">
通过对N—S方程的简化,可由下面的抛物线方程来描述
上板匀速平板间流动(c++)【转载】">
流动区域在z=0和z=0.1cm之间,初始条件为u(z,0)=0cm/s,边界条件为:u|z=0=0,u|z=1=Ucm/s,U为上板移动速度
取Δz=0.1cm,Δt=0.001s,沿板的铅垂方向把空间离散为11等步长的节点,计算各点处的流速,边界条件可取节点i=1(z=0)和i=11(z=1cm)的流速
求解方程的程序代码:
#include
#include
#include
using
namespace std;
int
main()
{
float
u[100],u0[100];
float
t,dz,dt,umax;
int
i,n,imax,imax1;
imax=11;
dz=0.1;
dt=0.001;
imax1=imax-1;
for(i=1;i<=imax;i++)
{
u[i]=0;
u0[i]=0;
}
t=0;
n=0;
cout<<endl<<endl;
cout<<setiosflags(ios::left)
<<setw(8)<<"t(s)"
<<setw(8)<<"0"
<<setw(8)<<"0.1"
<<setw(8)<<"0.2"
<<setw(8)<<"0.3"
<<setw(8)<<"0.4"
<<setw(8)<<"0.5"
<<setw(8)<<"0.6"
<<setw(8)<<"0.7"
<<setw(8)<<"0.8"
<<setw(8)<<"0.9"
<<setw(8)<<"1"<<endl;
do
{
t+=dt;
n+=1;
if(t<0.1)
u[imax]=t*100;
else
u[imax]=10;
for(i=2;i<=imax1;i++)
u[i]=u0[i]+dt/dz/dz*(u0[i+1]+u0[i-1]-2*u0[i]);
for(i=1;i<=imax;i++)
u0[i]=u[i];
if(n0==0)
{
cout<<endl<<setw(8)<<setiosflags(ios::fixed)<<setprecision(3)<<t;
for(i=1;i<=imax;i++)
cout<<setw(8)<<setprecision(3)<<u0[i];
cout<<endl<<"----------------------------------------------------------------------------------------------"<<endl;
}
}while(n<1000);
return
0;
}
运行结果:
上板匀速平板间流动(c++)【转载】" title="下板不动, 上板匀速平板间流动(c++)【转载】">
不同时刻的速度变化:
上板匀速平板间流动(c++)【转载】">
生成该图的matlab代码:
position=[0
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1];
t_01=[0.000
0.086 0.202 0.386 0.684 1.162 1.903 3.017 4.633 6.905
10.000];
t_02=[0.000
0.543 1.128 1.794 2.573 3.490 4.554 5.763 7.097 8.524
10.000];
t_03=[0.000
0.826 1.668 2.544 3.463 4.435 5.463 6.543 7.668 8.825
10.000];
t_04=[0.000
0.935 1.876 2.829 3.799 4.789 5.799 6.829 7.876 8.935
10.000];
t_05=[0.000
0.976 1.954 2.936 3.925 4.921 5.925 6.936 7.954 8.976
10.000];
t_06=[0.000
0.991 1.983 2.976 3.972 4.970 5.972 6.976 7.983 8.991
10.000];
t_07=[0.000
0.997 1.994 2.991 3.990 4.989 5.990 6.991 7.994 8.997
10.000];
t_08=[0.000
0.999 1.998 2.997 3.996 4.996 5.996 6.997 7.998 8.999
10.000];
t_09=[0.000
1.000 1.999 2.999 3.999 4.998 5.999 6.999 7.999 9.000
10.000];
t_10=[0.000
1.000 2.000 3.000 3.999 4.999 5.999 7.000 8.000 9.000
10.000];
plot(position,t_01,position,t_02,position,t_03,position,t_04,position,t_05,position,t_06,position,t_07,position,t_08,position,t_09,position,t_10,'marker','.')
xlabel('板上位置(m)')
ylabel('速度(m/s)')
legend('t=0.1s','t=0.2s','t=0.3s','t=0.4s','t=0.5s','t=0.6s','t=0.7s','t=0.8s','t=0.9s','t=1s','Location','Best')
legend('boxoff')
box
off
不同高度的速度变化图
上板匀速平板间流动(c++)【转载】">
生成该图的matlab代码:
t=[0
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1]
position_0=[0
0 0 0 0 0 0 0 0 0 0]
position_1=[0
0.086 0.543 0.826 0.935 0.976 0.991 0.997 0.999 1 1]
position_2=[0
0.202 1.128 1.668 1.876 1.954 1.983 1.994 1.998 1.999 2]
position_3=[0
0.386 1.794 2.544 2.829 2.936 2.976 2.991 2.997 2.999 3]
position_4=[0
0.684 2.573 3.463 3.799 3.925 3.972 3.99 3.996 3.999 3.999]
position_5=[0
1.162 3.49 4.435 4.789 4.921 4.97 4.989 4.996 4.998 4.999]
position_6=[0
1.903 4.554 5.463 5.799 5.925 5.972 5.99 5.996 5.999 5.999]
position_7=[0
3.017 5.763 6.543 6.829 6.936 6.976 6.991 6.997 6.999 7]
position_8=[0
4.633 7.097 7.668 7.876 7.954 7.983 7.994 7.998 7.999 8]
position_9=[0
6.905 8.524 8.825 8.935 8.976 8.991 8.997 8.999 9 9]
position_10=[0
10 10 10 10 10 10 10 10 10 10]
plot(t,position_0,t,position_1,t,position_2,t,position_3,t,position_4,t,position_5,t,position_6,t,position_7,t,position_8,t,position_9,t,position_10,'marker','.')
ylim([0
11])
xlabel('时间(s)')
ylabel('速度(cm/s)')
legend('z=0cm','z=0.1cm','z=0.2cm','z=0.3cm','z=0.4cm','z=0.5cm','z=0.6cm','z=0.7cm','z=0.8cm','z=0.9cm','z=1cm','Location','BestOutside')
legend('boxoff')
box
off
下板不动, 上板匀速平板间流动(c++)【转载】的更多相关文章
- 下板不动, 上板匀速平板间流动(Crank-Nicolson格式)【转载】
摘自<FLUENT流体工程仿真计算实例与分析>,程序略有修改 两个间距为1cm水平平板,如下图所示: 上板匀速平板间流动(Crank-Nicolson格式)[转载]"> 充 ...
- OpenFOAM——具有压差的平行平板间流动(泊肃叶流动)
本算例翻译整理自:http://the-foam-house5.webnode.es/products/chapter-1-plane-parallel-plates-case/ 这个算例中两平板间没 ...
- Xilinx FGPA 上板调试 集成逻辑分析工具 Integrated Logic Analyzer(ILA) 简单配置 chipscope
Xilinx Vivado 提供了上板后的FPGA逻辑分析,信号视图显示等功能. 需要注意,上板后查看信号需要重新综合,并且需要耗费一定的片上布局布线资源. 1. 添加debug信号 可以对模块端口或 ...
- 【转】两种方法教你在Ubuntu下轻松关闭触摸板(TinkPad)
Ubuntu是一个以桌面应用为主的Linux操作系统,所以在使用时我经常的触碰到触摸板,这样会造成我们一些的麻烦,所以要如何的关闭触摸板呢?我们一起来看看吧! Ubuntu下如何关闭触摸板(Tin ...
- Ubuntu server使用命令行上板VPNclient
Ubuntu server使用命令行上板VPNclient VPN,虚拟专用网络,这个技术还是非常有用的.近期笔者參与的项目中就使用上了VPN,大概情况是这种.有两个开发团队,在异地,代码服务器在深圳 ...
- OpenFOAM——具有压差且平行平板间具有相对运动流动
本算例翻译整理自:http://the-foam-house5.webnode.es/products/chapter-1-plane-parallel-plates-case/ 这个算例中两平板间具 ...
- OpenFOAM——平行平板间具有相对运动(库埃特流)
本算例翻译整理自:http://the-foam-house5.webnode.es/products/chapter-1-plane-parallel-plates-case/ 这个算例研究了一个距 ...
- [嵌入式开发板]iTOP-4412开发板linux 系统存储空间的修改
平台:iTOP-4412开发板 这里我们以修改成 1G 存储空间为例来讲解修改方法, 如果需要改 成其他大小的存储空间,参照此方法修改即可. 首先连接好 iTOP-4412 开发板的调试串口到 pc ...
- 背水一战 Windows 10 (60) - 控件(媒体类): Pointer 涂鸦板, InkCanvas 涂鸦板
[源码下载] 背水一战 Windows 10 (60) - 控件(媒体类): Pointer 涂鸦板, InkCanvas 涂鸦板 作者:webabcd 介绍背水一战 Windows 10 之 控件( ...
随机推荐
- opencv 加载pb
1.错误1 Tensor's data type is not supported the type of Mul is DF_Float 2. 错误2 type == " ...
- 关于reduce
arr.reduce( callback,[initialValue]) reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素 callback (执行数组中每个值 ...
- 前阿里P8架构师谈如何设计优秀的API
随着大数据.公共平台等互联网技术的日益成熟,API接口的重要性日益凸显,从公司的角度来看,API可以算作是公司一笔巨大的资产,公共API可以捕获用户.为公司做出许多贡献.对于个人来说,只要你编程,你就 ...
- sqlmap中文帮助文档
Options(选项): -h,--help 显示基本帮助消息并退出 -hh 显示高级帮助消息并退出 --version ...
- 1.Hbase集群安装配置(一主三从)
1.HBase安装配置,使用独立zookeeper,shell测试 安装步骤:首先在Master(shizhan2)上安装:前提必须保证hadoop集群和zookeeper集群是可用的 1.上传:用 ...
- solr8.2 环境搭建 配置中文分词器 ik-analyzer-solr8 详细步骤
一.下载安装Apache Solr 8.2.0 下载地址:http://lucene.apache.org/solr/downloads.html 因为是部署部署在windows系统上,所以下载zip ...
- PAT Basic 1089 狼人杀-简单版 (20 分)
以下文字摘自<灵机一动·好玩的数学>:“狼人杀”游戏分为狼人.好人两大阵营.在一局“狼人杀”游戏中,1 号玩家说:“2 号是狼人”,2 号玩家说:“3 号是好人”,3 号玩家说:“4 号是 ...
- 索引 _id
_id索引是绝大多数集合默认建立的索引,对于每个插入的数据,mongodb都会自动生成一条唯一的_id字段 增加一个数据 > db.test2.insert({x:1}) WriteResult ...
- appium+python 【Mac】UI自动化测试封装框架流程简介 <一>
为了多人之间更方便的协作,那么框架本身的结构和编写方式将变得很重要,因此每个团队都有适合自己的框架.如下本人对APP的UI自动化测试的框架进行进行了简单的汇总.主要目的是为了让团队中的其余人员接手写脚 ...
- 简单的JAVAWeb选课系统
该系统管理员可以添加和删除学生.教师,教师可以修改自己信息.添加课程.浏览自己课程,学生可以修改自己的信息.选课.浏览全部课程. 首先展示文件: 然后就是一次展示代码: Guanli包中代码: pac ...