КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Построение траекторий отдельных нейтроновДля получения стандартных случайных последовательностей {gi} будем использовать рассмотренный выше генератор псевдослучайных чисел Mersenne Twister. Алгоритм моделирования заключается в следующем: 1. Задать начальное положение нейтрона x0 = 0 и косинус начального отклонения траектории от оси x m0 = 1. 2. Сгенерировать длину свободного пробега нейтрона до первого столкновения l1 по формуле . 3. Вычислить новую координату нейтрона на оси x по формуле : xi = xi-1 + li×mi-1, где i – номер столкновения. 4. Если xi > h, то завершить расчёт, считая нейтрон прошедшим через пластину. 5. Если xi < 0 (что возможно при i > 1), то завершить расчёт, считая нейтрон отразившимся от пластины. 6. Если 0 £ xi £ h, то разыграть исход столкновения, - рассеяние либо поглощение, - по формуле . В случае поглощения нейтрона закончить расчёт. 7. В случае рассеяния сгенерировать новый косинус угла отклонения траектории mi по формуле , после чего продолжить расчёт, начиная с пункта 2. Для получения окончательного результата необходимо провести моделирование для многих нейтронов. Пусть N+ - количество нейтронов, прошедших сквозь пластину, N- - количество отразившихся нейтронов, Na - количество поглощённых нейтронов. Тогда проницаемость пластины совпадает с вероятностью её прохождения , а коэффициент отражения – с вероятностю отражения . Соответственно, вероятность поглощения даётся формулой . 2.2.4. Алгоритм с использованием «веса» нейтронов В алгоритме, изложенном выше, поглощаемый нейтрон исчезает полностью, а вычисления, проведённые для его траектории, в дальнейшем не учитываются. Получается, что эти расчёты не в полной мере используются при получении результатов, что снижает эффективность алгоритма. Потери промежуточных расчётов можно избежать, если моделирование всех траекторий будет продолжаться от входа в пластину и до выхода из неё, без обрыва при поглощениях. Для этого подходит следующая модификация алгоритма, включающая «вес» нейтронов. Пусть по каждой из моделируемых траекторий движется не один нейтрон, а целое множество, которому в реальности может соответствовать множество нейтронов на похожих траекториях. При каждом столкновении количество этих нейтронов будет уменьшаться на величину, пропорциональную вероятности поглощения åa/å, но часть нейтронов дойдёт до выхода из пластины. Можно не рассматривать все эти нейтроны напрямую, а ввести «вес» нейтрона w, равный отношению количества нейтронов, остающихся на траектории после очередного столкновения, к исходному количеству. До первого столкновения w0 = 1. При каждом i-м столкновении вес уменьшается по формуле , но моделирование траектории не может закончиться из-за поглощения. Преимуществами алгоритма с «весом» являются: · использование всех рассчитанных траекторий до самого конца моделирования: можно показать, что при моделировании того же количества траекторий точность алгоритма с «весом» выше, чем без него [2]; · отсутствие необходимости получения случайных чисел для выбора между поглощением либо рассеянием нейтрона: уменьшение количества обращений к генератору случайных чисел увеличивает скорость моделирования. Алгоритм, включающий «вес» нейтронов, включает следующие этапы: 1. Наряду с начальной координатой x0 = 0 и косинусом отклонения траектории m0 = 1, задаётся также вес нейтрона w0 = 1. 2. Длины свободного пробега нейтрона на каждом шаге генерируются так же, как в предыдущем алгоритме, по формуле . 3. Новые координаты нейтронов xi = xi-1 + li×mi-1 по-прежнему вычисляются по формуле . 4. Если xi > h, то расчёт завершается, без модификации веса. То же самое и при xi < 0. 5. Если 0 £ xi £ h, то модифицировать вес по формуле . Расчёт не прекращается. 6. Сгенерировать новый косинус угла отклонения траектории mi по формуле , после чего продолжить расчёт, начиная с пункта 2. Результат моделирования теперь определяется по следующим формулам. Пусть N+ - количество нейтронов c «весом», прошедших сквозь пластину, а N- - количество отразившихся нейтронов c «весом». Полностью поглощенных нейтронов теперь нет, так что полное количество нейтронов – N = N+ + N-. Вероятность прохождения пластины пропорциональна сумме конечных весов всех прошедших нейтронов: , а вероятность отражения от пластины – сумме весов всех отразившихся нейтронов: . Вероятность поглощения можно найти по формуле , что эквивалентно соотношению , в котором суммирование ведётся по всем нейтронам, как прошедшим пластину, так и отразившимся.
|