P4  VÝPOČET INDEXU LOMU VODY DLE IAPWS-IF97

Pro index lomu vody a vodní páry existují velmi přesné rovnice [5-10], které jsou definované Mezinárodní asociací pro vlastnosti vody a páry IAPWS (International Association for the Properties of Water and Steam). Tato příloha se však zabývá pouze rovnicemi pro výpočet indexu lomu vody v kapalném stavu. Index lomu je zde funkcí vlnové délky l, teploty T a hustoty r či měrného objemu v. Měrný objem vody je však nutné vypočíst zvlášť, a to z rovnic IF97 jako funkci teploty a tlaku.

Výpočet indexu lomu vody

Pro výpočet indexu lomu vody v kapalném stavu, a to pro vlnové délky l v rozsahu od 0,2 do 1,9 mm, teploty T v rozsahu od 273,15 do 623,15 K a tlaky p do 100 MPa, platí vztah

.

(1)

Konstanty a0a7, b1, b2 a referenční fyzikální veličiny l0 (referenční vlnová délka), T0 (referenční teplota) a r0 (referenční hustota) mají hodnoty:

 

a0 = 0,244257733

a5 = 2,45934259.10-3

l0 = 0,589.10-6 m

a1 = 9,74634476.10-3

a6= 0,900704920

T0 = 273,15 K

 

a2 =-3,73234996.10-3

a7 =-1,66626219.10-2

r0 = 1000 kg.m-3

 

a3= 2,68678472.10-4

b1 = 0,229202

 

a4 = 1,58920570.10-3

b2= 5,432937

Hustotu vody r, kterou je třeba znát pro výpočet indexu lomu dle rovnice (1), lze stanovit z měrného objemu vody v [m3.kg-1] dle vztahu

.

(2)

Výpočet měrného objemu vody

Měrný objem vody v kapalném stavu dle rovnic IF97 lze nejlépe vypočíst pomocí autorizovaného podprogramu IAPWS, který je napsán v jazyce FORTRAN. Pokud je třeba napsat tento podprogram v jiném programovacím jazyce, je nutné zabývat se přesností výpočtu (počtem platných cifer jednotlivých konstant a způsobem výpočtu) a při odlaďování podprogramu výsledky porovnávat s tabulkami [5-10], [5-11]. Výpis zmíněného podprogramu v jazyce FORTRAN je v následujícím textu:

C
C     IAPWS Task Group NIF
C     New Industrial Formulation (NIF)
C     for the Thermodynamic Properties of Water and Steam
C     First argument is pressure in MPa.
C     Second argument is temperature in K.
C     Returns specific volume in m^3/kg
C
      FUNCTION vpt1n(P,T)
      IMPLICIT REAL*8 (A-H,O-Z)
      parameter(a8=-0.79068310787773D-08,
     9          a9= 0.16949507886565D-07,
     &          a10= 0.53021235478366D-06,
     &          a11= 0.90824711621636D-06,
     2          a12= 0.60983184277677D-06,
     3          a13= 0.14752738052287D-08,
     4          a14= 0.26348204437581D-07,
     &          a15= 0.16753299313106D-07,
     6          a16=-0.26614606756583D-08,
     7          a17= 0.24649255061299D-09,
     8          a18= 0.40593624756496D-19,
     9          a19= 0.26535353478691D-08,
     &          a20= 0.23680051381070D-09,
     1          a21= 0.71369114266351D-13,
     2          a22= 0.25045010666356D-09,
     3          a23= 0.72784546444320D-10,
     4          a24= 0.16017135514411D-16,
     5          a25= 0.56562757086698D-10,
     6          a26= 0.28443854062250D-12,
     7          a27= 0.38920900760265D-13,
     8          a28= 0.40317346616717D-21,
     9          a29=-0.92975593753127D-23,
     &          a30=-0.21323943802988D-25,
     1          a31= 0.10007510864939D-25,
     2          a32=-0.15777067572480D-26,
     3          a33= 0.83571296309235D-28)
C
      targ = 1386.d0/t-1.222d0
      targ2 = targ*targ
      targ4 = targ2*targ2
      targ8 = targ4*targ4
      targinv = 1.d0/targ
      targinv2 = targinv*targinv
      targinv3 = targinv2*targinv
      targinv4 = targinv3*targinv
      targinv7 = targinv4*targinv3
      targinv8 = targinv7*targinv
      parg = 7.1d0-p*0.60496067755596D-01
      parg2 = parg*parg
      parg3 = parg2*parg
      parg6 = parg3*parg3
      pt = parg*targinv
C
      vpt1n=((((((((((((((pt*a33 + a32)*pt +a31)*pt + a30)*
     &  parg6*targinv7 + a29)*parg2*targinv2 + a28)*
     &  parg6*parg6*parg*targinv8*targinv8*targinv2 + a26)*
     &  targinv*targinv4 + a27)*parg3*targinv + targinv3*a25)*
     &  parg + a22)*targinv3 + a23)*targinv2 + targ8*targ2*a24)*
     &  parg + targ4*targ2*a21 + a20 + targinv4*a19)*parg +
     &  (targ8*targ8*a18 + targ2*a17 + a16)*targ + a15 +
     &  targinv3*a14)*parg + (targ2*a13 + a12)*targ + a11 +
     &  (targinv2*a8 + a9)*targinv7 + targinv*a10)*t
      END