545# 211 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
547# 211 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
549# 211 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
551# 211 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
553# 211 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
555# 211 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
557# 211 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
560 integer,
intent(in) :: patch_id
561 integer,
intent(in) ::
j,
k,
l
562 real(wp),
intent(in) :: eta
563#ifdef MFC_MIXED_PRECISION
564 integer(kind=1),
dimension(0:m,0:n,0:p),
intent(inout) :: patch_id_fp
566 integer,
dimension(0:m,0:n,0:p),
intent(inout) :: patch_id_fp
568 type(scalar_field),
dimension(1:sys_size),
intent(inout) :: q_prim_vf
573 real(wp) :: lit_gamma
577 real(wp) :: orig_gamma
578 real(wp) :: orig_pi_inf
582 real(wp) :: rcoord, theta, phi, xi_sph
583 real(wp),
dimension(3) :: xi_cart
584 real(wp) :: ys(1:num_species)
585 real(stp),
dimension(sys_size) :: orig_prim_vf
587 integer :: smooth_patch_id
589 smooth_patch_id = patch_icpp(patch_id)%smooth_patch_id
592 orig_prim_vf(i) = q_prim_vf(i)%sf(
j,
k,
l)
595 if (mpp_lim .and. bubbles_euler)
then
598 do i = adv_idx%beg, adv_idx%end - 1
602 do i = adv_idx%beg, adv_idx%end - 1
603 q_prim_vf(i)%sf = q_prim_vf(i)%sf*(1._wp - q_prim_vf(alf_idx)%sf)/
alf_sum%sf
607 call s_convert_to_mixture_variables(q_prim_vf,
j,
k,
l, orig_rho, orig_gamma, orig_pi_inf, orig_qv)
609 if (.not. igr .or. num_fluids > 1)
then
610 do i = adv_idx%beg, adv_idx%end
611 q_prim_vf(i)%sf(
j,
k,
l) = patch_icpp(patch_id)%alpha(i - e_idx)
615 if (mpp_lim .and. bubbles_euler)
then
618 do i = adv_idx%beg, adv_idx%end - 1
622 do i = adv_idx%beg, adv_idx%end - 1
623 q_prim_vf(i)%sf = q_prim_vf(i)%sf*(1._wp - q_prim_vf(alf_idx)%sf)/
alf_sum%sf
627 if (model_eqns /= 4)
then
628 do i = 1, cont_idx%end
629 q_prim_vf(i)%sf(
j,
k,
l) = patch_icpp(patch_id)%alpha_rho(i)
633 call s_convert_to_mixture_variables(q_prim_vf,
j,
k,
l, patch_icpp(patch_id)%rho, patch_icpp(patch_id)%gamma, &
634 & patch_icpp(patch_id)%pi_inf, patch_icpp(patch_id)%qv)
636 if (model_eqns /= 4)
then
637 do i = 1, cont_idx%end
638 q_prim_vf(i)%sf(
j,
k,
l) = patch_icpp(smooth_patch_id)%alpha_rho(i)
642 if (.not. igr .or. num_fluids > 1)
then
643 do i = adv_idx%beg, adv_idx%end
644 q_prim_vf(i)%sf(
j,
k,
l) = patch_icpp(smooth_patch_id)%alpha(i - e_idx)
648 if (mpp_lim .and. bubbles_euler)
then
651 do i = adv_idx%beg, adv_idx%end - 1
655 do i = adv_idx%beg, adv_idx%end - 1
656 q_prim_vf(i)%sf = q_prim_vf(i)%sf*(1._wp - q_prim_vf(alf_idx)%sf)/
alf_sum%sf
660 if (bubbles_euler)
then
662 mur = r0(i)*patch_icpp(smooth_patch_id)%r0/r0ref
663 muv = patch_icpp(smooth_patch_id)%v0
666 if (dist_type == 1)
then
667 q_prim_vf(bub_idx%fullmom(i, 0, 0))%sf(
j,
k,
l) = 1._wp
668 q_prim_vf(bub_idx%fullmom(i, 1, 0))%sf(
j,
k,
l) = mur
669 q_prim_vf(bub_idx%fullmom(i, 0, 1))%sf(
j,
k,
l) = muv
670 q_prim_vf(bub_idx%fullmom(i, 2, 0))%sf(
j,
k,
l) = mur**2 + (sigr*r0ref)**2
671 q_prim_vf(bub_idx%fullmom(i, 1, 1))%sf(
j,
k,
l) = mur*muv + rhorv*(sigr*r0ref)*(sigv*sqrt(p0ref/rho0ref))
672 q_prim_vf(bub_idx%fullmom(i, 0, 2))%sf(
j,
k,
l) = muv**2 + (sigv*sqrt(p0ref/rho0ref))**2
673 else if (dist_type == 2)
then
674 q_prim_vf(bub_idx%fullmom(i, 0, 0))%sf(
j,
k,
l) = 1._wp
675 q_prim_vf(bub_idx%fullmom(i, 1, 0))%sf(
j,
k,
l) = exp((sigr**2)/2._wp)*mur
676 q_prim_vf(bub_idx%fullmom(i, 0, 1))%sf(
j,
k,
l) = muv
677 q_prim_vf(bub_idx%fullmom(i, 2, 0))%sf(
j,
k,
l) = exp((sigr**2)*2._wp)*(mur**2)
678 q_prim_vf(bub_idx%fullmom(i, 1, 1))%sf(
j,
k,
l) = exp((sigr**2)/2._wp)*mur*muv
679 q_prim_vf(bub_idx%fullmom(i, 0, 2))%sf(
j,
k,
l) = muv**2 + (sigv*sqrt(p0ref/rho0ref))**2
682 q_prim_vf(bub_idx%rs(i))%sf(
j,
k,
l) = mur
683 q_prim_vf(bub_idx%vs(i))%sf(
j,
k,
l) = muv
684 if (.not. polytropic)
then
685 q_prim_vf(bub_idx%ps(i))%sf(
j,
k,
l) = patch_icpp(patch_id)%p0
686 q_prim_vf(bub_idx%ms(i))%sf(
j,
k,
l) = patch_icpp(patch_id)%m0
695 r3bar = r3bar + weight(i)*(q_prim_vf(bub_idx%rs(i))%sf(
j,
k,
l))**3._wp
697 q_prim_vf(n_idx)%sf(
j,
k,
l) = 3*q_prim_vf(alf_idx)%sf(
j,
k,
l)/(4*pi*r3bar)
701 call s_convert_to_mixture_variables(q_prim_vf,
j,
k,
l, patch_icpp(smooth_patch_id)%rho, &
702 & patch_icpp(smooth_patch_id)%gamma, patch_icpp(smooth_patch_id)%pi_inf, &
703 & patch_icpp(smooth_patch_id)%qv)
705 q_prim_vf(e_idx)%sf(
j,
k,
l) = (eta*patch_icpp(patch_id)%pres + (1._wp - eta)*orig_prim_vf(e_idx))
707 if (.not. igr .or. num_fluids > 1)
then
708 do i = adv_idx%beg, adv_idx%end
709 q_prim_vf(i)%sf(
j,
k,
l) = eta*patch_icpp(patch_id)%alpha(i - e_idx) + (1._wp - eta)*orig_prim_vf(i)
715 q_prim_vf(b_idx%beg)%sf(
j,
k,
l) = eta*patch_icpp(patch_id)%By + (1._wp - eta)*orig_prim_vf(b_idx%beg)
716 q_prim_vf(b_idx%beg + 1)%sf(
j,
k,
l) = eta*patch_icpp(patch_id)%Bz + (1._wp - eta)*orig_prim_vf(b_idx%beg + 1)
718 q_prim_vf(b_idx%beg)%sf(
j,
k,
l) = eta*patch_icpp(patch_id)%Bx + (1._wp - eta)*orig_prim_vf(b_idx%beg)
719 q_prim_vf(b_idx%beg + 1)%sf(
j,
k,
l) = eta*patch_icpp(patch_id)%By + (1._wp - eta)*orig_prim_vf(b_idx%beg + 1)
720 q_prim_vf(b_idx%beg + 2)%sf(
j,
k,
l) = eta*patch_icpp(patch_id)%Bz + (1._wp - eta)*orig_prim_vf(b_idx%beg + 2)
725 do i = 1, (stress_idx%end - stress_idx%beg) + 1
726 q_prim_vf(i + stress_idx%beg - 1)%sf(
j,
k, &
727 &
l) = (eta*patch_icpp(patch_id)%tau_e(i) + (1._wp - eta)*orig_prim_vf(i + stress_idx%beg - 1))
731 if (hyperelasticity)
then
733 rcoord = sqrt((x_cc(
j)**2 + y_cc(
k)**2 + z_cc(
l)**2))
734 theta = atan2(y_cc(
k), x_cc(
j))
735 phi = atan2(sqrt(x_cc(
j)**2 + y_cc(
k)**2), z_cc(
l))
737 xi_sph = (rcoord**3 - r0ref**3 + 1._wp)**(1._wp/3._wp)
738 xi_cart(1) = xi_sph*sin(phi)*cos(theta)
739 xi_cart(2) = xi_sph*sin(phi)*sin(theta)
740 xi_cart(3) = xi_sph*cos(phi)
749 q_prim_vf(i + xibeg - 1)%sf(
j,
k,
l) = eta*xi_cart(i) + (1._wp - eta)*orig_prim_vf(i + xibeg - 1)
753 if (mpp_lim .and. bubbles_euler)
then
756 do i = adv_idx%beg, adv_idx%end - 1
760 do i = adv_idx%beg, adv_idx%end - 1
761 q_prim_vf(i)%sf = q_prim_vf(i)%sf*(1._wp - q_prim_vf(alf_idx)%sf)/
alf_sum%sf
765 if (model_eqns /= 4)
then
767 do i = 1, cont_idx%end
768 q_prim_vf(i)%sf(
j,
k,
l) = eta*patch_icpp(patch_id)%alpha_rho(i) + (1._wp - eta)*orig_prim_vf(i)
774 lit_gamma = gs_min(1)
777 q_prim_vf(1)%sf(
j,
k,
l) = (((q_prim_vf(e_idx)%sf(
j,
k, &
778 &
l) + pi_inf)/(pref + pi_inf))**(1/lit_gamma))*rhoref*(1 - q_prim_vf(alf_idx)%sf(
j,
k,
l))
781 call s_convert_to_mixture_variables(q_prim_vf,
j,
k,
l, rho, gamma, pi_inf, qv)
783 do i = 1, e_idx - mom_idx%beg
784 q_prim_vf(i + cont_idx%end)%sf(
j,
k, &
785 &
l) = (eta*patch_icpp(patch_id)%vel(i) + (1._wp - eta)*orig_prim_vf(i + cont_idx%end))
790 real(wp) :: sum, term
793 do i = 1, num_species
794 term = eta*patch_icpp(patch_id)%Y(i) + (1._wp - eta)*patch_icpp(smooth_patch_id)%Y(i)
795 q_prim_vf(chemxb + i - 1)%sf(
j,
k,
l) = term
799 if (sum < verysmall)
then
803 do i = 1, num_species
804 q_prim_vf(chemxb + i - 1)%sf(
j,
k,
l) = q_prim_vf(chemxb + i - 1)%sf(
j,
k,
l)/sum
805 ys(i) = q_prim_vf(chemxb + i - 1)%sf(
j,
k,
l)
811 if (mixlayer_vel_profile)
then
812 q_prim_vf(1 + cont_idx%end)%sf(
j,
k, &
813 &
l) = (eta*patch_icpp(patch_id)%vel(1)*tanh(y_cc(
k)*mixlayer_vel_coef) + (1._wp - eta)*orig_prim_vf(1 &
818 if (model_eqns == 3)
then
819 do i = internalenergies_idx%beg, internalenergies_idx%end
820 q_prim_vf(i)%sf(
j,
k,
l) = q_prim_vf(e_idx)%sf(
j,
k,
l)
824 if (bubbles_euler)
then
826 mur = r0(i)*patch_icpp(patch_id)%r0/r0ref
827 muv = patch_icpp(patch_id)%v0
830 if (dist_type == 1)
then
831 q_prim_vf(bub_idx%fullmom(i, 0, 0))%sf(
j,
k,
l) = 1._wp
832 q_prim_vf(bub_idx%fullmom(i, 1, 0))%sf(
j,
k,
l) = mur
833 q_prim_vf(bub_idx%fullmom(i, 0, 1))%sf(
j,
k,
l) = muv
834 q_prim_vf(bub_idx%fullmom(i, 2, 0))%sf(
j,
k,
l) = mur**2 + (sigr*r0ref)**2
835 q_prim_vf(bub_idx%fullmom(i, 1, 1))%sf(
j,
k,
l) = mur*muv + rhorv*(sigr*r0ref)*(sigv*sqrt(p0ref/rho0ref))
836 q_prim_vf(bub_idx%fullmom(i, 0, 2))%sf(
j,
k,
l) = muv**2 + (sigv*sqrt(p0ref/rho0ref))**2
837 else if (dist_type == 2)
then
838 q_prim_vf(bub_idx%fullmom(i, 0, 0))%sf(
j,
k,
l) = 1._wp
839 q_prim_vf(bub_idx%fullmom(i, 1, 0))%sf(
j,
k,
l) = exp((sigr**2)/2._wp)*mur
840 q_prim_vf(bub_idx%fullmom(i, 0, 1))%sf(
j,
k,
l) = muv
841 q_prim_vf(bub_idx%fullmom(i, 2, 0))%sf(
j,
k,
l) = exp((sigr**2)*2._wp)*(mur**2)
842 q_prim_vf(bub_idx%fullmom(i, 1, 1))%sf(
j,
k,
l) = exp((sigr**2)/2._wp)*mur*muv
843 q_prim_vf(bub_idx%fullmom(i, 0, 2))%sf(
j,
k,
l) = muv**2 + (sigv*sqrt(p0ref/rho0ref))**2
846 q_prim_vf(bub_idx%rs(i))%sf(
j,
k,
l) = mur
847 q_prim_vf(bub_idx%vs(i))%sf(
j,
k,
l) = muv
849 if (.not. polytropic)
then
850 q_prim_vf(bub_idx%ps(i))%sf(
j,
k,
l) = patch_icpp(patch_id)%p0
851 q_prim_vf(bub_idx%ms(i))%sf(
j,
k,
l) = patch_icpp(patch_id)%m0
860 r3bar = r3bar + weight(i)*(q_prim_vf(bub_idx%rs(i))%sf(
j,
k,
l))**3._wp
862 q_prim_vf(n_idx)%sf(
j,
k,
l) = 3*q_prim_vf(alf_idx)%sf(
j,
k,
l)/(4*pi*r3bar)
866 if (mpp_lim .and. bubbles_euler)
then
869 do i = adv_idx%beg, adv_idx%end - 1
873 do i = adv_idx%beg, adv_idx%end - 1
874 q_prim_vf(i)%sf = q_prim_vf(i)%sf*(1._wp - q_prim_vf(alf_idx)%sf)/
alf_sum%sf
878 if (bubbles_euler .and. (.not. polytropic) .and. (.not. qbmm))
then
880 if (f_is_default(real(q_prim_vf(bub_idx%ps(i))%sf(
j,
k,
l), kind=wp)))
then
881 q_prim_vf(bub_idx%ps(i))%sf(
j,
k,
l) = pb0(i)
883 if (f_is_default(real(q_prim_vf(bub_idx%ms(i))%sf(
j,
k,
l), kind=wp)))
then
884 q_prim_vf(bub_idx%ms(i))%sf(
j,
k,
l) = mass_v0(i)
889 if (surface_tension)
then
890 q_prim_vf(c_idx)%sf(
j,
k,
l) = eta*patch_icpp(patch_id)%cf_val + (1._wp - eta)*orig_prim_vf(c_idx)
893 if (1._wp - eta < 1.e-16_wp) patch_id_fp(
j,
k,
l) = patch_id