还是老规矩先宣传一下QQ群群: 格子玻尔兹曼救星:293267908。就是为了早点毕业建的群。

代码完整版在群里lbm_matlab-master。文章请搜索:

(2015) Nicolas Pellerin, Sebastien Leclaire, and Marcelo Reggio. AN IMPLEMENTATION OF THE SPALART–ALLMARAS TURBULENCE MODEL IN A MULTI-DOMAIN LATTICE BOLTZMANN METHOD FOR SOLVING TURBULENT AIRFOIL FLOWS.

今天研究了一下Splart-Allmaras,因为论文要研究一下大涡。首先映入眼帘的是一句话:

......

好吧,康康代码:

% For the Spalart-Allmaras model in lid-driven cavity.
% input variables are 2d matrices.
% d: wall distances.
% nut is the turbulent viscosity that gets added onto the nominal
%   viscosity to produce the total effective viscosity.
% nu: nonminal (scalar) viscosity% apply bc for lid-driven cavity.
nutilde(1,:) = 0;
nutilde(end,:) = 0;
nutilde(:,1) = 0;
nutilde(:,end) = 0;% Model constants.
sigma = 2/3;
cb1 = 0.1355;
cb2 = 0.622;
kappa = 0.4187;
cw2 = 0.3;
cw3 = 2;
cv1 = 7.1;
% Derived model constants.
cw1 = cb1 / kappa^2 + ( 1 + cb2 ) / sigma;% Derived input variables.
ux = upwind_x(u,u,dh);
uy = upwind_y(u,v,dh);
vx = upwind_x(v,u,dh);
vy = upwind_y(v,v,dh);
% 这个公式是四种情况相加,i=x,j=y,i=j=y,i=x,j=y,i=y,j=x
S = 2*ux.^2 + 2*vy.^2 + (uy + vx).^2 - 2/3*(ux + vy).^2;
X = nutilde / nu;
fv1 = X.^3 ./ ( X.^3 + cv1^3 );
Stilde = S.^0.5 .* ( 1 ./ X + fv1 );
r = tanh( nutilde ./ ( kappa^2*Stilde.*d.^2 ) ) / tanh(1.0);
g = r + cw2 * ( r.^6 - 6 );
fw = g.*( ( 1 + cw3^6 ) ./ ( g.^6 + cw3^6 ) ).^(1/6);ntx = upwind_x(nutilde,u,dh);% ?
nty = upwind_y(nutilde,v,dh);
ntxx = spatial_difference_x(nutilde,dh);
ntyy = spatial_difference_y(nutilde,dh);
dnutilde = -( u.*ntx + v.*nty ) ...+ (nu + nutilde) / sigma .* ( ntxx + ntyy ) ...+ (cb2 + 1) / sigma * ( ntx.^2 + nty.^2 ) ...+ cb1 * Stilde .* max(nutilde,nu/100) ...- cw1 * fw .* ( nutilde ./ d ).^2;nutilde = nutilde + dt*dnutilde;
% apply bc for lid-driven cavity.
nutilde(1,:) = 0;
nutilde(end,:) = 0;
nutilde(:,1) = 0;
nutilde(:,end) = 0;nut = nutilde.*fv1; %动力涡粘性系数
omega = turbulent_relaxation(nu, nut);

1、是四种情况相加,i=x,j=y,i=j=y,i=x,j=y,i=y,j=x,其中的k是指的xy相等的情况,所以S = 2*ux.^2 + 2*vy.^2 + (uy + vx).^2 - 2/3*(ux + vy).^2;

2、中的(tanh)函数表达式:

其MATLAB实现为:

figure('NumberTitle', 'off', 'Name', 'Tanh函数');
x=-5:0.1:5;
y=2./(1+exp(-2*x))-1;
plot(x,y);
xlabel('X轴');ylabel('Y轴');%坐标轴表示对象标签
grid on;%显示网格线
axis on;%显示坐标轴
axis([-5,5,-1,1]);%x,y的范围限制
title('Tanh函数');
————————————————
版权声明:本文为CSDN博主「拦路雨g」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lanluyug/article/details/76791271

3、迎风格式 upwind difference

function d = upwind_x(s, u, dh)
% takes upwind difference
% indexing: s(j,i)d = 0*s;% boundaries.
d(:,1) = ( s(:,2) - s(:,1) ) / dh;
d(:,end) = ( s(:,end) - s(:,end-1) ) / dh;
% interior.
mask = u(:,2:end-1) >= 0;
d(:,2:end-1) = ...(1-mask) .* s(:, (2:end-1)+1 ) ...+ (-1+2*mask) .* s(:, 2:end-1 ) ...- mask .* s(:, (2:end-1)-1 );

对上下边界进行一阶差分;对方腔中部采用二阶差分。当然也有其他偏微分方程数值解法。

4、

dnutilde = -( u.*ntx + v.*nty ) ...+ (nu + nutilde) / sigma .* ( ntxx + ntyy ) ...+ (cb2 + 1) / sigma * ( ntx.^2 + nty.^2 ) ...+ cb1 * Stilde .* max(nutilde,nu/100) ...- cw1 * fw .* ( nutilde ./ d ).^2;

nutilde在边界处都设为0。

代码中max(nutilde,nu/100)指的是非边界区域最少要加入一个比较小的粘度,否则最终会使得nutilde到处都==0.

5、最终nut = nutilde.*fv1; omege就得到了:

tau = 3 * ( nu_lb + nut ) + 0.5;
omega = 1 ./ tau;

Splart-Allmaras湍流模型及MATLAB编程~相关推荐

  1. art2模型 matlab,Splart-Allmaras湍流模型及MATLAB编程~

    还是老规矩先宣传一下QQ群群: 格子玻尔兹曼救星:293267908.就是为了早点毕业建的群. 代码完整版在群里lbm_matlab-master.文章请搜索: (2015) Nicolas Pell ...

  2. matlab中三阶样条模型,【MATLAB编程】三次样条

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 在最简单的用法中,spline获取数据x和y以及期望值xi,寻找拟合x和y的三次样条内插多项式,然后,计算这些多项式,对每个xi的值,寻找相应的yi.例如 ...

  3. 模糊语言群决策matlab编程,模糊群决策在物流选址中的运用

    模糊群决策在物流选址中的运用是小柯毕业论文网通过网络搜集,并由本站工作人员整理后发布的,模糊群决策在物流选址中的运用是篇质量较高的学术论文,供本站访问者学习和学术交流参考之用,不可用于其他商业目的,模 ...

  4. 两阶段鲁棒优化模型 多场景 采用matlab编程两阶段鲁棒优化程序

    两阶段鲁棒优化模型 多场景 采用matlab编程两阶段鲁棒优化程序,考虑四个场景,模型采用列与约束生成(CCG)算法进行求解,场景分布的概率置信区间由 1-范数和∞-范数约束,程序含拉丁超立方抽样+k ...

  5. Matlab编程技巧:打开模型时加载数据字典

    本文研究通过回调函数,在打开模型时加载数据字典到工作空间中. 文章目录 1 问题引入 2 简单例程 2.1 模型配置 2.2 数据字典表格 2.3 创建脚本 3 效果演示 4 总结 1 问题引入 在& ...

  6. 负荷需求响应模型 基于Logistic函数 采用matlab编程,考虑电价激励下的乐观响应和悲观响应

    负荷需求响应模型 基于Logistic函数 采用matlab编程,考虑电价激励下的乐观响应和悲观响应,利用负荷需求响应模型得到峰转平.平转谷的实际负荷转移率,从而得到基于Logistic函数的负荷转移 ...

  7. matlab 天线设计 泰勒加权_微带天线设计尺寸MATLAB编程及其仿真验证

    龙源期刊网 http://www.qikan.com.cn 微带天线设计尺寸 MATLAB 编程及其仿真 验证 作者:杨小敏 母玉泽 严月 郭小康 马波 张栋 莫骄弟 来源:<中国科技博览> ...

  8. Algorithm之PrA:PrA之nLP非线性规划算法经典案例剖析+Matlab编程实现

    Algorithm之PrA:PrA之nLP整数规划算法经典案例剖析+Matlab编程实现 目录 有约束非线性规划案例分析 1.投资决策问题 2.利用Matlab实现求解下列非线性规划​ 无约束极值问题 ...

  9. 主程序分析法MATLAB编程,专题五  概率统计问题的Matlab求解

    [实验目的及要求] I.熟练掌握Matlab编程中常见概率分布的概率密度.概率分布.逆分布.均值和方差等语句的调用格式,学会用Matlab对服从各种分布的样本进行参数估计和假设检验.对实际问题,能够进 ...

最新文章

  1. 数组中的一些常用方法总结
  2. win10电脑pppoe拨号模块损坏_电脑维修免费在线咨询
  3. IEEE conference 中出现的PDF字体嵌入的问题
  4. all controls within the same view will share the same data Model
  5. ajax jquery php_基于Ajax jquery的使用php登录
  6. 野生前端的数据结构基础练习(6)——集合
  7. HTTP缓存(HTTP Cacheing):缓存控制(Cache-Control)
  8. CSS 3的display:盒类型详解
  9. 【Citrix】XenCenter更新VM内存属性
  10. python画图包哪个好_十款好用的画图软件,你都用过吗?
  11. pytorch下可训练分段函数的写法
  12. flutter网络请求基础知识铺垫、及实战举例
  13. 从titles表获取按照title进行分组,每组个数大于等于2,给出title以及对应的数目t。 注意对于重复的emp_no进行忽略。...
  14. RK G87机械键盘使用指南
  15. 2021年6月4日大学化学无机原理(13)原子的电子层结构
  16. 13-MyBatis 使用了哪些设计模式?在源码中是如何体现的?
  17. 全志T7 Display驱动简介
  18. 小学生C++趣味编程 上机作业 每日一练 第7单元 函数
  19. Log4j2突发重大漏洞之解决方案
  20. [源码和文档分享]基于C语言的局域网飞鸽传书软件设计与实现

热门文章

  1. 四川高中计算机大赛官网,2018年(第十届)四川省大学生程序设计竞赛
  2. 8种用Python实现定时执行任务的方案,一定有你用得到的
  3. python怎样分析文献综述怎么写_如何撰写一份优秀的文献综述?
  4. UGUI——Text文字 不清晰or有毛边儿
  5. JAVA后端判断纯中文正则汉字校验
  6. xiao jiqiao
  7. 本地连接服务器搭建的 Redis 集群
  8. 淘宝技术这十年书籍介绍
  9. Java猜数字游戏(实现0~9的随机数猜数字游戏,数值范围可以自行更改,内容仅供参考)
  10. 3310 4g java_疾速上网!诺基亚3310现推出4G LTE版