CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    请教各位关于Intel的MKL库中的函数在OpenFOAM中的使用问题

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

      如题,最近遇到一个通过更新焓求解温度的迭代问题,使用了牛顿迭代等方式,因为热物性变化比较剧烈,导致牛顿迭代非常不稳定,总是在某个工况下不收敛,看文献中使用了Intel的MKL库中的信赖域算法,没有出现稳定性问题,请问有没有了解如何在OpenFOAM中如何应用这个算法的,求指点!

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

        这是一种求根公式么?你说的牛顿迭代是Newton-Raphson么

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

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

          @李东岳 李老师,信赖域算法也是一种搜索最优解的方法。目前我用的迭代方式如下,其中h_fix是固定值,h_metlab和Cp需要根据更新的温度进行重新计算:

          F = (h_fix - h_metlab) / h_fix; // Objective function to be minimized
          
          scalar eps = Foam::mag(F*F); // Residuum
          
          if (eps <= 1e-3)
          {
              converged = true;
              TEQ = T;
              break;
          }
          //如果残差不被满足,更新temp,重新计算H_mix
          else
          {            
              // Update temperature
              scalar alpha    = 0.1;
              scalar delta_h  = (h_metlab - h_fix);
              scalar dT       = - delta_h / Cp; 
              scalar C        = 1.0 / (1 + Foam::mag(dT * alpha));
              T               = T + dT * C; 
          }             
          
          
          1 条回复 最后回复 回复 引用
          • 李东岳
            李东岳 管理员 最后由 编辑

            这个我还没有涉猎到,感觉很屌的样子:chouchou:

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

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