Skip to content

Test CUSP scheme in QuickStart's mesh #465

@LeyiChai

Description

@LeyiChai

I'm a junior student and a new CFDer.
I'v been testing upwind scheme in QuickStart and found that CUSP scheme diverged. Below is some important configuration information
Firstly I just changed convective scheme of "inv_NACA0012.cfg" in QuickStart to CUSP and SU2 diverged directly. Configuration information lies below.(CFL = 4.0)

% Mach number (non-dimensional, based on the free-stream values)
MACH_NUMBER= 0.8
%
% Angle of attack (degrees)
AOA= 1.25
%
% -------------------------- MULTIGRID PARAMETERS -----------------------------%
%
% Multi-Grid Levels (0 = no multi-grid)
MGLEVEL= 3
%
% Multi-grid cycle (V_CYCLE, W_CYCLE, FULLMG_CYCLE)
MGCYCLE= W_CYCLE
%
% Multi-Grid PreSmoothing Level
MG_PRE_SMOOTH= ( 1, 2, 3, 3 )
%
% Multi-Grid PostSmoothing Level
MG_POST_SMOOTH= ( 0, 0, 0, 0 )
%
% Jacobi implicit smoothing of the correction
MG_CORRECTION_SMOOTH= ( 0, 0, 0, 0 )
%
% Damping factor for the residual restriction
MG_DAMP_RESTRICTION= 1.0
%
% Damping factor for the correction prolongation
MG_DAMP_PROLONGATION= 1.0
% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------%
%
% Convective numerical method (JST, LAX-FRIEDRICH, CUSP, ROE, AUSM, HLLC,
% TURKEL_PREC, MSW)
CONV_NUM_METHOD_FLOW= CUSP
%
% Spatial numerical order integration (1ST_ORDER, 2ND_ORDER, 2ND_ORDER_LIMITER)
%
SPATIAL_ORDER_FLOW= 2ND_ORDER_LIMITER
%
% Slope limiter (VENKATAKRISHNAN, MINMOD)
SLOPE_LIMITER_FLOW= VENKATAKRISHNAN
%
% 1st, 2nd and 4th order artificial dissipation coefficients
AD_COEFF_FLOW= ( 0.15, 0.5, 0.02 )
%
% Time discretization (RUNGE-KUTTA_EXPLICIT, EULER_IMPLICIT, EULER_EXPLICIT)
TIME_DISCRE_FLOW= EULER_IMPLICIT

cusp3levcfl4limiterven
When I modify CFL number to 1.0, SU2 doesn't diverged but oscillating at 10^-5 order
cusp3levcfl1limiterven

I forced it stopped and compare result with JST scheme:

CUSP(3Level multigrid)
Total CL: 0.336272
Total CD: 0.0220499
JST (3Level multigrid)
Total CL: 0.326933
Total CD: 0.0213497

The result is acceptable.
But when I change the limiter to"BARTH_JESPERSEN"(The configuration file doesn't show it)
(still CFL = 1.0; Same multigrid configuration)
SU2 converged quickly.
cusp3levcfl1limiterbarth
What's more, the result is also acceptable.

Based on above results, I set no multigrid working.
SU2 still oscillating when CFL number is 4.0 (Both VENKATAKRISHNAN and BARTH_JESPERSEN limiter)
BARTH_JESPERSEN
cusp0levcfl1limiterbarth
VENKATAKRISHNAN
cusp0levcfl1limiterven
Analogously, I set CFL to 1 again.
But VENKATAKRISHNAN converged but BARTH_JESPERSEN still oscillating.

I don't why CUSP occur this situation. Is there any bug in multigrid, limiter and CUSP scheme?

I know my ability and knowledge are limited, but I still try to read the code. Some simple "bugs" I've found but I doubt it.
In numerics_direct_mean.cpp , I've read compute_residual of CUSP and found something doubtly.

At line 643

for (iDim = 0; iDim < nDim; iDim++) {
Velocity_i[iDim] = V_i[iDim+1];
Velocity_j[iDim] = V_j[iDim+1];
sq_vel_i += 0.5*Velocity_i[iDim]Velocity_i[iDim];
sq_vel_j += 0.5
Velocity_j[iDim]*Velocity_j[iDim];
}

SoundSpeed_i = sqrt(GammaGamma_Minus_One(Energy_i-0.5sq_vel_i));
SoundSpeed_j = sqrt(Gamma
Gamma_Minus_One*(Energy_j-0.5*sq_vel_j));

Here I assume is computing Roe-Sound-Speed, but sq_vel_j's coefficient is not 1/4 but 1/2.

sqrt(GammaGamma_Minus_One(Energy_j-0.5*sq_vel_j))

And I don't know whether it's suitable to mix original CUSP and simplified CUSP.
Here, in computing dissipation parameters, SU2 used a simplified Lamda

LamdaNeg = ProjVelocity - MeanSoundSpeed;
LamdaPos = ProjVelocity + MeanSoundSpeed;

I've read paper and there are two kind of computing-dissipation-parameter method, SU2 seems mixed them. Whether it's legal?

At line 729

if ((Beta > 0.0) && ((0.0 < Mach) && (Mach < 1.0))) Nu_c = - (1.0-Beta)*LamdaNeg;

In Computational Fluid Dynamics (Computational Fluid Dynamics: Principles and Applications (Third Edition)[J]. Computational Fluid Dynamics Principles & Applications, 2015:ix.)
Nu_c seems to be - (1.0+Beta)*LamdaNeg.

And I want to know which configuration is suit for this condition, thanks~

That's all my confusion. I don't know where I've done wrong and where I've misunderstood. :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions