CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > SU2

JST Artificial Dissipation

Register Blogs Community New Posts Updated Threads Search

Like Tree1Likes
  • 1 Post By fpalacios

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   January 16, 2013, 21:58
Default JST Artificial Dissipation
  #1
New Member
 
Join Date: May 2012
Posts: 6
Rep Power: 14
amphy404 is on a distinguished road
Hi,

I was looking through the JST artificial dissipation code implemented in the function CCentJST_Flow::SetResidual() in numerics_convective.cpp.

I have not been able to find references for some of the scaling factors used in the JST artificial dissipation code.

Can you explain the meaning of "StretchingFactor", "sc2" and "sc4"? Alternatively, can you point out the paper that this is from? Do they have something to do with the aspect ratio of the elements?

Code:
Local_Lambda_i = (fabs(ProjVelocity_i)+SoundSpeed_i*Area); 
Local_Lambda_j = (fabs(ProjVelocity_j)+SoundSpeed_j*Area); 
MeanLambda = 0.5*(Local_Lambda_i+Local_Lambda_j); 
 
Phi_i = pow(Lambda_i/(4.0*MeanLambda+EPS), Param_p); 
Phi_j = pow(Lambda_j/(4.0*MeanLambda+EPS), Param_p);     
StretchingFactor = 4.0*Phi_i*Phi_j/(Phi_i+Phi_j+EPS); 
 
sc2 = 3.0*(double(Neighbor_i)+double(Neighbor_j))/(double(Neighbor_i)*double(Neighbor_j)); 
sc4 = sc2*sc2/4.0; 
Epsilon_2 = Param_Kappa_2*0.5*(Sensor_i+Sensor_j)*sc2; 
Epsilon_4 = max(0.0, Param_Kappa_4-Epsilon_2)*sc4;
/*--- Compute viscous part of the residual ---*/ 
for (iVar = 0; iVar < nVar; iVar++) 
    val_resvisc[iVar] = (Epsilon_2*Diff_U[iVar] - Epsilon_4*Diff_Lapl[iVar])*StretchingFactor*MeanLambda;
Additionally for the papers I have read, the calculation of "Epsilon_2" is,
Code:
Epsilon_2 = Param_Kappa_2*max(Sensor_i, Sensor_j);
Whereas, in the SU2 code, it is the average of the sensor values. Is this done in order to reduce the sensitivity of the sensors?


Thanks,
KW
amphy404 is offline   Reply With Quote

Old   January 17, 2013, 04:29
Default
  #2
Super Moderator
 
Praveen. C
Join Date: Mar 2009
Location: Bangalore
Posts: 343
Blog Entries: 6
Rep Power: 18
praveen is on a distinguished road
I would also like to know more about this scheme.

This may be a basic question since I am not very familiar with JST scheme. The JST scheme in SU2 also has first order dissipation, e.g., the config files have

Code:
% 1st, 2nd and 4th order artificial dissipation coefficients
AD_COEFF_FLOW= ( 0.15, 0.5, 0.02 )
What does first order dissipation mean in this context ? The AIAA paper does not clarify how these three coefficients appear in the scheme, I can only see the second and fourth order dissipation explained in the paper.
praveen is offline   Reply With Quote

Old   January 18, 2013, 22:32
Default
  #3
Super Moderator
 
Francisco Palacios
Join Date: Jan 2013
Location: Long Beach, CA
Posts: 404
Rep Power: 15
fpalacios is on a distinguished road
Quote:
Originally Posted by praveen View Post
I would also like to know more about this scheme.

This may be a basic question since I am not very familiar with JST scheme. The JST scheme in SU2 also has first order dissipation, e.g., the config files have

Code:
% 1st, 2nd and 4th order artificial dissipation coefficients
AD_COEFF_FLOW= ( 0.15, 0.5, 0.02 )
What does first order dissipation mean in this context ? The AIAA paper does not clarify how these three coefficients appear in the scheme, I can only see the second and fourth order dissipation explained in the paper.
The first number (0.15) is the coefficient that SU2 uses in the multigrid levels, where only a first order spatial discretization (Lax–Friedrichs) is used.

Cheers,
Francisco
beatlejuice likes this.
fpalacios is offline   Reply With Quote

Old   January 18, 2013, 22:44
Default
  #4
Super Moderator
 
Francisco Palacios
Join Date: Jan 2013
Location: Long Beach, CA
Posts: 404
Rep Power: 15
fpalacios is on a distinguished road
Quote:
Originally Posted by amphy404 View Post
Hi,

I was looking through the JST artificial dissipation code implemented in the function CCentJST_Flow::SetResidual() in numerics_convective.cpp.

I have not been able to find references for some of the scaling factors used in the JST artificial dissipation code.

Can you explain the meaning of "StretchingFactor", "sc2" and "sc4"? Alternatively, can you point out the paper that this is from? Do they have something to do with the aspect ratio of the elements?

Code:
Local_Lambda_i = (fabs(ProjVelocity_i)+SoundSpeed_i*Area); 
Local_Lambda_j = (fabs(ProjVelocity_j)+SoundSpeed_j*Area); 
MeanLambda = 0.5*(Local_Lambda_i+Local_Lambda_j); 
 
Phi_i = pow(Lambda_i/(4.0*MeanLambda+EPS), Param_p); 
Phi_j = pow(Lambda_j/(4.0*MeanLambda+EPS), Param_p);     
StretchingFactor = 4.0*Phi_i*Phi_j/(Phi_i+Phi_j+EPS); 
 
sc2 = 3.0*(double(Neighbor_i)+double(Neighbor_j))/(double(Neighbor_i)*double(Neighbor_j)); 
sc4 = sc2*sc2/4.0; 
Epsilon_2 = Param_Kappa_2*0.5*(Sensor_i+Sensor_j)*sc2; 
Epsilon_4 = max(0.0, Param_Kappa_4-Epsilon_2)*sc4;
/*--- Compute viscous part of the residual ---*/ 
for (iVar = 0; iVar < nVar; iVar++) 
    val_resvisc[iVar] = (Epsilon_2*Diff_U[iVar] - Epsilon_4*Diff_Lapl[iVar])*StretchingFactor*MeanLambda;
Additionally for the papers I have read, the calculation of "Epsilon_2" is,
Code:
Epsilon_2 = Param_Kappa_2*max(Sensor_i, Sensor_j);
Whereas, in the SU2 code, it is the average of the sensor values. Is this done in order to reduce the sensitivity of the sensors?


Thanks,
KW
As you know, there is not a direct translation from the classical JST method in structured grids to the unstructured world, and probably each unstructured code has a slightly different implementation based on Jameson, Martinelli and Mavriplis works.

Cheers,
Francisco
fpalacios is offline   Reply With Quote

Old   January 20, 2016, 00:20
Default
  #5
Member
 
Kan
Join Date: Feb 2014
Location: Australia
Posts: 54
Rep Power: 12
nwpukaka is on a distinguished road
Hi,

I am also curious with the following code:

/*--- Computes differences btw. Laplacians and conservative variables,
with a correction for the enthalpy ---*/
Diff_U[nVar-1] = Density_i*Enthalpy_i-Density_j*Enthalpy_j;

I guess this is used for the artificial diffusion term of energy conservation equation, but why do you change from total energy to enthalpy?

Thank you,
Kan
nwpukaka is offline   Reply With Quote

Reply

Tags
artificial dissipation, jst


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 Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Artificial dissipation for NS equations, flow in a pipe RameshK Main CFD Forum 8 November 13, 2011 11:29
Artificial Dissipation TheBoyce Main CFD Forum 2 March 23, 2011 16:27
Require a paper of artificial dissipation by Eriks leaf Main CFD Forum 1 June 20, 2006 00:34
Looking for a paper about artificial dissipation! leaf Main CFD Forum 0 May 18, 2006 17:52
Artificial Dissipation Fereidoun-e-Jam Main CFD Forum 0 April 6, 2005 08:33


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