CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Programming & Development (http://www.cfd-online.com/Forums/openfoam-programming-development/)
-   -   non linear terms in OF (http://www.cfd-online.com/Forums/openfoam-programming-development/108943-non-linear-terms.html)

 besh November 5, 2012 14:30

non linear terms in OF

Dear OpenFoamers
I understand that non-orthogonality is handled through deferred correction that solves the same equation repeatedly with different source term. But how are other sorts of non-linearity such as those from higher order convection schemes as QUICK, explicit boundary conditions such as slip, turbulence models etc handled? I do not see a loop like the case for non-orthogonality for momentum prediction equation or k-e turbulence models for instance. Are all of them handled implicitly? For steady state problems it seems to me that the outer loop takes care of all non-linearity but for transient problems shouldn't there be another loop to make sure that we have a converged solution at each time step before going to the next. I appreciate it if someone can shed a light on this.
Thanks

 santiagomarquezd November 8, 2012 17:35

Hi, the non linearities are treated by using the previous time-step information. This is the case for momentum predictor equation, TVD, schemes, etc.

Regards.

 besh November 21, 2012 08:33

Hi,
I still don't understand how the new equation with improved corrections are iteratively solved just like the case of non orthogonal corrections in pressure. I give the outline of icoFoam below without non-orthogonal loop. I appreciate if you can point out the code takes care of other deffered corrections due to TVD schemes for instance.
Code:

```icoFoam() {     for(timeSteps)     {           Predict U //has div(phi,U)           for(pisoLoop) {  //2 iteration                 Correct U                 Solve pressure equat           }     } }```
The momentum predictor has div(phi,U) term say discretized with linearUpwind that has explicit term. So that is solved once but to get better results shouldn't this be solved multiple times just like other deferred corrections? Or is it just that since this is a prediction, we take what we have and do corrections of U and P in pisoLoop. Does increasing the number of piso iterations (>2) improve deferred corrections from div(phi,U) ? I don't think that happens because the discretization of momentum equation is outside the pisoLoop?
For steady state solution I can understand that the timesteps loop will take care of corrections in div(phi,U) but for transient solutions I just don't see it.
I am definately missing something so I appreciate if anyone can point it out.

 santiagomarquezd November 21, 2012 09:25

Hi, much of this non-linearities are treated but by the time-step, which must be such that Co<1. Nevertheless, you have solvers with "outer corrections" based in the pimple loop like pimpleFoam. In these solvers in each time-step you have an outer loop over all the equations as you want to find.

Regards.

 besh November 21, 2012 09:46

Quote:
 Originally Posted by santiagomarquezd (Post 393424) Hi, much of this non-linearities are treated but by the time-step, which must be such that Co<1. Nevertheless, you have solvers with "outer corrections" based in the pimple loop like pimpleFoam. In these solvers in each time-step you have an outer loop over all the equations as you want to find. Regards.
Thank you very much. I finally see what you mean after looking in pimpleFoam. So if I understand correctly, for Co<1 the ddt term dominates most terms including source contributions from deferred corrections, thus there is no need for outer corrector loop to do repeated corrections. But I guess in principle the loop should be there for both small or large time steps.

 yzf1215 December 2, 2012 06:38

Sorry to bother you. Why we need Co < 1 to get non-ortho correction?

 besh December 2, 2012 16:39

Quote:
 Originally Posted by yzf1215 (Post 395253) Sorry to bother you. Why we need Co < 1 to get non-ortho correction?
Hi,
From what I understood, all explicit terms (including tvd shemes and non-orthogonality) are treated using deferred correction. For icoFoam and simpleFoam, the iteration over a time-step is done only once by default. Therefore if you use large time step, you accept inaccurate solutions at each time step. OTOH PimpleFOAM has an outer loop that does corrections multiple times. I guess that with Co<1, one deferred correction step is enough probably because time discretization term swamp the secondary corrections. I do not think there is a theory similar to why we need to specify Co<1 when use explicit time discretization schemes such as crank-Nicholson. Someone can correct if I am wrong as I am not knowledgeable in OF.

Hope this helps.

 All times are GMT -4. The time now is 23:31.