@李东岳 我因为可能要做cfdem所以用的5.x跑的
5.x改了好多次网格尺寸和dt都在浮点溢出,后来看网上教程给piso改成pimple模式 倒是不溢出了,但是这个结果就很离谱了
@李东岳 我因为可能要做cfdem所以用的5.x跑的
5.x改了好多次网格尺寸和dt都在浮点溢出,后来看网上教程给piso改成pimple模式 倒是不溢出了,但是这个结果就很离谱了
在openfoam里用interFoam算了一个很简单的cas,大概就是一个平板前面有个inlet,往里面注水,想看这个水流的情况,但是出现了非常离谱的状况,我先放上结果图
我设置的速度方向是(1 0 0),因此我觉得他不应该出现向上喷射的这个状态。
同样的我又在fluent里面简单跑了一下这个cas,边界条件设置都是相同的,结果是这样的:
今天着重的了解了一下这个p_rgh文件,大概可以理解为引入的一个方便求解的中间参量,等于原来的p-rhogh。
两者设置里面最唯一出现的差别可能就是压力,fluent的设置更加傻瓜式一点,直接对边界区域的相对压力给定值就好了,这个p_rgh原则上感觉不需要去关心具体是多少,但是总感觉这个东西好像跟不同的坐标有一定的关系,比方说坐标( 1 1 0)的点和坐标( 1 1 1 )的点在初场设置时想让他们的静压或者说P文件中的压力为0的时候,需要设置在的p_rgh中的值应该是不一样的。
感觉出现这个问题也可能是我openfoam这边设置的问题。所以也得请求各位大佬帮着看一下,openfoam的设置文件我放在下面了。
test2.zip
因为文件稍微有点大我就给网格删了,不过都是均匀网格所以画起来也不麻烦,直接blockMesh就好,不过需要topoSet+createPatch一下来创造一个inlet来着
我自己理解这个这个p_rgh应该是其他求解器0文件下的p-rg·h,但是interFoam似乎只能读取p_rgh而不能读取p文件,但是在对边界和整个初场只已知p的时候p_rgh怎么设置,尤其是inlet和outlet这种在某些时候需要给定一些数值的时候。
最近在跑几个非常简单的case,发现网格画的比较精细的时候反而经常库朗数爆炸,网格画的相对粗糙的时候反而跑的杠杠的。 是与电脑配置有关还是说求解器有个适配的敏感度啥的,我是一点头绪也没有。
而且报错之后浮点溢出的东西在我看起来就像是一坨乱码,unset FOAM_SIGFPE之后也没有具体的错误原因,这个报错怎么看有没有啥关键字或者资料啥的,还得请各位大佬提点提点。
@学流体的小明 在 toposet之后出现空集。。。 中说:
感觉是topoSet选择网格,提取各种面的时候有些问题了,我没用过这方面的功能,不太了解。
你如果只是想把边界面提取出来的话,在blockMesh当中就可以设置吧。
@李东岳 在 toposet之后出现空集。。。 中说:
豁牙子注意一下toposet点位置的精度。
感谢两位大佬提点,豁牙子问题解决了...
@学流体的小明 在 toposet之后出现空集。。。 中说:
你blockMesh文件convertToMeters 0.001;
实际就是把下面的坐标乘以0.001画网格,画出来的计算域是(0,0,0)到(2,0.5,0.05)。
而你toposet直接从(0,0,10)开始画box,当然找不到了。
大哥 按你说的改了topoSetDric , box的坐标和网格尺寸我也确定了是能对应上的,但是createPatch并ParaFoam之后出现了inlet这个面变成了豁牙子。。。
改之后的topoSet是这样的:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object topoSetDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
actions
(
{
name porous;
type cellSet;
action new;
source boxToCell;
sourceInfo
{
box (0 0 10e-3) (2000e-3 500e-3 12e-3);
}
}
{
name porousZone;
type cellZoneSet;
action new;
source setToCellZone;
sourceInfo
{
set porous;
}
}
{
name inletA;
type cellSet;
action new;
source boxToCell;
sourceInfo
{
box (0 0 12e-3) (4e-3 500e-3 22e-3);
}
}
{
name inletB;
type faceSet;
action new;
source cellToFace;
sourceInfo
{
set inletA;
option all;
}
}
{
name inletB;
type faceSet;
action subset;
source patchToFace;
sourceInfo
{
name walls;
}
}
{
name outletA;
type cellSet;
action new;
source boxToCell;
sourceInfo
{
box (1.996 0 12e-3) (2 500e-3 50e-3);
}
}
{
name outletB;
type faceSet;
action new;
source cellToFace;
sourceInfo
{
set outletA;
option all;
}
}
{
name outletB;
type faceSet;
action subset;
source patchToFace;
sourceInfo
{
name walls;
}
}
);
// ************************************************************************* //
createPatch是这样的:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object createPatchDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Do a synchronisation of coupled points after creation of any patches.
// Note: this does not work with points that are on multiple coupled patches
// with transformations (i.e. cyclics).
pointSync false;
// writeCyclicMatch false;
// Patches to create.
patches
(
{
name inlet;
patchInfo
{
type patch;
}
constructFrom set;
set inletB;
}
{
name outlet;
patchInfo
{
type patch;
}
constructFrom set;
set outletB;
}
);
// ************************************************************************* //
这个豁牙子问题我之前跟着阿B上田东的视频做案例的时候也出现了 不知道是什么玩意 而且case跑完之后他明显是个实际存在的数值上的豁牙子,不是paraview显示问题
toposet之后polymesh下set文件夹的文件内全部显示是空集,终端显示识别了你的范围是XXX但是这个范围内狗der没有,我是真不到哪里出问题了。
toposetdric代码是这样的:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object topoSetDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
actions
(
{
name porous;
type cellSet;
action new;
source boxToCell;
sourceInfo
{
box (0 0 10) (2000 500 15);
}
}
/*
{
name porousZone;
type cellZoneSet;
action new;
source setToCellZone;
sourceInfo
{
set porous;
}
}
*/
{
name inletA;
type cellSet;
action new;
source boxToCell;
sourceInfo
{
box (0 0 15) (0.1 500 25);
}
}
{
name inletB;
type faceSet;
action new;
source cellToFace;
sourceInfo
{
set inletA;
option all;
}
}
{
name inletB;
type faceSet;
action subset;
source patchToFace;
sourceInfo
{
name walls;
}
}
{
name outletA;
type cellSet;
action new;
source boxToCell;
sourceInfo
{
box (1999.9 0 15) (2000 500 50);
}
}
{
name outletB;
type faceSet;
action new;
source cellToFace;
sourceInfo
{
set outletA;
option all;
}
}
{
name outletB;
type faceSet;
action subset;
source patchToFace;
sourceInfo
{
name walls;
}
}
);
// ************************************************************************* //
终端是这样说的:
openfoam@openfoam-virtual-machine:~/OpenFOAM/openfoam-5.x/run/1$ topoSet
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 5.x |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
Build : 5.x-7f7d351b741b
Exec : topoSet
Date : Nov 25 2024
Time : 09:45:57
Host : "openfoam-virtual-machine"
PID : 181025
I/O : uncollated
Case : /home/openfoam/OpenFOAM/openfoam-5.x/run/1
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10)
allowSystemOperations : Allowing user-supplied system call operations
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time
Create polyMesh for time = 0
Reading topoSetDict
Time = 0
mesh not changed.
Created cellZoneSet porous
Applying source boxToCell
Adding cells with center within boxes 1((0 0 10) (2000 500 15))
cellZoneSet porous now size 0
Created cellSet inletA
Applying source boxToCell
Adding cells with center within boxes 1((0 0 15) (0.1 500 25))
cellSet inletA now size 0
Created faceSet inletB
Applying source cellToFace
Adding faces according to cellSet inletA ...
faceSet inletB now size 0
Read set faceSet inletB with size 0
Applying source patchToFace
Adding all faces of patch walls ...
Found matching patch walls with 31250 faces.
faceSet inletB now size 0
Created cellSet outletA
Applying source boxToCell
Adding cells with center within boxes 1((1999.9 0 15) (2000 500 50))
cellSet outletA now size 0
Created faceSet outletB
Applying source cellToFace
Adding faces according to cellSet outletA ...
faceSet outletB now size 0
Read set faceSet outletB with size 0
Applying source patchToFace
Adding all faces of patch walls ...
Found matching patch walls with 31250 faces.
faceSet outletB now size 0
End
blockMesh是这样的:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
convertToMeters 0.001;
vertices
(
(0 0 0) // 0
(2000 0 0) // 1
(2000 500 0) // 2
(0 500 0) // 3
/*
(0 0 15) // 4
(2000 0 15) // 5
(2000 500 15) // 6
(0 500 15) // 7
*/
(0 0 50) // 4
(2000 0 50) // 5
(2000 500 50) // 6
(0 500 50) // 7
// (0 0 25) // 12
// (0 500 25) // 13
);
blocks
(
hex (0 1 2 3 4 5 6 7) (500 125 25) simpleGrading (1 1 1)
// hex (4 5 6 7 8 9 10 11) (500 125 35) simpleGrading (1 1 1)
);
edges
(
);
boundary
(
walls
{
type wall;
faces
(
(0 1 5 4)
(2 3 7 6)
(0 4 7 3)
(1 2 6 5)
);
}
atmosphere
{
type patch;
faces
(
(4 5 6 7)
(0 1 2 3)
);
}
mergePatchPairs
(
);
我搞这个破玩意好几天了,一点头绪没有,还得求着各位大佬帮帮忙瞅一眼。。。。