CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   FLUENT (http://www.cfd-online.com/Forums/fluent/)
-   -   Accuracy and convergence (http://www.cfd-online.com/Forums/fluent/75034-accuracy-convergence.html)

pawan1989 April 14, 2010 21:58

Accuracy and convergence
 
A few questions.

How do I find out the accuracy to which Fluent is calculating my case? Because if my residuals are consistently converging to only 1e-3 - and if my degree of accuracy is only so high then I can expect that to be a good convergence criteria, and don't need to go any lower.

Also, how does the mesh size effect accuracy? I have a 3d body that has a fairly coarse mesh. 30000 nodes. would this hinder a more accurate solution? My cell size would be "large" relative to what I will eventually be doing but would my current setup give me a wrong convergence information?

I am trying to eventually run a case at M = 6 but I am not even able to get a converged solution for an inviscid case (i am trying to do laminar right now and eventually turbulent) for a M = 1 case.

Any advice?

Chris D April 14, 2010 23:35

Quote:

Originally Posted by pawan1989 (Post 254665)
A few questions.

How do I find out the accuracy to which Fluent is calculating my case? Because if my residuals are consistently converging to only 1e-3 - and if my degree of accuracy is only so high then I can expect that to be a good convergence criteria, and don't need to go any lower.

Also, how does the mesh size effect accuracy? I have a 3d body that has a fairly coarse mesh. 30000 nodes. would this hinder a more accurate solution? My cell size would be "large" relative to what I will eventually be doing but would my current setup give me a wrong convergence information?

I am trying to eventually run a case at M = 6 but I am not even able to get a converged solution for an inviscid case (i am trying to do laminar right now and eventually turbulent) for a M = 1 case.

Any advice?

You can't really know how good your solution is from just one run with one grid. You need to run the same problem with multiple grids, compare to an experiment, etc., to see how good your solution actually is.

To your point about the residuals, they tell you absolutely nothing about the accuracy of your solution. If they are decreasing, then that only tells you that the flow is changing less and less as you iterate.

To monitor convergence, you should monitor some flow parameters, in addition to the residuals. If you were looking for a steady-state solution, for example, you could monitor the net mass flow rate at the boundaries. For a steady flow, this should be zero (or close to it, due to round-off.) Also, you should be monitoring what you hope to get out of the solution. If you wanted the lift coefficient, then monitor that. When that converges, it will tell you that you can stop your simulation, because running it longer isn't going to give you a different answer for that particular parameter.

The answer to your question about grid size is that it depends. (Like most things in CFD.) For your particular problem, 30k might be good enough. The only way to know would be to run a case with more grid, and see if the solution changes.

To your next question, I don't think you're going to be able to converge a case at M=1. The boundary conditions, for one thing, probably aren't going to be good enough to allow it. At the boundary, what you set depends upon whether the flow is subsonic or supersonic. It's not clear what you get to set if the flow is sonic, and I'm not sure what FLUENT tries to do for that case. I wouldn't try it, if I were you.

Finally, I wouldn't try to solve this as a laminar problem if it actually isn't. Invicid is ok, and you could even use an invicid solution to initialize your viscous solution. But if the flow isn't laminar, then you should turn on a turbulence model.

pawan1989 April 15, 2010 00:18

Quote:

Originally Posted by Chris D (Post 254674)
You can't really know how good your solution is from just one run with one grid. You need to run the same problem with multiple grids, compare to an experiment, etc., to see how good your solution actually is.

To your point about the residuals, they tell you absolutely nothing about the accuracy of your solution. If they are decreasing, then that only tells you that the flow is changing less and less as you iterate.

To monitor convergence, you should monitor some flow parameters, in addition to the residuals. If you were looking for a steady-state solution, for example, you could monitor the net mass flow rate at the boundaries. For a steady flow, this should be zero (or close to it, due to round-off.) Also, you should be monitoring what you hope to get out of the solution. If you wanted the lift coefficient, then monitor that. When that converges, it will tell you that you can stop your simulation, because running it longer isn't going to give you a different answer for that particular parameter.

The answer to your question about grid size is that it depends. (Like most things in CFD.) For your particular problem, 30k might be good enough. The only way to know would be to run a case with more grid, and see if the solution changes.

To your next question, I don't think you're going to be able to converge a case at M=1. The boundary conditions, for one thing, probably aren't going to be good enough to allow it. At the boundary, what you set depends upon whether the flow is subsonic or supersonic. It's not clear what you get to set if the flow is sonic, and I'm not sure what FLUENT tries to do for that case. I wouldn't try it, if I were you.

Finally, I wouldn't try to solve this as a laminar problem if it actually isn't. Invicid is ok, and you could even use an invicid solution to initialize your viscous solution. But if the flow isn't laminar, then you should turn on a turbulence model.

That's a really detailed response. Thank you very much, I appreciate it.

I have experimental data to compare against, that's definitely an option. Specifically, I am planning to compare the pressure at certain points along the object's body. My approach however, was to go about it from the 'simplest' case to the more complicated ones.

So I wanted to currently obtain a set of methods that I know would work so that I can later user finer meshes and use more computation processors to gather my 'final' solution. And inviscid case really doesn't cut it for my eventual goal. I ran the inviscid case purely to get A solution and quantitatively see that it is as per what we would expect. Now I was working on the laminar case which I expected to be the next order of difficulty. Is this not true? You seem to be implying that turbulent models are easier to compute than the laminar case.

This concept of residuals not indicating anything really is a new one to me and its taking time to digest. Previously I have only used fluent for very low speed flows for which I generally accepted that the solution was 'successful' as long as the residuals were low enough - meaning the flow is changing very little.
What does it mean then when my residuals converge to a steady number? Does that mean the flow is still changing and the changes in flow are substantial? What exactly does the magnitude of the residual tell us? I have been going through the documentation but I really appreciate your views as well, a different approach always helps out.

I am also monitoring mass flow rate as you advised and (thankfully) the mass flow rate did converge .. so there is no change in mass flow rate. Does this mean that I can trust that Fluent has done its best in 'solving' the flow?

So how exactly do I justify my large (1e-2 vs 1e-6) residuals with respect to how trustworthy the solution is?

I have tried this problem at M = 6, then tried it at M = 2 and M = 3 and such. I only tried M = 1 once and you are right, the sonic region is something I'd rather not experiment with when its not my problem. I did get a fully converged (by my old definition: residuals dipped below 1e-6) solution at M = .2
My boundary conditions are all for compressible flows and I am using ideal gas so I think as long as I work with a compressible flow I should be ok. I don't see anything special for hypersonic flows or such. I currently have pressure far field conditions everywhere but the outlet which is a pressure outlet. I was planning on using pressure inlet at the inlet and seeing if it makes a difference.

And I should initialize the flow as inviscid and at, say, M = 2 before ramping it up to 6. But everytime I have done this, the residuals shoot up and stay up - and I am talking about 1e+1 and 1e+2 levels. And I start having errors like "absolute temperature/pressure limited to 1" in certain cells, 'reversed flow detected' in certain cells. etc.

So I don't understand how a case that doesn't complain at M = 2, starts complaining at M = 6. What's changing in the solver that leads to these warnings and keeps the residuals from coming back down to match the M = 2 case?

I really appreciate your reply, by the way, it has and will definitely help me understand and approoach my case better. Thank you.

Chris D April 15, 2010 10:21

That's a really detailed response. Thank you very much, I appreciate it.

I have experimental data to compare against, that's definitely an option. Specifically, I am planning to compare the pressure at certain points along the object's body. My approach however, was to go about it from the 'simplest' case to the more complicated ones.

So I wanted to currently obtain a set of methods that I know would work so that I can later user finer meshes and use more computation processors to gather my 'final' solution. And inviscid case really doesn't cut it for my eventual goal. I ran the inviscid case purely to get A solution and quantitatively see that it is as per what we would expect. Now I was working on the laminar case which I expected to be the next order of difficulty. Is this not true? You seem to be implying that turbulent models are easier to compute than the laminar case.


Not that they're easier to calculate, because you are solving additional equations. Just that it's more realistic to use a turbulence model if the flow is actually turbulent. This might cause some problems converging the solution, but, to be honest with you, I need to think about that a little more.

This concept of residuals not indicating anything really is a new one to me and its taking time to digest. Previously I have only used fluent for very low speed flows for which I generally accepted that the solution was 'successful' as long as the residuals were low enough - meaning the flow is changing very little.
What does it mean then when my residuals converge to a steady number? Does that mean the flow is still changing and the changes in flow are substantial? What exactly does the magnitude of the residual tell us? I have been going through the documentation but I really appreciate your views as well, a different approach always helps out.


I think the residuals are useful in judging whether or not the solution is moving in the right direction. What they are telling you is how much the flow is changing from one iteration to the next. For example, the continuity residual for the density based solver is the rate of mass creation in the domain. If it is decreasing, then you know that you're on you way to a solution, but not necessarily a good solution.

How many orders of magnitude the residuals decrease isn't as important as whether or not what you're interested in solving for has converged. Imagine if you were running the simulation to find the lift coefficient of an airfoil. At a certain point, the residuals have dropped below 10^-3, but the lift coefficient has not yet converged to a steady value. At this point, even though the residuals have dropped below 10^-3, you still have not converged the parameter for which you are running the simulation in the first place. On the other hand, if the lift coefficient had converged, then you know that running the calculation for more time isn't going to give you a better answer for the lift coefficient, so you can turn off the simulation.

It all depends on what you want to get out of the simulation. You should monitor what you're actually interested in, and when you've converged those parameters, then you can stop the calculation. You might not have the right answer, but that's the best you can do for that particular grid with those particular solver settings.

I am also monitoring mass flow rate as you advised and (thankfully) the mass flow rate did converge .. so there is no change in mass flow rate. Does this mean that I can trust that Fluent has done its best in 'solving' the flow?

So how exactly do I justify my large (1e-2 vs 1e-6) residuals with respect to how trustworthy the solution is?


What mass flow rate converging means is that you have a chance at being at the solution. The magnitude of the residuals is scaled with the value at the fifth iteration, so it's kind of dependent on you initial guess. If you guessed well, then you may not see a large drop in the residuals. If you happened to initialize with the exact solution, for example, then your scaled residuals would be O(1), which you would see as converging to 10^0. That's why the residuals can be misleading.

I have tried this problem at M = 6, then tried it at M = 2 and M = 3 and such. I only tried M = 1 once and you are right, the sonic region is something I'd rather not experiment with when its not my problem. I did get a fully converged (by my old definition: residuals dipped below 1e-6) solution at M = .2
My boundary conditions are all for compressible flows and I am using ideal gas so I think as long as I work with a compressible flow I should be ok. I don't see anything special for hypersonic flows or such. I currently have pressure far field conditions everywhere but the outlet which is a pressure outlet. I was planning on using pressure inlet at the inlet and seeing if it makes a difference.

And I should initialize the flow as inviscid and at, say, M = 2 before ramping it up to 6. But everytime I have done this, the residuals shoot up and stay up - and I am talking about 1e+1 and 1e+2 levels. And I start having errors like "absolute temperature/pressure limited to 1" in certain cells, 'reversed flow detected' in certain cells. etc.

So I don't understand how a case that doesn't complain at M = 2, starts complaining at M = 6. What's changing in the solver that leads to these warnings and keeps the residuals from coming back down to match the M = 2 case?

I really appreciate your reply, by the way, it has and will definitely help me understand and approoach my case better. Thank you.


To be honest with you, I've never had much luck solving by gradually ramping up the Mach number. I'm sure it can be done, maybe by incrementing it by a small amount until you get to the maximum, but it's never worked for me. (Maybe I'm too impatient, and I increase it too much.) I start the calculation with the target Mach number, but first use fmg initialization to get a good initial flow field. (See the FLUENT external compressible flow tutorial for a decent write up.) I increase the number of levels to ten, and spend a lot of time iterating on the course levels. In this way, the flow is initialized pretty well, and doesn't blow up when I start the calculation.

Another thing to think about is your grid. Are you using structured or unstructured? What does your domain look like?

pawan1989 April 15, 2010 15:29

Hey, thanks a lot again, lots of little things getting cleared out because of this discussion and I really appreciate it.

So my domain is half of a sharp edge missile in a conical domain, this is the pressure contours on the symmetry plane from a M=6 inviscid run. Maybe it'll give you a better idea about the domain. So far I have far field conditions applied everywhere but the outlet which is a pressure outlet. And of course solid wall and symmetry for the body and the symmetry plane.

http://www.freewebs.com/pkh89/pressure_contours.png

So would these pressure contours be as accurate as Fluent can calculate and I can take these as my real solution as long as the mass flow rate and such parameters have converged even though my residuals are relatively high? That is what I understand from your explanation and I think it makes sense.

I'm going to go ahead and check through the math for certain parameters and let you know what my conclusions are for the laminar case and then the turbulent case too. The people who wrote the CFD code for the real flight experiment did both laminar and turbulent cases.

Thanks once again. Really appreciate it.

Chris D April 15, 2010 17:17

If the pertinent monitors have converged, then this is the best solution for those particular values that you can get with that particular grid and those particular solver settings. Letting it run longer isn't going to help IF those monitors have actually converged.


All times are GMT -4. The time now is 02:01.