> restart;#'therm_subs.mws'

Available data for substances are grouped in 5 tables: gas_data, liq_data, sol_data, cp(T)_data and pv(T)_data, stored in ASCII files gas.asc, liq.asc, sol.asc, cp.asc, and pv.asc. Below are some examples of use.

> read`../therm_const.m`:read`../therm_proc.m`:with(therm_proc):

Gas data:

> su:="H2O";dat1:=get_gas_data(su);

H2O
M = `+`(`/`(`*`(0.18e-1, `*`(kg_)), `*`(mol_))), T[b] = `+`(`*`(373.2, `*`(K_))), T[cr] = `+`(`*`(647.3, `*`(K_))), p[cr] = `+`(`*`(22120000.00, `*`(Pa_))), c[p] = `+`(`/`(`*`(1900., `*`(J_)), `*`(kg_...
M = `+`(`/`(`*`(0.18e-1, `*`(kg_)), `*`(mol_))), T[b] = `+`(`*`(373.2, `*`(K_))), T[cr] = `+`(`*`(647.3, `*`(K_))), p[cr] = `+`(`*`(22120000.00, `*`(Pa_))), c[p] = `+`(`/`(`*`(1900., `*`(J_)), `*`(kg_...

Liquid data:

> get_liq_data(su);

T[f] = `+`(`*`(273., `*`(K_))), T[b] = `+`(`*`(373., `*`(K_))), rho = `+`(`/`(`*`(998., `*`(kg_)), `*`(`^`(m_, 3)))), h[sl0] = `+`(`/`(`*`(334000., `*`(J_)), `*`(kg_))), h[lv0] = `+`(`/`(`*`(2257000.,...
T[f] = `+`(`*`(273., `*`(K_))), T[b] = `+`(`*`(373., `*`(K_))), rho = `+`(`/`(`*`(998., `*`(kg_)), `*`(`^`(m_, 3)))), h[sl0] = `+`(`/`(`*`(334000., `*`(J_)), `*`(kg_))), h[lv0] = `+`(`/`(`*`(2257000.,...

Solid data:

> get_sol_data(su);get_sol_data("Hielo");

Substance,
sol_dat
T[f] = `+`(`*`(273., `*`(K_))), rho = `+`(`/`(`*`(921., `*`(kg_)), `*`(`^`(m_, 3)))), c = `+`(`/`(`*`(2040., `*`(J_)), `*`(kg_, `*`(K_)))), k = `+`(`/`(`*`(2.3, `*`(W_)), `*`(m_, `*`(K_)))), alpha = 0...

Gas data:

> dat2:=get_gas_data("Aire");

M = `+`(`/`(`*`(0.29e-1, `*`(kg_)), `*`(mol_))), T[b] = `+`(`*`(82., `*`(K_))), T[cr] = `+`(`*`(132., `*`(K_))), p[cr] = `+`(`*`(3750000.00, `*`(Pa_))), c[p] = `+`(`/`(`*`(1004., `*`(J_)), `*`(kg_, `*...
M = `+`(`/`(`*`(0.29e-1, `*`(kg_)), `*`(mol_))), T[b] = `+`(`*`(82., `*`(K_))), T[cr] = `+`(`*`(132., `*`(K_))), p[cr] = `+`(`*`(3750000.00, `*`(Pa_))), c[p] = `+`(`/`(`*`(1004., `*`(J_)), `*`(kg_, `*...

cp(T) and pv(T) data:

> cp:=get_cp_data(su);c[p,300]:=subs(T=300*K_,cp):'c[p,300]'=evalf(%,2);get_pv_data(su);p[v,300]:=pv(300*K_):'p[v,300]'=evalf(%,2);

`/`(`*`(`+`(32.2, `/`(`*`(0.19200000000000000000e-2, `*`(T)), `*`(K_)), `/`(`*`(0.10550000000000000000e-4, `*`(`^`(T, 2))), `*`(`^`(K_, 2))), `-`(`/`(`*`(0.36000000000000000000e-8, `*`(`^`(T, 3))), `*...
c[p, 300] = `+`(`/`(`*`(34., `*`(J_)), `*`(mol_, `*`(K_))))
proc (T) RETURN(`*`(0.1e4, `*`(exp(`+`(temp_[2], `-`(`/`(`*`(temp_[3]), `*`(`+`(`/`(`*`(T), `*`(K_)), temp_[4])))))), `*`(Pa_)))) end proc
p[v, 300] = `+`(`*`(0.36e4, `*`(Pa_)))

Notice the different approach for coding cp(T) and pv(T).

Example of use: density of an ideal gas:

> eqrho:=rho=p/(R*T);p:=1e5*Pa_;T:=300*K_;eqrhoAir_:=subs(dat2,SI2,eqrho);eqrhoSteam_:=subs(dat1,SI2,eqrho);

rho = `/`(`*`(p), `*`(R, `*`(T)))
`+`(`*`(0.1e6, `*`(Pa_)))
`+`(`*`(300, `*`(K_)))
rho = `+`(`/`(`*`(1.1626974581027984925, `*`(kg_)), `*`(`^`(m_, 3))))
rho = `+`(`/`(`*`(.72167428433966802983, `*`(kg_)), `*`(`^`(m_, 3))))

>