CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Difference SFCD and GammaV (https://www.cfd-online.com/Forums/openfoam-solving/58428-difference-sfcd-gammav.html)

bboonacker October 23, 2008 05:52

Hello All and especially Prof.
 
Hello All and especially Prof. Jasak,

I am currently working on my MSc thesis and I would like to know something;
I cannot find any reference on the SFCD scheme and how it works. I can try to find out using the .C and .H, but my C++ knowledge does not extend that far I regret.
1) Does anyone have a reference or is anyone willing to share some thoughts/opinions about SFCD ?
2) Also, what is the main difference between SFCD and the Gamma scheme ? Please correct me if I'm wrong, Is the difference that the Gamma scheme contains a scaling factor (which is 2*beta_m in Jasaks paper(?)) and SFCD does not, or is it also in the blending function or other parts?

Best regards,
Bart

hjasak October 23, 2008 07:28

Hello Bart, All these schem
 
Hello Bart,

All these schemes are blended upwind-central type, using a limiter. The only true difference is the form of the limiter and its basis.

The original reference for SFCD is a PhD from Dr. Harry Ziman, from mid 1990-s at Imperial College London. Basically, the limited looks like MINMOD and you can revrese-engineer it from the code:


scalar phict = LimiterFunc::phict
(
faceFlux, phiP, phiN, gradcP, gradcN, d
);

scalar limitPhict = min(max(phict, 0), 0.5);
return limitPhict/(1 - limitPhict);


Here, phict is Phi-C-tilde (have a look at the Gamma paper) and the limiter is written out. For Gamma, the limiter is:

min(max(phict/k_, 0), 1) but k is re-scaled on the constructor to be between 0 and 1 (in reality is is 0-0.5).

k_ = max(k_/2.0, SMALL);

Enjoy,

Hrv

bboonacker October 23, 2008 09:08

Thanks for the quick clarifyin
 
Thanks for the quick clarifying awnser, I'll see if I can get a hold off Dr. Ziman's paper.

What I don't get so far, k is equal to beta_m ? Then why is Phi-C-tilde limited ?
Is the limiting done to easily select between UD, blending or CD, or something a like ?

hjasak October 23, 2008 09:36

@PhdThesis{Ziman:PhD, autho
 
@PhdThesis{Ziman:PhD,
author = {Ziman, H.J.},
title = {A computer prediction for chemically reacting flows
in stirred tanks},
school = {Imperial College, University of London},
year = {1990}
}

Yes, it's all about automaticaly blending UD and CD (well, a second-order scheme of your choice) .

Hrv

hjasak October 24, 2008 09:12

Sorry, I do not do support wit
 
Sorry, I do not do support without a support contract. You simulation failed way before this point.

Hrv

makaveli_lcf December 2, 2010 04:10

Is SFCD a NVD scheme? Here it is states as a "General convection scheme"
How is it possible to understand from the OpenFOAM sources, is scheme TVD or NVD? I found only the directory structure:

Quote:


Directories


directory limitedSchemes
directory multivariateSchemes
directory schemes
directory surfaceInterpolation
directory surfaceInterpolationScheme
Regards,

Alexander

openfoammaofnepo March 19, 2014 17:07

Dear Dr. Jasak,

Your reply is very helpful for me to understand the Gamma scheme. However, can I ask you other several questions?

1, what does k_ stand for in the code you mentioned?

2, about the limiter function for gamma scheme, did you have any reference for it? I did not find any information about it from the literatures?

3, this questions is not linked to Gamma scheme, but I ask here:
in openfoam, the numerical fluxes on the inter-cell face are for primitive variables (e.g. U_f) or conservative variables (e.g. (rho*U)_f)?

Thank you so much!

OFFO

Quote:

Originally Posted by hjasak (Post 189665)
Hello Bart,

All these schemes are blended upwind-central type, using a limiter. The only true difference is the form of the limiter and its basis.

The original reference for SFCD is a PhD from Dr. Harry Ziman, from mid 1990-s at Imperial College London. Basically, the limited looks like MINMOD and you can revrese-engineer it from the code:


scalar phict = LimiterFunc::phict
(
faceFlux, phiP, phiN, gradcP, gradcN, d
);

scalar limitPhict = min(max(phict, 0), 0.5);
return limitPhict/(1 - limitPhict);


Here, phict is Phi-C-tilde (have a look at the Gamma paper) and the limiter is written out. For Gamma, the limiter is:

min(max(phict/k_, 0), 1) but k is re-scaled on the constructor to be between 0 and 1 (in reality is is 0-0.5).

k_ = max(k_/2.0, SMALL);

Enjoy,

Hrv


openfoammaofnepo March 20, 2014 11:51

Dear Prof. Jasak,

I have some understanding about the limiter for Gamma function used in Openfoam. But I found there is still some difference compared with your Gamma Scheme paper. The scalar k_ should be the constant beta_m in that paper. The difference is:

Code:

In the paper:
if 0<phict/k_<1, then blended upwind and central differencing
if phict/k_ <= 0, then upwind
if  phict/k_ >= 1, then central difference

In OF2.1.1:
if 0<phict/k_<1, then blended upwind and central differencing
if phict/k_ <= 0 .or. phict/k_ >=1/K-, then upwind
if  1/k_>= phict/k_ >= 1, then central difference

Is what I am saying correct? Thank you for your any comments.

OFFO


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