понедельник, 2 апреля 2012 г.

Аберрация электрического поля

Давно пытался написать компьютерную программу - моделирующую поведение зарядов с учетом задержки распространения взаимодействия. Вчера добил работает.
Суть если взаимодействие между зарядами происходит мгновенно (дальнодействие кажись), то орбита электрона (атом водорода) будет эллиптической в общем случае или круговой в частных, если не заморачиваться на квантовые заморочки и постулаты. Теперь как измениться орбита электрона если учесть задержку распространения электростатического поля. Тогда грубо говоря протон видит электрон не в действительной позиции, а с опозданием (в истории), тоже относиться к электрону. Для реализации пишем историю положений зарядов и при вычислении силы используем данные из истории, ищем точку из которой взаимодействие (сферическая волна) дошла до заряда. Тесты:
Электрон вокруг протона (атом водорода)
1. Классический. Мгновенное взаимодействие - орбита стабильная эллиптическая. Ничего особенного.
2. Учтем задержку распространения взаимодействия - орбита эллиптическая нестабильная, со временем скорость падает и орбита растет в диаметре. Дело в том - учет истории положений приводит к тому что появляется дополнительная тормозная сила направленная против скорости движения электрона.
3. Учтем задержку распространения и аберрацию электрического поля - орбита нестабильная, спиральная, электрон стремиться ("падает") на ядро. Для расчета аберрации берем векторную сумму между вектором силы и вектором (деленный на скорость света и длиной пропорционально вектору силы) скорости. При учете аберрации возникает сила вдоль скорости электрона она вызывает его самоускорение. В конечном итоге электрон приближаясь к протону приобретает световую (и если не ограничить то сверхсветовую) скорость. Зато фактически можно с уверенностью сказать что орбита из эллиптической под действием аберрации вырождается в круговую за счет увеличения скорости электрона и уменьшения радиуса обращения.


Vector2d r=s-dest;     //Вектор направления (в точку приложения силы)


VDT len=r.Modul();     // Длина Вектора направления


r=r+(v/c)*len;        //учет аберрации (tan v/c)  Делим вектор скорости "наблюдателя" на скорость света у умножаем на длину вектора направления

Где-то прокол. Возможно нужно ввести ограничение силы от скорости. Типа релятивистских поправок на силу. Может учет аберрации нужно как-то по другому считать. Возможно надо учесть аберрацию интенсивности. Для стабильности орбиты должен быть процесс или эффект не дающий электрону разогнаться до световой скорости. Учет релятивистских поправок результат не дал, их учет в связи с дискретностью расчетов нужно каким-то образом правильно применить. В противном случае релятивистские поправки тормозят рост скорости но проблему как говориться не решают.

04.04.2012г.
Испытания - электрон позитрон.
1. Классическая. Какой-то вид эллиптической орбиты. Электрон-позитрон друг на друга не падают, и не разлетаются.
2. Учет задержки распространения. Обычно после некоторого кручения разлетаются со скоростью около 1/5 скорости света в разные стороны. Друг на друга не падают.
3. Учет задержки и аберрации. Примерно то же самое разлетаются в разные стороны со скоростью близкой к 1/5 световой.
Надо попробовать заменить условия. Никак не получается долго живущая электронно-позитронная пара. Надо еще тесты.

Возникли проблемы при росте скорости электрона приходиться уменьшать dt (дискретность расчетов) та в свою очередь приводе к увеличению длины истории положений, сейчас длина историй уже 100 тыс. положений не знаю стоит ли увеличивать дальше?

Вылезли первые грабли:
1. При расчете орбит электрона с аберрацией растет скорость электрона и как следствие уменьшается диаметр. т.к расчет ведется итерационно:

a=f/m; //ускорение
v=v+a*dt; //скорость
s=s+v*dt; //положение
Метод (кажись) Эйлера. Если не принять меры то скорость может превысит световую. Такое получается из-за ошибки a*dt если не предусмотреть предел скорости. Введение релятивистской поправки на силу эффекта не дает. Нужен контроль скорости, а не силы, либо контроль ошибки a*dt.
Эта ошибка выражается тем что из-за того что хоть a*dt и стремиться к нулю все же при расчете она нулю не равна. Поэтому вектор скорости поворачивается не по кругу (как в идеале), а по касательной. Что приводит к тому что вектор скорости при повороте на угол w*dt (w-угловая скорость) недоповорачивается. Если скорость велика, а радиус мал то это приводит к ошибкам. Поэтому результат при близких к скорости света и малых радиусах надо рассматривать осторожно.

Комментариев нет:

Отправить комментарий