589# 113 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
591# 113 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
593# 113 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
595# 113 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
597# 113 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
599# 113 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
601# 113 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
604 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_cons_vf
605 integer,
intent(in) :: j, k, l
606 real(wp) :: sum_alpha
611# 121 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
612#if defined(MFC_OpenACC)
613# 121 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
615# 121 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
616#elif defined(MFC_OpenMP)
617# 121 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
619# 121 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
622 if ((q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l) < 0._wp) .or. (q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, &
624 q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l) = 0._wp
625 q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, l) = 0._wp
626 q_cons_vf(i + eqn_idx%int_en%beg - 1)%sf(j, k, l) = 0._wp
628 if (q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, l) > 1._wp) q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, l) = 1._wp
629 sum_alpha = sum_alpha + q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, l)
633# 133 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
634#if defined(MFC_OpenACC)
635# 133 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
637# 133 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
638#elif defined(MFC_OpenMP)
639# 133 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
641# 133 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
644 q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, l) = q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, l)/sum_alpha
653# 143 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
655# 143 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
657# 143 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
659# 143 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
661# 143 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
663# 143 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
665# 143 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
668 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_cons_vf
669 integer,
intent(in) :: j, k, l
670 real(wp) :: pres_relax, f_pres, df_pres
671# 151 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
672 real(wp),
dimension(num_fluids) :: pres_K_init, rho_K_s
673# 153 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
674 integer,
parameter :: MAX_ITER = 50
676 real(wp),
parameter :: TOLERANCE = 1.e-10_wp
682# 160 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
683#if defined(MFC_OpenACC)
684# 160 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
686# 160 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
687#elif defined(MFC_OpenMP)
688# 160 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
690# 160 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
693 if (q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, l) > sgm_eps)
then
697 pres_k_init(i) = ((q_cons_vf(i + eqn_idx%int_en%beg - 1)%sf(j, k, l) - q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, &
698 & k, l)*qvs(i))/q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, l) - pi_infs(i))/gammas(i)
699 if (pres_k_init(i) <= -(1._wp - 1.e-8_wp)*ps_inf(i) + 1.e-8_wp) pres_k_init(i) = -(1._wp - 1.e-8_wp)*ps_inf(i) &
702 pres_k_init(i) = 0._wp
704 pres_relax = pres_relax + q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, l)*pres_k_init(i)
711# 179 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
712#if defined(MFC_OpenACC)
713# 179 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
715# 179 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
716#elif defined(MFC_OpenMP)
717# 179 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
719# 179 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
721 do iter = 0, max_iter - 1
722 if (abs(f_pres) > tolerance)
then
723 pres_relax = pres_relax - f_pres/df_pres
727 if (pres_relax <= -(1._wp - 1.e-8_wp)*ps_inf(i) + 1.e-8_wp) pres_relax = -(1._wp - 1.e-8_wp)*ps_inf(i) &
735# 193 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
736#if defined(MFC_OpenACC)
737# 193 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
739# 193 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
740#elif defined(MFC_OpenMP)
741# 193 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
743# 193 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
746 if (q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, l) > sgm_eps)
then
748 rho_k_s(i) = q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)/max(q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, &
749 & k, l), sgm_eps)*((pres_relax + ps_inf(i))/(pres_k_init(i) + ps_inf(i)))**(1._wp/gs_min(i))
750 f_pres = f_pres + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)/rho_k_s(i)
751 df_pres = df_pres - q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, &
752 & l)/(gs_min(i)*rho_k_s(i)*(pres_relax + ps_inf(i)))
760# 208 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
761#if defined(MFC_OpenACC)
762# 208 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
764# 208 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
765#elif defined(MFC_OpenMP)
766# 208 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
768# 208 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
771 if (q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, l) > sgm_eps) q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, &
772 & l) = q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)/rho_k_s(i)
781# 219 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
783# 219 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
785# 219 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
787# 219 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
789# 219 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
791# 219 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
793# 219 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
796 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_cons_vf
797 integer,
intent(in) :: j, k, l
798# 226 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
799 real(wp),
dimension(num_fluids) :: alpha_rho, alpha
800# 228 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
801 real(wp) :: rho, dyn_pres, gamma, pi_inf, pres_relax, sum_alpha, qv_mix
802 real(wp),
dimension(2) :: Re
806# 232 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
807#if defined(MFC_OpenACC)
808# 232 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
810# 232 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
811#elif defined(MFC_OpenMP)
812# 232 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
814# 232 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
817 alpha_rho(i) = q_cons_vf(i)%sf(j, k, l)
818 alpha(i) = q_cons_vf(eqn_idx%E + i)%sf(j, k, l)
826 if (bubbles_euler)
then
827 if (mpp_lim .and. (model_eqns == model_eqns_5eq) .and. (num_fluids > 2))
then
829# 245 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
830#if defined(MFC_OpenACC)
831# 245 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
833# 245 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
834#elif defined(MFC_OpenMP)
835# 245 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
837# 245 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
840 rho = rho + alpha_rho(i)
841 gamma = gamma + alpha(i)*gammas(i)
842 pi_inf = pi_inf + alpha(i)*pi_infs(i)
844 else if ((model_eqns == model_eqns_5eq) .and. (num_fluids > 2))
then
846# 252 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
847#if defined(MFC_OpenACC)
848# 252 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
850# 252 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
851#elif defined(MFC_OpenMP)
852# 252 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
854# 252 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
856 do i = 1, num_fluids - 1
857 rho = rho + alpha_rho(i)
858 gamma = gamma + alpha(i)*gammas(i)
859 pi_inf = pi_inf + alpha(i)*pi_infs(i)
870# 266 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
871#if defined(MFC_OpenACC)
872# 266 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
874# 266 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
875#elif defined(MFC_OpenMP)
876# 266 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
878# 266 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
881 alpha_rho(i) = max(0._wp, alpha_rho(i))
882 alpha(i) = min(max(0._wp, alpha(i)), 1._wp)
883 sum_alpha = sum_alpha + alpha(i)
885 alpha = alpha/max(sum_alpha, sgm_eps)
889# 275 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
890#if defined(MFC_OpenACC)
891# 275 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
893# 275 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
894#elif defined(MFC_OpenMP)
895# 275 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
897# 275 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
900 rho = rho + alpha_rho(i)
901 gamma = gamma + alpha(i)*gammas(i)
902 pi_inf = pi_inf + alpha(i)*pi_infs(i)
907# 283 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
908#if defined(MFC_OpenACC)
909# 283 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
911# 283 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
912#elif defined(MFC_OpenMP)
913# 283 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
915# 283 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
919 if (re_size(i) > 0) re(i) = 0._wp
921# 287 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
922#if defined(MFC_OpenACC)
923# 287 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
925# 287 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
926#elif defined(MFC_OpenMP)
927# 287 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
929# 287 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
932 re(i) = alpha(re_idx(i, q))/
res_pr(i, q) + re(i)
934 re(i) = 1._wp/max(re(i), sgm_eps)
942# 298 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
943#if defined(MFC_OpenACC)
944# 298 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
946# 298 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
947#elif defined(MFC_OpenMP)
948# 298 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
950# 298 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
952 do i = eqn_idx%mom%beg, eqn_idx%mom%end
953 dyn_pres = dyn_pres + 5.e-1_wp*q_cons_vf(i)%sf(j, k, l)*q_cons_vf(i)%sf(j, k, l)/max(rho, sgm_eps)
960# 306 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
961#if defined(MFC_OpenACC)
962# 306 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
964# 306 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
965#elif defined(MFC_OpenMP)
966# 306 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
968# 306 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
971 qv_mix = qv_mix + alpha_rho(i)*qvs(i)
974 pres_relax = (q_cons_vf(eqn_idx%E)%sf(j, k, l) - dyn_pres - qv_mix - pi_inf)/gamma
977# 313 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
978#if defined(MFC_OpenACC)
979# 313 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
981# 313 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
982#elif defined(MFC_OpenMP)
983# 313 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
985# 313 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
988 q_cons_vf(i + eqn_idx%int_en%beg - 1)%sf(j, k, l) = q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, &
989 & l)*(gammas(i)*pres_relax + pi_infs(i)) + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*qvs(i)