http://evgenii.rudnyi.ru/doc/misc/tdlib.html
Файлы доступны в архиве http://evgenii.rudnyi.ru/soft/tdlib00+.tar.gz.
ПО TDLIB было написано мной в для решения самых разнообразных задач химической термодинамики, в том числе и расчете фазовых диаграмм. Однако ПО создавалось в ходе научной работе по так называемой оптимизации фазовых диаграмм, когда целью было определение энергий Гиббса из доступных экспериментальных данных, включая точки на фазовой диаграмме. Это наложило свой отпечаток на ПО и самое главное на приоритеты. В первую очередь программировались задачи, которые нужны были для решения текущей научной работы.
При компиляции библиотеки получается консольное приложение assess.exe, которое как раз может решать обратную задачу: определение энергии Гиббса из доступных экспериментальных данных. Однако, поскольку решение прямой задачи (расчет равновесного состава) является частью обратной задачи, то данное приложение можно использовать только для прямой задачи. Решение прямой задачи будет коротко рассмотрено в настоящем документе.
Должен отметить, что при расчете фазовой диаграммы наиболее оптимально использовать минимизацию энергии Гиббса (см. уравнение 9.1 в http://evgenii.rudnyi.ru/doc/ru/teaching/313/313group.pdf), например см. ПО для расчета равновесного состава в трехкомпонентной системе Ba-Cu-Y
http://evgenii.rudnyi.ru/soft/bacuy_eq.tar.gz
Это функциональность однако не была реализована в TDLIB. К сожалению, для превращения идей из bacuy_eq в общую реализацию не хватило времени. Оказалось, что для решения обратной задачи это было не так уж и критично и соотвественно силы ушли на решение других, более актуальных тогда задач.
Соответственно TDLIB предлагает только возможность расчета равновесного состава при заданном составе фаз, то есть решение системы нелинейных уравнений 2.26 (см. документацию к библиотеке). Рассмотрим как это может быть использовано при расчете фазовых диаграмм на примере фазовой диаграммы Bi-Se из работы http://evgenii.rudnyi.ru/doc/ru/papers/01nm_bise.pdf.
Соответствующие файлы находятся в директории ex/bise. Ниже предполагается, что это текущая директория и программы assess.exe и gnuplot.exe (wgnuplot.exe) находятся на пути (PATH), заданном ОС.
Файл ex/bise/sys.mod задает мольные энергии Гиббса всех фаз, которые принимаются в расчет. Это исходная информация для расчета фазовых диаграмм в прямой задаче. Файл ex/bise/alg.mod описывает возможные фазовые равновесия в системе. Файл ex/bise/pd.out.mod описывает постороение фазовой диаграммы. В нем рассчитываются фазовые равновесия при заданном составе фаз. Здесь получается, что уже необходимо представлять себе возможную топологию диаграммы состояния и требуется задать расчет всех линий в диаграмме.
Команда
$ assess sys alg pd.out -o t
считывает энергии Гиббса, информацию о фазовых равновесиях и затем проводит расчет фазовой диаграммы, которая будет записана в файл t.pd в формате gnuplot. Команда
$ gnuplot t.pd -
построит рассчитанную фазовую диаграмму. Более подробное описание объектов в файлах ввода можно найти в документации к TDLIB (см. раздел 3.4.7. Object PhaseEquilibrium (tdlib/ex/bise), а также другие разделы).
Следующее
Введение в TDLIB: чистые вещества
Введение в TDLIB: регулярный раствор
Введение в TDLIB: объект фазовые равновесия
Уравнивание химических реакций в TDLIB
Программа VCS из книги Smith&Missen