CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    DPMFoam 计算时出现奇怪报错

    OpenFOAM
    2
    7
    1677
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • ZYj
      ZYj 最后由 编辑

      最近在计算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);
          }
      

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

      1 条回复 最后回复 回复 引用
      • ZYj
        ZYj 最后由 编辑

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

        1 条回复 最后回复 回复 引用
        • 李东岳
          李东岳 管理员 最后由 编辑

          你把cloudFunctions取消没问题是吧?

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

          线上CFD课程开始报名:http://www.dyfluid.com/class.html

          CFD高性能服务器 http://dyfluid.com/servers.html

          ZYj 1 条回复 最后回复 回复 引用
          • ZYj
            ZYj @李东岳 最后由 编辑

            @东岳 对的

            1 条回复 最后回复 回复 引用
            • 李东岳
              李东岳 管理员 最后由 李东岳 编辑

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

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

              线上CFD课程开始报名:http://www.dyfluid.com/class.html

              CFD高性能服务器 http://dyfluid.com/servers.html

              ZYj 1 条回复 最后回复 回复 引用
              • ZYj
                ZYj 最后由 编辑

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

                1 条回复 最后回复 回复 引用
                • ZYj
                  ZYj @李东岳 最后由 编辑

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

                  1 条回复 最后回复 回复 引用
                  • First post
                    Last post