Исходник программы, показывающей пример имитации движения молекул для 5 предустановленных установок. Пять предустановленных схем иллюстрируют передачу кинетической энергии и броуновское движение молекул. Молекулы имеют массу и скорость, которые отражают их кинетическую энергию (кинетическая энергия = 1/2 м v2).
Класс TMolecule определяет массу, цвет, текущее положение и скорость каждой молекулы. Массив этих молекул приводится в движение в основном цикле обработки, который вызывает три процедуры: Move обновляет положения молекул для следующего приращения времени; Reflect обнаруживает столкновения со стенками и меняет знак составляющей скорости (x или y), вызвавшей столкновение; и Collisions, самая сложная часть работы: обнаруживает столкновения между молекулами и определяет их новые скорости.
Программа иллюстрирует молекулы разной массы и радиуса, движущиеся по форме и сталкивающиеся с краями формы и друг с другом.
Самое сложное событие - столкновение двух молекул. Оно обрабатывается преобразованием скоростей в систему координат с осью X параллельно линии, соединяющей центры. В этой системе координат Y-компоненты не изменяются, в то время как X-компоненты можно рассматривать, как если бы они осуществляли лобовое столкновение. Исходя из требования сохранения энергии и импульса, легко получить формулы для скоростей объектов.
Схема №1 иллюстрирует два типа молекул: синие тяжелее красных. Хотя красные изначально находятся в состоянии покоя, очевидно, что через некоторое время они будут двигаться быстрее, чем синие. Это демонстрация равнораспределения энергии, где все молекулы имеют в среднем одинаковую кинетическую энергию.
Схема № 3 демонстрирует броуновское движение. Здесь только одна тяжелая молекула (частица).