How can I calculate the molar volume of a non ideal gas?

1 Answer
Mar 15, 2018

Well, it depends on what equation of state you WANT to use. The easiest one to use for REAL gases is the van der Waals equation of state (vdW EOS):

#P = (RT)/(barV - b) - a/(barV^2)#

where #P,R,# and #T# are known from the ideal gas law, #barV -= V/n# is the molar volume of the vdW gas, and #a# and #b# are van der Waals constants accounting for the attractive intermolecular forces, and the excluded volume, respectively.

Solving for #barV# is a hogfest all on its own...

#P = (barV^2RT)/(barV^2(barV - b)) - (a(barV - b))/(barV^2(barV - b))#

#PbarV^2(barV - b) = barV^2RT - a(barV - b)#

#PbarV^3 - bP barV^2 = barV^2RT - abarV + ab#

#PbarV^3 - (bP + RT)barV^2 + abarV - ab = 0#

This becomes a cubic equation for #barV#:

#barul|stackrel(" ")(" "barV^3 - (b + (RT)/P)barV^2 + a/PbarV - (ab)/P = 0" ")|#

For this, we need

  • specified pressure #P# in #"bar"#,
  • temperature #T# in #"K"#,
  • #R = "0.083145 L"cdot"bar/mol"cdot"K"#,
  • vdW constants #a# in #"L"^2"bar/mol"^2# and #b# in #"L/mol"#.

Then this can be solved iteratively via the Newton-Raphson method. Of course, you can use whatever method you want to solve this cubic.

To do the Newton-Raphson method, in your calculator, let:

#b + (RT)/P = A#
#a/P = B#
#(ab)/P = C#

Then we have:

#barV^3 - AbarV^2 + BbarV - C = f(barV)#

#3barV^2 - 2AbarV + B = f'(barV)#

Each iteration acquires #barV# as follows:

#barV_(i+1) = barV_i - (f(barV_i))/(f'(barV_i))#

In your TI calculator, let #X = "insert logical guess here"# by typing:

#"logical guess" -> X#

Then if you believe you chose correctly, proceed to type the following:

#(X - (X^3 - AX^2 + BX - C)/(3X^2 - 2AX + B)) -> X#

This generates an iterative loop that triggers each time you press Enter. So, press Enter until the value you get stops changing.

That is ONE out of THREE molar volumes.

  • One #barV# is of the liquid.
  • One #barV# is of the gas.
  • One #barV# is a so-called spurious (i.e. UNPHYSICAL) solution.

To know what you have just gotten, compare with the other #barV# to see if you have found the largest one. If you did not maximize #barV#, try a different guess until you do.