Скрипт запускается следующим образом (эти строки можно поместить в файл с расширением .htm или .html):
<HTML>
<HEAD>
<script src="gasliq3.txt"></script>
</HEAD>
<BODY>
<noscript style="text-align: center; font-size: 50;">JAVASCRIPT MUST BE TURNED ON</noscript>
<script type="text/javascript">
document.body.style.backgroundColor = "WhiteSmoke";
f_create();
</script>
</BODY>
</HTML>
В файле gasliq3.txt, который должен быть в той же папке, содержится остальной код.
Пояснения к интерфейсу:
Целочисленные width и height определяют ширину и высоту модельного поля в пикселах.
Поля x,y,z minimum и maximum задают границы реального объёма.
Отмеченные чекбоксы x,y,z closed показывают замкнутость пространства отдельно
по каждому измерению (работает не во всех режимах), в замкнутом вместо отталкивания
от "стенок" точка переходит на другую сторону модельного объёма.
Радио переключатели view along показывают, вдоль какой оси пользователь наблюдает
модельный объём, по умолчанию вдоль z, остальные оси всегда направлены вправо и вниз
(используется правая система координат).
Кнопка methods вызывает интерфейс с настройками взаимодействий, скрывается он
при повторном нажатии этой же кнопки или кнопки hide settings на самом интерфейсе.
Следует учитывать, что текстовые поля реально изменяются не после нажатия клавиши enter,
а после клика мышкой в другом месте.
Поле min positive обозначает минимальную положительную величину, допустимую в расчётах,
в частности, для деления, чтобы знаменатель не был равным нулю.
Поле min distance (требует осторожности) показывает на каком расстоянии (или меньшем)
начинают взаимодействовать точки между собой при упругом отталкивании.
Поля force along x,y,z задают дополнительные силы, действующие вдоль каждого измерения,
если например, задать небольшую положительную (скажем, 0.1) вдоль y, то видно
как "атмосфера" оседает вниз. Энергия системы при этом может значительно колебаться.
Величина point size обозначает размеры точки (квадратика) в пикселах.
Целочисленные red, blue points показывают количество точек каждого вида, всего два вида:
красные и синие, различаются только массой, взаимодействуют по одинаковым законам.
Далее идут массы точки (mass) по каждому виду.
Поле velocity mul это множитель для скоростей, задаваемых при создании рандомной модели.
Поле kinetic mul используется при нажатии кнопки mul Ekin, чтобы умножить
кинетическую энергию системы на заданное число, то есть фактически уменьшить
или увеличить скорость движения точек и условную "температуру".
Поле msecs показывает как часто (в миллисекундах) вызывается шаг симуляции.
Поле time step это шаг времени, это величина для использования в расчётах обновления
реальных скоростей и положений точек в системе координат.
Кнопка one step делает один шаг в симуляции.
Кнопка run model запускает регулярно повторяемую симуляцию.
Кнопка pause останавливает исполнение.
Кнопка create создаёт рандомную модель с заданными выше настройками.
Кнопки load и save нужны для загрузки и сохранения модели через текстовое поле
внизу панели управления, в формате "буква цвета" + 3 числа для положений x,y,z
+ 3 числа для скоростей x,y,z, числа разделяются одним или многими white-space
символами, к которым относится пробел, табуляция (горизонтальная),
перевод на новую строку и возврат каретки.
Кнопка 0 impulse обнуляет суммарный импульс системы по всем измерениям,
чтобы не было общего дрейфа точек в какую-то сторону.
Кнопка mul Ekin, как написано выше, использует множитель для кинетической энергии
системы точек, изменяет "температуру".
Кнопка get Ekin получает суммарную кинетическую энергию в поле справа.
Кнопка set Ekin загружает из этого поля кинетическую энергию, с соответствующим
уножением скоростей точек, если это математически возможно.
Кнопка get Epot получает суммарную потенциальную энергию в поле справа.
Кнопка get energy получает суммарную энергию в поле справа.
Интерфейс дополнительной панели настроек (вызывается и скрывается кнопкой methods
или скрывается hide settings):
Радио переключатели выбирают упругое отталкивание, схему Леннарда-Джонса,
Букингэма или Морзе.
Поля Johns Emin и Rmin задают минимум энергии в схеме Леннарда-Джонса
(значение энергии положительное, хотя потом по факту будет отрицательное),
и расстояние, на котором энергия взаимодействия минимальная.
Чекбоксы Johns cut и splines показывают, используется ли "отрезание" потенциала
на больших расстояниях, с нулём на расстоянии 2.5 сигмы, и сплайны для приближения.
Поля Buckingham A,B,C задают коэффициенты для exp-6.
Поля Morse Emin и Rmin задают минимум энергии в схеме Морзе и расстояние,
на котором энергия взаимодействия минимальная.
Morse a(exp) множитель для экспоненты.
Настройки по умолчанию могут быть не лучшими, экспериментируйте.