2014 dxdy logo

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

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




На страницу 1, 2  След.
 
 Моделирование процесса диффузии
Сообщение13.02.2006, 13:24 
Задали задание - смоделировать процесс диффузии, учесть выбор плотности вещества и начальную температуру, продемонстрировать процесс смешивания. Не подскажите с какого боку подступиться, чтобы и плотность была и температура. В уравнение диффузии температура явно не входит, стохастическими методами - тоже не могу понять. Буду рад, если кто-нибудь посоветует что-нибудь.

 
 
 
 Re
Сообщение13.02.2006, 13:39 
Аватара пользователя
Можно моделировать как движение частичек-шариков, который соударяются, температура зашьется в модель через среднюю (начальную) скорость этих шариков, а плотность - через соотношение объема, заполненного шариками к единице объема

 
 
 
 
Сообщение13.02.2006, 13:57 
Программировать нужно на Паскале, поэтому большие массивы данных нежелательны, а если частиц много (например, несколько тысяч), то это будет проблематично, если только брать усредненные данные.

 
 
 
 
Сообщение13.02.2006, 16:16 
Аватара пользователя
Большие массивы так или иначе требуют много ресурсов... Можно моделировать не каждую частицу отдельно, а использовать "метод крупных частиц", когда один ваш шарик заменяет собой какое-то n-ое количество реальных частиц.

 
 
 
 
Сообщение13.02.2006, 23:54 
Из-за подобных задач я перешёл с Паскаля на С++.
А метод молекулярной динамики, по-моему, идеально подойдёт.

 
 
 
 
Сообщение14.02.2006, 05:22 
Аватара пользователя
:evil:
А что, С++ дает чисто конкретный выигрыш больше 20% по сравнению с Паскалем (в подобных задачах)? Или для этой задачи за эти 20% (которые еще надо доказать, что есть) -- вопрос, работает подход или не работает?

Я вот и вовсе на Python пишу, когда могу. Там, меньше 1000%, то все в порядке. И как-то до фени. Времени нет на С++ выписывать. Зато моя жизнь удлиняется.

 
 
 
 
Сообщение14.02.2006, 05:47 
Аватара пользователя
:evil:
Массивы, Бог с ними. Вопрос, как моделировать эффективно движение до столкновений, а точнее говоря, определять кто с кем столкнется, если оперировать $n$ шариками, то ${\rm O}(n^2)$ врядли кого-нибудь устроит даже для пары тысяч шариков... По моему, это критичнее, чем выбор языка.

 
 
 
 
Сообщение14.02.2006, 06:22 
Что касается выбора языка, это принудительно. Паскаль я бы не выбрал. А метод молекулярной динамики - это, кажется, для каждой частицы уравнения движения решить надо?

 
 
 
 
Сообщение14.02.2006, 08:16 
Аватара пользователя
temp, если Вам для этой задачи нужен массив не с произвольным доступом, а с последовательным - мож тогда просто на диске своп организовать? Геморно, конечно, не спорю... Зато ресурсов сразу до фига образуется :)

 
 
 
 
Сообщение14.02.2006, 10:02 
Аватара пользователя
Все это решаемо - я своими глазоньками видел модели, где были замоделированы несколько миллионов частиц... И естественно это было не для PC. Для PC - реально поднять несколько десятков тысяч частиц, не более.

 
 
 
 
Сообщение14.02.2006, 10:53 
Sanyok писал(а):
temp, если Вам для этой задачи нужен массив не с произвольным доступом, а с последовательным - мож тогда просто на диске своп организовать? Геморно, конечно, не спорю... Зато ресурсов сразу до фига образуется :)

Честно говоря, на Паскале никогда не программировал (это задание учебное), поэтому не знаю получится ли сразу выводить анимацию графика (3d), демонстрацию смешивания и подкачку из файла. Никто, кстати, не подскажет, если решать уравнение диффузии, то каким образом (попроще), связать коэффициент диффузии с температурой, или все таки использовать статистические методы?

 
 
 
 
Сообщение14.02.2006, 11:12 
Аватара пользователя
Зависимость коэффициента диффузии от температуры зависит от агрегатного состояния диффундирующего вещества:
Если не ошибаюсь:
для газов $D\sim T^{1/2}$
а для жидкостей и твердых тел зависимость носит экспоненциальный характер

 
 
 
 
Сообщение14.02.2006, 13:54 
photon писал(а):
Зависимость коэффициента диффузии от температуры зависит от агрегатного состояния диффундирующего вещества:
Если не ошибаюсь:
для газов $D\sim T^{1/2}$
а для жидкостей и твердых тел зависимость носит экспоненциальный характер

А в каких источниках можно узнать поточнее?

 
 
 
 
Сообщение14.02.2006, 14:56 
Аватара пользователя
2 temp
Попробуйте посмотреть на сайте профессора И. Бекмана:
http://profbeckman.narod.ru/Igor1.htm

Там есть такая (типа монографии, в формате pdf) "Математика диффузии":
http://profbeckman.narod.ru/MatDif.htm

Мне очень понравилось в свое время, очень подробно все про диффузию расписано.

 
 
 
 
Сообщение14.02.2006, 19:30 
Аватара пользователя
:evil:
Может быть, все-таки не имеется в виду моделирование молекул? Тогда надо найти соответствующие уравнения (дифференциальные, вестимо) и моделировать одномерное распраделение плотностей веществ (например, взяв конечные разности). И рисовать, рисовать, рисовать графики.

Такая задача выглядит вполне подъемной на любом языке.

 
 
 [ Сообщений: 23 ]  На страницу 1, 2  След.


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