2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2, 3, 4, 5
 
 Re: [Mathematica 8] Оптимизация модели ур-я Шрёдингера
Сообщение01.05.2015, 13:27 
ArtDen, по идее любой волновой пакет будет расплываться (в пространстве без потенциала), у меня он так быстро расходится скорее из-за того, что я везде беру большой шаг по времени и пространству($\Delta=1-0.1$). Да и начальные значения ВФ у меня задаются не суперпозицией пл.волн. Но это пока как начало, ибо расплывание, масштабность коэффициентов и жуткая пикселизация меня тоже не радуют.
Считает отн.долго, например, при сетке 100x100 и 60 тактов по времени занимает чуть менее 30 сек. Но это отчасти из-за "переменных направлений" (шаг по времени делится пополам) и не до конца оптимизированного кода (Mathematica). Было бы интересно узнать какие параметры модели у вас. Как осуществили переход с неявной 1d-схемы на неявную 2d-схему? А увидеть анимацию -- вообще здорово :)

arseniiv в сообщении #1009789 писал(а):
Да ещё и кодом поделились. :appl: (Потом поизучаю!)

Спасибо! :) Было бы замечательно: наверняка, есть что в нем исправить, и что предложить

-- 01.05.2015, 14:42 --

kw_artem в сообщении #1009875 писал(а):
Но это отчасти из-за "переменных направлений" (шаг по времени делится пополам)

Если у нас в одномерной модели по к-л неявной схеме время расчета составляет $T$, то при переходе на двухмерную по той же неявной схеме+"пер.напр." время $T$ увеличится по крайней мере в 2N раз (сетка NxN): по сетке проход идет по всем направлениям вдоль оси X, а потом всем направлениям вдоль Y.

 
 
 
 Re: [Mathematica 8] Оптимизация модели ур-я Шрёдингера
Сообщение01.05.2015, 13:59 
Аватара пользователя
kw_artem в сообщении #1009875 писал(а):
Было бы интересно узнать какие параметры модели у вас. Как осуществили переход с неявной 1d-схемы на неявную 2d-схему?
Я сделал в два этапа: 1) это просчёт всех столбцов 1d-схемой с шагом по времени $t/2$, 2) просчёт того, что получилось на перовом этапе, но уже по строкам с тем же шагом по времени. Не знаю, насколько это правильно, но это работает.

kw_artem в сообщении #1009875 писал(а):
А увидеть анимацию -- вообще здорово :)
Это только когда я вернусь к этой теме )

 
 
 
 Re: [Mathematica 8] Оптимизация модели ур-я Шрёдингера
Сообщение01.05.2015, 14:06 
ArtDen в сообщении #1009882 писал(а):
Я сделал в два этапа: 1) это просчёт всех столбцов 1d-схемой с шагом по времени $t/2$, 2) просчёт того, что получилось на перовом этапе, но уже по строкам с тем же шагом по времени. Не знаю, насколько это правильно, но это работает.

У меня абсолютно так же, видимо действительно надо оптимизировать, считает долго по сравнению с вашим. А модель делали не в Mathematica, в Си навреное?

 
 
 
 Re: [Mathematica 8] Оптимизация модели ур-я Шрёдингера
Сообщение01.05.2015, 14:17 
Аватара пользователя
kw_artem в сообщении #1009883 писал(а):
А модель делали не в Mathematica, в Си навреное?

Да, в Си. Систему уравнений решал методом циклической редукции, подсмотренным здесь: http://www.hpcc.unn.ru/file.php?id=660 (по ссылке - методичка лабораторной работы в pdf-формате). У метода есть большой минус. По сравнению с методом прогонки, он не даёт нормально задавать граничные условия. По крайней мере я так понял. Или просто не разобрался ))

-- 01.05.2015, 17:08 --

ArtDen в сообщении #1009840 писал(а):
[Мне удалось сделать расчёт практически в реальном времени для поля 1024x1024
Прочитал и понял, что написал фигню. Не расчёт в реальном времени (а шаг по времени у меня - $10^{-8}$ сек, да и вообще все значения не обезразмеренные), а анимацию, которую можно смотреть сразу же в процессе расчётов без сильной задержкой между кадрами.

 
 
 
 Re: [Mathematica 8] Оптимизация модели ур-я Шрёдингера
Сообщение01.05.2015, 15:09 
Аватара пользователя
ArtDen в сообщении #1009840 писал(а):
Во первых, почему свободная частица расходится?

Потому что это общее свойство уравнения Шрёдингера.

ArtDen в сообщении #1009840 писал(а):
В той теме мне удалось добиться для свободной частицы, чтобы она пролетала от одной границы поля до другой без искажений.

А вот если вы этого добились, то расскажите как. Варианты могут быть разные:
- вы не решали уравнения Шрёдингера;
- вы не заметили расхождения из-за малости;
- вы его убрали какими-то способами...

kw_artem в сообщении #1009875 писал(а):
ArtDen, по идее любой волновой пакет будет расплываться (в пространстве без потенциала), у меня он так быстро расходится скорее из-за того, что я везде беру большой шаг по времени и пространству($\Delta=1-0.1$).

По сути, это зависит от параметров начального пакета, и от масштабов по времени и по координате, в которых решается задача.

Оценить можно чисто из элементарных квантовых формул. Пусть пространственный размер пакета $\delta x,$ тогда по соотношению неопределённостей
$$\delta p\sim\dfrac{\hbar}{\delta x}$$ (нижняя граница с коэффициентом $\hbar/2$ достигается на гауссовском пакете, но для большинства локализованных пакетов оценка будет того же порядка). Тогда для скорости
$$\delta v\sim\dfrac{\hbar}{m\,\delta x},$$ и за время симуляции $\Delta t$ пакет расплывётся на величину $\delta v\,\Delta t.$ Осталось только перевести $\hbar$ и $m$ в модельные единицы - или можно посмотреть на заложенное в модель уравнение Шрёдингера, и $(\hbar/m)$ будет коэффициентом между членами $i\dfrac{\partial\Psi}{\partial t}$ и $-\Delta\Psi.$

 
 
 
 Re: [Mathematica 8] Оптимизация модели ур-я Шрёдингера
Сообщение01.05.2015, 15:14 
Аватара пользователя
Munin в сообщении #1009903 писал(а):
А вот если вы этого добились, то расскажите как. Варианты могут быть разные:
- вы не решали уравнения Шрёдингера;
- вы не заметили расхождения из-за малости;
- вы его убрали какими-то способами...

Скорее всего не заметил. Смысла убирать что-либо или не решать уравнение Шрёдингера у меня не было )

 
 
 
 Re: [Mathematica 8] Оптимизация модели ур-я Шрёдингера
Сообщение01.05.2015, 15:45 
Сейчас испытаю модель на гауссовском пакете да прикинем как должен расплываться.

 
 
 
 Re: [Mathematica 8] Оптимизация модели ур-я Шрёдингера
Сообщение01.05.2015, 16:11 
Аватара пользователя
ArtDen в сообщении #1009905 писал(а):
Скорее всего не заметил.

Тогда просто сравните с приведённой формулой. У вас расхождение могло быть малым, при ваших параметрах моделирования (коэффициенты в УШ, шаг сетки по координате и по времени, размер пакета, полное время моделирования).

 
 
 
 Re: [Mathematica 8] Оптимизация модели ур-я Шрёдингера
Сообщение01.05.2015, 17:15 
Вот что получилось: анимация, при начальном условии:
$$\psi_0=\frac 1 {\sqrt{2\pi\sigma^2}}\exp\left(\frac {ip_0x}\hbar - \frac{(x-x_0)^2+(y-y_0)^2}{4\sigma^2}\right),$$
где $\sigma=2$ -- среднеквадратичное отклонение координаты, $p_0 = 0.75$, и параметрах модели: 100x100 точек, число врем.шагов = 60, $\Delta x=0.1, \Delta t=1.0, \hbar=1, m=100.$

 
 
 
 Re: [Mathematica 8] Оптимизация модели ур-я Шрёдингера
Сообщение01.05.2015, 18:17 
Аватара пользователя
Munin в сообщении #1009947 писал(а):
Тогда просто сравните с приведённой формулой.
К сожалению, минимум через месяц вернусь к этой теме...

 
 
 
 Re: [Mathematica 8] Оптимизация модели ур-я Шрёдингера
Сообщение01.05.2015, 19:43 
Аватара пользователя
kw_artem
Не понимаю, $\delta v\,\Delta t\sim\dfrac{60}{100\cdot 2\cdot 0{,}1}=3.$

Наверное, я прокосячил с оценкой $\delta v\,\Delta t.$ Потому что $\delta p=0{,}25$ на глаз похоже на правду.

 
 
 
 Re: [Mathematica 8] Оптимизация модели ур-я Шрёдингера
Сообщение02.05.2015, 16:07 
Munin, нет, все правильно, мы забыли перевести из реальных единиц длины в модельные. Делим 3 на 0.1 и на 2 (для гаусс.пакета берём $\hbar/2$) и получаем 15 (в модельных единицах). Осталось только посмотреть соответствует ли это анимации, что сейчас я и сделаю.

 
 
 
 Re: [Mathematica 8] Оптимизация модели ур-я Шрёдингера
Сообщение02.05.2015, 16:25 
Аватара пользователя
А, если $m$ у вас в модельных единицах, то тогда может быть...

 
 
 
 Re: [Mathematica 8] Оптимизация модели ур-я Шрёдингера
Сообщение02.05.2015, 16:36 
До и после
ИзображениеИзображение
Раскраска соответствует распределению плотности вероятности $\sigma, 2\sigma, 3\sigma$.

-- 02.05.2015, 17:49 --

(Оффтоп)

Я тут посмотрел, оказывается для гаусс.пакета возможно проведение аналит.расчета, напр., Коэн-Таннуджи, Диу, Лалоэ. Квантовая механика. Том I, стр.72. И расплывание будет происходить по точной формуле:
$$\sigma(t)=\sigma_0\sqrt{1+\frac{\hbar^2t^2}{4m^2\sigma^4_0}},$$
а у нас $\frac{\hbar^2t^2}{4m^2\sigma^4_0}>>1$, и получается как раз $\sigma(t)=\frac{\hbar}{2\sigma m}t$.

 
 
 
 Re: [Mathematica 8] Оптимизация модели ур-я Шрёдингера
Сообщение02.05.2015, 16:56 
Аватара пользователя
Во, вот я как раз боялся, что ошибся в этом смысле, то есть, надо брать от этой формулы не линейную часть. Но вы меня успокоили.

 
 
 [ Сообщений: 75 ]  На страницу Пред.  1, 2, 3, 4, 5


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group