LINUX.ORG.RU

Компьютерная модель газа, организация емких вычислений

 , ,


0

3

Здравствуйте.

Надо стало написать компьютерную модель явления теплопереноса в условиях среднего вакуума. Реализовал в лоб - обсчёт траектории для каждой молекулы. С этим, в общем, особых проблем нет. Написал на c++

Проблема в количестве молекул. При давлении 1Па при температуре 333К (30С) в объеме 7x5x1мм их около 8 трлн. На каждую молекулу нужно 4 поля типа double(положение x,y, скорость, направление(угол) - модель двухмерная). Если считать, что double занимает 8 байт, то для одной молекулы нужно 32 байта, а для всех молекул - 232ТБ. Естественно, что моих 4 гигов оперативки не хватит, а мой intel celeron 2@1.1GHz будет это все обсчитывать, по примерным оценкам, около сотни веков для моделирования всей системы на 1с вперёд с шагом в 1мкс по времени(шаг 1мкс взят неспроста, увеличить нельзя).

Вот и вопрос - существуют ли сервисы, где можно запустить такие вычисления, или я с дуба рухнул, и такое даже БАК не может себе позволить?

Ну а если кто знает, подскажите, как можно с меньшими затратами реализовать такую модель, ибо концентрацию уменьшить нельзя - уже не то будет…

Перемещено Pinkbyte из development

Ответ на: комментарий от i586

Это терминология из старых русских учебников, она вводит в заблуждение

Серьезно? Ну и как же новых/не-русских учебниках называется у-е вот с такой правой частью

... = \gamma \nabla_v [ D \nabla_v f + v f ]

? Уравнение Больцмана с приближении малых прицельных параметров?;-)

резкий тон ваших высказываений

Давайте Вы для начала начнете следить за тоном своих высказываний

Компьютерная модель газа, организация емких вычислений (комментарий)

Пока что Вы ни слова не сказали о том откуда берется у-е Больцмана. Итак?

Какая разница, это одно и то же.

Нет, это не одно и то же.

AntonI ★★★★★
()
Ответ на: комментарий от Sahas

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

А про плазму уж тогда Власов-Максвелл, если придираться к терминам;-)

AntonI ★★★★★
()
Ответ на: комментарий от AntonI

От молекулярнодинамических расчетов никто не требует предсказания реальной траектории отдельных молекул, требуется расчет макрохарактеристик - и это умеют делать очень хорошо

Я эти же истории читал от людей, которые «хорошо расчитывали макрохарактеристики» аэродинамики крыла по уравнению Бернулли... которое в принципе не учитывает динамику криволинейности течения. Тупо интерполировали экспериментальные результаты по случайно взятой формуле через введение горы поправочных коэффициентов.

byko3y ★★★★
()
Ответ на: комментарий от AntonI

Только исходное уравнение Больцмана было выведено им (Больцманом) не из цепочки Боголюбова (это уже более поздние нововведения), и конечно же, оно (уравнение Больцмана) не теряет своей истинности в случае, когда столкновения отсутствуют (свободно-молекулярное движение). И никому (кроме вас :) в голову не придёт говорить, что в свободно-молекулярном режиме уравнение Больцмана вдруг превращается... превращается... в другое уравнение :)

Но вообще, это терминологический спор, который, как известно, бессмыслен и беспощаден... Надеюсь, вас не будет коробить, если кто-то на научном докладе назовёт уравнение движения в свободно-молекулярном режиме именем Больцмана :)

Sahas ★★★★☆
()
Последнее исправление: Sahas (всего исправлений: 2)
Ответ на: комментарий от Sahas

Ок, с Бердом спорить не буду. Алексеев, редиска, вообще этот случай обошел стороной.

Но - давайте положим потенциал межчастичного взаимодействия нулю, что получится из Власова?;-)

AntonI ★★★★★
()
Ответ на: комментарий от AntonI

Вы для начала начнете следить

Слушаюсь.

i586 ★★★★★
()
Ответ на: комментарий от AntonI

Но - давайте положим потенциал межчастичного взаимодействия нулю, что получится из Власова?;-)

уравнение Лиувилля получится :)

Власов именно что для плазмы писал, уже много позже Больцмана выводил своё уравнение

Sahas ★★★★☆
()
Последнее исправление: Sahas (всего исправлений: 2)
Ответ на: комментарий от i586

Идеи ССП много где фигурируют, но коллеги били Власова за ноль справа. Напомню, я Вам задал два вопроса:

  1. Откуда же по Вашему берется у-е Больцмана? Вы анонсировали непонимание мною неких фундаментальных истин его появления, но пока что не потрудились их раскрыть. Просветите уже пожалуйста, сколько можно просить то…

  2. Как именно по Вашему правильно называется у-е вот с такой правой частью

... = \gamma \nabla_v [ D \nabla_v f + v f ]
AntonI ★★★★★
()
Последнее исправление: AntonI (всего исправлений: 1)
Ответ на: комментарий от Sahas

Только исходное уравнение Больцмана было выведено им (Больцманом) не из цепочки Боголюбова

Спасибо, я в курсе;-)

И никому (кроме вас :) в голову не придёт говорить

Ой, коме меня еще есть некоторое количество коллег выражающихся точно так же;-)

AntonI ★★★★★
()
Ответ на: комментарий от Sahas

уравнение Лиувилля получится :)

Одночастичное?! Для системы из N невзаимодействующих частиц то? Вот это точно покоробит, и меня и наверное всех кого я знаю… ;-(

AntonI ★★★★★
()
Ответ на: комментарий от Sahas

уравнение Больцмана вдруг превращается… превращается… в другое уравнение :)

Да, кстати в физике такие превращения происходят сплошь и рядом. Возьмите малые углы рассеяния - получите из Больцмана Фоккера-Планка например. Возьмите бесконечную частоту - получите из Максвелла геометрическую оптику. И далее по списку… Се ля ви.

AntonI ★★★★★
()
Ответ на: комментарий от Sahas

В общем терминология видимо зависит от истории научной школы. Те кто из плазмы вырос кличут сие Власовым, кто из всякой гидродинамики Больцманом в свободномолекулярном режиме.

Шо уж тут хотеть то, если физики называют функцией распределения то что математики называют плотностью вероятности… О_О

AntonI ★★★★★
()
Ответ на: комментарий от Sahas

Это все не так безопасно. Начнешь спорить о словах, напишешь что-нибудь о возрасте(термнология меняется), а потом это переведут на английский и напишут публичный донос IRL.

i586 ★★★★★
()

Та хоспади, окей, тогда пожалуйста, просто расскажите, что в этом уравнении есть что (у-е Больцмана) и как его решать, подумаю, поразбираюсь.

Если интересно, я на 2-ом курсе в МЭИ (Ядерная энергетика и теплофизика) и нам этого ещё не рассказывали

Ну и да, возможно несколько не тот форум, но лучше форума я не нашёл. Здесь хоть и много тролей, но иногда и хорошие вещи говорят

Architector
() автор топика
Ответ на: комментарий от Architector

Не думаю, что форум – подходящий формат для изложения основ статистической механики. В курсе теорфизики в МГУ на это целый год отводится, 2 семестра.

Можете попробовать почитать какие-нибудь книжки по (классической) статистической механике, походить на лекции старших курсов, подергать их преподавателей. Не знаю, что еще посоветовать.

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

i586 ★★★★★
()
Последнее исправление: i586 (всего исправлений: 1)
Ответ на: комментарий от Architector

Боюсь, что численное решение уравнения Больцмана (которое, на минуточку, интегро-дифференциальное) — это задачка похлеще молекулярной динамики.

Но ты можешь реализовать прямое моделирование методом Монте-Карло (см. книгу Бёрда, на которую я выше ссылался). Это как раз нечто среднее между молекулярной динамикой и уравнением Больцмана (по сути первое, конечно). В книге даже код программы приведён

Sahas ★★★★☆
()
Ответ на: комментарий от Architector

Вот раз вам этого еще не рассказывали, идешь прямо к преподу и начинаешь расспрашивать. Любому нормальному преподу это слаще сгущенки, когда студент сам пришел, любознательность проявляет и неглупые (ты сможешь!) вопросы задает.

anonymous
()
Ответ на: комментарий от Sahas

Численное… а мне аналитически надо)

среднее между молекулярной динамикой и уравнением Больцмана

Вы, наверное, имели в виду «среднее между МКТ и статфизикой»?

Architector
() автор топика
Ответ на: комментарий от anonymous

Большинство современных преподавателей у нас похлеще любого троля на этом сайте будет, а найти хорошего - это ещё поискать. Даже книгу найти по этому вопросу и то проще будет (что обычно наоборот, по-моему)

Architector
() автор топика
Последнее исправление: Architector (всего исправлений: 1)
Ответ на: комментарий от Architector

Численное… а мне аналитически надо

Эмм... Из стартового поста я так понял, что надо численно промоделировать, чтобы сравниться с теорией. Ты же молекулы собрался считать? DSMC — это как МКТ, но даёт результат, аналогичный получаемому из уравнения Больцмана, т.е. стат. физики

Sahas ★★★★☆
()
Последнее исправление: Sahas (всего исправлений: 1)
Ответ на: комментарий от anonymous

Жыза выгоняет диких программистов поближе к человеческому жилью.

slackwarrior ★★★★★
()
Ответ на: комментарий от Architector

Плюсую @Sahas - у-е Больцмана что бы просто понять, это надо быть знакомым с методами математической физики (3й курс). А что бы решать численно - это отдельная песня.

Идти надо от простого к сложному. Самая простая постановка - две бесконечных плоскости с разными температурами, между ними газ молекулы которого не взаимодействуют. Пишете как молекула вылетает от плоскости (надо реализовать случайный источник дающий распределение Максвелла по скоростям), гоняете молекулу, считаете закон сохранения энергии.

То же самое считаете на бумашке аналитически, сравниваете - должно совпасть.

Потом все то же самое повторяете для своего датчика в цилиндрической системе координат. В принципе потянет на бакалаврский диплом;-)

Но совершенно точно - для Вас это будет очень ценный опыт. Если что - кастуйте, обращайтесь.

AntonI ★★★★★
()
Ответ на: комментарий от Architector

Другого способа нет.Самоучек в нашей профессии я еще не видел.

На всякий случай напомню, что все комменты в этом треде – чистая лирика. Вам надо разбираться с точным значением слов.

i586 ★★★★★
()
Ответ на: комментарий от i586

«Учить имеет смысл только тех кто сам хочет учиться. Но те кто хочет учиться способны во всем разобраться самостоятельно»(с) кто то из великих.

Например Я.Б.Зельдович во многом был самоучкой.

AntonI ★★★★★
()
Ответ на: комментарий от AntonI

надо реализовать случайный источник дающий распределение Максвелла по скоростям

<v>+- случайное малое не подойдёт? Или иначе как реализовать генератор, дающий данное распределение?

То же самое считаете на бумажке аналитически

Удары о плоскость в смысле? Ну, что в результате них получается

Architector
() автор топика
Ответ на: комментарий от Architector

+- случайное малое не подойдёт?

Нет.

Или иначе как реализовать генератор, дающий данное распределение?

Ну там три компоненты скорости, их можно задавать независимо (три раза дергать генератор, для одной компоненты потом брать модуль).

По каждой из компонент - тадам - это нормальное распрелеление! Такие генераторы есть в библиотеках, или его можно сделать ручками.

Удары о плоскость в смысле? Ну, что в результате них получается

Да. Похоже на точ то у Вас написано, но аккуратнее;-) Хотя ответ скорее всего будет примерно таким, мб множитель другой немного

AntonI ★★★★★
()

Ты можешь просто уменьшить количество элементов увеличив их силу влияния друг на друга пропорционально. Для сохранения точности при этом уменьшив пропорционально объём. Приведи свои данные объема и сил к 1000000 молекул и всё и считай спокойно хоть на телефоне разброс данных будет на уровне погрешности.

anonymous
()

Я не специалист, но хочу вставить свои пять копеек. ТС моделирует движение каждой молекулы. Но почему бы не использовать другое описание, когда используется функция распределения по скоростям (в дискретном виде). Т.е. считается, что в некоем элементарном объеме все молекулы распределены в группы по скоростям. Считается, что в каждой группе молекулы движутся с одинаковой скоростью (как по величине, так и по направлению). Обсчитываем в каких пропорциях в некоем элементарном объеме за шаг времени молекулы одной группы переместятся в другие элементарные объемы. Думаю можно сделать предположение, что для каждого элементарного объема эти коэфициенты пропорции - константы.

Что думает об этом ТС?

pathfinder ★★★★
()

Кхм, может проще сослаться на термин Lattice Boltzmann methods, он же по-русски - метод решёточных уравнений Больцмана. Можно погуглить разные статьи на эту тему, ИМХО в методе всё просто. Жаль, что ученые часто пишут научные статьи не для людей, а для инопланетян.

pathfinder ★★★★
()
Ответ на: комментарий от AntonI

Для начала решил убедиться, что такой метод действительно дает нужное распределение - действительно, плюс минус такое

Architector
() автор топика
Последнее исправление: Architector (всего исправлений: 1)

где можно запустить такие вычисления

Процессор WSE-2 – 850 тысяч ядер, 40 ГБ встроенной SRAM, 7 нм, 15 кВт, загруженный «Монте-Карлой» справится с твоей задачей ©.

quickquest ★★★★★
()
Ответ на: комментарий от pathfinder

В группы по скоростям действительно можно объединить, но вот по направлению…

Направления в одинаковой степени распределены по всем 360 градусам, но молекулы, летящие в одном направлении не обязаны иметь одну скорость.

Т.е. в группе частиц, в которой молекулы летят с одной скоростью и направлением (+-), окажется 1-5 молекул, что не особо всё упрощает.

Architector
() автор топика
Ответ на: комментарий от AntonI

Т.е. для начала вы мне предлагаете запустить одну молекулу, давать ей при ударе о стенку скорость, соответствующую распределению Максвелла, среднее которого соответствует температуре стенки, и считать переносимую энергию?

Architector
() автор топика
Ответ на: комментарий от Architector

Да, именно так.

Отдельная история - как при этом считать поток, тут надо не запутаться. В общем надо не забывать делить на время пролета (нам же мощность нужна).

AntonI ★★★★★
()
Ответ на: комментарий от pathfinder

Эммм… LBM к собственно уравнению Больцмана и задаче ТС относится чуть более чем никак.

Да и у-е Больцмана ТС не нужно - ТС-у нужно стационарное решение, и оно науке известно уже 150 лет как, это распределение Максвелла. А в у-е Больцмана считается динамика. Вот если бы ТС-а интересовало как будет эволюционировать тепловой поток при быстром изменении температуры стенок…

Можно конечно ввести сетку в пространстве скоростей для распределения Максвелла, это другой способ интегрирования, альтернатива Монте-Карло (тому что бы молекулы гонять). Но вообще то можно просто записать этот интеграл на бумажке и взять его аналитически;-)

AntonI ★★★★★
()
Последнее исправление: AntonI (всего исправлений: 1)
Ответ на: комментарий от Architector

Т.е. в группе частиц, в которой молекулы летят с одной скоростью и направлением (+-), окажется 1-5 молекул, что не особо всё упрощает.

Подсказка - не обязательно считать что в группе целое число частиц, на самом деле там число частиц можно оценить как значение функции распределения * объем группы в пространстве скоростей * число частиц. Дальше считаете сколько эта группа вносит в теплоперенос, складываете… это будет аналог интегрирования методом прямоугольников;-)

AntonI ★★★★★
()
Ответ на: комментарий от AntonI

Сейчас я вам кое-что покажу, но вы не ругайтесь

https://pastebin.com/CAPsMs2q

Кхм, молекула движется только по осям x,y. При достижении горизонтальной стенки (максимума или минимума по у), мы просто отражаем молекулу - для молекулы это выглядит, будто она движется дальше.

При достижении вертикальной стенки мы пытаемся задать ей соответствующую скорость.

Я написал такую кривую функцию getrs(bool fl), потому что хз, как распределять скорость по осям. При fl==true - молекула соприкасается горячей стенки, иначе - холодной.

Т.е. по сути вот я могу сделать так:

float x = static_cast <float> (rand()) / static_cast <float> (RAND_MAX);
float y = static_cast <float> (rand()) / static_cast <float> (RAND_MAX);
float z = static_cast <float> (rand()) / static_cast <float> (RAND_MAX);
speed = sqrt(x*x+y*y+z*z)*V;

Где V - это средняя скорость, которая должна быть.

Но тут появляется составляющая z, которую хотелось бы выкинуть. И потом, мы получаем в принципе скорость, а как её потом разбивать на составляющие? Не поровну же.

Ну и в соответствии с кривой программой при каждом столкновении разность энергий равна нулю…Хотя это вроде не должно быть из-за той функции

Architector
() автор топика
Последнее исправление: Architector (всего исправлений: 1)
Ответ на: комментарий от AntonI

уравнение Больцмана а таки у-е Власова

Власов всё таки когда силовой член из дальнодействующих самосогласованных полей. А у ОП а все силы короткодействующие.

thunar ★★★★★
()
Ответ на: комментарий от AntonI

и оно науке известно уже 150 лет как

Тогда непонятно зачем вообще весь этот разговор.

pathfinder ★★★★
()
Ответ на: комментарий от AntonI

ри ударе о стенку скорость, соответствующую распределению Максвелла, среднее которого соответствует температуре стенки

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

thunar ★★★★★
()
Последнее исправление: thunar (всего исправлений: 2)
Ответ на: комментарий от thunar

Чтож, подскажите тогда, как обрабатывать столкновение со стенкой.

Да и какая стенка? Черт его знает. В документации к таким датчикам обычно пишут:

Материалы, контактирующие с вакуумом:
Датчики с алюминиевой измерительной трубкой:
Алюминий, никель, PTFE флуороэластомер.
Датчики с измерительной трубкой из нержавеющей стали:
Нержавеющая сталь 316, никель, флуороэластомер,PTFE.

И из какого материала сделана нить, из какого трубка?

И как обработаны эти материалы?

Architector
() автор топика
Последнее исправление: Architector (всего исправлений: 1)

То, что ты наивно пытаешься сделать, называется молекулярная динамика. Если нужно просто решить какую-то задачу, можно использовать открытый код LAMMPS. Если очень хочется написать свой код (только зачем, их и так десятки), то нужно изучать теорию вопроса, на эту тему написано множество книжек.

anonymous
()

Проблема в количестве молекул. При давлении 1Па при температуре 333К (30С) в объеме 7x5x1мм их около 8 трлн.

интересуюсь… а оценка скорости и длины свободного пробега молекулы при таких условиях какова примерно? что за выбор кванта времени в 1 мкс? за такое время молекула совершит мильон столкновений небось. моделировать методом частиц каждую молекулу тут и смысла нет, вроде.

alysnix ★★★
()
Ответ на: комментарий от alysnix

Длина свободного пробега аргона 7мм, гелия - 2см

Средняя скорость 1440м/с, не помню для какого газа

А за такое время она как раз пролетает 1/3 объёма и ни с чем не должна столкнуться

Architector
() автор топика
Ответ на: комментарий от Architector

А за такое время она как раз пролетает 1/3 объёма и ни с чем не должна столкнуться

ну тогда это похоже на метод частиц…только их число уменьшить надо. нужно ж небось не физически идеально точное моделирование, а просто шарики летают и стучат друг о друга.

alysnix ★★★
()
Ответ на: комментарий от Architector

В таких тонкостях я не спец, знаю только что эти эффекты имеют место. Вот, например, есть по расчёту коэффициентов аккомодации методами молкуларной динамики https://pubmed.ncbi.nlm.nih.gov/32204426/. Ну и дальше гуугл по словам «accommodation сoefficient». В принципе, всё это от энергии зависят достаточно гладко, т.е. скорее всего в вашем случае достаточно будет просто аппроксимировать константой.

thunar ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.