翻译自: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边界条件然后模型开始收敛了。

有人吗?

Sherlock_1812

有相同的问题。buoyantPressure边界条件和fixedFLuxPressure边界条件有什么区别?

__________________
祝好



Srivaths

zandi

大家好

2.3.0版本的OpenFOAM没有buoyantPressure库?我对吗?

buoyantPressure边界和fixedFluxPressure边界有什么不同吗?

为什么fixedFluxPressure边界条件收敛性更好?这仅仅是他们之间的区别吗?

请求帮助

fabian_roesler

2.2.2的OpenFOAM已经有了这两个边界条件了。在更新的版本中,buoyantPressure边界消失了。看一下源代码或者Doxygen就可以澄清。

从buoyantPressureFvPatchScalarField我们可以知道:

对于浮力流动,边界条件设置为压力梯度更合适。如果变量名是pd, p_rgh或ph_rgh之一,我们假设压力变量是并且梯度使用如下表达式设置:

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

从fixedFluxPressureFvPatchScalarField我们可以看出:这个边界条件调整压力梯度使得在边界上的通量由速度边界条件指定。

指定的流量被压力梯度补偿。用估算

当压力扩散被计算时,两者都可以从数据库中查看

梯度使用下式计算:

fabian_roesler

一些额外的注解:

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

Phi和phiHbyA(预测通量场)直接与压力方程相关联。在一个壁面,通量差趋近于零,因此边界条件变成zeroGradient。

buoyanPressure边界条件是用一种更接近物理的方法,一种按照Archimedes来描述压力梯度的方法。

我希望我的解释是容易理解并且正确的。

祝好

Fabian

santiagomarquezd

大家好,我也正在处理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们有用。

angelmonsalve

非常感谢解释!!!

我需要关于fixedFluxPressure边界的解释【翻译】的更多相关文章

  1. chtMultiRegionSimpleFoam求解器的热源不在边界上【翻译】

    翻译自:CFD-online 帖子地址:http://www.cfd-online.com/Forums/openfoam-solving/126777-chtmultiregionsimplefoa ...

  2. 🏆【Java技术专区】「编译器专题」重塑认识Java编译器的执行过程(消除数组边界检查+公共子表达式)!

    前提概要 Java的class字节码并不是机器语言,要想让机器能够执行,还需要把字节码翻译成机器指令.这个过程是Java虚拟机做的,这个过程也叫编译.是更深层次的编译. 在编译原理中,把源代码翻译成机 ...

  3. git reset –mixed –soft –hard命令解释。

    直接看官方的解释. 其中HEAD代表版本库,index代表暂存区,另外还有一个我们增删改代码的工作区.所以官方解释翻译过来就是: --hard : 回退版本库,暂存区,工作区.(因此我们修改过的代码就 ...

  4. opencv笔记4:模板运算和常见滤波操作

    time:2015年10月04日 星期日 00时00分27秒 # opencv笔记4:模板运算和常见滤波操作 这一篇主要是学习模板运算,了解各种模板运算的运算过程和分类,理论方面主要参考<图像工 ...

  5. 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 ...

  6. java 虚拟机与并发处理几个问题简要(一)

    一.   处理任务时,应该将代码分成不同的部分,每一部分由一个线程进行,但是会因为任务负载不平衡导致有闲有忙.最好是应分成不同的部分,分配不同的线程,尽量让处理器不停的处理,不要闲下来.如何分配线程数 ...

  7. 安卓自己定义View进阶-Path基本操作

    版权声明:本人全部文章均採用 [知识共享 署名-非商业性使用-禁止演绎 4.0 国际 许可协议] 转载前请保证理解此协议,原文出处 :http://www.gcssloop.com/#blog htt ...

  8. android 开发 View _10_ Path之基本操作

    转载地址:http://www.gcssloop.com/customview/Path_Basic/ 安卓自定义View进阶-Path之基本操作 在上一篇Canvas之图片文字中我们了解了如何使用C ...

  9. Auto Encoder用于异常检测

    对基于深度神经网络的Auto Encoder用于异常检测的一些思考 from:https://my.oschina.net/u/1778239/blog/1861724 一.前言 现实中,大部分数据都 ...

随机推荐

  1. J.U.C之读写锁:ReentrantReadWriteLock

    此篇博客所有源码均来自JDK 1.8 重入锁ReentrantLock是排他锁,排他锁在同一时刻仅有一个线程可以进行访问,但是在大多数场景下,大部分时间都是提供读服务,而写服务占有的时间较少.然而读服 ...

  2. 如何设置MySql Server远程访问(Debian Linux)

    1. 登录Mysql Server: $mysql -u root -p 2. 检查网络,Server是否允许远程连接: mysql> show variables like '%skip_ne ...

  3. 关于微信小程序iOS端时间格式兼容问题

    经过测试发现,当时间格式为 2018-08-08 08:00 ,需要将时间转为其他格式时,Android端转换成功,iOS端报错或是转为NaN 这是因为iOS端对符号‘ - ’不支持,也就是说iOS端 ...

  4. 关于Vue中,父组件获取子组件的数据(子组件调用父组件函数)的方法

    1. 父组件调用子组件时,在调用处传给子组件一个方法 :on-update="updateData"   2. 子组件在props中,接收这个方法并声明 props: { onUp ...

  5. Scrapy 安装与使用

    Scrapy的安装: 当前环境win10,python_3.6.4,64bit.在命令提示符窗口运行pip install Scrapy,出现以下结果: building 'twisted.test. ...

  6. CentOS7安装CDH 第八章:CDH中对服务和机器的添加与删除操作

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

  7. cmd中for的用法

    在cmd窗口输入for /?后的原文,被我自己“翻译”了一下,更像人话了. 推荐去https://www.cnblogs.com/cbugs/p/8992059.html这篇部落格里去看看,讲的更好. ...

  8. 使用Atmel Studio编程Arduino Uno开发板

    使用Atmel Studio 7编程Arduino Uno开发板非常简单.Arduino Uno开发板是使用AVR微控制器的嵌入式应用开发的著名平台之一. 大多数人通常会使用Arduino自己的软件工 ...

  9. JS多线程之Web Worker

    什么是Web Worker web worker 是运行在后台的 JavaScript,不会影响页面的性能. 当在 HTML 页面中执行脚本时,页面的状态是不可响应的,直到脚本已完成. web wor ...

  10. dt7.0自定义推送熊掌号功能插件

    因要推送较早的数据,所以写了一个自定义推送熊掌号的功能插件,因我自己站点是新站,推送的数据较少,所以程序比较简单,算是初始版本,凑合着用吧. <?php /* 百度当天主动推送熊掌功能 作者:6 ...