new cannot satisfy memory request
-
运行算例的时候,出现了这样的错误。
new cannot satisfy memory request. This does not necessarily mean you have run out of virtual memory. It could be due to a stack violation caused by e.g. bad use of pointers or an out of date shared library
通过Info输出,判断是mixture这个指针出现了问题,求解器中关于mixture的定义如下:
Info<< "reading mixtureFluid\n" << endl; mixtureFluid.set ( i, temperaturePhaseChangeTwoPhaseMixture::New ( thermoFluid[i], fluidRegions[i] ).ptr() ); temperaturePhaseChangeTwoPhaseMixture& mixture = mixtureFluid[i];
先是重新编译了涉及到的库和求解器;
也更换了工作站进行运行;
网格数有59万,也不是网格太多内存不够的问题。
还是出现同样的错误,请问我应该怎么修改~谢谢大家 -
@李东岳
感谢东岳老师回复,我检查的时候发现网格出现了错误。
我是从ICEM画好网格导入进来的,第一步fluentMesh3DToFoam后checkMesh是没有错的;Checking basic cellZone addressing... CellZone Cells Points Volume BoundingBox FLUID 1347108 1388240 1.11022e-09 (-5.19735e-11 -7.56339e-18 -5.51343e-11) (0.001 0.001167 0.001) SOLID 429128 450800 2.2278e-10 (-5.19735e-11 0.001 -5.51343e-11) (0.001 0.001333 0.001) Checking geometry... Overall domain bounding box (-5.19735e-11 -7.56339e-18 -5.51343e-11) (0.001 0.001333 0.001) Mesh has 3 geometric (non-empty/wedge) directions (1 1 1) Mesh has 3 solution (non-empty) directions (1 1 1) Boundary openness (2.20986e-15 -2.97635e-15 6.02407e-17) OK. Max cell openness = 3.08974e-16 OK. Max aspect ratio = 20.3769 OK. Minimum face area = 1e-12. Maximum face area = 3.46597e-10. Face area magnitudes OK. Min volume = 1.26582e-17. Max volume = 4.3873e-15. Total volume = 1.333e-09. Cell volumes OK. Mesh non-orthogonality Max: 0.00311489 average: 4.38178e-05 Non-orthogonality check OK. Face pyramids OK. Max skewness = 0.000137648 OK. Coupled point location match (average 0) OK. Mesh OK. End
在我把流体域和固体域分开之后,splitMeshRegions -cellZonesOnly -overwrite,再次checkMesh就会有不垂直的边导致报错
Checking patch topology for multiply connected surfaces... Patch Faces Points Surface topology HEAT 11534 11760 ok (non-closed singly connected) FRONTANDBACK 44968 45570 ok (non-closed singly connected) SYMMETRY 24332 24800 ok (non-closed singly connected) BOTTOM 11534 11760 ok (non-closed singly connected) Checking faceZone topology for multiply connected surfaces... FaceZone Faces Points Surface topology int_FLUID 4000572 1388228 multiply connected (shared edge) int_SOLID 1265994 450788 multiply connected (shared edge) INTERFACE 15958 16240 ok (non-closed singly connected) <<Writing 1820730 conflicting points to set nonManifoldPoints Checking basic cellZone addressing... CellZone Cells Points Volume BoundingBox FLUID 1347108 1388240 1.11022e-09 (-5.19735e-11 -7.56339e-18 -5.51343e-11) (0.001 0.001167 0.001) SOLID 429128 450800 2.2278e-10 (-5.19735e-11 0.001 -5.51343e-11) (0.001 0.001333 0.001) Checking geometry... Overall domain bounding box (-5.19735e-11 -7.56339e-18 -5.51343e-11) (0.001 0.001333 0.001) Mesh has 2 geometric (non-empty/wedge) directions (1 1 0) Mesh has 2 solution (non-empty) directions (1 1 0) ***Number of edges not aligned with or perpendicular to non-empty directions: 14980 <<Writing 28261 points on non-aligned edges to set nonAlignedEdges Boundary openness (2.20986e-15 -2.97635e-15 6.02407e-17) OK. Max cell openness = 3.08974e-16 OK. Max aspect ratio = 20.3769 OK. Minimum face area = 1e-12. Maximum face area = 3.46597e-10. Face area magnitudes OK. Min volume = 1.26582e-17. Max volume = 4.3873e-15. Total volume = 1.333e-09. Cell volumes OK. Mesh non-orthogonality Max: 0.00311489 average: 4.38178e-05 Non-orthogonality check OK. Face pyramids OK. Max skewness = 0.000137648 OK. Coupled point location match (average 0) OK. Failed 1 mesh checks. End
在ICEM中,我是把两个block(fluid 和 solid)的交界面定义为一个part:interface,请问是我的交接面定义出错了吗?
-
请问老师,我创建的一个库想从phaseChangeProperties中读取参数,但是当我算例分别创建了constant/FLUID和constant/SOLID后,我下面这样的定义是不是读不到了。我的求解器是基于chtFoam修改的~
const IOdictionary dict ( IOobject ( "phaseChangeProperties", mesh.time().constant(), mesh, IOobject::MUST_READ, IOobject::NO_WRITE, false // Do not register ) );
-
@hongjiewang 你这个interface是有两个面么,类似interface1和interface2,还是一个无厚度的面
-
问题已解决~因为变量不能从字典中正确读取,修改读取语句后可以正常运行