DPMFoam 计算时出现奇怪报错



  • 最近在计算DPMFfoam时,出现了如下的报错

    Evolving kinematicCloud
    
    Solving 2-D cloud kinematicCloud
        23 move-collide subCycles
    
    
    --> FOAM FATAL ERROR: 
    Patch data was requested for a particle that isn't on a patch
    
        From function void Foam::particle::patchData(Foam::vector&, Foam::vector&) const
        in file particle/particle.C at line 941.
    
    FOAM exiting
    

    我在kinematicCloudProperties中设置了粒子间的碰撞和一些cloudFunctions,具体如下

    pairCollisionCoeffs
        {
            maxInteractionDistance  1e-5;
    
            writeReferredParticleCloud no;
    
            pairModel pairSpringSliderDashpot;
    
            pairSpringSliderDashpotCoeffs
            {
                useEquivalentSize   no;
                alpha               0.12;
                b                   1.5;
                mu                  0.52;
                cohesionEnergyDensity 0;
                collisionResolutionSteps 12;
            };
    
            wallModel wallLocalSpringSliderDashpot;
    
            wallLocalSpringSliderDashpotCoeffs
            {
                useEquivalentSize no;
                collisionResolutionSteps 12;
                walls
                {
                    youngsModulus   2e10;
                    poissonsRatio   0.28;
                    alpha           0.12;
                    b               1.5;
                    mu              0.43;
                    cohesionEnergyDensity 0;
                }
                frontAndBack
                {
                    youngsModulus   2e10;
                    poissonsRatio   0.28;
                    alpha           0.12;
                    b               1.5;
                    mu              0.1;
                    cohesionEnergyDensity 0;
                }
            };
    
            U     U.water;
        }
    

    cloudFunctions
    {
        patchPostProcessing1
        {
            type            patchPostProcessing;
            maxStoredParcels 100000;
            patches         ( outlet inlet walls);
        }
        particleTracks1
        {
            type            particleTracks;
            trackInterval   10;
            maxSamples      1000000;
            resetOnWrite    yes;
        }
        particleErosion1
        {
        type            particleErosion;
        p               11000000; //yield stress for aluminium = 11000000 Pa or 11 MPa
        psi             2;//Ratio of the depth of contact to the depth of cut (default value = 2 )
        K               2; //Ratio of vertical to horizontal force components (2 for angular abrassive grains)
        patches
          ( walls);       
       }  
    }
    

    我如果这两个均不设置,则没有问题。报错部分的源代码如下

    void Foam::particle::patchData(vector& n, vector& U) const
    {
        if (!onBoundaryFace())
        {
            FatalErrorInFunction
                << "Patch data was requested for a particle that isn't on a patch"
                << exit(FatalError);
        }
    

    请问有人知道这是什么问题吗?万分感谢!



  • 后来我发现我的这个cloudFunctions和pairCollisionCoeffs 2选1的话就不会报错,但是有人能解释下为什么吗?如果两个都想要的话又该怎么设置呢?



  • 你把cloudFunctions取消没问题是吧?

    然后你把碰collision去掉,保留cloudFunction也没问题?



  • @东岳 对的



  • 更改下wall的壁面类型解决问题么,改成stick合适么?

    感觉是你的粒子腐蚀方面的问题,去掉后怎样



  • 腐蚀不能去掉,目的就是算腐蚀。改成stick后会不会不符合实际呢?总之,我先改了试试。



  • @东岳 wo我把除了inlet和outlet的patch都改为stick,然而一样的结果,一样的报错信息。


Log in to reply
 

CFD中文网 2016 - 2020 | 京ICP备15017992号-2