2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Моделирование процесса диффузии
Сообщение13.02.2006, 13:24 


01/01/06
35
Задали задание - смоделировать процесс диффузии, учесть выбор плотности вещества и начальную температуру, продемонстрировать процесс смешивания. Не подскажите с какого боку подступиться, чтобы и плотность была и температура. В уравнение диффузии температура явно не входит, стохастическими методами - тоже не могу понять. Буду рад, если кто-нибудь посоветует что-нибудь.

 Профиль  
                  
 
 Re
Сообщение13.02.2006, 13:39 
Экс-модератор
Аватара пользователя


23/12/05
12064
Можно моделировать как движение частичек-шариков, который соударяются, температура зашьется в модель через среднюю (начальную) скорость этих шариков, а плотность - через соотношение объема, заполненного шариками к единице объема

 Профиль  
                  
 
 
Сообщение13.02.2006, 13:57 


01/01/06
35
Программировать нужно на Паскале, поэтому большие массивы данных нежелательны, а если частиц много (например, несколько тысяч), то это будет проблематично, если только брать усредненные данные.

 Профиль  
                  
 
 
Сообщение13.02.2006, 16:16 
Экс-модератор
Аватара пользователя


23/12/05
12064
Большие массивы так или иначе требуют много ресурсов... Можно моделировать не каждую частицу отдельно, а использовать "метод крупных частиц", когда один ваш шарик заменяет собой какое-то n-ое количество реальных частиц.

 Профиль  
                  
 
 
Сообщение13.02.2006, 23:54 


09/02/06
50
Киев
Из-за подобных задач я перешёл с Паскаля на С++.
А метод молекулярной динамики, по-моему, идеально подойдёт.

 Профиль  
                  
 
 
Сообщение14.02.2006, 05:22 
Заслуженный участник
Аватара пользователя


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

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

 Профиль  
                  
 
 
Сообщение14.02.2006, 05:47 
Заслуженный участник
Аватара пользователя


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

 Профиль  
                  
 
 
Сообщение14.02.2006, 06:22 


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

 Профиль  
                  
 
 
Сообщение14.02.2006, 08:16 
Заслуженный участник
Аватара пользователя


12/10/05
478
Казань
temp, если Вам для этой задачи нужен массив не с произвольным доступом, а с последовательным - мож тогда просто на диске своп организовать? Геморно, конечно, не спорю... Зато ресурсов сразу до фига образуется :)

 Профиль  
                  
 
 
Сообщение14.02.2006, 10:02 
Экс-модератор
Аватара пользователя


23/12/05
12064
Все это решаемо - я своими глазоньками видел модели, где были замоделированы несколько миллионов частиц... И естественно это было не для PC. Для PC - реально поднять несколько десятков тысяч частиц, не более.

 Профиль  
                  
 
 
Сообщение14.02.2006, 10:53 


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

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

 Профиль  
                  
 
 
Сообщение14.02.2006, 11:12 
Экс-модератор
Аватара пользователя


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

 Профиль  
                  
 
 
Сообщение14.02.2006, 13:54 


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

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

 Профиль  
                  
 
 
Сообщение14.02.2006, 14:56 
Заслуженный участник
Аватара пользователя


12/10/05
478
Казань
2 temp
Попробуйте посмотреть на сайте профессора И. Бекмана:
http://profbeckman.narod.ru/Igor1.htm

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

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

 Профиль  
                  
 
 
Сообщение14.02.2006, 19:30 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
Может быть, все-таки не имеется в виду моделирование молекул? Тогда надо найти соответствующие уравнения (дифференциальные, вестимо) и моделировать одномерное распраделение плотностей веществ (например, взяв конечные разности). И рисовать, рисовать, рисовать графики.

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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group