美文网首页
OpenFOAM中热物理量的计算(二)

OpenFOAM中热物理量的计算(二)

作者: charryzzz | 来源:发表于2021-04-19 18:24 被阅读0次

    在求解温度的过程中到了显焓Hs(p,t)和比热Cp(p,t)函数,其计算方法在<constant>/thermophysicalProperties中指定,通常采用janaf多项式计算

    // $FOAM_SRCthermophysicalModels/specie/thermo/janaf/janafThermoI.H
    template<class EquationOfState>
    inline Foam::scalar Foam::janafThermo<EquationOfState>::Cp
    (
        const scalar p,
        const scalar T
    ) const
    {
        const coeffArray& a = coeffs(T);
        return
            ((((a[4]*T + a[3])*T + a[2])*T + a[1])*T + a[0])
          + EquationOfState::Cp(p, T);
    }
    
    
    template<class EquationOfState>
    inline Foam::scalar Foam::janafThermo<EquationOfState>::Ha
    (
        const scalar p,
        const scalar T
    ) const
    {
        const coeffArray& a = coeffs(T);
        return
        (
            ((((a[4]/5.0*T + a[3]/4.0)*T + a[2]/3.0)*T + a[1]/2.0)*T + a[0])*T
          + a[5]
        ) + EquationOfState::H(p, T);
    }
    
    
    template<class EquationOfState>
    inline Foam::scalar Foam::janafThermo<EquationOfState>::Hs
    (
        const scalar p,
        const scalar T
    ) const
    {
        return Ha(p, T) - Hc();
    }
    
    
    template<class EquationOfState>
    inline Foam::scalar Foam::janafThermo<EquationOfState>::Hc() const
    {
        const coeffArray& a = lowCpCoeffs_;
        return
        (
            (
                (((a[4]/5.0*Tstd + a[3]/4.0)*Tstd + a[2]/3.0)*Tstd + a[1]/2.0)*Tstd
              + a[0]
            )*Tstd + a[5]
        );
    }
    

    理想气体的计算公式在

    // $FOAM_SRC/thermophysicalModels/specie/equationOfState/perfectGas
    template<class Specie>
    inline Foam::scalar Foam::perfectGas<Specie>::rho(scalar p, scalar T) const
    {
        return p/(this->R()*T);
    }
    
    
    template<class Specie>
    inline Foam::scalar Foam::perfectGas<Specie>::H(scalar p, scalar T) const
    {
        return 0;
    }
    
    
    template<class Specie>
    inline Foam::scalar Foam::perfectGas<Specie>::Cp(scalar p, scalar T) const
    {
        return 0;
    }
    

    根据温度的不同,janaf选用高温和低温两组不同的系数来计算热物性参数,例如,当温度大于Tcommon(一般为1000K)时采用高温度的多项式系数,当温度小于Tcommon时,采用低温度的多项式系数。

    // thermophysicalModels/specie/thermo/janaf/janafThermoI.H
    template<class EquationOfState>
    inline const typename Foam::janafThermo<EquationOfState>::coeffArray&
    Foam::janafThermo<EquationOfState>::coeffs
    (
        const scalar T
    ) const
    {
        if (T < Tcommon_)
        {
            return lowCpCoeffs_;
        }
        else
        {
            return highCpCoeffs_;
        }
    }
    

    其中比热的计算方法:

    template<class EquationOfState>
    inline Foam::scalar Foam::janafThermo<EquationOfState>::Cp
    (
        const scalar p,
        const scalar T
    ) const
    {
        const coeffArray& a = coeffs(T);
        return
            ((((a[4]*T + a[3])*T + a[2])*T + a[1])*T + a[0])
          + EquationOfState::Cp(p, T);
    }
    

    总焓的计算方法

    template<class EquationOfState>
    inline Foam::scalar Foam::janafThermo<EquationOfState>::Ha
    (
        const scalar p,
        const scalar T
    ) const
    {
        const coeffArray& a = coeffs(T);
        return
        (
            ((((a[4]/5.0*T + a[3]/4.0)*T + a[2]/3.0)*T + a[1]/2.0)*T + a[0])*T
          + a[5]
        ) + EquationOfState::H(p, T);
    }
    

    显焓的计算方法

    template<class EquationOfState>
    inline Foam::scalar Foam::janafThermo<EquationOfState>::Hs
    (
        const scalar p,
        const scalar T
    ) const
    {
        return Ha(p, T) - Hc();
    }
    

    生成焓的计算方法:

    template<class EquationOfState>
    inline Foam::scalar Foam::janafThermo<EquationOfState>::Hc() const
    {
        const coeffArray& a = lowCpCoeffs_;
        return
        (
            (
                (((a[4]/5.0*Tstd + a[3]/4.0)*Tstd + a[2]/3.0)*Tstd + a[1]/2.0)*Tstd
              + a[0]
            )*Tstd + a[5]
        );
    }
    

    可以明显地看出,显焓=总焓-生成焓

    相关文章

      网友评论

          本文标题:OpenFOAM中热物理量的计算(二)

          本文链接:https://www.haomeiwen.com/subject/ogjclltx.html