@coolhhh 我明白了,您不妨试试uniformFixedValue
。另外dsmcFoam+
的dsmcCloud.C
中没有correctBoundaryConditions
,我估计是包装在别的函数里了。
做在江湖
帖子
-
dsmcFoamPlus定义非定常边界条件的方法 -
dsmcFoamPlus定义非定常边界条件的方法@coolhhh 想请问这个函数的作用是什么,它和
evolve
函数有什么关系?因为现有设置下boundaryU
已经被更新了,但是问题在于其值没有被传递到流场中。函数correctBoundaryConditions
作用是读取物理量的边界值并重新设定边界么? -
dsmcFoamPlus定义非定常边界条件的方法@coolhhh 在
DSMCCloud.C
里有使用correctBoundaryConditions()
函数,至于我使用的FoamPlus
,它的对应文件可能重写了,但是用到了evolve
函数。另外我猜想dsmcFoam
肯定是有在更新边界值的,不然不能解释boundaryU
的变化,但是后者内的信息在每个时间步并没有被求解器重新读取,而是继续沿用 0 时刻的设置。这恐怕是症结所在。 -
dsmcFoamPlus定义非定常边界条件的方法@coolhhh 在各个时间文件夹里,
boundaryU
的内容相同:boundaryField { patch1 { type timeVaryingMappedFixedValue; mapMethod nearest; offset constant (0 0 0); value uniform (1000 0 0); }
而按照设置
Uy
应该是随时间增加的。 -
dsmcFoamPlus定义非定常边界条件的方法@coolhhh 您好,我有一个新的猜想,根据求解器日志文件log.dsmcFoam+ 第37到77行,生成边界(读取模型、边界上物理量)时对应的时间是初始时刻(0),而后开始时间循环,且之后再没有出现过边界相关的日志信息。猜测 dsmcFoam+ 在开始计算前就将所有边界条件设置好,自动忽略初始时刻以外的边界条件,这就能解释我遇到的问题。可是不太清楚解决方法...
-
dsmcFoamPlus定义非定常边界条件的方法@coolhhh 您好,关于不同时刻 inlet 的结果,使用 timeVaryingMappedFixedValue 时不同时刻数据没有差异,这显然不太正常。而用 uniformFixedValue 时则有差异。但二者都没能改变 inlet 上的 U 值计算结果(该边界模型,物理量的边界条件和物理量的值分开存放)。同样的设置我在 pimpleFoam 算例中是能实现的,因此大概率还是求解器导致的问题。我现在在尝试读 dsmcFoamPlus 中边界条件的源代码,看看能否找到原因。dsmcFreeStreamInflowFieldPatch.C dsmcFreeStreamInflowFieldPatch.H
另外我将 endTime 与数据文件夹最大时刻相等,问题仍然存在,我想可以排除这个因素。 -
dsmcFoamPlus定义非定常边界条件的方法@coolhhh 谢谢您的建议,不过我尝试了一下,结果还是一样的,dsmcFoam+仍然将我输入的数据当成是定常边界,即仅读取boundaryData中0文件夹下的数据。
-
dsmcFoamPlus定义非定常边界条件的方法我希望我算例中的自由来流条件随着时间变化。在 dsmcFoamPlus 中,边界由 boundariesDict 字典文件控制,通过使用其自带的 dsmcFreeStreamInflowFieldPatch 模型,用户可以在 0 文件夹中导入 boundaryXXX 文件,设置速度、温度和密度的各边界上条件。参考:https://github.com/hystrath/hyStrath/issues/84
boundaryField { patch1 { type uniformFixedValue; uniformValue tableFile; uniformValueCoeffs { file "myFileName"; } } }
我在这三个边界控制文件中将入口的 patch 类型设为 uniformFixedValue,并用一个 table 文件存储对应时刻边界上物理量的值,以期望实现一个随时间变化的来流条件。开始运行后,没有出现报错。根据各时间步文件夹中的 boundaryXXX 文件来看,uniformFixedValue 的设置被正确读取,但并没有实际体现在边界的数值(计算结果)上。目前来看,dsmcFoamPlus 会选取 table 文件中某一个时间的值赋给边界,然后定常运算(通常是 0 时刻)。我猜测 dsmcFreeStreamInflowFieldPatch 并不能适用于随时间变化的边界条件。请问有人能帮助我解决这个问题么?