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 20217 days, 23 hours, 15 minutes ago.