3.5.1 Governing equations
In general, there are two ways to split the flux. One is the faster convergent scheme called the Flux Vector Splitting (FVS), and the other is a more accurate scheme called the Flux Difference Splitting (FDS). Of these, FDS has been shown to be the more accurate one. One-fifth to one-half as many points were required to resolve a shear layer using fluxes in a first-order scheme compared to using other fluxes in second- or even third-order schemes. However, in the FDS scheme, the exact Jacobian of the Roe matrix is expensive to compute, whereas approximated Jacobians have observed to give poor convergence compared to FVS.
The basic Roe scheme could produce entropy-violating solutions, and it has a slower convergence compared to FVS. In the present study, the FVS scheme is used to evaluate the Jacobians in matrix equations. The flux vector can be decomposed into two subvectors according to the positive and negative eigenvalues. Through a forward straight manipulation, one can compute the Jacobians A= ∂E/∂Q and B= ∂F/∂Q through the following expressions:
E= AQ (16)
F= BQ (17)
Equation (15) can be rewritten as
Qt+ AQξ+ BQη= Rξ+ Sη (18)
Note that E and F are homogeneous functions of degree 1 in “Q.” The Jacobians have the following transformation relations:
P−1AP= A (19)
P−1BP= B (20)
where Aand Bare the diagonal matrices and can been written as:
A= diag[˜u, ˜u, ˜u + aL(ξ), ˜u − aL(ξ)]
= diag[λE1, λE2, λE3, λE4] (21)
B= diag[˜v, ˜v, ˜v + aL(η), ˜v − aL(η)]
= diag[λF1, λF2, λF3, λF4] (22)
where λ’s are the eigenvalues of flux vectors E and F, a denotes the speed of sound in the physical domain, and
˜u = u∂ξ/∂x + v∂ξ/∂y (23)
˜v = u∂η/∂x + v∂η/∂y (24)
L(ξ)=
ξ2x+ ξy2 (25)
L(η)=
η2x+ η2y (26)
According to the vector splitting method, the eigenvalues of the flux vector can be expressed using positive and negative forms in order to split the flux vectors into two subvectors, that is,
E= (A++ A−)Q= E++ E− (27) F = (B++ B−)Q= F++ F− (28) The subvectors E+, E−, F+, and F−can be expressed according to the positive and negative eigenvalues as:
E±= J ρ 2γ
⎡
⎢⎢
⎢⎢
⎣
2(γ− 1)λE1+ λE3+ λE4
[2(γ− 1)λE1+ λE3+ λE4]u+ a(λE3− λE4)ξx/L(ξ) [2(γ− 1)λE1+ λE3+ λE4]v+ a(λE3− λE4)ξy/L(ξ) [2(γ− 1)λE1+ λE3+ λE4](u2+ v2)/2+ a(λE3− λE4)[uξx/L(ξ)
+vξy/L(ξ)]+ (λE3+ λE4)a2/(γ− 1)
⎤
⎥⎥
⎥⎥
⎦
(29)
F±= J ρ 2γ
⎡
⎢⎢
⎢⎢
⎣
2(γ− 1)λF1+ λF3+ λF4
[2(γ− 1)λF1+ λF3+ λF4]u+ a(λF3− λF4)ηx/L(η) [2(γ− 1)λF1+ λF3+ λF4]v+ a(λF3− λF4)ηy/L(η) [2(γ− 1)λF1+ λF3+ λF4](u2+ v2)/2+ a(λF3− λF4)[uηx/L(η)
+vηy/L(η)]+ (λF3+ λF4)a2/(γ− 1)
⎤
⎥⎥
⎥⎥
⎦
(30) The FVS form of equation (7) can be written as:
Qt+ Eξ++ Eξ−+ Fη++ Fη−= Rξ+ Sη (31)
3.5.2 Special treatment of the artificial dissipation terms and numerical algorithm
In this section, the new way to treat the artificial dissipation terms is proposed.
According to the idea proposed by Turkel and Vatsa [15], the dissipation terms can be written in the matrix-valued dissipation. However, in the present method, the dissipation term was not incorporated into the convection flux term as proposed by Turkel and Vatsa. The idea to overcome the effect of eigenvalue stiffness on the convergence of a compressible flow calculation was incorporated into the artificial dissipation terms. The dissipation terms were incorporated into the time-derivative terms. The dissipation terms can play a role in relatively enlarging the eigenvalue of the time-derivative term. The dissipation terms that required stabilizing the scheme is implemented in a convenient manner by modifying the convective fluxes as follows:
Fξ+1/2,η= 0.5 ∗ (Fξη+ Fξ+1,η)− Dξ+1/2,η (32) Eξη+1/2= 0.5 ∗ (Eξη+ Eξη+1)− Dξ,η+1/2 (33) The terms Dξ+1/2,ηand Dξ+1/2,ηrepresent the dissipative terms in ξ and η directions, respectively. Two forms of artificial dissipation models can be used. One is the scalar dissipation model and another is the matrix-valued dissipation model.
The concept of the matrix-valued dissipation model was adapted and modified to form a new numerical scheme. The spectral radii for the ξ direction is:
λξ= |˜u| + aL(ξ) (34)
To form the present scheme and optimize the dissipation model in the sense that the same dissipation scaling is used for all the governing equations in a given coordinate direction, the matrix-valued dissipation term in ξ direction can be written as:
DE = E·∂Q
∂t t (35)
Following the matrix-valued dissipation concept, matrix in ξ direction can be written as:
F = λ3I+
λ1+ λ2
2 − λ3
×
γ− 1
a2 E1+ E2 L(ξ)2
(36) +λ1− λ2
2aL(ξ) × [E3+ (γ − 1)E4] where
E1= [1, u, v, cpT ]T[q2/2,−u, −v, 1]
E2= [0, ξx, ξy,˜u]T[−˜u, ξx, ξy, 0]
E3= [1, u, v, cpT ]T[−˜u, ξx, ξy, 0]
E4= [0, ξx, ξy,˜u]T[q2/2,−u, −v, 1] (37) where q is the total velocity defined as:
q2= u2+ v2 (38)
and
λ1= ˜u + aL(ξ)
λ2= ˜u − aL(ξ) (39)
λ3= ˜u
However, in the calculation, we cannot choose λ1, λ2, and λ3 according to equation (39) because near the stagnation points, λ3approach zero, whereas near sonic lines λ1and λ2approach zero. For solving this problem, we limit these values in the following manner:
λ1= max (˜u + aL(ξ), ˜u/Mr2)
λ2= max (˜u − aL(ξ), ˜u/Mr2) (40) λ3= max (˜u, ˜u/Mr2)
where
Mr=
⎧⎨
⎩ 0.001 M2 1
M ≤ 0.001 0.001 < M ≤ 1
M > 1
(41)
and where M is the calculated Mach number.
The matrix Ecan be represented in the form ±E according to the positive or negative value of λ1, λ2, and λ3, that is,
E= (+E − −E)/2 (42) Similar expression can be derived for DFby replacing the contravariant velocity˜u by˜v and ξ by η in equations (35)–(42). By adding the matrix form of the dissipative terms in the governing equation (31), we obtain:
corresponding to the eigenvalues of the convection flux matrices.
By using the second-order time-difference algorithm, we have Qn+1− Qn
Considering the stability, the forward and backward scheme were adopted in the difference of flux splitting. We can define that:
Qi,jn+1 = −t where the backward operator, for example in ξ for the E term, can be written as ∇ξE= 0.5 (3Eξ− 4Eξ−1+ Eξ−2), whereas the forward operator ξE= −0.5 (3Eξ− 4Eξ+1+ Eξ+2) and ξ= 0.5 (Rξ+1− Rξ−1).
By substituting equations (46) and (47) into equation (45) and considering the definition in equations (48) and (49), we can obtain the following difference scheme:
dWδQni−1, j+1 + dSδQni, j+1−1+ dPδQni, j+1+ dNδQi, jn+1+1+ dEδQni+1, j+1 = Qni, j+1 (50) directly from flux vectors. It is shown that the present scheme mainly includes both implicit and explicit parts. Equation (50) is the implicit part of the present scheme, which can improve the numerical stability when a large time step is used in the calculation. Because of the application of flux vectors, the computational efforts can be greatly reduced as compared to other coefficient matrix implicit schemes for any time step [2]. Equation (48) is the explicit part of the scheme. We found that the implicit part, equation (50), can be solved by using a two-sweep method, which is similar to the hopscotch-sweep method but along i (i.e., ξ) and j (i.e., η) directions. Equation (50) can then be written in the form of the two-sweep form as follows:
dSδQni,j+1−1+ dPδQi,jn+1+ dNδQni,j+1+1= Qni,j+1− dWδQin−1,j+1 − dEδQni+1,j (51) Calculation starts from i=1 to imaxalong the i-direction. At each station i of the time step n+ 1, the variables δQi,j−1, δQi,j, and δQi,j+1 can be obtained along the j-direction. It is clearly shown that the present scheme consists of an explicit part of Qi,jat any time step “n” and an implicit δQi,j at time step “n+ 1.”