584# 210 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
586# 210 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
588# 210 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
590# 210 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
592# 210 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
594# 210 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
596# 210 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
598# 211 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
600 integer,
intent(in) :: patch_id
601 integer,
intent(in) ::
j,
k,
l
602 real(wp),
intent(in) :: eta
603#ifdef MFC_MIXED_PRECISION
604 integer(kind=1),
dimension(0:m,0:n,0:p),
intent(inout) :: patch_id_fp
606 integer,
dimension(0:m,0:n,0:p),
intent(inout) :: patch_id_fp
608 type(scalar_field),
dimension(1:sys_size),
intent(inout) :: q_prim_vf
616 real(wp) :: orig_gamma
617 real(wp) :: orig_pi_inf
621 real(wp) :: ys(1:num_species)
622 real(stp),
dimension(sys_size) :: orig_prim_vf
624 integer :: smooth_patch_id
626 smooth_patch_id = patch_icpp(patch_id)%smooth_patch_id
629 orig_prim_vf(i) = q_prim_vf(i)%sf(
j,
k,
l)
632 if (mpp_lim .and. bubbles_euler)
then
635 do i = eqn_idx%adv%beg, eqn_idx%adv%end - 1
639 do i = eqn_idx%adv%beg, eqn_idx%adv%end - 1
640 q_prim_vf(i)%sf = q_prim_vf(i)%sf*(1._wp - q_prim_vf(eqn_idx%alf)%sf)/
alf_sum%sf
644 call s_convert_to_mixture_variables(q_prim_vf,
j,
k,
l, orig_rho, orig_gamma, orig_pi_inf, orig_qv)
646 if (.not. igr .or. num_fluids > 1)
then
647 do i = eqn_idx%adv%beg, eqn_idx%adv%end
648 q_prim_vf(i)%sf(
j,
k,
l) = patch_icpp(patch_id)%alpha(i - eqn_idx%E)
652 if (mpp_lim .and. bubbles_euler)
then
655 do i = eqn_idx%adv%beg, eqn_idx%adv%end - 1
659 do i = eqn_idx%adv%beg, eqn_idx%adv%end - 1
660 q_prim_vf(i)%sf = q_prim_vf(i)%sf*(1._wp - q_prim_vf(eqn_idx%alf)%sf)/
alf_sum%sf
664 do i = 1, eqn_idx%cont%end
665 q_prim_vf(i)%sf(
j,
k,
l) = patch_icpp(patch_id)%alpha_rho(i)
668 call s_convert_to_mixture_variables(q_prim_vf,
j,
k,
l, patch_icpp(patch_id)%rho, patch_icpp(patch_id)%gamma, &
669 & patch_icpp(patch_id)%pi_inf, patch_icpp(patch_id)%qv)
671 do i = 1, eqn_idx%cont%end
672 q_prim_vf(i)%sf(
j,
k,
l) = patch_icpp(smooth_patch_id)%alpha_rho(i)
675 if (.not. igr .or. num_fluids > 1)
then
676 do i = eqn_idx%adv%beg, eqn_idx%adv%end
677 q_prim_vf(i)%sf(
j,
k,
l) = patch_icpp(smooth_patch_id)%alpha(i - eqn_idx%E)
681 if (mpp_lim .and. bubbles_euler)
then
684 do i = eqn_idx%adv%beg, eqn_idx%adv%end - 1
688 do i = eqn_idx%adv%beg, eqn_idx%adv%end - 1
689 q_prim_vf(i)%sf = q_prim_vf(i)%sf*(1._wp - q_prim_vf(eqn_idx%alf)%sf)/
alf_sum%sf
693 if (bubbles_euler)
then
695 mur = r0(i)*patch_icpp(smooth_patch_id)%r0/r0ref
696 muv = patch_icpp(smooth_patch_id)%v0
699 if (dist_type == 1)
then
700 q_prim_vf(qbmm_idx%fullmom(i, 0, 0))%sf(
j,
k,
l) = 1._wp
701 q_prim_vf(qbmm_idx%fullmom(i, 1, 0))%sf(
j,
k,
l) = mur
702 q_prim_vf(qbmm_idx%fullmom(i, 0, 1))%sf(
j,
k,
l) = muv
703 q_prim_vf(qbmm_idx%fullmom(i, 2, 0))%sf(
j,
k,
l) = mur**2 + (sigr*r0ref)**2
704 q_prim_vf(qbmm_idx%fullmom(i, 1, 1))%sf(
j,
k,
l) = mur*muv + rhorv*(sigr*r0ref)*(sigv*sqrt(p0ref/rho0ref))
705 q_prim_vf(qbmm_idx%fullmom(i, 0, 2))%sf(
j,
k,
l) = muv**2 + (sigv*sqrt(p0ref/rho0ref))**2
706 else if (dist_type == 2)
then
707 q_prim_vf(qbmm_idx%fullmom(i, 0, 0))%sf(
j,
k,
l) = 1._wp
708 q_prim_vf(qbmm_idx%fullmom(i, 1, 0))%sf(
j,
k,
l) = exp((sigr**2)/2._wp)*mur
709 q_prim_vf(qbmm_idx%fullmom(i, 0, 1))%sf(
j,
k,
l) = muv
710 q_prim_vf(qbmm_idx%fullmom(i, 2, 0))%sf(
j,
k,
l) = exp((sigr**2)*2._wp)*(mur**2)
711 q_prim_vf(qbmm_idx%fullmom(i, 1, 1))%sf(
j,
k,
l) = exp((sigr**2)/2._wp)*mur*muv
712 q_prim_vf(qbmm_idx%fullmom(i, 0, 2))%sf(
j,
k,
l) = muv**2 + (sigv*sqrt(p0ref/rho0ref))**2
715 q_prim_vf(qbmm_idx%rs(i))%sf(
j,
k,
l) = mur
716 q_prim_vf(qbmm_idx%vs(i))%sf(
j,
k,
l) = muv
717 if (.not. polytropic)
then
718 q_prim_vf(qbmm_idx%ps(i))%sf(
j,
k,
l) = patch_icpp(patch_id)%p0
719 q_prim_vf(qbmm_idx%ms(i))%sf(
j,
k,
l) = patch_icpp(patch_id)%m0
728 r3bar = r3bar + weight(i)*(q_prim_vf(qbmm_idx%rs(i))%sf(
j,
k,
l))**3._wp
730 q_prim_vf(eqn_idx%n)%sf(
j,
k,
l) = 3*q_prim_vf(eqn_idx%alf)%sf(
j,
k,
l)/(4*pi*r3bar)
734 call s_convert_to_mixture_variables(q_prim_vf,
j,
k,
l, patch_icpp(smooth_patch_id)%rho, &
735 & patch_icpp(smooth_patch_id)%gamma, patch_icpp(smooth_patch_id)%pi_inf, &
736 & patch_icpp(smooth_patch_id)%qv)
738 q_prim_vf(eqn_idx%E)%sf(
j,
k,
l) = (eta*patch_icpp(patch_id)%pres + (1._wp - eta)*orig_prim_vf(eqn_idx%E))
740 if (.not. igr .or. num_fluids > 1)
then
741 do i = eqn_idx%adv%beg, eqn_idx%adv%end
742 q_prim_vf(i)%sf(
j,
k,
l) = eta*patch_icpp(patch_id)%alpha(i - eqn_idx%E) + (1._wp - eta)*orig_prim_vf(i)
748 q_prim_vf(eqn_idx%B%beg)%sf(
j,
k,
l) = eta*patch_icpp(patch_id)%By + (1._wp - eta)*orig_prim_vf(eqn_idx%B%beg)
749 q_prim_vf(eqn_idx%B%beg + 1)%sf(
j,
k, &
750 &
l) = eta*patch_icpp(patch_id)%Bz + (1._wp - eta)*orig_prim_vf(eqn_idx%B%beg + 1)
752 q_prim_vf(eqn_idx%B%beg)%sf(
j,
k,
l) = eta*patch_icpp(patch_id)%Bx + (1._wp - eta)*orig_prim_vf(eqn_idx%B%beg)
753 q_prim_vf(eqn_idx%B%beg + 1)%sf(
j,
k, &
754 &
l) = eta*patch_icpp(patch_id)%By + (1._wp - eta)*orig_prim_vf(eqn_idx%B%beg + 1)
755 q_prim_vf(eqn_idx%B%beg + 2)%sf(
j,
k, &
756 &
l) = eta*patch_icpp(patch_id)%Bz + (1._wp - eta)*orig_prim_vf(eqn_idx%B%beg + 2)
760 if (hypoelasticity)
then
761 do i = 1, (eqn_idx%stress%end - eqn_idx%stress%beg) + 1
762 q_prim_vf(i + eqn_idx%stress%beg - 1)%sf(
j,
k, &
763 &
l) = (eta*patch_icpp(patch_id)%tau_e(i) + (1._wp - eta)*orig_prim_vf(i + eqn_idx%stress%beg - 1))
767 if (mpp_lim .and. bubbles_euler)
then
770 do i = eqn_idx%adv%beg, eqn_idx%adv%end - 1
774 do i = eqn_idx%adv%beg, eqn_idx%adv%end - 1
775 q_prim_vf(i)%sf = q_prim_vf(i)%sf*(1._wp - q_prim_vf(eqn_idx%alf)%sf)/
alf_sum%sf
780 do i = 1, eqn_idx%cont%end
781 q_prim_vf(i)%sf(
j,
k,
l) = eta*patch_icpp(patch_id)%alpha_rho(i) + (1._wp - eta)*orig_prim_vf(i)
784 call s_convert_to_mixture_variables(q_prim_vf,
j,
k,
l, rho, gamma, pi_inf, qv)
786 do i = 1, eqn_idx%E - eqn_idx%mom%beg
787 q_prim_vf(i + eqn_idx%cont%end)%sf(
j,
k, &
788 &
l) = (eta*patch_icpp(patch_id)%vel(i) + (1._wp - eta)*orig_prim_vf(i + eqn_idx%cont%end))
793 real(wp) :: sum, term
796 do i = 1, num_species
797 term = eta*patch_icpp(patch_id)%Y(i) + (1._wp - eta)*patch_icpp(smooth_patch_id)%Y(i)
798 q_prim_vf(eqn_idx%species%beg + i - 1)%sf(
j,
k,
l) = term
802 if (sum < verysmall)
then
806 do i = 1, num_species
807 q_prim_vf(eqn_idx%species%beg + i - 1)%sf(
j,
k,
l) = q_prim_vf(eqn_idx%species%beg + i - 1)%sf(
j,
k,
l)/sum
808 ys(i) = q_prim_vf(eqn_idx%species%beg + i - 1)%sf(
j,
k,
l)
814 if (mixlayer_vel_profile)
then
815 q_prim_vf(1 + eqn_idx%cont%end)%sf(
j,
k, &
816 &
l) = (eta*patch_icpp(patch_id)%vel(1)*tanh(y_cc(
k)*mixlayer_vel_coef) + (1._wp - eta)*orig_prim_vf(1 &
817 & + eqn_idx%cont%end))
821 if (model_eqns == model_eqns_6eq)
then
822 do i = eqn_idx%int_en%beg, eqn_idx%int_en%end
823 q_prim_vf(i)%sf(
j,
k,
l) = q_prim_vf(eqn_idx%E)%sf(
j,
k,
l)
827 if (bubbles_euler)
then
829 mur = r0(i)*patch_icpp(patch_id)%r0/r0ref
830 muv = patch_icpp(patch_id)%v0
833 if (dist_type == 1)
then
834 q_prim_vf(qbmm_idx%fullmom(i, 0, 0))%sf(
j,
k,
l) = 1._wp
835 q_prim_vf(qbmm_idx%fullmom(i, 1, 0))%sf(
j,
k,
l) = mur
836 q_prim_vf(qbmm_idx%fullmom(i, 0, 1))%sf(
j,
k,
l) = muv
837 q_prim_vf(qbmm_idx%fullmom(i, 2, 0))%sf(
j,
k,
l) = mur**2 + (sigr*r0ref)**2
838 q_prim_vf(qbmm_idx%fullmom(i, 1, 1))%sf(
j,
k,
l) = mur*muv + rhorv*(sigr*r0ref)*(sigv*sqrt(p0ref/rho0ref))
839 q_prim_vf(qbmm_idx%fullmom(i, 0, 2))%sf(
j,
k,
l) = muv**2 + (sigv*sqrt(p0ref/rho0ref))**2
840 else if (dist_type == 2)
then
841 q_prim_vf(qbmm_idx%fullmom(i, 0, 0))%sf(
j,
k,
l) = 1._wp
842 q_prim_vf(qbmm_idx%fullmom(i, 1, 0))%sf(
j,
k,
l) = exp((sigr**2)/2._wp)*mur
843 q_prim_vf(qbmm_idx%fullmom(i, 0, 1))%sf(
j,
k,
l) = muv
844 q_prim_vf(qbmm_idx%fullmom(i, 2, 0))%sf(
j,
k,
l) = exp((sigr**2)*2._wp)*(mur**2)
845 q_prim_vf(qbmm_idx%fullmom(i, 1, 1))%sf(
j,
k,
l) = exp((sigr**2)/2._wp)*mur*muv
846 q_prim_vf(qbmm_idx%fullmom(i, 0, 2))%sf(
j,
k,
l) = muv**2 + (sigv*sqrt(p0ref/rho0ref))**2
849 q_prim_vf(qbmm_idx%rs(i))%sf(
j,
k,
l) = mur
850 q_prim_vf(qbmm_idx%vs(i))%sf(
j,
k,
l) = muv
852 if (.not. polytropic)
then
853 q_prim_vf(qbmm_idx%ps(i))%sf(
j,
k,
l) = patch_icpp(patch_id)%p0
854 q_prim_vf(qbmm_idx%ms(i))%sf(
j,
k,
l) = patch_icpp(patch_id)%m0
863 r3bar = r3bar + weight(i)*(q_prim_vf(qbmm_idx%rs(i))%sf(
j,
k,
l))**3._wp
865 q_prim_vf(eqn_idx%n)%sf(
j,
k,
l) = 3*q_prim_vf(eqn_idx%alf)%sf(
j,
k,
l)/(4*pi*r3bar)
869 if (mpp_lim .and. bubbles_euler)
then
872 do i = eqn_idx%adv%beg, eqn_idx%adv%end - 1
876 do i = eqn_idx%adv%beg, eqn_idx%adv%end - 1
877 q_prim_vf(i)%sf = q_prim_vf(i)%sf*(1._wp - q_prim_vf(eqn_idx%alf)%sf)/
alf_sum%sf
881 if (bubbles_euler .and. (.not. polytropic) .and. (.not. qbmm))
then
883 if (f_is_default(real(q_prim_vf(qbmm_idx%ps(i))%sf(
j,
k,
l), kind=wp)))
then
884 q_prim_vf(qbmm_idx%ps(i))%sf(
j,
k,
l) = pb0(i)
886 if (f_is_default(real(q_prim_vf(qbmm_idx%ms(i))%sf(
j,
k,
l), kind=wp)))
then
887 q_prim_vf(qbmm_idx%ms(i))%sf(
j,
k,
l) = mass_v0(i)
892 if (surface_tension)
then
893 q_prim_vf(eqn_idx%c)%sf(
j,
k,
l) = eta*patch_icpp(patch_id)%cf_val + (1._wp - eta)*orig_prim_vf(eqn_idx%c)
896 if (1._wp - eta < 1.e-16_wp) patch_id_fp(
j,
k,
l) = patch_id