How to… fix error Floating Point Exception -Overflow in Ansys CFX ?
Many times, during the implementation of numerical modeling, after completing the boundary and initial conditions and starting the solver we have to do with a sudden stop of the analysis and the appearance of an overflow message. This is the most common type of error that occurs when performing CFD analysis. In today’s post, I would like to present two paths to minimize the appearance of this error.
Most often error in CFX |
The first path will be the method most tested by me from the practical side. It was effective in many cases where I encountered an overflow error. The second path is the standard procedures to follow to get rid of this error. In my opinion, two approaches should be familiarized with to have a full spectrum of knowledge about this error. It’s written in such a general way by the solver, which makes it very difficult to diagnose directly.
To accurately describe and explain the first method, I will use an example of a modeling task. So our problem will be cooling process of the plate at a pressure of 5 bar. For this task, we will adopt the following assumptions: we will take into account the total energy model, we will define compressible air (ideal gas) as gas, we will define the SST turbulence model, we will take into account the radiation phenomenon by adopting the Surface to Surface model and that due to the symmetry of the model we will simplify the geometry to a periodic slice.
After defining the model phenomena, the time step was set at 1 s. Then solver was initiated. After couple of seconds simulation was stopped with an overflow error after seven iterations. What next steps should be taken to locate an analysis failure? Below I will present in order from the least labor-intensive to the most-labor-intensive activity.
1. Reduce the size of the time step. The best reduction ratio is 1:10 scale. So in our case we reduce the step from 1 s to 0.1 s. For transient analyzes, the definition of the correct time step size is much more important than the mesh quality. The residual equations are more responsive to the size of the time step than to the change of the grid size. In the case of static analyzes, we have such factors to change as the pseudo transient step or the time step of the solid domain. If the next reduction to 0.01 s has no effect, proceed to the next step.
2. Change the gas model from compressible to incompressible. This will cause our problem to reduce its nonlinearity. Do not be afraid of this simplification if your problem concerns low pressures and speeds. The differences in gas models in this case should not be large. If this modification also does not help, go to the next one.
3. If the above two points do not work in the next step, turn off the radiation model. This should greatly simplify the analysis and the partial equations will be less susceptible to mesh quality. Radiation models significantly extend the simulation time. A bad mesh may lead to the formation of non-physical temperature values (values greater than the assumed temperature in the boundary and initial conditions).
4) The next stage is to reduce the value of the assumed boundary and initial conditions. If in the analysis you have assumed a pressure of over 2 bar or values close to the phenomenon of vacuum, change this value to atmospheric pressure. Also, when it comes to temperature values (above 1200 C), reduce them by at least half. The same should be done for the initial speed (if you are analyzing high speeds over 150 m / s).
5) If all of the above steps fail, perform the last step. When you have defined symmetry or periodicity, try to do calculations for the entire model without these boundary conditions. It can be quite a laborious step requiring the reconstruction of the model, but it can bring measurable benefits in the implementation of the analysis.
After completing the above steps, if you still have a problem with the error overflow: floating point exception, try the next methods posted on the CFD Online website. Below is a link to these materials. It is worth reading the entire post because the information contained therein is extremely valuable.
Ansys FAQ — CFD-Wiki, the free CFD reference (cfd-online.com)
Содержание
- Ошибка Error: floating point exception
- Error: floating point exception: overflow. Истечение через сопло.
- Ошибка Floating point exception
Ошибка Error: floating point exception
Уважаемые форумчане, Вот столкнулся с такой проблемой: расчитываю перехлдной процесс воды в лед по времени. Задал плотность и вязкость воды в зависимотси от тмпературы. В процессе расчета все идет нормально, но как только вода становится 0 градусов расчет вылетает вот с такой ошибкой:
turbulent viscosity limited to viscosity ratio of 1.000000e+06 in 302 cells
7233 1.2247e-01 1.6512e-06 5.6676e+01 7.7533e-05 9.2412e-12 3.1982e+06 7.3065e+14 0:00:07 7
turbulent viscosity limited to viscosity ratio of 1.000000e+06 in 140 cells
7234 2.5156e+02 1.6248e-01 1.0288e+00 1.4041e-02 4.8439e-07 7.1952e-01 7.8450e-01 0:00:05 6
turbulent viscosity limited to viscosity ratio of 1.000000e+06 in 129 cells
7235 1.0365e+03 1.6727e-01 5.3040e-02 7.0450e-02 2.2107e-07 6.2509e-01 7.4555e-01 0:00:04 5
# Divergence detected in AMG solver: temperature -> Increasing relaxation sweeps!
# You may try the enhanced divergence recovery with (rpsetvar ‘amg/protective-enhanced? #t)
Divergence detected in AMG solver: temperature
Divergence detected in AMG solver: temperature
Divergence detected in AMG solver: temperature
Divergence detected in AMG solver: temperature temperature limited to 1.000000e+00 in 476 cells on zone 2 in domain 1
turbulent viscosity limited to viscosity ratio of 1.000000e+06 in 258 cells
Error at Node 0: floating point exception
Error at Node 1: floating point exception
Error at Node 2: floating point exception
Error at Node 3: floating point exception
Error at host: floating point exception
Error: floating point exception
Error Object: #f
Подскажите пожалуйста как это решить?
вот параметры сетки
Domain Extents:
x-coordinate: min (m) = 0.000000e+00, max (m) = 1.500000e-02
y-coordinate: min (m) = 7.750000e-02, max (m) = 9.250000e-02
Volume statistics:
minimum volume (m3): 3.937486e-10
maximum volume (m3): 1.878569e-09
total volume (m3): 1.201659e-04
minimum 2d volume (m3): 7.573330e-10
maximum 2d volume (m3): 3.526105e-09
Face area statistics:
minimum face area (m2): 1.649600e-05
maximum face area (m2): 7.817368e-05
Checking mesh.
Done.
Minimum Orthogonal Quality = 5.95791e-01
(Orthogonal Quality ranges from 0 to 1, where values close to 0 correspond to low quality.)
Maximum Ortho Skew = 3.55123e-01
(Ortho Skew ranges from 0 to 1, where values close to 1 correspond to low quality.)
Источник
Error: floating point exception: overflow. Истечение через сопло.
Задача состоит в моделировании истечения газа из баллона через сопло. избыточное давление в баллоне по сравнению с внешней средой 2 атм. Газ — воздух.
Знаю, что проблема в сетке. Как лучше всего сделать сетку в данной задаче чтобы исследовать пограничный слой и срыв потока в начале сопла(если он есть)? Я использовал метод edge sizing со сгущением к стенкам, но с моей сеткой происходит floating point overflow. Если делаю сетку автогенерацией с очень маленьким количеством клеток, то эта ошибка исчезает.
Хочется получить эффект охлаждения газа при истечении из баллона.
Вложение | Размер |
---|---|
soplo_files.zip | 5.06 МБ |
да, если вас срыв интересует. зачем вам такой кривой домен?
срыв то всё равно по кромке в «носике»..
поэтому (мои рекомендации):
пересмотрите постановку задачи;
посмотрите/разберитесь как объеденять саб домены;
когда строите сетку, стройте CFX или FLUENT никак не в Mechanical;
не надо моделировать 3D, переходите на постановку псевдо 3D (сэкономите время на сходимости)
это для начала.. 🙂
Кривой домен для того, чтобы на закруглении газы испытывали ускорение и происходил эффект центрифуги разделения газов. Вообще видно, что при таком давлении в баллоне газ уже почти не шевелится в месте закругления, так что это надо будет менять. А вообще при таком закруглении из моего расчёта следует, что воздух в части трубы, куда идёт закругление (снизу сопла) течёт налево (слегка), а направо течет сверху с большой скоростью
Точка отсчёта по давлению — 0 (вакуум),
входное отверстие — inlet с total pressure = 2 atm, total temperature = 300K
выходное — outlet с average static pressure = 0(вакуум)
такие условия соответствуют истечению воздуха из баллона с 2 атм в вакуум?
чем отличаюстя total pressure/temperature, static pressure/temperature и просто pressure/temperature?
Меня конечно интересует температура внутреннего движения газа(то есть без учёта скорости струи как целого). то же касается и давления.
Как в Ansys заметить срыв потока? давление = 0? или смотреть векторное поле скоростей газа?
Согласно решению, охлаждение воздуха при выходе из баллона под давлением — всего 5 К.
ну, это конечно ненормально браться за инженерные расчёты не понимая физики процесса — но, в последнее время это кругом и рядом. читатель надюсь поймёт, поржёт. 🙂
пожалуйста сформулируйте ясно свою задачу — шо вы хотите. в чем то, конечно поможем (смотрите gradient pressure для визуализации ударных волн) но прежде чем формулировать задачу, разберитесь что такое полная и статическая тепература + полное и статическое давление.
+ постановка в вашего случая должна быть Total Energy c SST так как у вас ударная волна есть т.е. Мах больше 1. Но! как только вы это поставите у вас ещё больше вопросов появится. Засим извиняйте. у меня текст закончился.
Граничные условия (полное давление — статическое давление) выбраны правильно, но выбор расчетной области мне тоже неясен. По идее вам нужно нарисовать кусок внутреннего пространства баллона, внутреннее пространство клапана и кусок атмосферы. Границы в таких расчетах обычно выбирают сферической формы.
входное отверстие — inlet с total pressure = 2 atm, total temperature = 300K
выходное — outlet с average static pressure = 0(вакуум)
да, вот эти ГУ условия правильные. если не изменят память, в прикреплённом проекте, на вход и выход стояли статические давления..
погуглите что такое полное и статическое, там ничего сложного нет.
если собирётесь «добивать» задачу.. то придётся вам рассказать какая цель расчёта что за процесс моделируется и т.д.
Вообще хочется смоделировать истечение из баллона смесь двух газов — газа — заполнителя(например, аргон) с давлением около 2-2.5 атм, и интересующего газа с давлением 5-10% от газа — носителя. Закругление нужно для эффекта ускорения газа. Редуктор нужно рисовать. Но зачем нужно рисовать часть баллона и часть атмосферы? И что значит сферической формы граница? сферическая граница в баллоне?
Добавочные участки нужны, чтобы на границы всякие вихри не приходили и параметры потока были более-менее равномерные. Для области истечения рекомендую: 10-15D — длина области вдоль струи, не менее 5D — размер области поперёк струи (в Вашем случае — ещё больше, т.к. истечение с сильным перерасширением). Так на границы струя прийдёт более-менее перемешанная и с меньшими градиентами.
Насчёт сферической границы. Я область истечения конусом моделировал, как-то сетку (гекса) проще строить и ГУ задавать: на торце Outlet, боковая поверхность — Opening. Лучше сходится.
И ещё, у Вас истечение в вакуум. У ансиса с этим были проблемы (до 12-й версии — точно). Надо постепенно понижать выходное давление в ходе расчёта. Полёт в разреженной атмосфре — моделировал я, а в вакууме — мой знакомый. У него до 0 дело так и не дошло.
Забыл :). D — диаметр среза сопла.
Понятно. Об этом подумаю позже когда разберусь с созданием материалов (жидкостей и газов).
Как оказалось, в опытах с воздухом нужно делать граничное условие выходного отверстия не outlet, а opening с average static pressure and dir. давление = 0, температура = 0. outlet не позволяет на границе выхода иметь скорость, направленную внутрь домена(затекание на границе выхода). Картина расчёта меняется кардинально при использовании outlet и opening. opening — более правдоподобное гран условие, т к никто не запретит воздуху возвращаться в трубу на выходном отверстии.
Хочется сделать опыт с реальным газом аргоном.
С воздухом 25 С данный расчёт проходит, а вот с аргоном(идеальным) не проходит. Максимальное число маха достигает баснословных величин (1000) и происходит floating point overflow. В проекте использован встроенный аргон (в материалах он называется Ar).
Также я сделал аргон-реальный газ (в материалах называется argon), но почему-то ему не нравится граничное условие на выходе opening с static average pressure. пишет что-то вроде Не могу использовать такое гран условие когда Cp не зависит от давления(но у меня теплоёмкость выбрана как теплоёмкость реального газа с хар-ками NASA, так что по идее должно учитывать влияние давления).
Если есть комментарии по поводу того, как мне лучше сделать реальный газ аргон, напишите.
Источник
Ошибка Floating point exception
Добрый вечер, уважаемые форумчане. В общем, моделирую течение газа в аэродинамической установке — форкамера, сопло, рабочая часть. Все шло вполне себе гладко до сопла, позволяющего получать скорость потока порядка М=6. Подскажите, пожалуйста, о чем может говорить данная ошибка (картинка приложена ниже) и какими способами можно решить проблему. Потому что, ну, не может скорость при прохождении через критическое сечение сопла подниматься до нескольких десятков Махов. Рад любым мыслям, наводкам и подсказкам.
Вложение | Размер |
---|---|
error.jpg | 81.92 КБ |
Добрый день! Какая в данном случае сетка, граничные условия, методы расчета?
Качество сетки хорошее, искривленных элементов нет, вырожденных тоже.
Задачу решаю в 2D, осесимметричный случай. Решатель по плотности, расчитываю нестационар. В качестве модели турбулентности SST модель.
Схему использую явную, первого порядка. Предварительно уменьшаю URF, чтобы сходимость была лучше — раньше помогало, сейчас нет.
По граничным условиям — на входе pressure inlet, на выходе — pressure outlet, wall — поверхность тела, стенки форкамеры, сопло и стенки рабочей части.
Это хорошо. Но сетку все равно бы посмотреть. Погранслой разрешается? Сколько элементов получается поперек погранслоя? Должно быть как минимум десять.
А если попробовать ламинарный или даже невязкий расчет?
Попробуйте неявную схему — она поустойчивее.
Так, сетку все же проверил — пограничный слой состоит из двенадцати элементов, устранил искривленные элементы, повысил качество.
Попробовал неявную схему расчета, уменьшил шаг по времени, что в прошлый раз помогло выявить ошибку, но пока без изменений.
Давления и темепературы, которые задаю в граничных условиях лежат в рабочем диапазоне.
Проблемы начинаются, когда поток воздуха переходит за критическое сечение сопла — скорость потока возрастает до 70 Махов и выше. Никакого физического объяснения для ТАКОГО роста не могу найти.
Делюсь графиками — невязки и Сх.
Покажите картинку сетки. Кто знает — может там проблема. Кстати, на стенке задана фиксированная температура или что-то ещё?
Физического объяснения тут и нет. Косяк явно численный
Расчет уже на трех сетках проводил.
Вот две последние. В обоих случаях геометрия расчетной области одинаковая, разница только в том, что расчетные элементы внутри сопла в одном случае четырехугольные, а в другом — треугольные.
Случай с теплообменом пока не рассматриваю. Вместо воздуха у меня здесь идеальный газ. Решатель по плотности — SST модель турбулентности и уравнение энергии.
По граничным условиям — на входе pressure inlet — 70 атм и 510,15 К, на выходе — 9000 Па и 293,15 К.
Через критическое сечение сопла проходит, набирает скорость. В принципе, скачок в числах Маха объяснить можно резким падением температуры, но имеющиеся порядки явно не физического происхождения.
Думал уже, что дело в том, что резкое расширение приводит к конденсации и ошибка в этом, но нет — увеличение температуры и давления не приводит ни к чему. Кручу URF, уменьшаю шаг по времени до секунды в -10 степени.
Вот пример того, чем все заканчивается.
1) Покрутите explicit relaxation factor в solution steering или через консоль. В подобных задачах влияет очень сильно, и странно, что он так глубоко спрятан.
2) Добавьте динамическую адаптацию по градиенту статического давления или M.
3) Избегайте вытянутых поперек скачка ячеек. Иначе он будет дергаться вдоль них туда-сюда, и сходимости не будет.
Так. Насколько я понял, solution steering использовать возможно, когда решение осуществляется неявной схемой и в стационарной постановке? Потому с явной схемой пункт такой найти не удалось.
Динамическую адаптацию сетки сделал по числу Маха, вроде все шло нормально, но в какой-то момент все равно вылезла откуда-то скорость порядка 150 Махов и и все развалилось.
Вообще, на выходе из сопла Мах должен быть порядка шести. Думал уже, что после прохождения критического сечения параметры изменяются скачком, за которым расчет не успевает. Шаг по времени уменьшать тоже пробовал, не помогло. Вообще не могу понять в чем дело. И снова делюсь результатами, которые получились.
1. Пока можете выкинуть рабочую часть, посчитайте для начала только сопло — в нем проблемы.
2. Насчет сетки сопла: посмотрите картинку. Именно так должна выглядеть сетка для течения в сопле. Обратите внимание на пристеночную область: для разрешения погранслоя ячейки сгущаются до рассчитанного заранее значения. Вертикальные образующие строго перпендикулярны стенке (то есть треугольники не пойдут — только структурированная сетка. Это необходимо для уменьшения численных ошибок в деликатном пристеночном течении). Критическая точка хорошо разрешена, потому что из-за особой конфигурации сопла в критике есть излом. Постройте что-то такое. Используйте inflation у стенки. У оси можно заспамить и треугольниками. И еще: не стоит делать слишком большой перепад размеров ячеек вдоль линий тока. Пусть будет максимум 20%, как на картинке.
3. Уже советовал для начала запустить невязкий расчет — самый простой. Начните с него, не гонитесь за рететой сразу.
4. >>Вместо воздуха у меня здесь идеальный газ
Нет, напутали. Должно быть, у Вас воздух с моделью идеального газа.
5. Старайтесь быть внимательнее и отвечать на вопросы, которые задают пользователи форума. Мы тратим время, чтобы помочь Вам. Ну так какие граничные условия на температуру на стенке стоят? Там фиксированная температура или адиабатическая стенка? Это я к чему — условие «heatFlux = 0» тоже может вести к ошибкам. Поставьте самое обычное условие T=300.
6. Еще попробуйте velocity inlet на вход. Вдруг поможет.
Источник
|
|
#1 |
New Member Shane Join Date: Aug 2014 Posts: 10 Rep Power: 10 |
I have been getting the same particular error ever since I’ve tried to run my mesh in Fluent. Initially, i thought it was because of a bad mesh and I’ve tried to improve the quality of my mesh as much as possible but I am still getting the same floating point error. Even reducing the under relaxation factor does not help. Would greatly appreciated if someone can give me some insights, I am truly lost as to what else to do. This is the full error message; # Divergence detected in AMG solver: x-momentum -> Increasing relaxation sweeps! Divergence detected in AMG solver: x-momentum Primitive Error at Node 2: floating point exception Primitive Error at Node 3: floating point exception Primitive Error at Node 0: floating point exception Error: floating point exception |
|
|
|
|
|
#2 |
Member şakir Join Date: Mar 2012 Posts: 30 Rep Power: 12 |
Hi! I have same problem. Do you work parallel solver? |
|
|
|
|
|
#3 |
New Member Shane Join Date: Aug 2014 Posts: 10 Rep Power: 10 |
Yes I used parallel solver. I believe this has to do with my mesh having negative volume elements. |
|
|
|
|
|
#4 |
Member şakir Join Date: Mar 2012 Posts: 30 Rep Power: 12 |
I haven’t negative volume elements but i get same error. I think it is about parallel solver. |
|
|
|
|
|
#5 |
New Member Shane Join Date: Aug 2014 Posts: 10 Rep Power: 10 |
Have you been able to figure out the cause of this? It runs Ok in series? |
|
|
|
|
|
#6 |
Member şakir Join Date: Mar 2012 Posts: 30 Rep Power: 12 |
I have 28 species and wall reactions. So i couldn’t get serial solver.i only guess. |
|
|
|
|
|
#7 |
New Member Shane Join Date: Aug 2014 Posts: 10 Rep Power: 10 |
Is anyone able to help out with this issue? |
|
|
|
|
|
#8 |
Member Iman Join Date: Nov 2013 Posts: 37 Rep Power: 11 |
Quote:
Originally Posted by nyox Is anyone able to help out with this issue? Did you manage to identify the cause of the error? could you please share how you solved it? |
|
|
|
|
|
#9 |
New Member Dave M. Join Date: Aug 2014 Location: Koblenz, Germany Posts: 14 Rep Power: 10 |
Check your mesh quality for negative volumes, high aspect ratio and so on. Also check your boundary conditions — are they correctly set? |
|
|
|
|
|
#10 |
New Member Ali Mohammadi Join Date: Oct 2017 Posts: 15 Rep Power: 7 |
I faced the same problem and solved it. My domain is axisymmetric and i had not selected all the edges set as axis boundary.I selected the right edge and it disappeared. |
|
|
|
|
|
#11 |
New Member avpe Join Date: Nov 2015 Posts: 1 Rep Power: 0 |
Quote:
Originally Posted by cfd lover I faced the same problem and solved it. My domain is axisymmetric and i had not selected all the edges set as axis boundary.I selected the right edge and it disappeared. If you want to use a 2D axisymmetric model you have to set the geometry in an special way: The geomery have to be draw in the YX plane and in a way that the rotational axis folows the x direction. |
|
|
|
|
|
#12 |
Member Oula Join Date: Apr 2015 Location: United Kingdom Posts: 81 Rep Power: 9 |
Quote:
Originally Posted by cfd lover I faced the same problem and solved it. My domain is axisymmetric and i had not selected all the edges set as axis boundary.I selected the right edge and it disappeared. Hi cfd lover, was your geometry a 3D or 2D? |
|
|
|
I haved the same problem when i calculating valves for steam turbine in Ansys CFX.
I used boundary conditions: Total Pressure and Total Temparature at the inlet and Mass Flow Rate at the outlet. Working fluid is Water Ideal Gas. In this case i got solutions when i have subsonic speeds of the flow (Mach number less 1).
But i can not got solution when i have supersonic speed of the flow (mach number more than 1). As and you i have error Floating point exception: Overflow .
The problem was very simple: numerical value of mass flow rate i get from my assessment. But it turns out that my assessment of mass flow rate was wrong. Real critical mass flow rate was smaller than the mass flow rate ,which i set up at the outlet boundary conditions. In the first iterations, residuals decrease untill the mass flow rate at the inlet equal to the critical mass flow rate. After that, residuals start increase, because the mass flow rate at the outlet is boundary conditions (more than critical mass flow rate) and Ansys CFX can not modify it.On the other hand, the mass flow at the inlet has already achieved the critical value and because Ansys CFX can not increase it.That was the reason of my problems.
to check it i advise you use User Monitors for Mass Flow Rate at the Inlet. If i am right when you will be calculating you will see that value of Mass Flow rate at the Inlet stabilize at the value which will be less that value of boundary conditions Mass Flow Rate at the Outlet. That will be mean that you try blew through your turbine Mass Flow Rate which more that critical Mass Flow Rate.
So I think that the your turbine can not miss enought mass flow rate to achieved 100 KW.
I think first of all you need determini maximum mass flow rate for your turbine. Try use User Monitor Point for Mass Flow at the Inlet. When you will see that Mass Flow rate stabilize at the value that less your boundary conditions at the outlet stop the calculation. Start another calculations but at the outlet define Mass Flow rate with value equal Mass Flow Rate at the Inlet from first calculation. Do it untill you get solution.
After that you will see how much mass flow rate additionally need pass through your turbine to achieved 100 KW.Based on this data you have to change angles blades of turbine to do that your turbine will can pass enought mass flow rate.