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万,也不是网格太多内存不够的问题。
    还是出现同样的错误,请问我应该怎么修改~谢谢大家


  • 管理员

    i的数量有没有溢出?



  • @李东岳
    感谢东岳老师回复,我检查的时候发现网格出现了错误。
    我是从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
            )
        );
    

    1619616276(1).png
    1619616290(1).png


  • 管理员

    @hongjiewang 你这个interface是有两个面么,类似interface1和interface2,还是一个无厚度的面



  • @李东岳 老师,是一个无厚度的交界面,是HC这个界面。
    2a88ac46db07b41e07627c84240dbe4.png


  • 管理员

    无厚度的面不应该是interface啊,interface是两个重叠的面,无厚度的面就是一个面。



  • @李东岳 啊,老师,不好意思,我理解错无厚度了,以为是交界面是无厚度的意思~
    我这里确实是两个重叠的面(红色那条线是我说的交界面),在ICEM里是不是应该把两个面定义成一个interface,再放到openfoam里。
    1619660195(1).png



  • @李东岳 老师,网格问题已经解决了~还是出现上面的错误。看您上面提到i是否溢出,如果溢出的话,其他变量应该也会读取错误吧。请问我应该如何检查是否是溢出导致的错误~



  • 问题已解决~因为变量不能从字典中正确读取,修改读取语句后可以正常运行


Log in to reply
 


CFD中文网 | 东岳流体学术 | 东岳流体商业 | 吉ICP备20003622号-1