Диссертация (1149400), страница 4
Текст из файла (страница 4)
Впоглощающей среде эта проблема решается введением весов для фотонов. Фотоны помещаются в среду с весом 0 = 1. На каждом акте рассеяния вес фотонауменьшается по правилу+1 = exp(−/ ),(1.41)что соответствует потере интенсивности за счет поглощения. Распространениефотона прекращается, когда его вес становится меньше некоторого порогового значения. Интенсивность при этом рассчитывается как сумма весов фотонов.
В среде без собственного поглощения моделирование обычно ограничиваютнекоторым экспериментально подобранным максимальным числом кратностейрассеяния. Такая регуляризация обосновывается наличием пренебрежимо малого поглощения и ограниченностью размеров рассеивающей среды. В задачахс границами условием завершения распространения фотона также может бытьвыход за пределы рассеивающего объема.Таким образом, стандартный алгоритм моделирования многократного рассеяния имеет следующий вид:()∙ Фотон с заданным волновым вектором k() = k0 помещается в рассеивающую среду.
Ему приписывается начальный вес 0 .∙ До тех пор, пока фотон находится внутри рассеивающего объема, его весбольше минимального, а число рассеяний, которые он претерпел, меньшемаксимального, фотон подвергается однократным рассеяниям:– Фотон перемещается на случайное расстояние , выбранное согласноплотности вероятности (1.36).– В случае попадания фотона в детектор его вес добавляется к суммарной интенсивности излучения.22– Вес фотона уменьшается согласно правилу (1.41).– Согласно индикатрисе однократного рассеяния (k() , k() ) выбирается волновой вектор фотона после рассеяния k() .– После рассеяния k() полагается равным k() .∙ Процедура повторяется для следующего фотона.Фактически, описанная процедура моделирования соответствует вычислению многократных интегралов, являющихся членами ряда (1.25), методомМонте-Карло.1.4.
Моделирования рассеяния в анизотропных средахДля многих задач рассеяния индикатриса может быть получена аналитически. Такие индикатрисы известны в задачах океанологии [51–55] и физикиатмосферы [56–58], в медицинской диагностике [39, 42, 59–61], при исследовании суспензий [62–64], в физике жидких кристаллов и т.д. При этом формаиндикатрисы может быть достаточно сложной, а рассеивающая среда как изотропной, так и анизотропной. В этом случае при моделировании многократногорассеяния возникают существенные трудности. Они обусловлены тем, что метод обратных функций для разыгрывания направления по такой индикатрисеприводит к вычислению функций, которые не могут быть рассчитаны аналитически.
Поскольку такую процедуру необходимо проводить на каждом актерассеяния, моделирование становится неэффективным, а получение большогонабора статистических данных – чрезвычайно трудоемким.Одним из подходов к решению такой задачи является использование вместо истинной индикатрисы некоторой упрощенной модели. Эта модель выбирается так, чтобы для нее можно было использовать метод обратных функций.Однако, эта процедура не всегда возможна, поскольку при использовании упрощенной модели не удается учесть все особенности рассматриваемой физической23задачи.Другой подход состоит в том, что истинная индикатриса предварительно аппроксимируется с заданной точностью и в дальнейшем на каждом актерассеяния используется построенная аппроксимация.Описанная далее техника является обобщением традиционного подхода кмоделированию рассеяния, изложенного в разделе 1.3, на случай анизотропныхсред.
Процедура построения аппроксимации предложена автором диссертациии может использоваться не только для описания рассеяния света в НЖК, нои для любых других задач с достаточно гладкой индикатрисой однократногорассеяния.1.4.1. Аппроксимация индикатрисы и выбор направленияВ сферических координатах индикатриса однократного рассеяния (, )является функцией полярного и азимутального углов ∈ [0, ] и ∈ [0, 2]. Вдальнейшем мы будем считать, что индикатриса (, ) нормирована на единицу:2ZZ (, ) sin = 10(1.42)0Аппроксимация индикатрисы используется для разыгрывания направления накаждом акте рассеяния.
Она должна быть достаточно простой, чтобы направление по ней можно было разыграть быстро. Кроме того, мы хотим, чтобы нашподход работал для разных типов индикатрис. То есть, аппроксимация должнахорошо приближать любые достаточно гладкие функции.Известны многочисленные способы [65] аппроксимации и интерполяции,как правило основанные на разложении приближаемой функции по некоторомубазису. Такие способы не очень хорошо подходят для моделирования рассеяния.Это связано с тем, что при использовании сложной интерполяции разыгрывание направления при помощи метода обратных функций приведет к численному24решению нелинейных алгебраических уравнений, что сделает процедуру моделирования однократного рассеяния медленной.В качестве аппроксимации мы использовали набор билинейных интерполяций индикатрисы, заданных на некоторой специально выбранной сетке.
Сеткапокрывает всю область определения индикатрисы.Пусть { } – массив узлов сетки. Каждый узел задается значениями координат и , а также значением аппроксимируемой индикатрисы (, ). Пусть{ } – массив ячеек сетки. Каждая ячейка этой сетки представляет собой прямоугольник на плоскости (, ).
Ячейка задается набором индексов {1 , 2 , 3 , 4 },которые соответствуют узлам сетки, находящимся в вершинах прямоугольников. Кроме того, для каждой ячейки будем хранить величину⎞⎛Z∑︁⎝ ⎠ , ==0(1.43)где – билинейная интерполяция подынтегрального выражения в (1.42) на -йячейке. Для каждой ячейки функция (, ) представляет собой поверхностьвторого порядка(0 , 0 ) sin 0(1 , 0 ) sin 0(1 −)(1 −)+(−0 )(1 −)+(1 − 0 )(1 − 0 )(1 − 0 )(1 − 0 )(0 , 1 ) sin 1(1 , 1 ) sin 1+(1 − )( − 0 ) +( − 0 )( − 0 ) =(1 − 0 )(1 − 0 )(1 − 0 )(1 − 0 )(, ) == + + + (1.44)Здесь координаты узлов ячейки имеют вид (0 , 0 ), (0 , 1 ), (1 , 0 ), (1 , 1 ).Поскольку индикатриса имеет смысл плотности вероятности, набор чисел{ } возрастает с ростом .
Если мы учтем все ячейки, то величина { } приметмаксимальное значение .Опишем, как разыгрывается направление распространения фотонов длятакой аппроксимации индикатрисы. Во-первых, нужно выбрать ячейку. Дляэтого разыгрывается случайное число ∈ [0, ] и выбирается такая ячейка25 , для которой −1 < ≤ . Интервал разыгрывания числа обусловлентем, что, в отличие от индикатрисы (, ), наша аппроксимация не нормирована на 1. После того, как ячейка найдена, по ее узлам восстанавливается видсоответствующей билинейной интерполяции , по которой методом обратныхфункций разыгрываются углы и внутри ячейки.Метод обратных функций для билинейной интерполяции сводится к разыгрыванию еще двух случайных чисел и и решению двух алгебраических˜уравнений относительно ˜ и :[︂]︂[︂]︂1 11˜ 0 ) = (21 − 20 ) + (1 − 0 ) (˜2 −02 )+ (21 − 20 ) + (1 − 0 ) (−2 221 ˜( + )(˜2 − 20 ) + ( ˜ + )(˜ − 0 ) = , (1.45)2гдеZ1 Z1 ∈ [0,(, )](1.46)˜ )].(,(1.47) 0 0иZ1 ∈ [0,0Корни уравнений (1.45) выбираются так, чтобы 0 < ˜ ≤ 1 ,0 < ˜ ≤ 1 .Более сложный вид интерполяции индикатрисы на ячейке мог бы привести кнеобходимости численно решать более сложные уравнения, а это сделало быпроцедуру разыгрывания направления медленной и неэффективной.1.4.2.
Построение сеткиНаша цель заключается в том, чтобы построить оптимальное разбиениепрямоугольника (, ) на ячейки. Это разбиение должно обеспечивать напередзаданную точность описания многократного рассеяния. Для этого требуется,чтобы аппроксимация индикатрисы в каждой ячейке сетки мало отличаласьот истинного значения индикатрисы.
Для оценки точности аппроксимации мы26будем использовать 1 -норму. Аппроксимация должна приближать индикатрису с заданной точностью ||(, ) sin − (, )|| < 1 ||(, ) sin ||. Для описанной выше аппроксимации это может быть реализовано с помощью выбораузлов сетки { }. Для этого мы используем двоичное разбиение пространства(binary space partitioning) и структуру данных, похожую на дерево квадрантов(quadtree). Такой способ представления поверхностей изначально был разработан для применения в компьютерной графике [66].Используемый нами алгоритм разбиения области определения индикатрисы на ячейки использует идею, применяющуюся при адаптивном численноминтегрировании, и состоит в следующем.
Разбиение начинается с ячейки, занимающей всю область определения индикатрисы. Пусть на некотором шагепостроения разбиения у нас есть ячейка с узлами в точках (0 , 0 ), (0 , 1 ),(1 , 0 ), (1 , 1 ). Наша задача состоит в том, чтобы оценить, устраивает ли насимеющееся разбиение, и если нет – то “улучшить” его и продолжить построение разбиения. Нам выгодно иметь минимально устраивающее нас число ячеекразбиения, поэтому, в отличие от традиционного построения дерева квадрантов, мы будем делить ячейку не на 4, а на 2 части: или по , или по . Введемобозначения0 + 120 + 1 =2 =(1.48)(1.49)Пусть 0 – текущая аппроксимация на рассматриваемой ячейке (билинейнаяинтерполяция (1.44).
Поделим ячейку прямыми = и = . Пусть 4 –аппроксимация, состоящая из четырех билинейных интерполяций, построенныхна четырех получившихся прямоугольниках, и — аппроксимации, состоящие из двух билинейных интерполяций, построенных на двух прямоугольниках,полученных разбиением исходной ячейки прямой = или = соответственно. Мы будем использовать 4 в качестве более точного приближения дляиндикатрисы. Если || 4 − 0 || ≤ 1 || 4 ||, то для рассматриваемой ячейки би27линейная интерполяция 0 уже является достаточно хорошим приближениеми дальнейшее разбиение не требуется.
Если || 4 − 0 || > 1 || 4 ||, то мы разобьем ячейку на две части. Для случая || 4 − || < || 4 − || ячейка будетразбита по , в противном случае – по . После этого описанная выше процедура рекурсивно проводится с каждой из двух образовавшихся частей ячейки. Врезультате область определения индикатрисы будет адаптивно разбита на ячейки, для каждой из которых билинейная интерполяция, построенная на узлахячейки, приближает на ячейке индикатрису с точностью не хуже заданной. Азначит и вся аппроксимация удовлетворяет заданному критерию точности.1.4.3.















