翻译自:CFD-online

帖子地址:http://www.cfd-online.com/Forums/openfoam-solving/144625-alphat.html

Wien3

早上好

我正在研究一个立方体内有一个球体的OF模型。流体从入口到出口。

当它为不可压缩时,我想我必须将四个壁面设置成这样:

type alphatWallFunction;

value uniform 0;

下面的错误就出现了:

PHP
Code:

file: /home/jstoeckl/Desktop/grav0/0/alphat.boundaryField.Back from line 26 to line 27.

From function fvPatchField<Type>::New(const fvPatch&, const DimensionedField<Type, volMesh>&, const dictionary&)

in file /home/opencfd/OpenFOAM/OpenFOAM-2.3.0/src/finiteVolume/lnInclude/fvPatchFieldNew.C at line 143.



FOAM exiting

我想知道这个参数是怎么运行的。我认为这个参数在壁面处应该为0(壁面和球面),在入口和出口应该有不同的值,我还有其他的疑惑:

—对于不可压缩流,我应该如何计算这个值

—如何设置这两个输入值?设置应该仅仅设置为"fixedValue"?

非常感谢你的帮助。

alexeym

你好

你截去了你的错误信息中有意义的部分。

关于alphat是这样计算的:

Code:

alphat =
turbulence->nut()/Prt;

湍流普朗特数的值常常在0.75和0.95之间随机选取

Wien3

你好

我打算再次解释我的困惑:

  1. 非压缩流动都需要普朗特数?
  2. 对于这种流动,我是否应该设置固体单元为"alphatWallFunction"或"alphatJayatillekeWallFunction"?
  3. 对于出口和入口,我是否应该设置为"fixedValue"或者仅仅写为"calculated"?他们不是壁面,我想我不能对他们使用alphatFunctions

现在我的alphat输入值是这样的:

Quote:

dimensions [0 2
-1 0 0 0 0];



internalField uniform 0;



boundaryField

{

Back

{

type alphatJayatillekeWallFunction;

Prt 0.85;

value uniform 0;

}

Bottom

{

type alphatJayatillekeWallFunction;

Prt 0.85;

value uniform 0;

}

Front

{

type alphatJayatillekeWallFunction;

Prt 0.85;

value uniform 0;

}

Icosphere

{

type alphatJayatillekeWallFunction;

Prt 0.85;

value uniform 0;

}

Inlet

{

type calculated;

value uniform 0;

}

Outlet

{

type calculated;

value uniform 0;

}

Top

{

type alphatJayatillekeWallFunction;

Prt 0.85;

value uniform 0;

}

}

如果没有把我的疑惑描述得比以前更清楚,我表示抱歉。

再次感谢。

alexeym

你好

Quote:

Originally
Posted by Wien3 

1) Does an
incompressible fluid need a Pr number?

他不是一种流动,是求解器需要普朗特数

Quote:

2) With this
kind of fluid, should I assign solid elements as
"alphatWallFunction" or "alphatJayatillekeWallFunction"?

在你模拟不可压缩流动的时候(求解器使用nut场,比如方程被密度除),你不能使用alphatWallFunction(当它寻找mut场)。因此它是"alphatJayatillekeWallFunction"(在不可压湍流模型当中仅有的alphat壁面函数)。

Quote:

3) And with
inlet and outlet, should I assign a "fixedValue" for them or just
write "calculated"?? As they are not Walls, I cannot use the
alphatFunctions I guess.

"calculated"应该可以。

Wien3

好的,非常感谢!我想我的文件是正确的!

还有其他问题:我应该用相同的方法设置"epsilon, omega, k and
nut"?我的意思是每个入口/出口(inlet/outlet)都是"calculated uniform 0",并且对于k,壁面设置为kqRWallFunction,对于epsilon,壁面设置为epsilonWallFunction,对于omega,壁面设置为omegaWallFunction,和nutWallFunction(所有都为uniform 0)。

谢谢!

alexeym

我常常使用zero gradient作为湍流出口边界条件。对于入口,设置为turbulentIntensityKineticEnergyInlet,我相同的边界类型(看$FOAM_SRC/finiteVolume/fields/fvPatchFields/derived,
$FOAM_SRC/turbulenceModels/incompressible/RAS/derivedFvPatchFields文件夹或者你是用fixedValue估算:http://www.cfd-online.com/Wiki/Turbulence_free-stream_boundary_conditions).对于壁面—是的—壁面函数。

Wien3

你好

你的建议非常有帮助!现在我更好的理解了很多事情。我想这个帖子能帮助更多像我一样的人在OF中成熟

看来你对这个程序了解很多,你能看一下我上次在这个论坛发的帖子吗?题目为"pressure
and velocity in inlet/outlet definitions"。

非常感谢你

alexeym

我已经看过你的信息了,但是我不知道你想模拟什么。

Wien3:

好的,我就尝试解释一下。

相关的模型我已经在论坛上讨论过了(一个立方体内有一个球体。流体从入口到出口)我仅仅尝试分析温度和压力在不同单元的变化。

当我从enGrids导入我的模型,仅仅存在p和U文件。于是我决定创建一个T文件并且将simpleFoam求解器转换为buoyantBoussinesqSimpleFoam(当它为不可压缩流动)。

显然,添加这一个文件是不够的,我必须做其他的事情,比如alphat, g, p_rgh等。直到我分析p和p_rgh,所有事情才算完成好。并且我注意到了两件事:

—第一件事当我到了终止时间(endTime)1000,我点击,它不再继续。直到迭代数为2,它才开始。

—第二件事是它不出现任何的热传递,因此温度场始终和开始时一样。这也是为什么我需要知道我的p和p_rgh(我认为T和U是正确的)是对的或者对我的模型影响不大:

PHP
Code:

p_rgh



dimensions      [0 2 -2 0 0 0 0];



internalField   uniform 0;

boundaryField

{

    Back

    {

        type            fixedFluxPressure;

rho             rhok;

value           uniform 0;

}

    Bottom

    {

        type            fixedFluxPressure;

rho             rhok;

value           uniform 0;

}

    Front

    {

        type            fixedFluxPressure;

rho             rhok;

value           uniform 0;

}

    Icosphere

    {

        type            fixedFluxPressure;

rho             rhok;

value           uniform 0;

}

    Inlet

    {

        type            fixedFluxPressure;

rho             rhok;

value           uniform 0;

}

    Outlet

    {

        type            fixedFluxPressure;

rho             rhok;

value           uniform 0;

}

    Top

    {

        type            fixedFluxPressure;

rho             rhok;

value           uniform 0;

}

}

PHP
Code:

p

    Back

    {

        type zeroGradient;

    }

    Bottom

    {

        type zeroGradient;

    }

    Front

    {

        type zeroGradient;

    }

    Icosphere

    {

        type zeroGradient;

    }

    Inlet

    {

        type zeroGradient;

    }

    Outlet

    {

        type  fixedValue;

        value uniform 0;

    }

    Top

    {

        type zeroGradient;

  }

    

}

PHP
Code:

T



dimensions      [0 0 0 1 0 0 0];

internalField   uniform 300;

boundaryField

{

    Back

    {

        type            fixedValue;

value           uniform 300;

}

    Bottom

    {

        type            fixedValue;

value           uniform 300;

}

    Front

    {

        type            fixedValue;

value           uniform 300;

}

    Icosphere

    {

        type            fixedValue;

value           uniform 400;

}

    Inlet

    {

        type            fixedValue;

value           uniform 250;

}

    Outlet

    {

        type            zeroGradient;

}

    Top

    {

        type            fixedValue;

value           uniform 300;

}

}

PHP
Code:

U

dimensions      [0 1 -1 0 0 0 0];



internalField   uniform (0 0 0);

boundaryField

{

    Back

    {

        type  fixedValue;

        value uniform (0 0 0);

    }

    Bottom

    {

        type  fixedValue;

        value uniform (0 0 0);

    }

    Front

    {

        type  fixedValue;

        value uniform (0 0 0);

    }

    Icosphere

    {

        type  fixedValue;

        value uniform (0 0 0);

    }

    Inlet

    {

        type  fixedValue;

        value uniform (0.535 0 0);

    }

    Outlet

    {

        type zeroGradient;

    }

    Top

    {

        type  fixedValue;

        value uniform (0 0 0);

    }



}

我希望我更好的解释了我的问题!

先谢过

alexeym

直到现在我也不知道你想干什么。p_rgh, U, T似乎是合理的。压力p在求解器中被计算:

Code:

...

volScalarField
p

(

IOobject

(

"p",

runTime.timeName(),

mesh,

IOobject::NO_READ,

IOobject::AUTO_WRITE

),

p_rgh +
rhok*gh

);

...

好的,你的p_rhg需要被计算(没有固定值的边界),因此如下的代码

Code:

if
(p_rgh.needReference())

{

p +=
dimensionedScalar

(

"p",

p.dimensions(),

pRefValue -
getRefCellValue(p, pRefCell)

);

p_rgh = p -
rhok*gh;

}

将被执行。但是求解器不会从你的0文件夹下读取你的p文件

这个部分是高深莫测的:

Quote:

-
The first one is that when I click play it doesn't continue until
my endTime (defined in controlDict) which is 1000. It does it just
until 2, which is the numbers of iterations.

- The second one is it doesn't appear any heat transference, so
temperature fields stay the same that at the beginning.

执行?你点击哪里执行?

如果你想要讨论你的controlDict, fvSolution和fvSchemes,请附上你的文件(和模拟的输出结果)

Wien3

你好!

好的,这些文件都没问题。你告诉我p文件是被程序计算出来的。这是否意味着我可以将它从0文件夹删除或者我必须将所有的单元设置为uniform 0?

首先,为了简化模型,为了避免被重力影响,我设置重力为0。用初始条件初始化之后,出现了如下信息:

PHP
Code:

--> FOAM FATAL ERROR:

Continuity error cannot be removed by adjusting the outflow.

Please check the velocity boundary conditions and/or run potentialFoam to initialise the outflow.

Total flux              : 10.4374

Specified mass inflow   : 2.14

Specified mass outflow  : 0

Adjustable mass outflow : 0





    From function adjustPhi(surfaceScalarField&, const volVectorField&,volScalarField&)

    in file cfdTools/general/adjustPhi/adjustPhi.C at line 118.



FOAM exiting

为了解决它,我拷贝文件夹将fvSolution下的"SIMPLE"改为

"potentialFlow"并且运行potentialFoam求解器初始化这些值。然后,我拷贝主文件夹下的0/U文件并且再次运行buoyantBoussinesqSimpleFoam求解器。

我已经将controlDict, fvSolution和fvSchemes文件放到附件并且附上了模拟结果的图片。

当我说"按下运行",我是指OpenFOAM,因为你可以看到模拟停在了第2步(也是迭代的步数)。正如你在温度图片中看到的,没有任何温度变化。

我不知道哪个文件错了

先谢过。

alexeym

你好

  1. 这个,松弛收敛判据:

Code:

residualControl

{

"(p|T|U|k|epsilon|omega)"
0.5; //*(7)

}

这个是你模拟迭代2次的可能原因。

  1. 从你的边界温度截图值(你选择边界没有内部网格)。你的边界除了出口都是fixedValue。因此你在你的屏幕上得到这些固定值。如果你想看到温度变化—选择内部网格,用截面切开它。

Wien3

早上好

  1. 关注p文件,我已经理解了可以不管它的输入因为求解器会计算这个值而不是从0文件夹下读取。不管怎样,我不会从0文件夹下删除p文件。
  2. 关于减少残差,我可以轻易的减少它到0.31(仅迭代3次)如果我进一步减少残差,它就发散了(比如0.3)。

    因此我猜测这不是残差的问题。

  3. 你谈到温度相关的建议,这是非常有用的。但是我的问题是我的理论没有完全模拟确认。我在附件中有图片。第一个当中你可以看到边界温度,第二个右侧部分似乎有一些热传递(尽管似乎已经停止了)并且球一直是800K,没有任何换热器。

谢谢你。

alexeym

你好

  1. 是这样的,求解器在开始不会读取p文件。它只读p_rgh文件。
  2. 一般来说,残差的值应该低于1e-4。
  3. 看了一下附件,你的模拟结果似乎发散了。是否在你的帖子中缺少一些信息?你是否能贴出你的算例?(当然,我可以自己复制它但是会花更多的时间)。

Wien3

你好

我已经附上了我的文件。我已经改变了controlDict的时间,它只提升了一点点。因为OF论坛不接受如此大的文件夹,我只能将0和system文件传上来。这带来了持续的问题,因此导入0/U(使用potentialFoam求解器)的先前文件夹,我能上传后面的这些图片。注意一下给定的值,这个算例中的压力和速度值是巨大的。

alexeym

好的,没有网格,这些都是没有意义的。当然我可以构建网格并且让这个算例跑起来。但是这是我的网格并且你在运行你的网格算例时出现的问题。将网格上传到其他地方,有许多其他地方可以存储你的大文件。

Wien3

你好

我找到方法了。我贴出了两个链接:第一个是带有初始条件的模型和第二个从运行potentialFoam求解器的算例中拷贝出来的,因为它存在连续问题。

http://www.filedropper.com/test00

http://freakshare.com/files/th1rvk69/test01.zip.html

alexeym

不明白为什么我需要第二个存档但是...

  1. 使用你自己的心的网格。几何没有那么复杂。
  2. 对于你的配置

2.1.

Code:

residualControl

{

"(p|T|U|k|epsilon|omega)"
0.3; //*(7)

}

应该像这样

Code:

residualControl

{

"(p_rgh|T|U|k|epsilon|omega)"
1e-2;

}

2.2.

Code:

ddtSchemes

{

default
Euler;

}

应该是

Code:

ddtSchemes

{

default
steadyState;

}

2.3.

Code:

gradSchemes

{

default
Gauss linear;

grad(p)
Gauss linear;

grad(U)
Gauss linear;

}

应该为

Code:

gradSchemes

{

default
leastSquares;

}

  1. 对于开始

Code:

divSchemes

{

default
none;

div(phi,T)
Gauss linearUpwind Gauss; //*(16)

div(phi,U)
Gauss linearUpwind Gauss;

div(phi,k)
Gauss upwind;

div(phi,epsilon)
Gauss upwind;

div(phi,omega)
Gauss upwind;

div((nuEff*dev(T(grad(U)))))
Gauss linear; //*(6)

}

变为

Code:

divSchemes

{

default
none;

div(phi,T)
bounded Gauss upwind;

div(phi,U)
bounded Gauss upwind;

div(phi,k)
bounded Gauss upwind;

div(phi,epsilon)
bounded Gauss upwind;

div(phi,omega)
bounded Gauss upwind;

div((nuEff*dev(T(grad(U)))))
Gauss linear; //*(6)

}

2.5设置你的"relTol"为0.01或0.5,如果你想用你的"网格"。

2.6将p_rgh的求解器改为GAMG,这将会加速收敛的速度。

3、你怎么计算普朗特数?似乎它是随机的。

我才这是我应该结束的时候了,你至少应该读读用户手册。

Naresh yathuru

大恩不言谢,Alexey。你做出了重大贡献。我打算模拟一个类似的算例,你几乎解决了我大部分的疑问。

致敬!!!

祝好

Naresh

Alphat【翻译】的更多相关文章

  1. 《Django By Example》第五章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者@ucag注:大家好,我是新来的翻译, ...

  2. 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...

  3. [翻译]开发文档:android Bitmap的高效使用

    内容概述 本文内容来自开发文档"Traning > Displaying Bitmaps Efficiently",包括大尺寸Bitmap的高效加载,图片的异步加载和数据缓存 ...

  4. 【探索】机器指令翻译成 JavaScript

    前言 前些时候研究脚本混淆时,打算先学一些「程序流程」相关的概念.为了不因太枯燥而放弃,决定想一个有趣的案例,可以边探索边学. 于是想了一个话题:尝试将机器指令 1:1 翻译 成 JavaScript ...

  5. 《Django By Example》第三章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:第三章滚烫出炉,大家请不要吐槽文中 ...

  6. 《Django By Example》第二章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:翻译完第一章后,发现翻译第二章的速 ...

  7. 《Django By Example》第一章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:本人目前在杭州某家互联网公司工作, ...

  8. 【翻译】Awesome R资源大全中文版来了,全球最火的R工具包一网打尽,超过300+工具,还在等什么?

    0.前言 虽然很早就知道R被微软收购,也很早知道R在统计分析处理方面很强大,开始一直没有行动过...直到 直到12月初在微软技术大会,看到我软的工程师演示R的使用,我就震惊了,然后最近在网上到处了解和 ...

  9. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第一章:创建基本的MVC Web站点

    在这一章中,我们将学习如何使用基架快速搭建和运行一个简单的Microsoft ASP.NET MVC Web站点.在我们马上投入学习和编码之前,我们首先了解一些有关ASP.NET MVC和Entity ...

随机推荐

  1. elementUI图片墙上传

    elementUI提供了照片墙上传的功能,我们直接拿来用. 以下是实现代码: <template> <div style="padding: 50px;"> ...

  2. ios设备app作为蓝牙外设端

    苹果手机可以作为蓝牙外设端,被蓝牙中央端来扫描连接交互数据,实现模拟蓝牙外设硬件.通过阅读CoreBluetooth库,可以找到一个CBPeripheralManager的类,该类主要的作用就是允许你 ...

  3. 如何使用async和await这对组合设计统一的取Access Token的函数

    最近我在使用SAP云平台的机器学习API做和SAP系统的集成,因为SAP Cloud Platform Leonardo上的机器学期API,每次消费时需要传一个Access Token,故在每次实际调 ...

  4. 阿里云给自己实例扩容-扩展分区和文件系统_Linux系统盘

    阿里云买了台服务器ecs 磁盘容量40g 发现已经用了30g了  赶紧扩容 进入 e'cs实例 进入左边菜单 存储与快照 然后选择右边的扩容 然后支付 成功后 进入服务器 df -h 发现怎么还是没变 ...

  5. centos6.x下让redis以服务方式运行

    1.从官网下载redis-2.8.9.tar.gz之后,将redis解压在/usr/local下,目录是redis-2.8.9,然后按照官网给出的办法安装redis即可. 2.安装完在redis-2. ...

  6. SQL SERVER-Login搬迁脚本

    USE master GO IF OBJECT_ID ('sp_hexadecimal') IS NOT NULL DROP PROCEDURE sp_hexadecimal GO CREATE PR ...

  7. 昨天521表白失败,我想用Python分析一下...表白记录和聊天记录

    昨天跟喜欢的妹子表白了. 失败了!.下面是表白的聊天记录: (跟妹子已经认识一段时间) 我:灭嘤嘤,我喜欢你. 妹子:你干嘛? 我:今天520,跟你表白鸭. 妹子:那....有多喜欢? 我: 有很多很 ...

  8. P1005 矩阵取数游戏[区间dp]

    题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的\(m*n\)的矩阵,矩阵中的每个元素\(a_{i,j}\)均为非负整数.游戏规则如下: 每次取数时须从每行各取走一个元素,共n个.经过m次后 ...

  9. 神经网络(2)---neurons and the brain

    神经网络是一个历史悠久的课题,当初提出是为了让机器能够模仿人的大脑一样工作.现在神经网络在处理很多机器学习的问题上发挥了很重要的作用. 神经网络的背景(我们可以利用神经网络做些什么) 大脑可以处理视觉 ...

  10. C#常用控件和属性

    目录1.窗体(Form)2.Label (标签)控件3.TextBox(文本框)控件4.RichTextBox控件5.NumericUpDown控件6.Button(按钮)控件7.GroupBox(分 ...