357 type(scalar_field),
dimension(sys_size),
intent(inout) :: rhs_vf
358 type(scalar_field),
dimension(sys_size),
intent(in) ::
q_cons_vf, q_prim_vf
359 type(int_bounds_info),
dimension(1:3),
intent(in) :: bounds
361 real(wp) :: rho, pres, lambda, rate, mdot, drive, t_r
364# 38 "/home/runner/work/MFC/MFC/src/simulation/m_reactive_burn.fpp"
366# 38 "/home/runner/work/MFC/MFC/src/simulation/m_reactive_burn.fpp"
367#if defined(MFC_OpenACC)
368# 38 "/home/runner/work/MFC/MFC/src/simulation/m_reactive_burn.fpp"
370# 38 "/home/runner/work/MFC/MFC/src/simulation/m_reactive_burn.fpp"
371#elif defined(MFC_OpenMP)
372# 38 "/home/runner/work/MFC/MFC/src/simulation/m_reactive_burn.fpp"
374# 38 "/home/runner/work/MFC/MFC/src/simulation/m_reactive_burn.fpp"
376# 38 "/home/runner/work/MFC/MFC/src/simulation/m_reactive_burn.fpp"
378# 38 "/home/runner/work/MFC/MFC/src/simulation/m_reactive_burn.fpp"
380# 38 "/home/runner/work/MFC/MFC/src/simulation/m_reactive_burn.fpp"
382# 38 "/home/runner/work/MFC/MFC/src/simulation/m_reactive_burn.fpp"
384 do z = bounds(3)%beg, bounds(3)%end
385 do y = bounds(2)%beg, bounds(2)%end
386 do x = bounds(1)%beg, bounds(1)%end
388 rho =
q_cons_vf(eqn_idx%cont%beg)%sf(x, y, z) +
q_cons_vf(eqn_idx%cont%beg + 1)%sf(x, y, z)
389 pres = q_prim_vf(eqn_idx%E)%sf(x, y, z)
390 lambda = q_prim_vf(eqn_idx%adv%beg + 1)%sf(x, y, z)
393 drive = (pres - rburn%pign)/rburn%pref
394 if (drive > 0._wp .and. lambda < 1._wp)
then
395 rate = rburn%k*(1._wp - lambda)*drive**rburn%n
400 if (rburn%ta > 0._wp)
then
402 & z)/q_prim_vf(eqn_idx%adv%beg)%sf(x, y, z))
403 rate = rate*exp(-rburn%ta/t_r)
409 rhs_vf(eqn_idx%cont%beg)%sf(x, y, z) = rhs_vf(eqn_idx%cont%beg)%sf(x, y, z) - mdot
410 rhs_vf(eqn_idx%cont%beg + 1)%sf(x, y, z) = rhs_vf(eqn_idx%cont%beg + 1)%sf(x, y, z) + mdot
413 rhs_vf(eqn_idx%adv%beg)%sf(x, y, z) = rhs_vf(eqn_idx%adv%beg)%sf(x, y, z) - rate
414 rhs_vf(eqn_idx%adv%beg + 1)%sf(x, y, z) = rhs_vf(eqn_idx%adv%beg + 1)%sf(x, y, z) + rate
420# 74 "/home/runner/work/MFC/MFC/src/simulation/m_reactive_burn.fpp"
421#if defined(MFC_OpenACC)
422# 74 "/home/runner/work/MFC/MFC/src/simulation/m_reactive_burn.fpp"
424# 74 "/home/runner/work/MFC/MFC/src/simulation/m_reactive_burn.fpp"
425#elif defined(MFC_OpenMP)
426# 74 "/home/runner/work/MFC/MFC/src/simulation/m_reactive_burn.fpp"
428# 74 "/home/runner/work/MFC/MFC/src/simulation/m_reactive_burn.fpp"
430# 74 "/home/runner/work/MFC/MFC/src/simulation/m_reactive_burn.fpp"
subroutine, public s_compute_reactive_burn(rhs_vf, q_cons_vf, q_prim_vf, bounds)
Add the programmed-burn reaction source to the continuity and volume-fraction RHS.