Alphat【翻译】
翻译自:CFD-online
帖子地址:http://www.cfd-online.com/Forums/openfoam-solving/144625-alphat.html
早上好
我正在研究一个立方体内有一个球体的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"?
非常感谢你的帮助。
你好
你截去了你的错误信息中有意义的部分。
关于alphat是这样计算的:
Code:
alphat =
turbulence->nut()/Prt;
湍流普朗特数的值常常在0.75和0.95之间随机选取
你好
我打算再次解释我的困惑:
- 非压缩流动都需要普朗特数?
- 对于这种流动,我是否应该设置固体单元为"alphatWallFunction"或"alphatJayatillekeWallFunction"?
- 对于出口和入口,我是否应该设置为"fixedValue"或者仅仅写为"calculated"?他们不是壁面,我想我不能对他们使用alphatFunctions
现在我的alphat输入值是这样的:
Quote:
dimensions [0 2 |
如果没有把我的疑惑描述得比以前更清楚,我表示抱歉。
再次感谢。
你好
Quote:
Originally 1) Does an |
他不是一种流动,是求解器需要普朗特数
Quote:
2) With this |
在你模拟不可压缩流动的时候(求解器使用nut场,比如方程被密度除),你不能使用alphatWallFunction(当它寻找mut场)。因此它是"alphatJayatillekeWallFunction"(在不可压湍流模型当中仅有的alphat壁面函数)。
Quote:
3) And with |
"calculated"应该可以。
好的,非常感谢!我想我的文件是正确的!
还有其他问题:我应该用相同的方法设置"epsilon, omega, k and
nut"?我的意思是每个入口/出口(inlet/outlet)都是"calculated uniform 0",并且对于k,壁面设置为kqRWallFunction,对于epsilon,壁面设置为epsilonWallFunction,对于omega,壁面设置为omegaWallFunction,和nutWallFunction(所有都为uniform 0)。
谢谢!
我常常使用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).对于壁面—是的—壁面函数。
你好
你的建议非常有帮助!现在我更好的理解了很多事情。我想这个帖子能帮助更多像我一样的人在OF中成熟
看来你对这个程序了解很多,你能看一下我上次在这个论坛发的帖子吗?题目为"pressure
and velocity in inlet/outlet definitions"。
非常感谢你
我已经看过你的信息了,但是我不知道你想模拟什么。
好的,我就尝试解释一下。
相关的模型我已经在论坛上讨论过了(一个立方体内有一个球体。流体从入口到出口)我仅仅尝试分析温度和压力在不同单元的变化。
当我从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);
}
}
我希望我更好的解释了我的问题!
先谢过
直到现在我也不知道你想干什么。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:
- |
执行?你点击哪里执行?
如果你想要讨论你的controlDict, fvSolution和fvSchemes,请附上你的文件(和模拟的输出结果)
你好!
好的,这些文件都没问题。你告诉我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步(也是迭代的步数)。正如你在温度图片中看到的,没有任何温度变化。
我不知道哪个文件错了
先谢过。
你好
- 这个,松弛收敛判据:
Code:
residualControl
{
"(p|T|U|k|epsilon|omega)"
0.5; //*(7)
}
这个是你模拟迭代2次的可能原因。
- 从你的边界温度截图值(你选择边界没有内部网格)。你的边界除了出口都是fixedValue。因此你在你的屏幕上得到这些固定值。如果你想看到温度变化—选择内部网格,用截面切开它。
早上好
- 关注p文件,我已经理解了可以不管它的输入因为求解器会计算这个值而不是从0文件夹下读取。不管怎样,我不会从0文件夹下删除p文件。
- 关于减少残差,我可以轻易的减少它到0.31(仅迭代3次)如果我进一步减少残差,它就发散了(比如0.3)。
因此我猜测这不是残差的问题。
- 你谈到温度相关的建议,这是非常有用的。但是我的问题是我的理论没有完全模拟确认。我在附件中有图片。第一个当中你可以看到边界温度,第二个右侧部分似乎有一些热传递(尽管似乎已经停止了)并且球一直是800K,没有任何换热器。
谢谢你。
你好
- 是这样的,求解器在开始不会读取p文件。它只读p_rgh文件。
- 一般来说,残差的值应该低于1e-4。
- 看了一下附件,你的模拟结果似乎发散了。是否在你的帖子中缺少一些信息?你是否能贴出你的算例?(当然,我可以自己复制它但是会花更多的时间)。
你好
我已经附上了我的文件。我已经改变了controlDict的时间,它只提升了一点点。因为OF论坛不接受如此大的文件夹,我只能将0和system文件传上来。这带来了持续的问题,因此导入0/U(使用potentialFoam求解器)的先前文件夹,我能上传后面的这些图片。注意一下给定的值,这个算例中的压力和速度值是巨大的。
好的,没有网格,这些都是没有意义的。当然我可以构建网格并且让这个算例跑起来。但是这是我的网格并且你在运行你的网格算例时出现的问题。将网格上传到其他地方,有许多其他地方可以存储你的大文件。
你好
我找到方法了。我贴出了两个链接:第一个是带有初始条件的模型和第二个从运行potentialFoam求解器的算例中拷贝出来的,因为它存在连续问题。
http://www.filedropper.com/test00
http://freakshare.com/files/th1rvk69/test01.zip.html
不明白为什么我需要第二个存档但是...
- 使用你自己的心的网格。几何没有那么复杂。
- 对于你的配置
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;
}
- 对于开始
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、你怎么计算普朗特数?似乎它是随机的。
我才这是我应该结束的时候了,你至少应该读读用户手册。
大恩不言谢,Alexey。你做出了重大贡献。我打算模拟一个类似的算例,你几乎解决了我大部分的疑问。
致敬!!!
祝好
Naresh
Alphat【翻译】的更多相关文章
- 《Django By Example》第五章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者@ucag注:大家好,我是新来的翻译, ...
- 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...
- [翻译]开发文档:android Bitmap的高效使用
内容概述 本文内容来自开发文档"Traning > Displaying Bitmaps Efficiently",包括大尺寸Bitmap的高效加载,图片的异步加载和数据缓存 ...
- 【探索】机器指令翻译成 JavaScript
前言 前些时候研究脚本混淆时,打算先学一些「程序流程」相关的概念.为了不因太枯燥而放弃,决定想一个有趣的案例,可以边探索边学. 于是想了一个话题:尝试将机器指令 1:1 翻译 成 JavaScript ...
- 《Django By Example》第三章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:第三章滚烫出炉,大家请不要吐槽文中 ...
- 《Django By Example》第二章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:翻译完第一章后,发现翻译第二章的速 ...
- 《Django By Example》第一章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:本人目前在杭州某家互联网公司工作, ...
- 【翻译】Awesome R资源大全中文版来了,全球最火的R工具包一网打尽,超过300+工具,还在等什么?
0.前言 虽然很早就知道R被微软收购,也很早知道R在统计分析处理方面很强大,开始一直没有行动过...直到 直到12月初在微软技术大会,看到我软的工程师演示R的使用,我就震惊了,然后最近在网上到处了解和 ...
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第一章:创建基本的MVC Web站点
在这一章中,我们将学习如何使用基架快速搭建和运行一个简单的Microsoft ASP.NET MVC Web站点.在我们马上投入学习和编码之前,我们首先了解一些有关ASP.NET MVC和Entity ...
随机推荐
- mock打桩测试
pom依赖: <!-- https://mvnrepository.com/artifact/org.jmockit/jmockit --> <dependency> < ...
- js循环修改数组属性key值
var keyMap = { deviceUid: "id", deviceType: "typeName", deviceCode: "code&q ...
- Java集合框架介绍。Java Collection Frameworks = JCF
Java集合框架 = Java Collection Frameworks = JCF . 为了方便理解,我画了一张思维脑图.
- Vue-filter指令全局过滤和稀有过滤
简单介绍一下过滤器,顾名思义,过滤就是一个数据经过了这个过滤之后出来另一样东西,可以是从中取得你想要的,或者给那个数据添加点什么装饰,那么过滤器则是过滤的工具.例如,从['abc','abd','ad ...
- 关于get 和post 方法的比较
地址:https://my.oschina.net/leejun2005/blog/136820 点击这里
- ubuntu18 搭建ftp服务器,以及文件目录权限问题
有时候呢我们有一台本地的台式机或者云服务器,我们想要搭个ftp服务器好让我们在内网/外网中方便的传输.保存文件,这样别的任何电脑啊,设备啊,只要访问这个ftp的地址,就可以进行文件传输啦!由于我现在台 ...
- vue 关于vuex
<!-- vuex 配置js store.js -->1.引入vue和vuex import Vue from 'vue'import Vuex from 'vuex'Vue.use(Vu ...
- 使用宏定义来判断是a和b 的大小
#include <stdio.h> #include <math.h> #define MAX(a, b) (a) > (b) ? printf("a > ...
- 前端学习笔记--CSS样式--文本
1.文本与文字样式主要的属性: 子标签可以继承父标签的样式: 关于颜色: 文本属性: letter-spacing: line-height: text-align: 字体:
- BZOJ4802 欧拉函数 (Pollard-Rho Miller-Robin)
题目 求大数的欧拉函数φ\varphiφ 题解 Pollard-Rho 板子 CODE #pragma GCC optimize (3) #include <bits/stdc++.h> ...