CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Main CFD Forum

Higher Order Spectral Difference Methods

Register Blogs Members List Search Today's Posts Mark Forums Read

Like Tree3Likes

Reply
 
LinkBack Thread Tools Display Modes
Old   October 4, 2012, 13:42
Default Higher Order Spectral Difference Methods
  #1
Senior Member
 
Join Date: Mar 2011
Location: Germany
Posts: 412
Rep Power: 11
cfd seeker is on a distinguished road
I came across a research paper in which problem was solved using Higher Order Spectral Difference Method. This method appears fantastic to me as it give very good results starting from very coarse mesh and its accuracy is also very good. I only use Fluent for my numerical work and Fluent don't have these methods in it. Has anybody ever had an experience with these methods? Thanks in advance

Regards
cfd seeker is offline   Reply With Quote

Old   October 4, 2012, 13:53
Default
  #2
Senior Member
 
cfdnewbie
Join Date: Mar 2010
Posts: 551
Rep Power: 11
cfdnewbie is on a distinguished road
Not the spectral difference method itself, but its closely related cousin, the spectral element method. But you won't find high order methods in most of the commercial solvers, they are almost exclusively used by researchers in their inhouse codes.
cfdnewbie is offline   Reply With Quote

Old   October 4, 2012, 21:17
Default
  #3
Senior Member
 
Join Date: Mar 2011
Location: Germany
Posts: 412
Rep Power: 11
cfd seeker is on a distinguished road
Quote:
Originally Posted by cfdnewbie View Post
Not the spectral difference method itself, but its closely related cousin, the spectral element method. But you won't find high order methods in most of the commercial solvers, they are almost exclusively used by researchers in their inhouse codes.
thanx cfdnewbie for sharing your experience, does spectral element method also works well with coarse meshes? and can we implement these spectral difference methods in Fluent through UDF?
cfd seeker is offline   Reply With Quote

Old   October 5, 2012, 03:13
Default
  #4
New Member
 
Nikola Mirkov
Join Date: Mar 2009
Location: Belgrade, Serbia
Posts: 18
Rep Power: 8
nikola_m is on a distinguished road
Hi man,

Implementing high order method like spectral difference trough UDF in FLUENT, would be engaging as turning a granny into a miss Venezuela.

I can suggest you few other alternatives.

1. Check out Nek5000 a free Spectral Element Method (SEM) code (it used to be Nekton in the late 80's). Other SEm codes you might download are Nektar, Semtex, ... To understand SEM, I suggest reading Deville, Fischer, Mund, or if you start using Nektar, Karniadakis, Sherwin.

2. Why not trying to implement Spectra Difference (SD) yourself. It won't be easy but it will be highly rewarding.
I suggest two papers:
Liu, Vinokur, Wang - Spectral difference method for unstructured grids I:Basic formulation, JCP 216 (2006) pp.780-801

and

Sun, Wang, Liu - High-Order Multidomain Spectral Difference Method for the Navier-Stokes Equations on Unstructured Hexahedral Grids, Commun. Comput. Phys., Vol. 2, No. 2, pp. 310-333



P.S. If you think developing SD code on your own is a hard task- we can try doing it together.
SergeAS and songwukong like this.

Last edited by nikola_m; October 5, 2012 at 04:23. Reason: additional comment
nikola_m is offline   Reply With Quote

Old   October 5, 2012, 06:42
Default
  #5
Senior Member
 
cfdnewbie
Join Date: Mar 2010
Posts: 551
Rep Power: 11
cfdnewbie is on a distinguished road
Quote:
Originally Posted by cfd seeker View Post
thanx cfdnewbie for sharing your experience, does spectral element method also works well with coarse meshes? and can we implement these spectral difference methods in Fluent through UDF?

yes, of course, it is well suited for coarse meshes. One can in fact show that a spectral difference method (the flavor Wang proposes) is identical to a spectral element method with nodal integration.

but forget about implementing that in Fluent... you can't turn a plough horse into a racer, even if you add some bells and whistles and ribbons to it

Nektar is a good place to start, or if you want to go DG, try the DG book by Hesthaven and Warburton (Springer), it has some Matlab code to get you going.
cfdnewbie is offline   Reply With Quote

Old   October 5, 2012, 14:40
Default
  #6
Senior Member
 
Join Date: Mar 2011
Location: Germany
Posts: 412
Rep Power: 11
cfd seeker is on a distinguished road
Quote:
Originally Posted by nikola_m View Post
Hi man,

Implementing high order method like spectral difference trough UDF in FLUENT, would be engaging as turning a granny into a miss Venezuela.

I can suggest you few other alternatives.

1. Check out Nek5000 a free Spectral Element Method (SEM) code (it used to be Nekton in the late 80's). Other SEm codes you might download are Nektar, Semtex, ... To understand SEM, I suggest reading Deville, Fischer, Mund, or if you start using Nektar, Karniadakis, Sherwin.

2. Why not trying to implement Spectra Difference (SD) yourself. It won't be easy but it will be highly rewarding.
I suggest two papers:
Liu, Vinokur, Wang - Spectral difference method for unstructured grids I:Basic formulation, JCP 216 (2006) pp.780-801

and

Sun, Wang, Liu - High-Order Multidomain Spectral Difference Method for the Navier-Stokes Equations on Unstructured Hexahedral Grids, Commun. Comput. Phys., Vol. 2, No. 2, pp. 310-333



P.S. If you think developing SD code on your own is a hard task- we can try doing it together.
Thanx Nikola for your reply. I was just thinking if it's possible or not yah I know it's very difficult but I am having the trouble other way round as well. I am trying to do Flapping Wing Analysis in Fluent at Reynolds No of 2000 of course the flow transition will take place at this Re. No. Fluent's transitional turbulence models has very stringent requirements for wall y+ which means the I need very large mesh for this problem(of the order of 6 million cells), secondly the time period of the wing is very large approx. 36 sec, so in Fluent to simulate 36 sec on such a large mesh using of course a very small time step is just like a trying to climb Everest. But during literature survey I came across a paper "3D Flapping wing analysis using Higher order spectral difference methods" in which they used mesh size of 37,000 to simulate a 3D case but still producing very good results and I was shell shocked to read this. I consulted a FDM person and he told me that it is the beauty of Higher Order Spectral Difference methods that they give very good results starting with very coarse mesh. So I asked a question from myself that if these methods are so good then why Fluent still don't have incorporated these methods?
cfd seeker is offline   Reply With Quote

Old   October 5, 2012, 14:57
Default
  #7
Senior Member
 
cfdnewbie
Join Date: Mar 2010
Posts: 551
Rep Power: 11
cfdnewbie is on a distinguished road
Quote:
Originally Posted by cfd seeker View Post
. So I asked a question from myself that if these methods are so good then why Fluent still don't have incorporated these methods?
The short answer is: because they want to sell their product to as many people as possible and make money. That's why most commercial solvers are just second or first order with very very high dissipation - whatever situation the user throws at them, they will produce a stable result . The result might be total crap, but it gives you nice pictures to satisfy your boss. Sadly, oftentimes users of commercial CFD tools have no or little background in numerics, and they tend to believe every solution the code offers, without taking the limits of the underlying numerics into account - which is not helped by the fact that the CFD companies tend to be very tightlipped about what exact scheme their are using in their codes...

In short:
Low order schemes are easy to program, give you stable results and have a high tolerance for bullshit input. They will give you some pretty result, and the user doesn't call the hotline too often.

High order methods are more difficult to program, need a lot more input from the user and careful design of your problem (i.e. the user has to know exactly what he is doing) and will still blow up many times. If a company would produce a high-order code and sell it to their customers who would then make their under-trained employees use it, the poor person at the vendor hotline would go crazy.

To sum it up: There is no market for high order schemes, because there are very few people in the industry who could use them effectively and thus profit from them.
songwukong likes this.
cfdnewbie is offline   Reply With Quote

Old   October 5, 2012, 15:12
Default
  #8
Senior Member
 
Join Date: Mar 2011
Location: Germany
Posts: 412
Rep Power: 11
cfd seeker is on a distinguished road
thanks cfdnewbie I got my answer. have you ever written any code or even try to write it for your work?
cfd seeker is offline   Reply With Quote

Old   October 5, 2012, 15:22
Default
  #9
Senior Member
 
Filippo Maria Denaro
Join Date: Jul 2010
Posts: 1,568
Rep Power: 20
FMDenaro will become famous soon enough
Quote:
Originally Posted by cfdnewbie View Post
The short answer is: because they want to sell their product to as many people as possible and make money. That's why most commercial solvers are just second or first order with very very high dissipation - whatever situation the user throws at them, they will produce a stable result . The result might be total crap, but it gives you nice pictures to satisfy your boss. Sadly, oftentimes users of commercial CFD tools have no or little background in numerics, and they tend to believe every solution the code offers, without taking the limits of the underlying numerics into account - which is not helped by the fact that the CFD companies tend to be very tightlipped about what exact scheme their are using in their codes...

In short:
Low order schemes are easy to program, give you stable results and have a high tolerance for bullshit input. They will give you some pretty result, and the user doesn't call the hotline too often.

High order methods are more difficult to program, need a lot more input from the user and careful design of your problem (i.e. the user has to know exactly what he is doing) and will still blow up many times. If a company would produce a high-order code and sell it to their customers who would then make their under-trained employees use it, the poor person at the vendor hotline would go crazy.

To sum it up: There is no market for high order schemes, because there are very few people in the industry who could use them effectively and thus profit from them.
I totally agree ...commercial codes have the goal to "satisfy" the final user letting him obtaining something he can call "a solution" ...
Recently we had a project, called LESinItaly, testing Fluent, TransAT, OpenFOAM, Code_Saturn and some FD, FV and spectral academic code in the LES of channel flow ... Fluent got the worst solutions owing to the large numerical viscosity.

I suggest to try in implementing a high order code ... note that even for FV method you can implement schemes with high order of accuracy and good spectral resolution using high order flux reconstruction and deconvolution approaches. I think that is suitable to be implemented in FLuent by UDF but it is a very hard work to do
FMDenaro is offline   Reply With Quote

Old   October 5, 2012, 15:30
Default
  #10
Senior Member
 
cfdnewbie
Join Date: Mar 2010
Posts: 551
Rep Power: 11
cfdnewbie is on a distinguished road
Quote:
Originally Posted by FMDenaro View Post
Recently we had a project, called LESinItaly, testing Fluent, TransAT, OpenFOAM, Code_Saturn and some FD, FV and spectral academic code in the LES of channel flow ... Fluent got the worst solutions owing to the large numerical viscosity.
That is very interesting! is there some publications of the results? In case you are interested, here are some results of a high order method workshop, although the focus was more on comparing HO academic codes, and not so much commercial software: http://zjw.public.iastate.edu/hiocfd/
cfdnewbie is offline   Reply With Quote

Old   October 5, 2012, 15:54
Default
  #11
Senior Member
 
Filippo Maria Denaro
Join Date: Jul 2010
Posts: 1,568
Rep Power: 20
FMDenaro will become famous soon enough
Quote:
Originally Posted by cfdnewbie View Post
That is very interesting! is there some publications of the results? In case you are interested, here are some results of a high order method workshop, although the focus was more on comparing HO academic codes, and not so much commercial software: http://zjw.public.iastate.edu/hiocfd/
thank you for the link, we presented the results at the AIMETA conference
http://www.lamc.ing.unibo.it/aimeta2011/

and a full paper is now under progress
FMDenaro is offline   Reply With Quote

Old   October 5, 2012, 15:58
Default
  #12
Senior Member
 
cfdnewbie
Join Date: Mar 2010
Posts: 551
Rep Power: 11
cfdnewbie is on a distinguished road
thanks a lot, very interesting! Great to see such a comparison!
cfdnewbie is offline   Reply With Quote

Old   October 5, 2012, 16:02
Default
  #13
Senior Member
 
Filippo Maria Denaro
Join Date: Jul 2010
Posts: 1,568
Rep Power: 20
FMDenaro will become famous soon enough
Quote:
Originally Posted by cfdnewbie View Post
thanks a lot, very interesting! Great to see such a comparison!
Thanks to you for the interest, you have to dowload the file MEM-331-2.pdf available in the section "Atti del Congresso".
The paper is written in english
FMDenaro is offline   Reply With Quote

Old   October 5, 2012, 16:14
Default
  #14
Senior Member
 
cfdnewbie
Join Date: Mar 2010
Posts: 551
Rep Power: 11
cfdnewbie is on a distinguished road
yes, I found it, thank you. I'm currently doing an LES of the channel with a DG code with implicit (no sgs) and smagorinkys model, so this comparison is very helpful. When your paper has been published, it would be great if you could share the doi, so I could cite it!
thanks again very much, and a nice evening!
cfdnewbie is offline   Reply With Quote

Old   October 6, 2012, 03:18
Default
  #15
New Member
 
Nikola Mirkov
Join Date: Mar 2009
Location: Belgrade, Serbia
Posts: 18
Rep Power: 8
nikola_m is on a distinguished road
Hello again guys.

I was thinking, because we speak here about high order methods, that maybe this is the right place to say smt about my recent effort in this area...

I'm developing my own method (but maybe I will find out that somebody allready did it 30 years ago ).
It is a collocation method using Bernstein polynomials.

You can download my code at:

http://code.google.com/p/bernstein-poly/

Give it a try and let me know what you think.

It has two versions - in Fortran and Python

The code is in it's infancy, and now it solves only two-point BVP's.
Newer version (not uploaded) solved some complicated non-linear IVP's like Korteweeg-de Vries-Burgers equation. I solved also Poisson eq. in 2D but there's some bug, I don't know what;s wrong (Poisson in 2D is available on request).

I have in plan some two papers to publish when I find time... But this bug in 2D is really killing me. Hope to find it soon and start with fluid problems by the end of the fall.


P.S. To cfd seeker: Now when you say what's the problem you're working on - I think the best way to go is Immersed Boundary Method.

Last edited by nikola_m; October 6, 2012 at 03:24. Reason: Added another comment.
nikola_m is offline   Reply With Quote

Old   October 6, 2012, 10:19
Default
  #16
Senior Member
 
Join Date: Mar 2011
Location: Germany
Posts: 412
Rep Power: 11
cfd seeker is on a distinguished road
good going guys cfdnewbie, nikola, filippo....its nice to have a such a nice and precious info from you people....I will look at your work in detail after the weekend and Nikola what is Immersed Boundary Method? sorry i don't know about this(yes I am young and new in this field and still learning) can you please explain more?
cfd seeker is offline   Reply With Quote

Old   October 6, 2012, 11:50
Default
  #17
Senior Member
 
Filippo Maria Denaro
Join Date: Jul 2010
Posts: 1,568
Rep Power: 20
FMDenaro will become famous soon enough
Quote:
Originally Posted by cfd seeker View Post
good going guys cfdnewbie, nikola, filippo....its nice to have a such a nice and precious info from you people....I will look at your work in detail after the weekend and Nikola what is Immersed Boundary Method? sorry i don't know about this(yes I am young and new in this field and still learning) can you please explain more?
The IB method is due to C.Perskin about 40 years ago, you can find many of his papers in JCP. Since that time, more versions and improvement were presented, you can find a review here
http://www.annualreviews.org/doi/abs....061903.175743
FMDenaro is offline   Reply With Quote

Old   October 6, 2012, 13:14
Default
  #18
New Member
 
Nikola Mirkov
Join Date: Mar 2009
Location: Belgrade, Serbia
Posts: 18
Rep Power: 8
nikola_m is on a distinguished road
The Immersed Boundary Method is one of the ways to treat fluid-structure interaction.

It became popular lately for two reasons:
  1. It is easy to write a new paper (pick any working method for CFD + one of the IB techniques + title "Combined XY and Immersed boundary method for three dimensional flows over complex geometries" = a paper in Int. J. Num. Meth. Fluids),
  2. Because you can simulate fluid flows over static and moving bodies without need to make complex body-fitted meshes. Often people just need small modifications of existing finite volume, finite-difference, compact finite difference or FEM code.

I can suggest two papers, which are really practical:
__________________
www.laturbolenza.com
nikola_m is offline   Reply With Quote

Old   October 6, 2012, 15:31
Default
  #19
Senior Member
 
sbaffini's Avatar
 
Paolo Lampitella
Join Date: Mar 2009
Location: Italy
Posts: 518
Blog Entries: 14
Rep Power: 17
sbaffini will become famous soon enough
Quote:
Originally Posted by FMDenaro View Post
I totally agree ...commercial codes have the goal to "satisfy" the final user letting him obtaining something he can call "a solution" ...
Recently we had a project, called LESinItaly, testing Fluent, TransAT, OpenFOAM, Code_Saturn and some FD, FV and spectral academic code in the LES of channel flow ... Fluent got the worst solutions owing to the large numerical viscosity.

I suggest to try in implementing a high order code ... note that even for FV method you can implement schemes with high order of accuracy and good spectral resolution using high order flux reconstruction and deconvolution approaches. I think that is suitable to be implemented in FLuent by UDF but it is a very hard work to do
As the one in charge of the Fluent simulations for the LESinItaly project and as a contributor to the forthcoming paper, i think there is the need for a clarification. In the work presented to the AIMETA congress cited by Filippo and now readily available, our main concern was about the feasibility of LES in Fluent with a BOUNDED CENTRAL SCHEME, as from practical experience it showed to be the most widely applicable scheme and we tought it would have had much more sense to asses the performances of such scheme instead of a less dissipative but less useful one. The results are in the conference proceedings and are in line with what Filippo has already said.

In the following we had times to also assess the performances of the unbounded scheme present in Fluent and, of course, everything changed. Such results are also present in a companion paper in the conference proceedings cited by Filippo (Lampitella et al.) and are those which will be used for the comparisons in the final paper.

We didn't change opinion on the suitability of the different schemes but it is certainly more fair to compare the codes at their best possibility (as, indeed, all the contributors of LESinItaly already did for the conference).

The main outcome from this new comparison does not show any particular difference indicating Fluent as worst than the other codes in predicting the main quantities from the wall-resolved channel flow case, not even the more fancy-spectral codes. However, differences still exist, of course.

Notice that this is also in line with some recent French-German collaboration on the LES-DES of the Ahmed car body, where the fancy spectral code failed to predict the Drag coefficient by 44%. Of course, there are reasons for this, very well explained in the paper (C&F 2011), but at the end of the day (several actually, due to the computing times) that was the number.

Having said so, i totally agree with you on everything and i also want to stress the fact that i am not working in ANSYS, i'm just an user.

Actually, coming to the original question, i also had my experience in trying to implement my own convective scheme in Fluent by UDF. It was a first order symmetry preserving central scheme, and i worked on trying to modify the basic first order upwind by a deferred correction approach, that is the most simple modification immaginable for a code because it only requires a very simple source term for each cell. However, i had no way to manage this and i didn't obtain the expected behaviour so i abandoned the idea. The fact is that, even with all the provided UDF macros to enter the code in all the possible places, the strict control is not possible. Notice that in Fluent you can implement your own scalar equation, and is also very easy to implement your own convection scheme; but this approach is limited to iterative p-v coupling approaches (no fractional step) and not applicable to the momentum equation.

If you extrapolate this experience to the main question of this post, i think that is actually impossible to work on UDFs to obtain a SFD code. Still, if Fluent had the proper routines to modify the schemes by deferred correction approach, than no limitation would exist in obtaining very high order schemes but still in a FV framework.

I don't know how much it fits with the cited work on Bernstein polinomials, but i recently found this work:

http://www-2.unipv.it/compmech/publications/2007_9.pdf

Also, if i remember well, there is some work by Kravchenko and Moin using NURBS interpolation in a FV framework with non matching interfaces.

But nothing similar is available, or at least i am not aware of. So your contribution is certainly welcome.

Finally, nek5000 certainly is a good reference. I would also suggest to take a closer look to this new entry of the opensource scene:

http://code.google.com/p/incompact3d/

Actually, it isn't available yet but it is very promising
sbaffini is offline   Reply With Quote

Old   October 6, 2012, 17:10
Default
  #20
New Member
 
Nikola Mirkov
Join Date: Mar 2009
Location: Belgrade, Serbia
Posts: 18
Rep Power: 8
nikola_m is on a distinguished road
@sbaffini

Thanks!

The paper you linked is on Hughes Variational Multiscale Approch (interesting thing per se), and they use NURBS based finite elements. A recent Hughes effort is Isogemetric Analysis (cf. isoparametric elements). The idea is to use same functions to model the geometry in CAD and as trial functions in FEM.

I'm aware of Kravchenko and Moins work - they used B-splines for expansion in non-uniform direction in channel flow simulations, if I'm correct.

B-splines (and therfore NURBS) are very closely related with Bernstein polynomials.
Bernstein polynomials are very interesting on their own. Check out my blog (see link below) if you're interested to see more but don't have time to test the code.
__________________
www.laturbolenza.com
nikola_m is offline   Reply With Quote

Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
First Order to Higher Order Blending Factor NormalVector FLUENT 3 April 3, 2013 15:43
Error with higher order (2nd, GAMMA) upwind scheme quarkz Main CFD Forum 0 September 24, 2012 03:02
Higher order DG method for compressible flows jinwon park Main CFD Forum 0 May 16, 2008 12:10
Higher order polynomial problem... Markas FLUENT 0 February 20, 2008 17:44
High order compact finite difference schemes Mikhail Main CFD Forum 6 August 5, 2003 10:36


All times are GMT -4. The time now is 00:53.