[{"data":1,"prerenderedAt":118},["ShallowReactive",2],{"$fjblquiqu6u5q":3},{"slug":4,"publishedAt":5,"category":6,"title":7,"summary":8,"image":9,"imageAlt":14,"readingMinutes":15,"serviceId":16,"keywords":17,"imageCaption":23,"sections":24,"sources":108},"cfd-simulation-diverging","2026-10-12","guides","CFD-расчёт расходится? Семь проверок в правильном порядке","У расходящегося CFD-расчёта есть причина, и снижение релаксации редко её находит. Семь проверок по порядку: от единиц и граничных условий до численных настроек.",{"src":10,"thumbnail":11,"width":12,"height":13},"\u002Fassets\u002Fcfd-cases\u002Fnozzle\u002Fimages\u002F02.webp","\u002Fbrand\u002Fstudies\u002Fnozzle.svg",1448,1086,"Иллюстрация DEEB-FLOW: поле скорости в камере распылительной сушки",5,"review",[18,19,20,21,22],"CFD расчёт расходится","расходимость решения","floating point exception Fluent","расчёт не сходится","обратный ток","Концептуальная иллюстрация из библиотеки кейсов DEEB-FLOW. Она не является результатом из этой статьи.",[25,32,38,44,56,62,72,77,88,93,103],{"id":26,"title":27,"paragraphs":28},"why-tuning-fails","Почему ослабление настроек решателя редко находит причину",[29,30,31],"Итерация 214. Невязки, которые до этого ровно снижались, поворачивают вверх. К 230-й итерации они достигают 10⁵, и консоль выводит предупреждение о расходимости, ошибку операции с плавающей точкой или, в OpenFOAM, столбец чисел, который заканчивается на «nan».","Первое желание состоит в том, чтобы открыть настройки решателя и всё уменьшить. Снизить коэффициенты релаксации, вдвое сократить шаг по времени, запустить снова. Иногда это помогает. Чаще авария откладывается на несколько сотен итераций, а вы ничего нового не узнаёте.","Расходящийся CFD-расчёт является симптомом, у которого есть причина, и её обычно быстрее найти, посмотрев на решение, чем подбирая настройки. Ниже приведён порядок, в котором проверяю я. Сначала идут дешёвые проверки, и каждая сужает следующую.",{"id":33,"title":34,"paragraphs":35},"find-where","1. Найдите, где всё началось",[36,37],"Прежде чем менять настройки, найдите ячейки, в которых решение впервые пошло не так. Загрузите последние данные, сохранённые перед аварией, или повторите расчёт с частым сохранением. Посмотрите минимумы и максимумы давления, скорости, температуры и, для сжимаемого течения, числа Маха. Температура 5000 К в воздуховоде или скорость в пятьдесят раз выше входной находится в конкретном месте. Посмотрите на это место.","Большинство решателей также умеют показывать ячейки с наибольшими невязками. Все дальнейшие шаги проще, когда известно, где возникла проблема: на входе, на выходе, в узком зазоре или внутри пограничного слоя.",{"id":39,"title":40,"paragraphs":41},"units-and-scale","2. Проверьте единицы и масштаб",[42,43],"Это звучит слишком просто, но оказывается причиной чаще, чем принято признавать. Геометрия, построенная в миллиметрах и прочитанная в метрах, в тысячу раз больше по каждому направлению. Труба диаметром 50 мм превращается в трубу диаметром 50 м, число Рейнольдса возрастает в тысячу раз, и сетка, которая была приемлемой, становится безнадёжной. Сравните габариты области, которые сообщает решатель, с ожидаемыми.","Заодно проверьте свойства сред и опорное давление. Путаница между избыточным и абсолютным давлением в сжимаемой задаче даёт физически абсурдные плотности.",{"id":45,"title":46,"paragraphs":47},"boundary-conditions","3. Проверьте граничные условия",[48,49,55],"Спросите себя, есть ли вообще решение у поставленной задачи.",{"list":50},[51,52,53,54],"**Сохранение массы.** Заданная скорость на каждом входе и каждом выходе переопределяет несжимаемое течение. Хотя бы одна граница должна позволять давлению устанавливаться свободно.","**Обратный ток на выходе.** Если зона рециркуляции пересекает выход с заданным давлением, решателю приходится выдумывать свойства среды, которая возвращается в область. Отодвиньте выход дальше по потоку или задайте разумные параметры обратного тока.","**Положение входа.** Вход, расположенный сразу перед поворотом или уступом, навязывает равномерный профиль там, где реальное течение далеко от равномерного.","**Условия, согласованные с моделью.** Турбулентный вход с нулевой интенсивностью турбулентности или сверхзвуковой вход без статического давления будут вести себя плохо.","Обратный ток на входе почти всегда означает ошибку постановки и заслуживает внимания раньше всего остального.",{"id":57,"title":58,"paragraphs":59},"mesh","4. Посмотрите на сетку там, где произошёл сбой",[60,61],"Теперь сетка, и именно в месте, найденном на первом шаге. Проверьте скошенность, ортогональность и вытянутость ячеек. Нескольких плохих ячеек в узком зазоре или на острой задней кромке достаточно, потому что сильно скошенные ячейки искажают потоки между соседями и вносят колебания в решение. Проверьте также резкие скачки размера ячеек. Если расходимость началась в худших ячейках сетки, исправляйте сетку в этом месте. Настройка решателя только скроет проблему.","Мелкая сетка может разойтись там, где грубая считалась. Грубая сетка размазывала особенность течения, например сход вихрей или скачок уплотнения, а мелкая её разрешает. Это сведения о самом течении, и обычно они означают, что задачу следует считать в нестационарной постановке.",{"id":63,"title":64,"paragraphs":65},"better-start","5. Дайте расчёту хороший старт",[66,67],"Решателю, который стартует с однородного поля со входной скоростью, предстоит долгий путь, и первые итерации проходят жёстко. Смягчить старт помогают три приёма.",{"list":68},[69,70,71],"Используйте встроенную инициализацию решателя от потенциального или гибридного решения, если она есть.","Начните с доли расхода или, для сжимаемого течения, с меньшего отношения давлений и повышайте постепенно.","Выполните несколько сотен итераций со схемами первого порядка, затем перейдите на второй порядок.",{"id":73,"title":74,"paragraphs":75},"staged-physics","6. Добавляйте физику поэтапно",[76],"Если в задаче есть теплообмен, компоненты, горение или несколько фаз, не включайте всё сразу на первой итерации. Сначала получите сошедшееся холодное течение. Затем добавьте энергию, затем компоненты без реакций, затем реакции. Каждый этап стартует с разумного поля, и при сбое вы знаете, какая модель его вызвала.",{"id":78,"title":79,"paragraphs":80},"numerics","7. Теперь настраивайте численные параметры",[81,82,83,86,87],"Только здесь в дело вступают настройки решателя, и к этому моменту вы знаете, что именно лечите. Для стационарных решателей на основе давления умеренно снизьте коэффициенты релаксации для давления и импульса. Для связанных решателей и решателей на основе плотности снизьте число Куранта. Псевдонестационарный подход часто устойчивее обычной нижней релаксации.","В нестационарных расчётах проверяйте число Куранта напрямую. Оно показывает, сколько ячеек поток пересекает за один шаг по времени. Возьмём ячейки размером 0,5 мм в струе со скоростью 40 м\u002Fс при шаге по времени 10⁻⁴ с.",{"formula":84},[85],"CFL = u × Δt \u002F Δx = 40 × 0.0001 \u002F 0.0005 = 8","Среда пересекает восемь ячеек за шаг. Для явной схемы или резкой свободной поверхности это слишком много. Шаг по времени 1,25 × 10⁻⁵ с даёт число Куранта, равное 1.","Если расчёт выживает только при очень низкой релаксации или крошечном шаге по времени, вернитесь к шагам с 1 по 4. Численные настройки что-то компенсируют.",{"id":89,"title":90,"paragraphs":91},"why-this-order","Почему проверки идут в таком порядке",[92],"Шаги с 1 по 3 занимают минуты и не требуют повторного расчёта. Шаг 4 может потребовать перестроения сетки, поэтому сначала нужно знать место. Шаги с 5 по 7 меняют путь решателя к ответу, а это помогает, только если ответ существует. На практике обычно идут в обратном порядке: сначала численные настройки, потом сетка, в конце постановка, и так двухчасовая задача превращается в двухдневную.",{"id":94,"title":95,"paragraphs":96},"common-mistakes","Типичные ошибки",[97],{"list":98},[99,100,101,102],"**Снижать релаксацию, пока расчёт не пойдёт, и так её и оставить.** Сильно зарелаксированное решение сходится очень медленно и может выглядеть завершённым, хотя ещё меняется.","**Измельчать всю сетку в ответ на локальную проблему.** Число ячеек растёт, а плохие ячейки остаются плохими.","**Запрещать обратный ток на выходе, который просто расположен слишком близко.** Предупреждение исчезает, а ошибка остаётся в решении.","**Игнорировать предупреждения.** Сообщения об обратном токе на сотнях граней или об ограничении турбулентной вязкости в тысячах ячеек показывают, куда смотреть.",{"id":104,"title":105,"paragraphs":106},"still-not-running","Когда расчёт всё равно не идёт",[107],"Упростите задачу. Убирайте модели, пока расчёт не пойдёт, затем возвращайте их по одной. Если ламинарный изотермический однофазный вариант вашей геометрии расходится, проблема в сетке или в граничных условиях, и поиск стал намного чище. Если вы потратили на это два дня, покажите задачу кому-нибудь ещё, потому что свежий взгляд часто находит путаницу миллиметров и метров за несколько минут.",[109,112,115],{"href":110,"label":111},"https:\u002F\u002Fwww.grc.nasa.gov\u002Fwww\u002Fwind\u002Fvalid\u002Ftutorial\u002Fiterconv.html","NASA \u002F NPARC: examining iterative convergence",{"href":113,"label":114},"https:\u002F\u002Fwww.grc.nasa.gov\u002Fwww\u002Fwind\u002Fvalid\u002Ftutorial\u002Fprocess.html","NASA \u002F NPARC: CFD analysis process",{"href":116,"label":117},"https:\u002F\u002Fdoi.org\u002F10.1007\u002FBF01448839","Courant, Friedrichs and Lewy (1928), Mathematische Annalen: on the partial difference equations of mathematical physics",1791759706287]