我需要关于fixedFluxPressure边界的解释【翻译】
翻译自:CFD-online
帖子地址:http://www.cfd-online.com/Forums/openfoam-solving/82581-i-need-explanations-about-fixedfluxpressure.html
Cyp:
大家好!
我看了一下fixedFluxPressure边界条件并且我不确定我能很好的理解这个边界条件。
如果我想要根据进入的速度估算压力,我猜我需要使用这个边界条件。
更进一步,在源代码中,有一段可以读到:
Code:
gradient()
= (phip - (patch().Sf() & Up))/patch().magSf()/rAp;
我没有找一个数学公式与这段代码联系起来。
欢迎任何启示。
祝好
Cyp
JR22:
我知道这是一个老帖子了,但是它仍然是非常相关的。
我在尝试使buoyantBoussinesqSimpleFoam求解器收敛的时候遇上了大问题。我把p_rgh里的边界从buoyantPressure边界条件改为fixedFluxPressure边界条件然后模型开始收敛了。
有人吗?
有相同的问题。buoyantPressure边界条件和fixedFLuxPressure边界条件有什么区别?
__________________
祝好
Srivaths
大家好
2.3.0版本的OpenFOAM没有buoyantPressure库?我对吗?
buoyantPressure边界和fixedFluxPressure边界有什么不同吗?
为什么fixedFluxPressure边界条件收敛性更好?这仅仅是他们之间的区别吗?
请求帮助
2.2.2的OpenFOAM已经有了这两个边界条件了。在更新的版本中,buoyantPressure边界消失了。看一下源代码或者Doxygen就可以澄清。
从buoyantPressureFvPatchScalarField我们可以知道:
对于浮力流动,边界条件设置为压力梯度更合适。如果变量名是pd, p_rgh或ph_rgh之一,我们假设压力变量是
并且梯度使用如下表达式设置:

否则,我们假设它为静压,并且梯度使用:

从fixedFluxPressureFvPatchScalarField我们可以看出:这个边界条件调整压力梯度使得在边界上的通量由速度边界条件指定。
指定的流量被压力梯度补偿。用
估算
当压力扩散被计算时,两者都可以从数据库中查看
梯度使用下式计算:

一些额外的注解:
fixedFluxPressure边界条件具有更好的收敛性。我认为这是因为更多的压力与梯度计算相关联。

Phi和phiHbyA(预测通量场)直接与压力方程相关联。在一个壁面,通量差趋近于零,因此边界条件变成zeroGradient。
buoyanPressure边界条件是用一种更接近物理的方法,一种按照Archimedes来描述压力梯度的方法。
我希望我的解释是容易理解并且正确的。
祝好
Fabian
大家好,我也正在处理fixedFluxPressure边界并且这个帖子很有帮助。源代码至少在2.3.0版本中被改变。现在的类定义更加简单。
fixedFluxPressureFvPatchScalarField.C
Code:
125 void
Foam::fixedFluxPressureFvPatchScalarField::updateCoeffs
126
(
127 const
scalarField& snGradp
128
)
129
{
130 if
(updated())
131
{
132
return;
133
}
134
135
curTimeIndex_ = this->db().time().timeIndex();
136
137
gradient() = snGradp;
138
fixedGradientFvPatchScalarField::updateCoeffs();
139
}
仅在137行设置合适的梯度然后调用从fixedGradientFvPatchScalarField类调用updateCoeffs()方法(从现有类继承来的)。这需要你在求解器水平设置snGradp的值。比如,从interFoam求解器的pEqn.H头文件,我们可以知道:
Code:
27 //
Update the fixedFluxPressure BCs to ensure flux
consistency
28
setSnGrad
29
(
30
p_rgh.boundaryField(),
31
(
32
phiHbyA.boundaryField()
33 -
(mesh.Sf().boundaryField() & U.boundaryField())
34
)/(mesh.magSf().boundaryField()*rAUf.boundaryField())
35
);
从新代码中我们可以读出:

希望这能帮助2.3.0的用户。
ssss:
我想简单评论一下,为什么OpenFOAM使用santiagomarquezd (gracias por el análisis
del código fuente)给出的表达式来计算边界的压力表面法向梯度。
首先我们需要写下Rhie-Chow插值方法离散的动量方程:

其中f表示表面插值,pm是p_rgh的变量,pm的值是
,矢量u是速度。用表面矢量
去乘方程,其中n是表面法向量:

然后下面方程中的压力表面梯度
可以被获得:

希望对foamer们有用。
非常感谢解释!!!
我需要关于fixedFluxPressure边界的解释【翻译】的更多相关文章
- chtMultiRegionSimpleFoam求解器的热源不在边界上【翻译】
翻译自:CFD-online 帖子地址:http://www.cfd-online.com/Forums/openfoam-solving/126777-chtmultiregionsimplefoa ...
- 🏆【Java技术专区】「编译器专题」重塑认识Java编译器的执行过程(消除数组边界检查+公共子表达式)!
前提概要 Java的class字节码并不是机器语言,要想让机器能够执行,还需要把字节码翻译成机器指令.这个过程是Java虚拟机做的,这个过程也叫编译.是更深层次的编译. 在编译原理中,把源代码翻译成机 ...
- git reset –mixed –soft –hard命令解释。
直接看官方的解释. 其中HEAD代表版本库,index代表暂存区,另外还有一个我们增删改代码的工作区.所以官方解释翻译过来就是: --hard : 回退版本库,暂存区,工作区.(因此我们修改过的代码就 ...
- opencv笔记4:模板运算和常见滤波操作
time:2015年10月04日 星期日 00时00分27秒 # opencv笔记4:模板运算和常见滤波操作 这一篇主要是学习模板运算,了解各种模板运算的运算过程和分类,理论方面主要参考<图像工 ...
- Machine Learning - 第6周(Advice for Applying Machine Learning、Machine Learning System Design)
In Week 6, you will be learning about systematically improving your learning algorithm. The videos f ...
- java 虚拟机与并发处理几个问题简要(一)
一. 处理任务时,应该将代码分成不同的部分,每一部分由一个线程进行,但是会因为任务负载不平衡导致有闲有忙.最好是应分成不同的部分,分配不同的线程,尽量让处理器不停的处理,不要闲下来.如何分配线程数 ...
- 安卓自己定义View进阶-Path基本操作
版权声明:本人全部文章均採用 [知识共享 署名-非商业性使用-禁止演绎 4.0 国际 许可协议] 转载前请保证理解此协议,原文出处 :http://www.gcssloop.com/#blog htt ...
- android 开发 View _10_ Path之基本操作
转载地址:http://www.gcssloop.com/customview/Path_Basic/ 安卓自定义View进阶-Path之基本操作 在上一篇Canvas之图片文字中我们了解了如何使用C ...
- Auto Encoder用于异常检测
对基于深度神经网络的Auto Encoder用于异常检测的一些思考 from:https://my.oschina.net/u/1778239/blog/1861724 一.前言 现实中,大部分数据都 ...
随机推荐
- LunHui 的生命观
LunHui 的生命观 来源 https://www.zhihu.com/question/346510295 作者:齐天大圣链接:https://www.zhihu.com/question/346 ...
- 【转载】 C#使用String.Format拼接字符串
在C#程序开发过程中,很多时候会使用字符串拼接,最简单的字符串拼接操作就是所有的字符串使用加号+相加连接起来,但这种代码形式非常不适合代码维护阅读,尤其是拼接字符串语句比较复杂的时候,如拼接SQL语句 ...
- shim和polyfill 区别解释
polyfill 是 shim 的一种.shim 是将不同 api 封装成一种,比如 jQuery 的 $.ajax 封装了 XMLHttpRequest 和 IE 用 ActiveXObject 方 ...
- springcloud工程建立 父工程+公用子模块+微服务提供模块
建立 Java Working Set:工程多的时候可以展开收缩,方便管理 切换到Package Explorer视图,并点击视图右侧下箭头,选择Working Sets,如下图: 建立父工程,将后续 ...
- javascript_14-对象
什么是对象 生活中的对象,一个车.一个手机 对象具有特性和行为 面向对象和基于对象 面向对象:可以创建自定义的类型.很好的支持继承和多态.面向对象的语言有 c++ .Java. C# ... 面向对象 ...
- 戴尔 R730 服务器装 server 2016。
服务器里面原装系统是 centos 7 ,服务器快递过来时 我没用root账号,(主要是主管忘了这台服务器用户名密码了). 需要用的系统是 server 2016 我这边就按正常的装机流程装机. 1, ...
- Ubuntu16.04, CUDA8 CUDNN6 下安装 Tensorflow-gpu, Keras, Pytorch, fastai
如何访问tensorflow官方网站 tensorflow官方网站变为:https://tensorflow.google.cn/ 安装深度学习框架 0. ubuntu查看CUDA和cuDNN版本 C ...
- 【搜索-剪枝-偏难】PAT-天梯赛-L3-015. 球队“食物链”
L3-015. 球队“食物链” 某国的足球联赛中有N支参赛球队,编号从1至N.联赛采用主客场双循环赛制,参赛球队两两之间在双方主场各赛一场. 联赛战罢,结果已经尘埃落定.此时,联赛主席突发奇想,希望从 ...
- java中的finally用法总结
不管 try 语句块正常结束还是异常结束,finally 语句块是保证要执行的.如果 try 语句块正常结束,那么在 try 语句块中的语句都执行完之后,再执行 finally 语句块.如果 try ...
- WEB知识补充 支付宝 支付