CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    pr 状态方程的另一种求解方法

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

      pr方程可以看做 v 的一元三次函数
      通过 b p t 构造迭代函数求解 v
      有谁可以指点一下怎么迭代求解V的吗

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

        ![0_1487120337727_QQ截图20170215085759.jpg](正在上传 100%)

        1 条回复 最后回复 回复 引用
        • C
          CFD中文网 最后由 编辑

          不是很清楚问的问题,v是什么?bpt是什么?

          CFD中国标准用户测试帐号
          目前由徐笑笑登录

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

            0_1487296265090_QQ截图20170215085759.jpg

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

              b = 0.0778RTc*Pc Tc Pc 临界参数
              V 是摩尔体积
              p t 是温度压力

              1 条回复 最后回复 回复 引用
              • X
                xiaoming 最后由 CFD中文网 编辑

                template<class Specie>
                inline Foam::scalar Foam::PengRobinson<Specie>::rho
                (
                    scalar p,
                    scalar T
                ) const
                {
                           scalar b = 0.07780*this->R()*Tc_/Pc_;
                           scalar a = 0.45724*sqr(this->R())*sqr(Tc_)/Pc_;
                           scalar Tr = T/Tc_;
                           scalar alpha =
                           sqr
                           (
                              1.0
                              + (0.37464 + 1.54226*omega_- 0.26992*sqr(omega_))
                              * (1.0 - sqrt(Tr))
                           );
                           scalar c = (alpha*a);//a(T)
                           scalar V0 = b;
                
                           do
                           {
                              d = sqr(V0) + 2*b*V0 - sqr(b);
                              V = b + (this->R()*T - p)*(d/c);
                              V0 = V;
                           }
                           while
                           (
                              fabs(V - V0) < 1e-6
                           );           
                
                        return (this->W()/V0);
                }
                
                1 条回复 最后回复 回复 引用
                • X
                  xiaoming 最后由 编辑

                  我这样写不对啊? 不知道哪位可以给看看毛病在哪@administrators @李东岳

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