Применение клеточных автоматов в моделировании

*/

КА применяют для моделирования потоков жидкости следующим образом. Состояние элементарного автомата s представляется булевым вектором и в каждый момент времени определяется набором некоторых содержащихся в нем гипотетических частиц. Частицы обладают следующими свойствами.

  1. Масса частицы единична m = 1.

  2. Модуль вектора скорости частицы единичный |c| = 1 либо нулевой |c| = 0. Частицы с нулевым вектором скорости называют частицами покоя.

  3. Вектор скорости c частицы может быть направлен только в сторону одной из соседних клеток Nl(w).

  4. В один момент времени в одной и той же клетке w не может быть двух или более частиц с одинаковыми векторами скорости c.

Таким образом, состояние каждой клетки w представлено булевым вектором s = (s1, s2, …, sb), sl  {0, 1}, l = 1, 2, …, b, длины b = bm + br, где bm = |N(w)| – количество соседних клеток, br – количество частиц покоя. Каждый разряд sl вектора s определяет наличие или отсутствие частицы с вектором скорости cl. Для частиц с номерами l = 1, 2, …, bm вектор скорости направлен в сторону l–го соседа и имеет модуль скорости |cl| = 1. Частицы покоя имеют номера l = bm, bm+1, …, b и модуль скорости |cl| = 0, направление их движения не определено.

Каждый такт работы клеточного автомата разбит на две фазы: столкновение и сдвиг. Функция переходов δ элементарного автомата A состоит, таким образом, из композиции функций δ1 (столкновение) и δ2 (сдвиг).

δ(s) = δ2(δ1(s)) (1.1)

Каждая из этих функций должна удовлетворять законам сохранения массы

(1.2)

и импульса

, (1.3)

а также не нарушать ни один из четырех вышеприведенных принципов. С точки зрения динамики потока жидкости наличие этих двух фаз интерпретируется следующим образом. Столкновения реализуют диффузию в жидкости, а сдвиг — процесс переноса вещества в потоке. Далее подробно описаны эти две фазы.

В фазе столкновения происходит изменение состояния клеток КА согласно некоторым правилам столкновения, не зависящим от состояний соседних клеток, т.е. δ1 зависит только от внутреннего состояния своего элементарного автомата, s1´ = δ1(s). Функция δ1 выбирается такой, чтобы сохранялись масса

,  w W (1.4)

и импульс

,  w W (1.5)

частиц в клетке. В большинстве известных моделей функция δ1 вероятностная.

В фазе сдвига каждая частица перемещается на одну клетку в направлении вектора ее скорости

s2´(w) = δ2(s1´(w), s1´(N1(w)), s1´(N2(w)), …, s1´(Nbm(w))), (1.6)

где s1´(Nl(w)) – состояние после столкновения l-го соседа клетки w. Значение функции сдвига δ2 определено для каждого разряда вектора s2´(w) = (s21´, …, s2l´, …, s2b´) следующим образом.

(1.7)

где s1l´(Nl(w))) – l-й разряд вектора состояния l-го соседа клетки w (его вектор скорости cl направлен в сторону клетки w). Таким образом, при сдвиге масса и импульс частиц в клетке изменяются, т.е. нарушаются условия (1.4) и (1.5), но в пределах всего КА они сохраняются, т.е. условия (1.2) и (1.3) выполняются.

При моделировании потоков практический интерес представляют не столько значение параметров автомата на микроуровне, т.е. масса и скорость частиц в каждой клетке w, сколько осредненные значения их скоростей u и концентраций n по некоторой окрестности Av(w), которая для двумерных моделей имеет форму bm–угольника, где bm – количество соседей.

Осредненная скорость вычисляется как сумма всех векторов частиц, попадающих в окрестность осреднения Av(w), деленная на мощность окрестности осреднения:

, (1.8)

где |Av(w)| – количество клеток, попадающих в окрестность осреднения, cl – вектор скорости, соответствующий l-му разряду вектора состояния s, принадлежащей окрестности осреднения Av(w) клетки.

Осредненная концентрация частиц n подсчитывается в той же окрестности Av(w) следующим образом.

, (1.9)

где sl – значение l-го разряду вектора состояния s, принадлежащей окрестности осреднения Av(w) клетки. Осредненные значения скорости и концентрация частиц, являющиеся модельными значениями скорости и давления, соответствуют значениям скорости и давления реальной жидкости и являются параметрами макроуровня.