Перед началом работы настоятельно рекомендуем ознакомиться с правилами форума.

Ошибка Floating point exception

combo.o
Аватар пользователя combo.o

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

ВложениеРазмер
Иконка изображения error.jpg81.92 КБ
Кирилл
Аватар пользователя Кирилл

Добрый день! Какая в данном случае сетка, граничные условия, методы расчета?

combo.o
Аватар пользователя combo.o

Качество сетки хорошее, искривленных элементов нет, вырожденных тоже.

Задачу решаю в 2D, осесимметричный случай. Решатель по плотности, расчитываю нестационар. В качестве модели турбулентности SST модель.

Схему использую явную, первого порядка. Предварительно уменьшаю URF, чтобы сходимость была лучше - раньше помогало, сейчас нет.

По граничным условиям - на входе pressure inlet, на выходе - pressure outlet, wall - поверхность тела, стенки форкамеры, сопло и стенки рабочей части.

Кирилл
Аватар пользователя Кирилл

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

 

А если попробовать ламинарный или даже невязкий расчет?

 

Попробуйте неявную схему - она поустойчивее. 

combo.o
Аватар пользователя combo.o

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

Попробовал неявную схему расчета, уменьшил шаг по времени, что в прошлый раз помогло выявить ошибку, но пока без изменений.

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

Проблемы начинаются, когда поток воздуха переходит за критическое сечение сопла - скорость потока возрастает до 70 Махов и выше. Никакого физического объяснения для ТАКОГО роста не могу найти.

Делюсь графиками - невязки и Сх.

Кирилл
Аватар пользователя Кирилл

Покажите картинку сетки. Кто знает - может там проблема. Кстати, на стенке задана фиксированная температура или что-то ещё?

Физического объяснения тут и нет. Косяк явно численный

combo.o
Аватар пользователя combo.o

Расчет уже на трех сетках проводил.

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

Случай с теплообменом пока не рассматриваю. Вместо воздуха у меня здесь идеальный газ. Решатель по плотности - SST модель турбулентности и уравнение энергии.

По граничным условиям - на входе pressure inlet - 70 атм и 510,15 К, на выходе - 9000 Па и 293,15 К.

Через критическое сечение сопла проходит, набирает скорость. В принципе, скачок в числах Маха объяснить можно резким падением температуры, но имеющиеся порядки явно не физического происхождения.

Думал уже, что дело в том, что резкое расширение приводит к конденсации и ошибка в этом, но нет - увеличение температуры и давления не приводит ни к чему. Кручу URF, уменьшаю шаг по времени до секунды в -10 степени.

Вот пример того, чем все заканчивается.

 

dvolkind
Аватар пользователя dvolkind

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

Мои 5 копеек:

1) Покрутите explicit relaxation factor в solution steering или через консоль. В подобных задачах влияет очень сильно, и странно, что он так глубоко спрятан.

2) Добавьте динамическую адаптацию по градиенту статического давления или M.

3) Избегайте вытянутых поперек скачка ячеек. Иначе он будет дергаться вдоль них туда-сюда, и сходимости не будет.

combo.o
Аватар пользователя combo.o

Добрый день.

Так. Насколько я понял, solution steering использовать возможно, когда решение осуществляется неявной схемой и в стационарной постановке? Потому с явной схемой пункт такой найти не удалось.

Динамическую адаптацию сетки сделал по числу Маха, вроде все шло нормально, но в какой-то момент все равно вылезла откуда-то скорость порядка 150 Махов и и все развалилось.

Вообще, на выходе из сопла Мах должен быть порядка шести. Думал уже, что после прохождения критического сечения параметры изменяются скачком, за которым расчет не успевает. Шаг по времени уменьшать тоже пробовал, не помогло. Вообще не могу понять в чем дело. И снова делюсь результатами, которые получились.

Кирилл
Аватар пользователя Кирилл

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

2. Насчет сетки сопла: посмотрите картинку. Именно так должна выглядеть сетка для течения в сопле. Обратите внимание на пристеночную область: для разрешения погранслоя ячейки сгущаются до рассчитанного заранее значения. Вертикальные образующие строго перпендикулярны стенке (то есть треугольники не пойдут - только структурированная сетка. Это необходимо для уменьшения численных ошибок в деликатном пристеночном течении). Критическая точка хорошо разрешена, потому что из-за особой конфигурации сопла в критике есть излом. Постройте что-то такое. Используйте inflation у стенки. У оси можно заспамить и треугольниками. И еще: не стоит делать слишком большой перепад размеров ячеек вдоль линий тока. Пусть будет максимум 20%, как на картинке.

3. Уже советовал для начала запустить невязкий расчет - самый простой. Начните с него, не гонитесь за рететой сразу.

4. >>Вместо воздуха у меня здесь идеальный газ

Нет, напутали. Должно быть, у Вас воздух с моделью идеального газа. 

5. Старайтесь быть внимательнее и отвечать на вопросы, которые задают пользователи форума. Мы тратим время, чтобы помочь Вам. Ну так какие граничные условия на температуру на стенке стоят? Там фиксированная температура или адиабатическая стенка? Это я к чему - условие "heatFlux = 0" тоже может вести к ошибкам. Поставьте самое обычное условие T=300.

6. Еще попробуйте velocity inlet на вход. Вдруг поможет.

combo.o
Аватар пользователя combo.o

Благодарю за советы и оперативную помощь! И, да, прошу прощения, что несколько невнимателен и сумбурно излагаю мысли - спешу и пробую большое количество вариантов решения проблемы, виноват.

Попробую провести расчет без рабочей части, спасибо за идею. И при этом полностью изменю сетку в сопле, как на рисунке. Если правильно понял, то пограничный слой на стенке должен состоять из 10-12 слоев расчетных элементов? Толщина первой ячейки порядка 0,3 - достаточная или чересчур мало/много? Ранее погран.слой был только на поверхности тела.

Так, по пункту три - Вашим советом пользовался: запускал ламинар (laminar) и невязкий (inviscid), но качественного изменения не наблюдалось.

По пункту четыре - да, воздух с моделью идеального газа.

Граничные условия на стенке было как раз - равенство нулю теплового потока. Попробую задать температуру стенки. Спасибо!

Velocity inlet на входе пробовал, когда расчитывал другие сопла - не подходит, использую как раз Pressure outlet, потому что имеются экспериментальные значения давления торможения и статической температуры в форкамере.

Попробую все и непременно поделюсь результатом.

Добавить комментарий

Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Приложить файл

Максимальный размер файла: 128 МБ.
Допустимые типы файлов: txt doc docx xls xlsx pdf rar zip 7zip tar.