@@ -242,47 +242,42 @@ void Hydro::RiemannSolver(const int k, const int j, const int il, const int iu,
242
242
// (KGF): group transverse by, bz terms for floating-point associativity symmetry
243
243
urst.e = (sdr*ur.e - ptr*wri[IVX] + ptst*spd[2 ] +
244
244
bxi*(wri[IVX]*bxi + (wri[IVY]*ur.by + wri[IVZ]*ur.bz ) - vbstr))*sdmr_inv;
245
- // ul** and ur** - if Bx is near zero, same as *-states
246
- if (0.5 *bxsq < (SMALL_NUMBER)*ptst) {
247
- uldst = ulst;
248
- urdst = urst;
249
- } else {
250
- Real invsumd = 1.0 /(sqrtdl + sqrtdr);
251
- Real bxsig = (bxi > 0.0 ? 1.0 : -1.0 );
252
-
253
- uldst.d = ulst.d ;
254
- urdst.d = urst.d ;
255
-
256
- uldst.mx = ulst.mx ;
257
- urdst.mx = urst.mx ;
258
-
259
- // eqn (59) of M&K
260
- Real tmp = invsumd*(sqrtdl*(ulst.my *ulst_d_inv) + sqrtdr*(urst.my *urst_d_inv) +
261
- bxsig*(urst.by - ulst.by ));
262
- uldst.my = uldst.d * tmp;
263
- urdst.my = urdst.d * tmp;
264
-
265
- // eqn (60) of M&K
266
- tmp = invsumd*(sqrtdl*(ulst.mz *ulst_d_inv) + sqrtdr*(urst.mz *urst_d_inv) +
267
- bxsig*(urst.bz - ulst.bz ));
268
- uldst.mz = uldst.d * tmp;
269
- urdst.mz = urdst.d * tmp;
270
-
271
- // eqn (61) of M&K
272
- tmp = invsumd*(sqrtdl*urst.by + sqrtdr*ulst.by +
273
- bxsig*sqrtdl*sqrtdr*((urst.my *urst_d_inv) - (ulst.my *ulst_d_inv)));
274
- uldst.by = urdst.by = tmp;
275
-
276
- // eqn (62) of M&K
277
- tmp = invsumd*(sqrtdl*urst.bz + sqrtdr*ulst.bz +
278
- bxsig*sqrtdl*sqrtdr*((urst.mz *urst_d_inv) - (ulst.mz *ulst_d_inv)));
279
- uldst.bz = urdst.bz = tmp;
280
-
281
- // eqn (63) of M&K
282
- tmp = spd[2 ]*bxi + (uldst.my *uldst.by + uldst.mz *uldst.bz )/uldst.d ;
283
- uldst.e = ulst.e - sqrtdl*bxsig*(vbstl - tmp);
284
- urdst.e = urst.e + sqrtdr*bxsig*(vbstr - tmp);
285
- }
245
+
246
+ Real invsumd = 1.0 /(sqrtdl + sqrtdr);
247
+ Real bxsig = (bxi > 0.0 ? 1.0 : -1.0 );
248
+
249
+ uldst.d = ulst.d ;
250
+ urdst.d = urst.d ;
251
+
252
+ uldst.mx = ulst.mx ;
253
+ urdst.mx = urst.mx ;
254
+
255
+ // eqn (59) of M&K
256
+ Real tmp = invsumd*(sqrtdl*(ulst.my *ulst_d_inv) + sqrtdr*(urst.my *urst_d_inv) +
257
+ bxsig*(urst.by - ulst.by ));
258
+ uldst.my = uldst.d * tmp;
259
+ urdst.my = urdst.d * tmp;
260
+
261
+ // eqn (60) of M&K
262
+ tmp = invsumd*(sqrtdl*(ulst.mz *ulst_d_inv) + sqrtdr*(urst.mz *urst_d_inv) +
263
+ bxsig*(urst.bz - ulst.bz ));
264
+ uldst.mz = uldst.d * tmp;
265
+ urdst.mz = urdst.d * tmp;
266
+
267
+ // eqn (61) of M&K
268
+ tmp = invsumd*(sqrtdl*urst.by + sqrtdr*ulst.by +
269
+ bxsig*sqrtdl*sqrtdr*((urst.my *urst_d_inv) - (ulst.my *ulst_d_inv)));
270
+ uldst.by = urdst.by = tmp;
271
+
272
+ // eqn (62) of M&K
273
+ tmp = invsumd*(sqrtdl*urst.bz + sqrtdr*ulst.bz +
274
+ bxsig*sqrtdl*sqrtdr*((urst.mz *urst_d_inv) - (ulst.mz *ulst_d_inv)));
275
+ uldst.bz = urdst.bz = tmp;
276
+
277
+ // eqn (63) of M&K
278
+ tmp = spd[2 ]*bxi + (uldst.my *uldst.by + uldst.mz *uldst.bz )/uldst.d ;
279
+ uldst.e = ulst.e - sqrtdl*bxsig*(vbstl - tmp);
280
+ urdst.e = urst.e + sqrtdr*bxsig*(vbstr - tmp);
286
281
287
282
// --- Step 6. Compute flux
288
283
uldst.d = spd[1 ] * (uldst.d - ulst.d );
@@ -344,6 +339,15 @@ void Hydro::RiemannSolver(const int k, const int j, const int il, const int iu,
344
339
flxi[IEN] = fl.e + ulst.e ;
345
340
flxi[IBY] = fl.by + ulst.by ;
346
341
flxi[IBZ] = fl.bz + ulst.bz ;
342
+ } else if (spd[3 ] <= 0.0 ) {
343
+ // return Fr*
344
+ flxi[IDN] = fr.d + urst.d ;
345
+ flxi[IVX] = fr.mx + urst.mx ;
346
+ flxi[IVY] = fr.my + urst.my ;
347
+ flxi[IVZ] = fr.mz + urst.mz ;
348
+ flxi[IEN] = fr.e + urst.e ;
349
+ flxi[IBY] = fr.by + urst.by ;
350
+ flxi[IBZ] = fr.bz + urst.bz ;
347
351
} else if (spd[2 ] >= 0.0 ) {
348
352
// return Fl**
349
353
flxi[IDN] = fl.d + ulst.d + uldst.d ;
@@ -353,7 +357,7 @@ void Hydro::RiemannSolver(const int k, const int j, const int il, const int iu,
353
357
flxi[IEN] = fl.e + ulst.e + uldst.e ;
354
358
flxi[IBY] = fl.by + ulst.by + uldst.by ;
355
359
flxi[IBZ] = fl.bz + ulst.bz + uldst.bz ;
356
- } else if (spd[ 3 ] > 0.0 ) {
360
+ } else {
357
361
// return Fr**
358
362
flxi[IDN] = fr.d + urst.d + urdst.d ;
359
363
flxi[IVX] = fr.mx + urst.mx + urdst.mx ;
@@ -362,15 +366,6 @@ void Hydro::RiemannSolver(const int k, const int j, const int il, const int iu,
362
366
flxi[IEN] = fr.e + urst.e + urdst.e ;
363
367
flxi[IBY] = fr.by + urst.by + urdst.by ;
364
368
flxi[IBZ] = fr.bz + urst.bz + urdst.bz ;
365
- } else {
366
- // return Fr*
367
- flxi[IDN] = fr.d + urst.d ;
368
- flxi[IVX] = fr.mx + urst.mx ;
369
- flxi[IVY] = fr.my + urst.my ;
370
- flxi[IVZ] = fr.mz + urst.mz ;
371
- flxi[IEN] = fr.e + urst.e ;
372
- flxi[IBY] = fr.by + urst.by ;
373
- flxi[IBZ] = fr.bz + urst.bz ;
374
369
}
375
370
376
371
flx (IDN,k,j,i) = flxi[IDN];
0 commit comments