CFD Online Discussion Forums

CFD Online Discussion Forums (
-   Main CFD Forum (
-   -   How to get converged on the stretched mesh? (

poster August 22, 2001 00:26

How to get converged on the stretched mesh?
Dear All, I developed an viscous flow code based on SIMPLE method. It can work very well on the mesh of good quality.However, it will usually diverged on the mesh of bad quality. In my case the bad mesh is usually highly stretched in one direction. I think it should be the problem of significant cross-diffusion term. Any cure for this ? Thanks in advance.

John C. Chien August 22, 2001 01:19

Re: How to get converged on the stretched mesh?
(1). Keep the grid size ratio to below 1.2, based on my experience with finite difference formulation. (2). On the other hand, you could use coordinate transformation and solve the transformed equations in the uniform mesh.

poster August 22, 2001 01:39

Re: How to get converged on the stretched mesh?
Dear John, Thanks for your kind response. (1) I am using tetrahedral (3d) or triangular (2d) mesh. The mesh size is uniform, but all elements are stretched in one-direction so as to increase the resolution in that direction. (2) In my discritizaton, all tensors or vector are computed in their Cartesian coordinate. Coordinate transfomration is not practical because I have to handle viscous flow in highly complex geometry.

John C. Chien August 22, 2001 01:57

Re: How to get converged on the stretched mesh?
(1). I had a great deal of experience in using unstructured mesh using commercial codes. (2). My suggestion is: increase the mesh size (more smaller good tri/tet cells) at the place where the resolution is needed rather than stretch the mesh. (3). And this is exactly why hybrid mesh was created. That is, use quad mesh in the boundary layer instead of tet mesh to improve the accuracy and the convergence. (4). Highly skewed mesh is not good for accuracy or convergence.

poster August 22, 2001 03:10

Re: How to get converged on the stretched mesh?
Dear John, Consider the viscous flow in a very thin plate, e.g. H/W or H/L <0.1: 1) to have good resolution in thickness direction by using uniform tetra mesh, the resulting total no. of element will be incredible huge!! 2) If you use mixed element with core region meshed by tetra element, the tetra element will be compressed and stretched, and then quaility is bad again. So i still have to face the stretched element, and my questions are: 1) why stretched mesh cause divergence in the computation of viscous flow ? 2) It seems that in inviscid solver the stretched mesh is not problem, Is that right ? 3) How to handle visous corss-diffusion term in the discritization on stretched element, i think it is corss-diffusion term cause diverge. 4) Is it possible to have a speical discritizaiton scheme suitable for one-dimeinsoally stretched mesh ?

kalyan August 22, 2001 10:15

Re: How to get converged on the stretched mesh?
If you have multigrid coded in, try semi-coarsening. It helps a great deal in some cases.

Peter August 22, 2001 12:17

Re: How to get converged on the stretched mesh?
If you are using a Jameson style solver, the initial guess is also important, if your mesh is too coarse and your initial guess is not good, you can get diverging solution.

Sebastien Perron August 22, 2001 18:41

Re: How to get converged on the stretched mesh?
What kind of method are you using:

1) FDM 2) FVM 3) FVEM (dicontunous Galerkin) 4) FEM

And, what kind of approximation for your functions (constant by element, linear ....) are you using. If you are using a traditional FVM method with unknowns located at the gravity center of your tets, these kind of your results can be expected for viscous flow (the flux between two volumes wont be consistant if the mesh is too streched or non-orthogonal).

Jongtae Kim August 22, 2001 20:04

Re: How to get converged on the stretched mesh?

In my opinion the reason of divergence in using very stretched tri(tetra) mesh is pressure correction equation. Of course viscous term or any other term makes convergence problem.

For pressure correction eq. you should dicretise Laplacian operator. But usually in the papers such as Mathur, Peric, Lars Davidson's the Laplacian operator is very simplified because we don't know gradient of p' and we don't want to increase Anb in discrete eq. So only face normal directional term of Laplacian operator is used.

Is that right, Poster?

Dr. Peric said multi-correction of p' is useful to cure divergence problem. I already checked that it is right.

Another way is to use hybrid mesh or mixed element mesh to reduce grid skewness.

Frankly speaking I don't know how you discretise NS eq. But I recommand you check term by term by solving basic problems. If you doubt viscous term, you can solve heat conduction eq. on very stretched tri-mesh. If your code arrived at convergence very quickly. Your viscous term work good.

If you want to know how your p' solver is strong, you can solve 10% bump inviscid flow with stretched grid. When you have good pressure contours, you can believe p' eq. works well on stretched grid. But if you failed to get converged solution of the bump flow, you should check p' solver or go around the stretched tri-meshes.

Good luck

Jongtae Kim August 22, 2001 20:31

Re: How to get converged on the stretched mesh?
I felt that you are aware of viscos flux discretisation If you use FEM, you know that there should be no problem. In the context of FVM, gradient of velocity is requared at the face center. Averaging of two face-neighbor cells' gradients make convergence problem and generate wiggles on solution contours.

I think you read Dr. Demirdzic or Dr. Mathur's papers. They suggested a way of diagonally dominant discretisation for viscous terms.

Dr. Peric's code Kaffa which is a kind of open-source already used the scheme for viscous flux discretisation.

I believe that the scheme does not make any problem for mildly stretched tri meshes.

If you want your code to be converged on any stretched grid, there is no way. You know very**10 good structured solvers still diverge on HIGHLY(important) skewed quad or hexa cells.

I remember that thers is a method which is free from grid skewness, that is meshless method.

John C. Chien August 22, 2001 21:15

Re: How to get converged on the stretched mesh?
(1). I have done that before, that is if you use uniform mesh size in both streamwise direction and the lateral direction, you should be able to get good result. (2). But as you said this could be difficult especially for 3-D flow problem. (3). If you stretch the mesh in the streamwise direction, the truncation error will increase because of the large mesh size in that direction. (4). For inviscid flow or equations, there is no boundary layer (or region with high velocity gradient near the wall). So, the flow field will be more uniform near the wall, in addition to the pressure field which should have zero normal gradient near the wall. (5). In other words, the solution is uniform, and the mesh truncation error will not create problems for it. If the flow field is highly non-uniform, then the truncation errors will be high, and the only way to reduce it is by reducing the mesh size itself. (or using higher order method. but this is difficult because higher-order method most of the time is more unstable)(6). Anyway, the mesh must be consistent with the solution in the first place in order to have accurate solution. If the mesh can not give you the accurate solution, then the truncation error will cause stability problem if you try to use higher-order method. Or you can use lower order method to induce the numerical viscosity to damp out the oscillation so that you can get better convergence.

clifford bradford August 23, 2001 20:44

Re: How to get converged on the stretched mesh?
John's suggestions are reasonable even if they seem unpalatable. I'm not hugely familiar w/ SIMPLE but most CFD techniques do not work very well on stretched tris. to solve your problems in reasonable time you should consider an acceleration technique like multigrid or even something simple like grid sequencing to give you a better initialization on the fine grid.

It may be that increasing your numerical precision (from single to double for example) can help.

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