翻译自: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. mock打桩测试

    pom依赖: <!-- https://mvnrepository.com/artifact/org.jmockit/jmockit --> <dependency> < ...

  2. js循环修改数组属性key值

    var keyMap = { deviceUid: "id", deviceType: "typeName", deviceCode: "code&q ...

  3. Java集合框架介绍。Java Collection Frameworks = JCF

    Java集合框架 = Java Collection Frameworks  = JCF . 为了方便理解,我画了一张思维脑图.

  4. Vue-filter指令全局过滤和稀有过滤

    简单介绍一下过滤器,顾名思义,过滤就是一个数据经过了这个过滤之后出来另一样东西,可以是从中取得你想要的,或者给那个数据添加点什么装饰,那么过滤器则是过滤的工具.例如,从['abc','abd','ad ...

  5. 关于get 和post 方法的比较

    地址:https://my.oschina.net/leejun2005/blog/136820 点击这里

  6. ubuntu18 搭建ftp服务器,以及文件目录权限问题

    有时候呢我们有一台本地的台式机或者云服务器,我们想要搭个ftp服务器好让我们在内网/外网中方便的传输.保存文件,这样别的任何电脑啊,设备啊,只要访问这个ftp的地址,就可以进行文件传输啦!由于我现在台 ...

  7. vue 关于vuex

    <!-- vuex 配置js store.js -->1.引入vue和vuex import Vue from 'vue'import Vuex from 'vuex'Vue.use(Vu ...

  8. 使用宏定义来判断是a和b 的大小

    #include <stdio.h> #include <math.h> #define MAX(a, b) (a) > (b) ? printf("a > ...

  9. 前端学习笔记--CSS样式--文本

    1.文本与文字样式主要的属性: 子标签可以继承父标签的样式: 关于颜色: 文本属性: letter-spacing: line-height: text-align: 字体:

  10. BZOJ4802 欧拉函数 (Pollard-Rho Miller-Robin)

    题目 求大数的欧拉函数φ\varphiφ 题解 Pollard-Rho 板子 CODE #pragma GCC optimize (3) #include <bits/stdc++.h> ...