Обсуждение:Фазовая диаграмма воды

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Интервики[править код]

Интервики не нашел, зато есть кусок статьи с аналогичным содержанием en:Properties of water#Water, ice and vapor. Ink в 19:37, 22 сентября 2010 (UTC)[ответить]

Замечания по Паскалю[править код]

На всякий случай привожу пример программы, использующей функцию IceSublimationPressure. Рассчитывается давление сублимации для 200K. Проверено на Turbo Pascal 7.0.

{$N+}
function IceSublimationPressure(T:double):double;
 const
  T0 = 273.16;      P0 = 611.657;
  a1 = -21.2144006; b1 = 0.003333333;
  a2 =  27.3203819; b2 = 1.20666667;
  a3 =  -6.1059813; b3 = 1.70333333;
begin
  IceSublimationPressure:=P0*exp(
  (a1*exp(ln(T/T0)*b1)
  +a2*exp(ln(T/T0)*b2)
  +a3*exp(ln(T/T0)*b3))*T0/T);
end;

begin
writeln(IceSublimationPressure(200));
readln;
end.

Результат расчёта:

1.62604017125021E-0001

т.е. 0,162604 Па, хотя верные здесь, пожалуй, только первые три значащие цифры.

AdmiralHood 00:51, 23 сентября 2010 (UTC)[ответить]

Функции на Паскале[править код]

Такое впечатление, что автор этих вставок выполнив, вероятно, школьное, задание по информатике, так впечатлился своими достижениями в программировании, что счёл их глобально ценными. Но это же совсем не так. Эти куски паскалевского текста просто дублируют формулы, приведённые выше. Не надо так плохо думать о читателях ВП, им этого вполне достаточно, нового смысла паскаль не даёт. Не говоря уже о том, что почему именно паскаль и кому он сейчас нужен. Перенесу это сюда. Kmorozov 10:23, 24 сентября 2010 (UTC)[ответить]

Похоже, вы не понимаете, мой юный друг, что программа, на чём бы она ни была написана, гораздо ценнее и практичнее, чем многоэтажные формулы. Потому что это продукт, уже отлаженный и готовый к употреблению. Кто-то уже аккуратненько перепечатал коэффициенты, закодировал формулы и уже угробил целый день своей короткой жизни, на то, чтобы проверить правильность счёта во всех перечисленных диапазонах. Лучше бы вы формулы грохнули, а паскаль оставили, ей богу!

AdmiralHood 11:21, 24 сентября 2010 (UTC)[ответить]

Друзей я себе подбираю сам, не претендуйте. Почитайте лучше ВП:ЧНЯВ и ВП:ОРИСС. Kmorozov 11:45, 24 сентября 2010 (UTC)[ответить]

Ниже приведена функция на языке Паскаль (Turbo Pascal 7.0), реализующая расчёт по указанной формуле:

function IceSublimationPressure(T:double):double;
 const
  T0 = 273.16;      P0 = 611.657;
  a1 = -21.2144006; b1 = 0.003333333;
  a2 =  27.3203819; b2 = 1.20666667;
  a3 =  -6.1059813; b3 = 1.70333333;
begin
  IceSublimationPressure:=P0*exp(
  (a1*exp(ln(T/T0)*b1)
  +a2*exp(ln(T/T0)*b2)
  +a3*exp(ln(T/T0)*b3))*T0/T);
end;

Ниже приведена функция на языке Паскаль (Turbo Pascal 7.0), реализующая расчёт по указанной формуле:

function Ice1hMeltingPressure(T:double):double;
 const
  T0 = 273.16;        P0 = 611.657;
  a1 = 1195393.37;    b1 =   3.00;
  a2 =   80818.3159;  b2 =  25.75;
  a3 =    3338.26860; b3 = 103.75;
begin
  Ice1hMeltingPressure:=P0*(1
  +a1*(1.0-exp(ln(T/T0)*b1))
  +a2*(1.0-exp(ln(T/T0)*b2))
  +a3*(1.0-exp(ln(T/T0)*b3)));
end;

Ниже приведена функция на языке Паскаль (Turbo Pascal 7.0), реализующая расчёт по указанной формуле:

function Ice3MeltingPressure(T:double):double;
 const
  T0 = 251.165;   a1 =  0.299948;
  P0 = 208.566e6; b1 = 60.00;
begin
  Ice3MeltingPressure:=P0*(1-a1*(1-exp(ln(T/T0)*b1)));
end;

Ниже приведена функция на языке Паскаль (Turbo Pascal 7.0), реализующая расчёт по указанной формуле:

function Ice5MeltingPressure(T:double):double;
 const
  T0 = 256.164; a1 = 1.18721;
  P0 = 350.1e6; b1 = 8.00;
begin
  Ice5MeltingPressure:=P0*(1-a1*(1-exp(ln(T/T0)*b1)));
end;

Ниже приведена функция на языке Паскаль (Turbo Pascal 7.0), реализующая расчёт по указанной формуле:

function Ice6MeltingPressure(T:double):double;
 const
  T0 = 273.31;  a1 = 1.07476;
  P0 = 632.4e6; b1 = 4.60;
begin
  Ice6MeltingPressure:=P0*(1-a1*(1-exp(ln(T/T0)*b1)));
end;

Ниже приведена функция на языке Паскаль (Turbo Pascal 7.0), реализующая расчёт по указанной формуле:

function Ice7MeltingPressure(T:double):double;
 const
  T0 = 355.0;        P0 =  2.216e9;
  a1 =   1.73683;    b1 = -1.0;
  a2 =  -0.0544606;  b2 =  5.0;
  a3 =   8.06106e-8; b3 = 22.0;
begin
  Ice7MeltingPressure:=P0*exp(
    a1*(1-exp(ln(T/T0)*b1))
   +a2*(1-exp(ln(T/T0)*b2))
   +a3*(1-exp(ln(T/T0)*b3)));
end;


Ниже приведена функция на языке Паскаль (Turbo Pascal 7.0), реализующая расчёт по указанной формуле:

function VaporSaturationPressure(T:double):double;
const
 n0  =        1.0;
 n1  =     1167.0521452767;
 n2  =  -724213.16703206;
 n3  =      -17.073846940092;
 n4  =    12020.82470247;
 n5  = -3232555.0322333;
 n6  =       14.91510861353;
 n7  =    -4823.2657361591;
 n8  =   405113.40542057;
 n9  =       -0.23855557567849;
 n10 =      650.17534844798;
 T0  = 1.0;
 P0  = 1.0e6;
var
  A,B,C,Tn,x:double;
begin
  Tn:=T/T0+n9/(T/T0-n10);
  A:= n0*Tn*Tn+n1*Tn+n2;
  B:= n3*Tn*Tn+n4*Tn+n5;
  C:= n6*Tn*Tn+n7*Tn+n8;
  x:=(-B-sqrt(B*B-4*A*C))/2/A;
  VaporSaturationPressure:=P0*x*x*x*x;
end;

Устаревшая ссылка в "примечаниях"[править код]

Ссылка #16 на Revised Release on the Pressure along the Melting and Sublimation Curves of Ordinary Water Substance http://www.iapws.org/relguide/MeltSub.pdf- не работает, ее лучше бы заменить на новую: http://www.iapws.org/relguide/MeltSub2011.pdf

Раздел защищен, не мог поправить

Lexa Karbofoss 16:00, 17 декабря 2011 (UTC)[ответить]