
[Sponsors] 
October 7, 2011, 11:19 
Nvd / tvd

#1 
New Member
Michael Buchmayr
Join Date: Mar 2010
Posts: 16
Rep Power: 9 
Hi,
I was wondering if there is a major difference in the implementation of NVD and TVD schemes in OpenFOAM. Am I right in the assumption that the only real difference between NVD and TVD schemes in OpenFOAM is the limiters? Is it right that in OpenFOAM TVD schemes are actually nothing but special NVD schemes? I'm having a hard time grasping how convection schemes are implemented in OpenFOAM, but as far as I understand the code, both NVD and TVD should work identically up to the point where phict ( \Tilde{ phi_{C} } ) is being calculated. The reason why I'm asking this is that I'd like to know how the van Leer TVD (or is it NVD?) scheme works and effects the diagonal dominance of my matrix... Michi 

October 7, 2011, 16:30 

#2 
Senior Member
Santiago Marquez Damian
Join Date: Aug 2009
Location: Santa Fe, Santa Fe, Argentina
Posts: 438
Rep Power: 17 
Michael take a look to the document in the following link:
https://docs.google.com/viewer?a=v&p...ht7iRTTn&hl=es Regards.
__________________
Santiago MÁRQUEZ DAMIÁN, Ph.D. Research Scientist Research Center for Computational Methods (CIMEC)  CONICET/UNL Tel: 543424511594 Int. 7032 Colectora Ruta Nac. 168 / Paraje El Pozo (3000) Santa Fe  Argentina. http://www.cimec.org.ar 

October 10, 2011, 05:39 

#3 
New Member
Michael Buchmayr
Join Date: Mar 2010
Posts: 16
Rep Power: 9 
Thank you for the nice summery, Santiago. Te lo agradezco mucho!
It seems that I was wrong and TVD schemes in OpenFOAM do calculate r and not phict as I thought before. Regards, Michi 

October 30, 2015, 04:07 

#4 
Member
J.H. Wang
Join Date: Oct 2010
Posts: 72
Rep Power: 9 
I have a particular question about Van Leer limiter implementation in OpenFOAM 2.4.0.
I used it to limit my divergence term by the following excerpt in fvSchemes Code:
divSchemes { default Gauss linear; div(phi,U) Gauss vanLeerV 2; div(phi,nuTilda) Gauss limitedLinear 1; } Code:
(vanLeer.H) vanLeerLimiter(Istream&) {} scalar limiter ( const scalar, const scalar faceFlux, const typename LimiterFunc::phiType& phiP, const typename LimiterFunc::phiType& phiN, const typename LimiterFunc::gradPhiType& gradcP, const typename LimiterFunc::gradPhiType& gradcN, const vector& d ) const { scalar r = LimiterFunc::r ( faceFlux, phiP, phiN, gradcP, gradcN, d ); return (r + mag(r))/(1 + mag(r)); } Code:
(limtedLinear.H) limitedLinearLimiter(Istream& is) : k_(readScalar(is)) { if (k_ < 0  k_ > 1) { FatalIOErrorIn("limitedLinearLimiter(Istream& is)", is) << "coefficient = " << k_ << " should be >= 0 and <= 1" << exit(FatalIOError); } // Avoid the /0 when k_ = 0 twoByk_ = 2.0/max(k_, SMALL); } scalar limiter ( const scalar cdWeight, const scalar faceFlux, const typename LimiterFunc::phiType& phiP, const typename LimiterFunc::phiType& phiN, const typename LimiterFunc::gradPhiType& gradcP, const typename LimiterFunc::gradPhiType& gradcN, const vector& d ) const { scalar r = LimiterFunc::r ( faceFlux, phiP, phiN, gradcP, gradcN, d ); return max(min(twoByk_*r, 1), 0); } I am very confused now if van leer takes any argument and how do I specify it? Further, if I specify a strict bound, how can one choose such a number... it does not make sense to me that one could set an absolute bound before solving the system, otherwise why do you need the solver for... 

October 31, 2015, 17:12 

#5 
Member
J.H. Wang
Join Date: Oct 2010
Posts: 72
Rep Power: 9 
any ideas?


November 5, 2015, 09:18 

#6 
Member
Davi Barreira
Join Date: Apr 2014
Location: Fortaleza
Posts: 76
Rep Power: 5 
Why are you trying to bound the U (velocity)? The use of bounded values with vanLeer is usually for scalars who have limited values, such as volume fraction that has to be between 0 and 1. For vectors, you are using vanLeerV, so I would guess that it makes no sense to prescribe a limiter such as 2, and for such reason it does nothing.


Thread Tools  
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
Interpolation in OpenFoam  srinath  OpenFOAM Programming & Development  6  May 26, 2014 02:26 
TVD ...  Questioner  Main CFD Forum  1  June 7, 2006 08:54 
4th and 5th Order TVD RungeKutta Methods  saygin  Main CFD Forum  2  January 30, 2006 12:45 
TVD  TVD  Main CFD Forum  0  November 17, 2005 12:25 
TVD Schemes  Matt Umbel  Main CFD Forum  1  January 25, 2000 05:21 