Download or view boilingPointTest.frink in plain text format
/** This is an attempt to use the water.frink libraries to obtain a
high-accuracy boiling point of water at a specific ambient atmospheric
pressure.
It is primarily based on The International Association for the Properties
of Water and Steam (IAPWS, http://iapws.org/ ) document IAPWS R6-95(2018),
a PDF of which is usually available from:
http://www.iapws.org/relguide/IAPWS-95.html
Specifically, the file
http://www.iapws.org/relguide/IAPWS95-2018.pdf
*/
use water.frink
use secant.frink
ambientPressure = 150 psi
println["Ambient pressure = " + format[ambientPressure, "atm", 6]]
Torig = Water.saturatedTemperature[ambientPressure]
println["Original temperature guess = " + format[C[Torig], 1, 6] + " C"]
rhoL = Water.saturatedLiquidDensity[Torig]
println["Original liquid density guess = " + format[rhoL, "g/cm^3", 6]]
rhoV = Water.saturatedVaporDensity[Torig]
println["Original vapor density guess = " + format[rhoV, "g/cm^3", 6]]
T = Torig
T1 = T * 1.000001
/* This next bit is trying to apply the phase-equilibrium condition
(Maxwell criterion) to solve for the unknowns. See top of p. 12 in IAPWS-95
*/
deltaV = rhoV / Water.rhoc
tau = Water.Tc / T
psigmaV = Water.R T rhoV (1 + deltaV Water.dphirdeltaDimensioned[rhoV, T])
println["psigmaV = " + format[psigmaV, "atm", 6]]
deltaL = rhoL / Water.rhoc
tau = Water.Tc / T
psigmaL = Water.R T rhoL (1 + deltaL Water.dphirdeltaDimensioned[rhoL, T])
println["psigmaL = " + format[psigmaL, "atm", 6]]
println["Actual boiling point: " + (format[C[Water.boilingPoint[ambientPressure]], 1, 6] + " C")]
Download or view boilingPointTest.frink in plain text format
This is a program written in the programming language Frink.
For more information, view the Frink
Documentation or see More Sample Frink Programs.
Alan Eliasen was born 20139 days, 8 hours, 10 minutes ago.