在数值计算过程中,对于计算结果的准确性和效率有很高的要求,但是这两者之间往往互相矛盾;而使用柯朗数可用于平衡两者。

1、柯朗数的定义:

C = sqrt(gh)*t/s

其中,t是时间步长,s是网格在水平方向的间距。

柯朗数的意义在于表示了在单位时间步长中,有多少个网格的信息发生了移动。经过正确的调整,可以更好地加速收敛和增强解的稳定性。

2、C语言实现柯朗数计算:

依据上述方程,在实际计算中采用C语言实现计算固液界面上的柯朗数,结果如下:

void localCourantNumber()

{

double rhoe,rhon,rhot;

for(i=;i<=nxm-;i++) //Calculation of local Courant number only at internal faces

{

ieast = i + ;

dxpe = xc[ieast] - xc[i];

fxe = (xf[i]-xc[i])/dxpe;

fxp = 1.0 - fxe;

for(j=;j<=nym;j++)

{

jnorth = j + ;

dypn = yc[jnorth] - yc[j];

fyn = (yf[j] - yc[j])/dypn;

fyp = 1.0 - fyn;

for(k=;k<=nzm;k++)

{

ktop = k + ;

dzpt = zc[ktop]-zc[k];

fzt = (zf[k] - zc[k])/dzpt;

fzp = 1.0 - fzt;

//Calculating density at cell interface

rhoe = fxp * rho[i][j][k] + fxe * rho[ieast][j][k];

/* rhoe = 2.0 * rho[i][j][k] * rho[ieast][j][k]/( rho[i][j][k] + rho[ieast][j][k]);*/

s = (yf[j]-yf[j-])*(zf[k]-zf[k-]);

vole = dxpe * s;

//Sum of courant numbers of outflow faces of donor cell

Ce[i][j][k] = fabs(Fe[i][j][k]/(rhoe*vole))*dt;

/* printf("Ce=%e\n",Ce[i][j][k]);*/

}

}

}

for(i=;i<=nxm;i++) //Calculation of local Courant number only at internal faces

{

ieast = i + ;

dxpe = xc[ieast] - xc[i];

fxe = (xf[i]-xc[i])/dxpe;

fxp = 1.0 - fxe;

for(j=;j<=nym-;j++)

{

jnorth = j + ;

dypn = yc[jnorth] - yc[j];

fyn = (yf[j] - yc[j])/dypn;

fyp = 1.0 - fyn;

for(k=;k<=nzm;k++)

{

ktop = k + ;

dzpt = zc[ktop]-zc[k];

fzt = (zf[k] - zc[k])/dzpt;

fzp = 1.0 - fzt;

//Calculating density at cell interface

rhon = fyp * rho[i][j][k] + fyn * rho[i][jnorth][k];

/* rhon = 2.0 * rho[i][j][k] * rho[i][jnorth][k]/( rho[i][j][k] + rho[i][jnorth][k]);*/

s = (xf[i]-xf[i-])*(zf[k]-zf[k-]);

voln = s * dypn;

//Sum of courant numbers of outflow faces of donor cell

Cn[i][j][k] = fabs(Fn[i][j][k]/(rhon*voln))*dt;

/* printf("Ce=%e\n",Ce[i][j][k]);*/

}

}

}

for(i=;i<=nxm;i++) //Calculation of local Courant number only at internal faces

{

ieast = i + ;

dxpe = xc[ieast] - xc[i];

fxe = (xf[i]-xc[i])/dxpe;

fxp = 1.0 - fxe;

for(j=;j<=nym;j++)

{

jnorth = j + ;

dypn = yc[jnorth] - yc[j];

fyn = (yf[j] - yc[j])/dypn;

fyp = 1.0 - fyn;

for(k=;k<=nzm-;k++)

{

ktop = k + ;

dzpt = zc[ktop]-zc[k];

fzt = (zf[k] - zc[k])/dzpt;

fzp = 1.0 - fzt;

//Calculating density at cell interface

rhot = fzp * rho[i][j][k] + fzt * rho[i][j][ktop];

/* rhot = 2.0 * rho[i][j][k] * rho[i][j][ktop]/( rho[i][j][k] + rho[i][j][ktop]);*/

s = (xf[i]-xf[i-])*(yf[j]-yf[j-]);

volt = s * dzpt;

//Sum of courant numbers of outflow faces of donor cell

Ct[i][j][k] = fabs(Ft[i][j][k]/(rhot*volt))*dt;

/* printf("Ce=%e\n",Ce[i][j][k]);*/

}

}

}

for(i=;i<=nxm;i++) //Calculation of local Courant number only at internal faces

{

for(j=;j<=nym;j++)

{

for(k=;k<=nzm;k++)

{

COutD[i][j][k] = Ce[i][j][k] + Cn[i][j][k] + Ct[i][j][k];

/* printf("COutD=%lf\n",COutD[i][j][k]);*/

/* printf("Ce=%e\n",Ce[i][j][k]);*/

/* printf("Cn=%e\n",Cn[i][j][k]);*/

/* printf("Ct=%e\n",Ct[i][j][k]);*/

}

}

}

}

3、柯朗数使用的注意事项:

在fluent中,用courant number 来调节计算的稳定性与收敛性。一般来说,随着courantnumber 的从小到大的变化,收敛速度逐渐加快,但是稳定性逐渐降低。所以具体的问题,在计算的过程中,最好是把Courant number 从小开始设置,看看迭代残差的收敛情况,如果收敛速度较慢而且比较稳定的话,可以适当的增加courant number 的大小,根据自己具体的问题,找出一个比较合适的courant number,让收敛速度能够足够的快,而且能够保持它的稳定性。

Generally, in the explicit schemes of differential method, Courant number is an important number which should be less than 1 in order to assure the stability. However, if the Courant number is too small, much computation time will be lost. So the Courant number could be one of those important parameters affecting computation cost and stability. we could use Courant number to control the time step in the transient simulation in CFD codes. Here is some configuration parameters which could be used in simulation with OpenFOAM。

CFD计算

47 求解器为flunet5/6在设置边界条件时,specify boundary types下的types中有三项关于interior,interface,internal设置,在什么情况下设置相应 ...

Fluent经典问题答疑

原文链接1 原文链接28 什么叫边界条件?有何物理意义?它与初始条件有什么关系? 边界条件与初始条件是控制方程有确定解的前提. 边界条件是在求解区域的边界上所求解的变量或其导数随时间和地点的变化规律. ...

Coupled和segregated【转载】

转载自:http://blog.sina.com.cn/s/blog_67873f6c0100ltq6.html 问题1: 我看中文帮组里说是'分离'的意思?我绝对翻译不太好,请问有更好的翻译吗? 和 ...

Fluent 时间步长【转载】

转载自:http://blog.sina.com.cn/s/blog_4ada3be301011rjp.html 用FLUENT计算非稳态问题,是不是在计算时必须保证在每个时间步timestep里都要 ...

JavaScript Math和Number对象研究

1. Math 对象 1.1 介绍   Math 对象,是数学对象,提供对数据的数学计算,如:获取绝对值.向上取整等.无构造函数,无法被初始化,只提供静态属性和方法.   1.2 构造函数   无 : ...

一些对数学领域及数学研究的个人看法(转载自博士论坛wcboy)

转自:http://www.math.org.cn/forum.php?mod=viewthread&tid=14819&extra=&page=1 原作者: wcboy 现在 ...

Javascript判断object还是list&sol;array的类型(包含javascript的数据类型研究)

前提:先研究javascript中的变量有几种,参考: http://www.w3school.com.cn/js/js_datatypes.asp http://glzaction.iteye.co ...

Nagios学习实践系列——配置研究&lbrack;监控当前服务器&rsqb;

其实上篇Nagios学习实践系列——基本安装篇只是安装了Nagios基本组件,虽然能够打开主页,但是如果不配置相关配置文件文件,那么左边菜单很多页面都打不开,相当于只是一个空壳子.接下来,我们来学习研 ...

AP&lpar;affinity propagation)研究

待补充…… AP算法,即Affinity propagation,是Brendan J. Frey* 和Delbert Dueck于2007年在science上提出的一种算法(文章链接,维基百科) 现 ...

随机推荐

jquery选择器demo

大部分选择器都是基于下面这个简单的页面:

&lpar;转&rpar;http接口测试——Jmeter接口测试实例讲解

http://my.oschina.net/hellotest/blog/512482

H&period;264编码之DCT变换原理

DCT变换是一种与FFT变换紧密相连的数学运算,当函数为偶函数是,其傅立叶展开式只有余弦项,因些称为余弦变换,其离散化的过程称为DCT(离散余弦)变换.下面我们就推导下H.264的4x4整数DCT公式 ...

GridControl 列中显示图片 z

如何在 DevExpress.XtraGrid.GridControl 显示图片列. 方法很多,我把它们逐一写在附言中,方便大家分情况合理使用. 附言1  附言2  附言3  第 1 条附言  ·  ...

AngularJS的开发工具---yeoman 简易安装

AngularJS 不错,yeoman作为推荐开发工具,网上的安装步骤较烦,这里给出简易步骤. 1.安装 Ruby     自己到 Ruby 官方下载最新安装包: http://rubyinstall ...

闲扯 Javascript 03 时钟和QQ延时框

时钟 : 所用到得图片  : 开启定时器 setInterval  间隔型 setTimeout  延时型 停止定时器 clearInterval clearTimeout 效果思路 获取系统时间 D ...

C语言:第0次作业

问题1: 你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢? 感性地讲,高中时意外看到了电影,自那时起就将将马克扎克伯格视为偶像,他天才的智慧和长远的眼光深深吸引了我 ...

tomcat源码阅读之SingleThreadModel

一.接口简介: 实现了SingleThreadModel接口的servlet类只能保证在同一时刻,只有一个线程执行该servlet实例的service方法,在tomcat实现中会创建多个servlet ...

tensorflow初次接触记录,我用python写的tensorflow第一个模型

tensorflow初次接触记录,我用python写的tensorflow第一个模型 刚用python写的tensorflow机器学习代码,训练60000张手写文字图片,多层神经网络学习拟合17000 ...

javascript中的call&lpar;&rpar;&comma;apply&lpar;&rpar;&comma;bind&lpar;&rpar;方法的区别

之前一直迷惑,记不住call(),apply(),bind()的区别.不知道如何使用,一直处于懵懂的状态.直到有一天面试被问到了这三个方法的区别,所以觉得很有必要总结一下. 如果有不全面的地方,后续再 ...

estern c语言,柯朗数(Courant number)研究相关推荐

  1. courant数_柯朗数(Courant number)研究

    在数值计算过程中,对于计算结果的准确性和效率有很高的要求,但是这两者之间往往互相矛盾:而使用柯朗数可用于平衡两者. 1.柯朗数的定义: C = sqrt(gh)*t/s 其中,t是时间步长,s是网格在 ...

  2. 如何用计算机辅助语言学习英语,计算机辅助下语言学习教学模式研究

    计算机辅助下语言学习教学模式研究 0引言 在现代我国高等职业教学规模不断扩大的过程中,其教学结构和体系也在不断的完善,人们也逐渐认识到高等教育中教学与学习活动的改革重要性.计算机辅助语言学习属于现代教 ...

  3. 武汉大学计算机学院 情感分析,跨语言情感分析方法研究

    跨语言情感分析方法研究 [摘要]:近些年来,随着自然语言处理技术和机器学习技术的发展,单语文本的情感分析已得到深入的研究和发展,各种关于词级.超词级.句子级.篇章级的情感分析研究已逐渐趋于成熟.然而, ...

  4. 摘要:语料库语言学自问世以来一直备受关注,其发展十分迅速。语料库语言学除了学科自身发展之外,还成为语言研究和语言教学研究的新工具。而语料库在语言测试方面的研究则以Alderson发表的《语料库在语言

    语言学研究 本栏目责任编辑:谢媛媛 Overseas English 海外英语 2018年6月 语料库在语言测试开发和设计中的应用 苏恒 (西南政法大学,重庆 401120) 摘要:语料库语言学自问世 ...

  5. c语言案例教学法的教学大纲,C语言程序设计案例教学法研究

    龙源期刊网 http://doc.xuehai.net C语言程序设计案例教学法研究 作者:徐亦丹刘瑛 来源:<电脑知识与技术>2017年第06期 摘要:该文就案例教学法的发展.好处.需要 ...

  6. 是什么让Go语言更适合人工智能研究?

    在人工智能研究或数据科学中使用Go好像并没有什么特别之处. 那么,为什么Go更适合用于人工智能和数据科学? 在30年前,Python被开发出来的初始目的不是为了构建机器学习或深度学习算法,也不是为了使 ...

  7. varied字符串c语言,C语言输入输出问题解析研究.pdf

    第 17卷第2期 西安文理学院学报:自然科学版 Vo1.17 No.2 2014年 4月 JournalofXi'anUniversityofArts&SciencefNatSciEd) Ap ...

  8. 浅谈视觉与语言中的多模态研究,究竟都研究什么

    前言 随着人工智能的整体进步,计算机视觉和自然语言处理已经有了巨大的.有了如此强大的算法和自主系统的综合能力,就需要合并知识领域,实现跨模态兼容,视觉语言(VisLang)研究具有更复杂的任务和交互式 ...

  9. lz78算法c语言,LZW数据压缩算法研究

    内容介绍 LZW数据压缩算法研究 46页 3.2万字 摘 要 随着信息化技术的蓬勃发展,日常需要处理或者传输的数据越来越多,数据的压缩也就变得越来越重要了.我们迫切的需要有好的压缩算法来支持我们的数据 ...

最新文章

  1. 用于文本识别的合成数据生成器
  2. ubuntu基于apache+postgresql编译安装zabbix
  3. Spring MVC配置多个视图解析器(FreeMarker,JSP)
  4. Spring休眠教程
  5. [转载] Java关键字(Java 8版本)
  6. GoogleNet家族
  7. Android SDK Permission大全访问权限
  8. Android 10.0 去掉开机正在优化应用Dialog
  9. python多久可以入门_python自学要多久能学会
  10. 系统是综合应用最新多媒体计算机技术,RM-6280C多道生理信号采集处理系统
  11. 读书笔记:《漫画生理学》
  12. Audio Unit(三):Audio Unit Development Fundamentals
  13. 采油工计算机试题库,数字化采油工题库完整.pdf
  14. 11 Tornado - 使用模板
  15. CRM客户关系管理系统之day01
  16. 怎么打开mobi格式的电子书
  17. Cause: java.sql.SQLException: 无效的列类型: 1111
  18. 顺丰菜鸟掐架:为“大数据”撕破脸?
  19. Python提示 TypeError: super(type, obj): obj must be an instance or subtype of type问题
  20. 学Python必备的八个网址,快点码住收藏起来吧

热门文章

  1. Laya打oppo包调试时注意问题
  2. YYModel的底层实现原理
  3. Delphi----心得03
  4. Python网络爬虫实战(二)数据解析
  5. 龙山区计算机学校,龙山县城区中小学招生报名系统操作指南
  6. java的右移运算符
  7. 【沃顿商学院学习笔记】领导力——Business Impact:07 逻辑模型一和逻辑模型二 Logic Model 1 2
  8. page builder odata model /UI2/PB_MODEL, first config, then cust and pers
  9. 2020-12-14(237. 删除链表中的节点)
  10. 【创建包:employee,完成如下功能】1. 创建一个员工类(Employee),其中包括:1) 4个私有属性:员工姓名(name)、员工年龄(age)、员工职位(position)、工资