Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2009, 15:52   #1
Xumukys
Новичок
Джуниор
 
Регистрация: 09.05.2009
Сообщений: 1
По умолчанию Движение нейтрона в твердом теле

Здравствуйте, уважаемые форумчане!
Помогите, пожалуйста, составить прогу на VBA Excel по движению электрона в твердом теле.
Объем тела задается координатами некоторой прямоугольной области xmin, xmax; ymin, ymax. Задается также средняя длина свободного пробега нейтрона Lamda.
1.Разыгрывается случайная начальная координата x0 внутри заданного интервала [xmin, xmax] с помощью выражения q = a + r(b-a), в котором следует положить a = xmin, b = xmax.
2.Аналогично разыгрывается случайная начальная координата y0 внутри заданного интервала [ymin, ymax].
3.Разыгрывается угол φ случайного направления движения нейтрона на плоскости xy внутри интервала углов [0, 2pi] с помощью выражения q = a + r(b-a), в котором следует положить a = 0, b = 2pi.
4.Разыгрывается случайное значение длины свободного пробега L в соответствии с выражением L= - Lamda*ln(1-r).
5.Вычисляются значения координат точки конца свободного пробега по формулам:
x = x0 + L cosφ, y = y0 + L sinφ
6.Если частица оказывается за пределами хотя бы одного из интервалов [xmin, xmax] или [ymin, ymax], то рассмотрение ее движения заканчивается. Если обе координаты остаются внутри объема, в точке с этими координатами происходит столкновение нейтрона с ядром атома вещества. Рассмотрим здесь три возможных случайных варианта последствий такого столкновения. Для моделирования случайности каждого варианта разделим интервал случайного числа r, т.е. интервал [0, 1] на три подинтервала: [0, r1], (r1, r2], (r2, 1] (круглая скобка означает, что данный конец интервала в сам интервал не включен). Разыгрываем случайное число r и если оно попадает в первый подинтервал, реализуется первый вариант, если во второй, то второй, если в третий, то третий.
7.Первый вариант – в результате столкновения происходит упругое изотропное рассеяние нейтрона ядром атома. В этом случае координата точки столкновения принимается за новую начальную координату:
x0 = x, y0 = y
и моделирование движения этого нейтрона повторяется, начиная с п. 3 данного алгоритма.
8. Второй вариант – нейтрон поглощается ядром атома вещества и его существование в качестве свободной частицы прекращается.
9.Третий вариант – столкновение нейтрона с ядром приводит к делению этого ядра и к появлению еще одного нейтрона. В этом случае оба нейтрона (старый и новый) начинают движение с координаты, определяемой x0 = x, y0 = y , движение каждого из них воспроизводится, начиная с п. 3.

Моделируемая цепная ядерная реакция происходит во времени, поэтому необходимо предусмотреть в программе счетчик времени в некоторых условных единицах. При запуске программы счетчик должен принимать нулевое значение, а при каждом обращении к п. 3 он должен увеличиваться на единицу.
Вводится зависимость величины границы между вторым и третьим подинтервалами r2 от относительного количества нейтронов:
r2=r02(1+kv* ((n-nv)/nv)
Здесь r02 – первоначально задаваемая величина границы между вторым и третьим интервалами, n – текущее количество нейтронов, nv – задаваемое количество нейтронов, вблизи которого должны происходить флуктуации текущего количества n, kv – задаваемый коэффициент пропорциональности, определяющий эффективность системы автоматического регулирования.
Исходными данными являются средняя длина свободного пробега Lamda, параметры интервалов r1 и r02, максимальное модельное время tmax, начальное количество нейтронов n0, задаваемое среднее значение количества нейтронов nv (рабочий режим реактора), а также коэффициент kv, определяющий эффективность системы автоматического регулирования режима работы реактора.
Границы моделируемой области можно в данном случае задать фиксированными в тексте программы (xmin = 0, xmax = 1, ymin = 0, ymax = 1)
r = Rnd(1)

Помогите, пожалуйста, очень нужно.
Xumukys вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Броуновское движение DEVIL666 Общие вопросы C/C++ 6 21.03.2009 18:17
Движение с Миганиями? Deiv Мультимедиа в Delphi 13 15.11.2008 16:19
Движение песка Format C: Общие вопросы Delphi 11 26.06.2008 16:18
движение по эллипсу Оля Помощь студентам 2 08.05.2007 00:50
Движение Mickle Общие вопросы Delphi 5 19.04.2007 23:24