Pull to refresh
114
0.2
Кирилл Циберкин @kbtsiberkin

Пользователь

Send message
Не факт. Глубоких проверок пока не было, поскольку здесь скорость исполнения критичной не была. «Пока гром не грянет».
Ничего не приходит в голову, кроме как повторить первый комментарий — гениально!

И на стол поставить, и на стену повесить сгодится.
Дорисовывать выпадающего пингвина будет проще.
Красиво.

Интересно было бы увидеть подобное, но модернизированное для открытого воздуха. Но даже и в плане взаимодействия в относительно спокойной атмосфере проект замечателен.
От стиля повеял недавней статьёй о собеседованиях… Содержимое какое-то… корпоративно-торговое, что ли. Пардон за оффтоп.
Читаешь такие публикации и думаешь «Хорошо, что я не параноик».

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

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

Все уже собрано до Google.
-fp-model fast был чисто для проверки взят, насколько плохо всё будет в таком режиме. Результат виден. Кстати говоря, gfortran с -ffast-math отработал лишь немногим хуже, чем без этого ключа только на одной оптимизации — также получился достаточно гладкий график с небольшими колебаниями.

С -ftz попытки были, тоже малоуспешные.

А метод частиц всегда интересовал и интриговал красивыми картинками в литературе, вот что вспомнилось-то. В частности, «Вычислительные методы в физике» Поттера, главы о гидродинамике.

Признаю, отсутствие опыта симуляции именно течений и динамики, сказывается, и во многом связь здесь со спецификой кафедры — основным направлением является конвективная устойчивость, где расчёт течений как таковых не особенно важен. По крайней мере, могу уверенно сказать, что значительная часть исследований ведётся на простых задачах, которые порой допускают и аналитику для равновесных и стационарных решений. Работаем в слоях (горизонтальных-вертикальных), в полостях несложных форм (куб-параллелепипед), а то и вовсе в ячейках Хеле-Шоу. Про сферическую полость ходит легенда, что её проклял тот, кто исследовал, и с тех пор больше никто за сферы не брался. :)
Как раз перевод в явную схему обычно сложностей не представляет. Всё, что вне производной по времени — с текущего шага, а в ней (при простейшей аппроксимации) — в числителе возникнет всего одна лишь скорость с нового шага. Вот если схема полу-неявная, тогда есть с чем повозиться. Какое слагаемое отправить на новый шаг, какое на текущий, а может и на предыдущий (в трёхслойной схеме), это уже вопрос действительно нетривиальный.

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

А течение Пуазейля с большим градиентом давления — не получаются ли там числа Рейнольдса такими, что начинается турбулентность и неустойчивость самого течения?
Не стоит забывать, что течения Пуазейля и Куэтта, Рэлей-Бенар и прочее — это совершенно другие системы. В них: Навье-Стокс + несжимаемость + уравнение теплопроводности (если конвекция).

Здесь: закон Дарси + уравнения неразрывности + теплопроводность. Система совершенно иная. Свойства течений в пористой среде во многом нетривиальны, особенно если есть намёки на конвекцию и теплоперенос. Потому упомянутые тесты не сгодятся, хотя они и хороши, прежде всего возможностью хотя бы какой-то аналитики.
Кластер из четырёхядерников, так что OpenMP мог бы работать. Только как-то странно жизнеспособность системы поддерживается, народ либо на CUDA переходит, либо на маплы и математики. И с MPI там тоже проблемы. :)

А новый недавно установленный кластер и то, и другое, и третье позволяет, есть возможности, в будущем надеюсь обеспечить аккаунт.
Что-нибудь конечно-элементное? Был бы рад освоить тот же ANSYS, на самом деле. Хотя прежде всего, в силу отсутствия надобности писать весь код самому от и до, а не столько в силу его массовости и работоспособности.
Причина и её устранение это дело наживное. Чаще действую по принципу «Работает — не трогай».

Пальцеобразование это там где что-то подобное неустойчивости Рэлея-Тейлора, но в пористой среде? Условно говоря, капли, тянущие за собой струйку жидкости?

Нет, на самом деле, работа идёт по гидратам метана. Достаточно продолжительный уже проект. Или проектик. Скорее второе, масштабы деятельности невелики. :)
Не хочется никого обижать и вызывать холивары. Но вопрос — «зачем микроконтроллер?» — вполне способен приводить к таким эффектам. :)

Решил человек попрактиковаться, или микроконтроллер лишний завалялся, а с идеями возник дефицит (у самого в столе лежит пара неприткнутых никуда Mega8L)?

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

Достаточно непривычно и потому не очень удобно. Основная проблема при вводе — долго думал, на какой части значка нужно нажать. Это, конечно, дело навыка, но также и имеющегося разнообразия конкретных изображений значков на картинке.
Смотря что понимать под устойчивостью. Если устойчивость в том смысле, что схема не расходилась или расходилась бы по прошествии некоторого времени из-за экспоненциального роста ошибок, то начальные условия здесь ни при чём.

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

Стоит сказать, что борьба с немонотонностью в том числе и в описываемой здесь задаче тоже заняла немалое место. В схеме болтается парочка регуляризаторов, снижающих точность и «размазывающих» тем самым колебания.
на графиках — насыщенность водой в зависимости от координаты. Задача одномерная, ибо это стадия тестирования модели.

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

Схема полностью явная по всем переменным. И, т.к. уравнения содержат произведения величин вида d(u1 u2) / dt, то они расписывались в форме u2 d(u1)/dt + u1 d(u2)/dt, образуя небольшую системку для производных уже от одной переменной. Решение её даёт сразу полный набор приращений всех переменных на текущем шаге, но здесь опять же происходит столкновение с совместной обработкой величин разных порядков. Вполне возможно, это и есть слабое место алгоритма.
Спасибо за комментарий со способами, пригодится.

С недопустимыми значениями параметров вопрос актуален, т.к. скорости фильтрации редко превышают мкм/с. Со случайными числами проблем нет, т.к. фазовый переход описан кинетическим уравнением вида dx/dt ~ Cx (вполне типичное уравнение Аррениуса).

Порядок точности схемы, как ни странно, на результат радикально не влиял. Изменение происходило на уровне 3й-4й значащей цифры. Тестировал и первый, и второй порядки. Хотя была нереализованная идея сделать трёхслойную схему по времени, дабы получить второй же порядок в d/dt.

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

Параллелизм считать источником ошибки не склонен, поскольку результаты двухпоточного совпадают с вычислениями на одном потоке. А больше, чем на два потока, пока распараллеливать не на чем. Доступа на новый вузовский кластер по статусу не дают (ибо ещё магистр), а старый кластер кафедры, упомянутый в тексте, содержит gcc/gfortran 4.1.2, где OpenMP ещё не было.
Попробовать что ли. Вдруг это станет последней моей конструкцией, собранной 25 Вт / 220 В микропаяльником?
Основная причина погрешностей скрыта именно в разных порядках переменных. Особенно если начальным условием по одной из переменной задан ноль.

Исходники вряд ли несут большой интерес — там простое решение системы сеточных уравнений явным методом. Переменные не масштабировались, порядки их сохранились, отсюда и эффект.
12 ...
15

Information

Rating
2,269-th
Location
Пермь, Пермский край, Россия
Date of birth
Registered
Activity