diff --git a/Source/hydro/trans.cpp b/Source/hydro/trans.cpp index 18dd50c2e0..3ce0b1117e 100644 --- a/Source/hydro/trans.cpp +++ b/Source/hydro/trans.cpp @@ -440,15 +440,26 @@ Castro::actual_trans_single(const Box& bx, // NOLINT(readability-convert-member // Pretend QREINT has been fixed and transverse_use_eos != 1. // If we are wrong, we will fix it later. - // Add the transverse term to the p evolution eq here. + if (transverse_use_eos) { + eos_rep_t eos_state; + eos_state.rho = rrnewn; + eos_state.e = qo_arr(i,j,k,QREINT) / rrnewn; + for (int n = 0; n < NumSpec; n++) { + eos_state.xn[n] = qo_arr(i,j,k,QFS+n); + } + eos(eos_input_re, eos_state); + Real pnewn = eos_state.p; + } else { + // Add the transverse term to the p evolution eq here. #if AMREX_SPACEDIM == 2 - // the divergences here, dup and du, already have area factors - Real pnewn = q_arr(i,j,k,QPRES) - hdt * (dup + pav * du * (gamc - 1.0_rt)) * volinv; + // the divergences here, dup and du, already have area factors + Real pnewn = q_arr(i,j,k,QPRES) - hdt * (dup + pav * du * (gamc - 1.0_rt)) * volinv; #else - Real pnewn = q_arr(i,j,k,QPRES) - cdtdx * (dup + pav * du * (gamc - 1.0_rt)); + Real pnewn = q_arr(i,j,k,QPRES) - cdtdx * (dup + pav * du * (gamc - 1.0_rt)); #endif - qo_arr(i,j,k,QPRES) = amrex::max(pnewn, small_p); + } + qo_arr(i,j,k,QPRES) = amrex::max(pnewn, small_p); } else { qo_arr(i,j,k,QPRES) = q_arr(i,j,k,QPRES);