@@ -37,7 +37,6 @@ CUpwMSW_Flow::CUpwMSW_Flow(unsigned short val_nDim, unsigned short val_nVar, con
3737 implicit = (config->GetKind_TimeIntScheme_Flow () == EULER_IMPLICIT);
3838
3939 /* --- Allocate arrays ---*/
40- Diff_U = new su2double [nVar];
4140 Fc_i = new su2double [nVar];
4241 Fc_j = new su2double [nVar];
4342 Lambda_i = new su2double [nVar];
@@ -47,10 +46,8 @@ CUpwMSW_Flow::CUpwMSW_Flow(unsigned short val_nDim, unsigned short val_nVar, con
4746 u_j = new su2double [nDim];
4847 ust_i = new su2double [nDim];
4948 ust_j = new su2double [nDim];
50- Vst_i = new su2double [nPrimVar];
51- Vst_j = new su2double [nPrimVar];
52- Ust_i = new su2double [nVar];
53- Ust_j = new su2double [nVar];
49+ Vst_i = new su2double [nDim+5 ];
50+ Vst_j = new su2double [nDim+5 ];
5451
5552 Velst_i = new su2double [nDim];
5653 Velst_j = new su2double [nDim];
@@ -70,7 +67,6 @@ CUpwMSW_Flow::CUpwMSW_Flow(unsigned short val_nDim, unsigned short val_nVar, con
7067
7168CUpwMSW_Flow::~CUpwMSW_Flow (void ) {
7269
73- delete [] Diff_U;
7470 delete [] Fc_i;
7571 delete [] Fc_j;
7672 delete [] Lambda_i;
@@ -80,9 +76,7 @@ CUpwMSW_Flow::~CUpwMSW_Flow(void) {
8076 delete [] u_j;
8177 delete [] ust_i;
8278 delete [] ust_j;
83- delete [] Ust_i;
8479 delete [] Vst_i;
85- delete [] Ust_j;
8680 delete [] Vst_j;
8781 delete [] Velst_i;
8882 delete [] Velst_j;
@@ -105,7 +99,7 @@ CNumerics::ResidualType<> CUpwMSW_Flow::ComputeResidual(const CConfig* config) {
10599 implicit = (config->GetKind_TimeIntScheme () == EULER_IMPLICIT);
106100
107101 unsigned short iDim, iVar, jVar, kVar ;
108- su2double P_i, P_j;
102+ su2double rho_i, rho_j, P_i, P_j, H_i, H_j ;
109103 su2double ProjVel_i, ProjVel_j, ProjVelst_i, ProjVelst_j;
110104 su2double sqvel_i, sqvel_j;
111105 su2double alpha, w, dp, onemw;
@@ -138,14 +132,28 @@ CNumerics::ResidualType<> CUpwMSW_Flow::ComputeResidual(const CConfig* config) {
138132
139133 /* --- Load variables from nodes i & j ---*/
140134
141- rhos_i = V_i[0 ];
142- rhos_j = V_j[0 ];
143135 for (iDim = 0 ; iDim < nDim; iDim++) {
144136 u_i[iDim] = V_i[iDim+1 ];
145137 u_j[iDim] = V_j[iDim+1 ];
146138 }
147139 P_i = V_i[nDim+1 ];
148140 P_j = V_j[nDim+1 ];
141+ rho_i = V_i[nDim+2 ];
142+ rho_j = V_j[nDim+2 ];
143+ H_i = V_i[nDim+3 ];
144+ H_j = V_j[nDim+3 ];
145+
146+ /* --- Recompute conservatives ---*/
147+
148+ su2double U_i[5 ] = {0.0 }, U_j[5 ] = {0.0 };
149+
150+ U_i[0 ] = rho_i; U_j[0 ] = rho_j;
151+ for (iDim = 0 ; iDim < nDim; iDim++) {
152+ U_i[iDim+1 ] = rho_i*u_i[iDim];
153+ U_j[iDim+1 ] = rho_j*u_j[iDim];
154+ }
155+ U_i[nDim+1 ] = rho_i*H_i - P_i;
156+ U_j[nDim+1 ] = rho_j*H_j - P_j;
149157
150158 /* --- Calculate supporting quantities ---*/
151159
@@ -166,10 +174,6 @@ CNumerics::ResidualType<> CUpwMSW_Flow::ComputeResidual(const CConfig* config) {
166174
167175 /* --- Calculate weighted state vector (*) for i & j ---*/
168176
169- for (iVar = 0 ; iVar < nVar; iVar++) {
170- Ust_i[iVar] = onemw*U_i[iVar] + w*U_j[iVar];
171- Ust_j[iVar] = onemw*U_j[iVar] + w*U_i[iVar];
172- }
173177 for (iVar = 0 ; iVar < nDim+5 ; iVar++) {
174178 Vst_i[iVar] = onemw*V_i[iVar] + w*V_j[iVar];
175179 Vst_j[iVar] = onemw*V_j[iVar] + w*V_i[iVar];
0 commit comments