|
[Sponsors] |
November 19, 2017, 18:15 |
Time steps in stationary solver
|
#1 |
Member
Join Date: Jun 2017
Posts: 73
Rep Power: 9 |
Hi,
I have just read that simpleFOAM is a stationary solver and not transient in OpenFOAM. Therefore it is not possible to calculate a Courant Number e.g. But why do I have to define time steps? How do they affect my calculation? My output are also time steps, but I just dont understand why time steps are used in a stationary calculation. Does it make sense? I hope somebody can enlighten me. Greetings Friendly |
|
November 21, 2017, 01:27 |
|
#2 |
Senior Member
Join Date: Nov 2010
Location: USA
Posts: 1,232
Rep Power: 25 |
The timesteps are just a programming name. To a lot of OpenFOAM whether you're working with timesteps or iterations is arbitrary, it just needs some convention of the advancement of the solution. It's easier just to use one convention for all simulations.
If you use the SteadyState time discretization just leave the timestep as 1 and it's basically an iteration. Your outputs are not timesteps, they're just named that. |
|
November 21, 2017, 11:05 |
|
#3 |
Senior Member
Robert
Join Date: May 2015
Location: Bremen, GER
Posts: 292
Rep Power: 12 |
Hello friendly,
for transient cases you can e.g. start at 0 and go to 10. Which means your solver calculates 10 seconds of flow at a given timestep, eg. 0.25 sec. At the end of your simulation you will see how your flow looks like after 10 sec. For each timestep, here 0.25 sec., it will spend as many iterations as you have defined in your PISO or PIMPLE settings in fvSolution. If you use a steady-state solver like simpleFoam and go from 0 to 10 your solver will spend 10 iterations on your solution. To determine if your solution is converged, you have to take a look at your residuals. You should at least reach a value of 1e-4. If your solver isnt converged after 10 iterations, simply add more. The difference: A transient solver may need a lot of time to reach a steady state, while a steady-state solver takes less. But, using a steady-state solver, you loose the information after which time your flow becomes steady. |
|
November 21, 2017, 16:06 |
|
#4 |
Member
Join Date: Jun 2017
Posts: 73
Rep Power: 9 |
Thank you me3840 for your explaination!
|
|
November 21, 2017, 16:07 |
|
#5 |
Member
Join Date: Jun 2017
Posts: 73
Rep Power: 9 |
Hi Robert,
thank you very much for your explaination! How do I differ between these Iterations and the Iterations the solver does to achieve a lower Residual? E.G.: Code:
DILUPBiCG: Solving for Ux, Initial residual = 0.00523418, Final residual = 8.35748e-09, No Iterations 14 DILUPBiCG: Solving for Uy, Initial residual = 0.016785, Final residual = 4.31635e-09, No Iterations 15 DILUPBiCG: Solving for Uz, Initial residual = 0.0142151, Final residual = 7.23241e-09, No Iterations 15 DICPCG: Solving for p, Initial residual = 0.210076, Final residual = 9.98951e-07, No Iterations 410 DICPCG: Solving for p, Initial residual = 0.0293915, Final residual = 9.95438e-07, No Iterations 382 time step continuity errors : sum local = 1.2629e-11, global = 1.24732e-13, cumulative = -3.35426e-13 ExecutionTime = 17436.1 s ClockTime = 17455 s |
|
November 22, 2017, 05:35 |
|
#6 |
Senior Member
Robert
Join Date: May 2015
Location: Bremen, GER
Posts: 292
Rep Power: 12 |
Hello Friendly,
I’m not sure about the No Iterations in the log file. If I understand the references correctly, its the number of calculations for the given variable until either the tolerance or relTol setting in your fvSolution are satisfied (see OpenFoam User Guide 2.1.7.2 and this .pdf from Chalmers, Slide 24). In your case it took your solver 15 iterations to find a solution for each of the velocity components and roundabout 400 iterations to find a solution for the pressure field for that time. Than it continued with the next timestep. Now, where your solvers differ is in how they handle time. Whether they are transient or steadyState. Look at your fvSchemes ddtSchemes entry. Every time derivation scheme, but steadyState, is transient. Transient simulations convey a time information. You get the precise field for that time. In contrast, a steadyState solver is used to find the stable solution for you simulation. The result you get has no information about time. You can think of it as the mean of a (transient) velocity/pressure field after an infinitely long time. /edit: There is a Masters Thesis by Andreas Persson in which the "workflow" of the piso (transient) and simple (steadyState) algorithm is explained. You can find it here. /edit2: Here is another great link concerning the fvSolution settings: LINK Last edited by RobertHB; November 22, 2017 at 06:40. |
|
November 22, 2017, 16:32 |
|
#7 |
Member
Join Date: Jun 2017
Posts: 73
Rep Power: 9 |
Hello Robert,
thanks for the references, they are indeed great! Ok I think I almost got it. The iterations for Ux and so on are to achieve my tolerance, in my case 1x10^-5. But I have still the problem to understand how these Iterations differ from my "time step iterations". Lets say I tell the solver to start from 0 and go to 5000 second using a delta_t of 1, so I get 5000 iterations. But what is the difference between this iterations and the iterations the solver does for Ux? You have said: "In your case it took your solver 15 iterations to find a solution for each of the velocity components and roundabout 400 iterations to find a solution for the pressure field for that time. Than it continued with the next timestep." But I dont have a real timestep in this case, cause its stationary. This is the point I still dont really get. |
|
November 23, 2017, 05:57 |
|
#8 |
Senior Member
Robert
Join Date: May 2015
Location: Bremen, GER
Posts: 292
Rep Power: 12 |
Hey there,
i did a bit of digging and a think i found an answer to your question. I will attach an image i found in this talk. The same graphic can be found in other sources (1, 2) as well. At the beginning of the "timestep" you hand over an initial velocity solution (Momentum matrix). This gives you the Initial residual. SimpleFoam than solves the inner loop (see image) between Momentum matrix and Momentum/flux corrector. This inner loop reduces your final residual until your tolerance/relTol settings are met. Than you hand your solution to the next timestep with a new initial residual. Code:
Time = 1 smoothSolver: Solving for Ux, Initial residual = 1, Final residual = 0.07971432446, No Iterations 5 Code:
Time = 2 smoothSolver: Solving for Ux, Initial residual = 0.2242597146, Final residual = 0.01971119697, No Iterations 9 Code:
Time = 3 smoothSolver: Solving for Ux, Initial residual = 0.1014834932, Final residual = 0.008384452314, No Iterations 10 |
|
November 28, 2017, 05:00 |
|
#9 |
Member
Join Date: Jun 2017
Posts: 73
Rep Power: 9 |
Hello,
sry for my late reply, I have had some Problems. Thank your very much! I am aware of the inner and outer loops of simple, or piso and pimple. It is still interesting that timesteps are not included in simpleFOAM. If I remember right, e.g. piso is theoretically the same as simple, but with an additional outer loop (same for pimple, but with n loops). Thats why a have Troubles to understand why simple is just for steady calculations and piso for transient. I have also troubles to understand how a flow can change without any progress in time. So simpleFOAM is skipping the transient part till the flow becomes steady by applying outer loops to the flow field at the same timestep. This is an interesting approach. |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
bash script for pseudo-parallel usage of reconstructPar | kwardle | OpenFOAM Post-Processing | 42 | May 8, 2024 00:17 |
simpleFoam error - "Floating point exception" | mbcx4jc2 | OpenFOAM Running, Solving & CFD | 12 | August 4, 2015 03:20 |
[solidMechanics] solidMechanics gear contact in rotation | nlc | OpenFOAM CC Toolkits for Fluid-Structure Interaction | 3 | January 11, 2015 07:41 |
Star cd es-ice solver error | ernarasimman | STAR-CD | 2 | September 12, 2014 01:01 |
Could anybody help me see this error and give help | liugx212 | OpenFOAM Running, Solving & CFD | 3 | January 4, 2006 19:07 |