
[Sponsors] 
November 8, 2017, 15:41 
WENO 5 extension to curvilinear grids

#1 
New Member
Javier
Join Date: Nov 2017
Posts: 6
Rep Power: 5 
Hello everyone,
I have successfully implemented a finitedifference WENO5 2D compressible flow solver for the Euler equations in cartesian coordinates, but I'm having trouble with the generalization to curvilinear bodyfitted grids. I was given a compact finitedifference solver that works fine in curvilinear grids, so my guess is that the problem may be in:
I read several articles on the matter such as this or this, but I cannot understand precisely the procedure they are using. Any help about the generalization of the global LxF splitting and/or WENO5 would be appreciated. Thank you. 

November 11, 2017, 05:54 

#2 
Senior Member
TomRobin Teschner
Join Date: Dec 2011
Location: Cranfield, UK
Posts: 193
Rep Power: 12 
you'd be surprised, it is not that difficult. Infact, if you use a curvelinear solver, you don't need to change your WENO5 subroutine, it will still be used the same way for curvelinear grids. The only difference is in the discretisation of the governing equation. Lets take the divergence of the velocity field (continuity equation), for example. we have (ignoring density), in cartesian form
. Now to extend that to curvelinear coordinate systems, you simply need to do the coordinate transformation into a new, cartesian coordinate system, usually denoted by the new directions and so that we have now (using the chain rule) . Since your derivatives of u and v are now evaluate on the new, transformed (cartesian) grid with direction of and , you can use your WENO5 subroutine just like you would when using a cartesian grid. the only difficulty arises now how you get your so called metric coefficients, i.e.: (note here that the subscript just means that the derivative with respect to the subscript is taken, see also equation above). The answer takes a bit longer and there are a couple of good books which explain that rather well (you actually have to take the so called inverse transformation, i.e. your metric coefficients are which changes the above equation slightly (you'll end up with the jacobian of the system)). Don't worry if that seems confusing at the moment. Have a look at "Anderson, Computational Fluid Dynamics, The basics with applications (Chapter 5 (theory) and Chapter 8 (example calculation using curve linear grids) )" and "Hoffman, Chiang, Computational Fluid Dynamics for Engineers, Vol. 1 (Chapter 9)". Both are excellent references and I was able to write my own curvelinear code after consulting those two references. 

November 12, 2017, 08:19 

#3 
New Member
Javier
Join Date: Nov 2017
Posts: 6
Rep Power: 5 
Thank you very much for your reply, t.teschner. I will have a look at those books.


November 14, 2017, 03:54 

#4 
Senior Member
Michael Prinkey
Join Date: Mar 2009
Location: Pittsburgh PA
Posts: 363
Rep Power: 22 
This is all true. Just be sure that your grid mapping is smooth, say from a fulldomain conformal mapping. It should be at least several times differentiable. You should recognize that the WENO smoothness metrics are based on the assumption of evenly spaced samples. If the grid spacing changes in an nonsmooth way, the effect of the mesh stretching will not be "felt" by the smoothness indicators, so the WENO stencils will be weighted based on incorrect data. The same is true for normal linear finite differences as well, but the potential for outsized errors are introduced with the nonlinear behavior of WENO or limiters, etc.


November 14, 2017, 14:14 

#5 
Senior Member
TomRobin Teschner
Join Date: Dec 2011
Location: Cranfield, UK
Posts: 193
Rep Power: 12 
good point, did not consider that. thanks for adding that!


November 16, 2017, 23:28 

#6 
Super Moderator


November 23, 2017, 13:35 

#7 
New Member
Javier
Join Date: Nov 2017
Posts: 6
Rep Power: 5 
Thank you very much for all your answers. I am still putting the pieces together, but I am on the correct path.
On a related note, I hope it is not offtopic, I am interested on implementing a slightly different slip wall boundary condition. Many authors mirror the flow values (i.e. density, tangent velocity and pressure) across the wall boundary (which is placed on an interface midway between nodes) and negate the normal velocity. Is there a way to make the wall boundary fall on a node instead of on an interface using WENO? The reasoning behind this is to be able to compare the results of a problem with a Finite Difference code having the nodes placed on the same coordinates. 

Tags 
curvilinear, laxfriedrichs, weno5 
Thread Tools  Search this Thread 
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
[OpenFOAM] Xlib: extension "GLX" missing on display  goldbeard  ParaView  5  March 24, 2013 13:12 
errors when installing openfoam2.1 on ubuntu12.o4  hewei  OpenFOAM Installation  5  May 29, 2012 07:43 
[OpenFOAM] Saving ParaFoam views and case  sail  ParaView  9  November 25, 2011 15:46 
why low number of grids in WENO  HaKu  Main CFD Forum  0  April 17, 2011 02:28 
[OpenFOAM] Xwindows crash with paraview save  srinath  ParaView  1  October 15, 2008 09:37 