@kuangyonglin 您好,请问在使用dsmcfoam+进行计算时,初始运行一段时间步数,计算就会停止是什么原因(并没有到达设定的endTime)
看不出来啊,看着 controlDict
看着挺正常的
@kuangyonglin 您好,请问在使用dsmcfoam+进行计算时,初始运行一段时间步数,计算就会停止是什么原因(并没有到达设定的endTime)
看不出来啊,看着 controlDict
看着挺正常的
@李东岳 网格是用fluentMeshing
画的,严格按照周期性边界设置的,导入OpenFOAM
之后,当matchTolerance
很小的时候,使用createPatch
设置周期性边界的时候会报错,
以下是 createPatch
代码
patches
(
{
name cyclic1;
patchInfo
{
type cyclic;
neighbourPatch cyclic2;
transform rotational;
rotationAxis (0 0 1);
rotationCentre (0 0 0);
matchTolerance 1e10;
}
constructFrom patches;
patches (cyclic_1);
set f0;
}
{
name cyclic2;
patchInfo
{
type cyclic;
neighbourPatch cyclic1;
transform rotational;
rotationAxis (0 0 1);
rotationCentre (0 0 0);
matchTolerance 1e10;
}
constructFrom patches;
patches (cyclic_2);
set f0;
}
);
以下是报错信息
--> FOAM FATAL ERROR:
More than one patch accessing the same transform but not of the same sign.
patch:cyclic2 transform:0 sign:1 current transforms:1(1)
From function Foam::label Foam::globalIndexAndTransform::addToTransformIndex(Foam::label, Foam::label, bool, Foam::scalar) const
in file lnInclude/globalIndexAndTransformI.H at line 210.
FOAM exiting
将 matchTolerance 放的特别大能够让仿真跑起来,但是计算结果显示两边周期面上的压力分布不是一样,如图所示是不同时间步,两周期面上的平均压力,其中有一面的平均压力稳定高于另一面的压力
不知道是求解器的问题还是这里设置的问题
有朋友遇见过类似情况吗?
@Nonocore 从我的经验来看,若是统计宏观量,10个DSMC粒子数是够用了,但是要观察流场细节,尤其是在Kn数较大的情况,10个DSMC粒子是不够的,需要更多的粒子 和 更多的时间平均才能较好的降噪.
有问题也可以随时邮件联系
在使用dsmcFoam+
求解器时,定义了一个旋转边界条件,来流气体分子均加上了一个绕z
轴旋转的角速度 omega
,当计算稳定之后,使用tecplot在入口处画Streamtraces
,结果如图所示,貌似加上的角速度与预期不一致,有同行遇见过类似的问题吗?
82页 3.5.9中 dsmcFoam "顺态"是否应该修改为“瞬态”
dsmc
求解中,由于是使用统计学相关的算法进行求解,计算结果具有较大的统计噪音,使用时间平均法是降噪的一种有效方法.
作者在学习相关软件时,发现tecplot
具有pytceplot
拓展模块,能够实现此功能.
首先需要在系统中装python
环境,并且安装pytecplot
模块
直接使用pip install pytecplot
命令即可安装
在官方github
仓库中找到tputils.py
, tpmath.py
, TimeAverage.py
3个文件,将其放到OpenFOAM的结果文件夹下
使用tecplot
打开contralDict
文件,并且打开软件的PyTecplot Connections
功能
在终端使用python
环境运行TimeAverage.py
脚本,待程序运行完成,在zone style
中将会出现时间平均后的计算结果
以某微纳通道为例,进行时间平均,并做对比:
时间平均前的结果:
时间平均后的结果:
显然,时间平均起到了降噪的作用
请问题主解决此问题了吗?