597 eta, q_prim_vf, patch_id_fp)
599# 288 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
601# 288 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
603# 288 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
605# 288 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
607# 288 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
609# 288 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
611# 288 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
614 integer,
intent(in) :: patch_id
615 integer,
intent(in) ::
j,
k,
l
616 real(wp),
intent(in) :: eta
617#ifdef MFC_MIXED_PRECISION
618 integer(kind=1),
dimension(0:m, 0:n, 0:p),
intent(inout) :: patch_id_fp
620 integer,
dimension(0:m, 0:n, 0:p),
intent(inout) :: patch_id_fp
622 type(scalar_field),
dimension(1:sys_size),
intent(inout) :: q_prim_vf
629 real(wp) :: lit_gamma
633 real(wp) :: orig_gamma
634 real(wp) :: orig_pi_inf
638 real(wp) :: rcoord, theta, phi, xi_sph
639 real(wp),
dimension(3) :: xi_cart
641 real(wp) :: ys(1:num_species)
643 real(stp),
dimension(sys_size) :: orig_prim_vf
647 integer :: smooth_patch_id
650 smooth_patch_id = patch_icpp(patch_id)%smooth_patch_id
654 orig_prim_vf(i) = q_prim_vf(i)%sf(
j,
k,
l)
657 if (mpp_lim .and. bubbles_euler)
then
660 do i = adv_idx%beg, adv_idx%end - 1
664 do i = adv_idx%beg, adv_idx%end - 1
665 q_prim_vf(i)%sf = q_prim_vf(i)%sf*(1._wp - q_prim_vf(alf_idx)%sf) &
672 call s_convert_to_mixture_variables( &
673 q_prim_vf,
j,
k,
l, &
676 orig_pi_inf, orig_qv)
680 if (.not. igr .or. num_fluids > 1)
then
682 do i = adv_idx%beg, adv_idx%end
683 q_prim_vf(i)%sf(
j,
k,
l) = patch_icpp(patch_id)%alpha(i - e_idx)
687 if (mpp_lim .and. bubbles_euler)
then
690 do i = adv_idx%beg, adv_idx%end - 1
694 do i = adv_idx%beg, adv_idx%end - 1
695 q_prim_vf(i)%sf = q_prim_vf(i)%sf*(1._wp - q_prim_vf(alf_idx)%sf) &
701 if (model_eqns /= 4)
then
702 do i = 1, cont_idx%end
703 q_prim_vf(i)%sf(
j,
k,
l) = patch_icpp(patch_id)%alpha_rho(i)
709 call s_convert_to_mixture_variables( &
710 q_prim_vf,
j,
k,
l, &
711 patch_icpp(patch_id)%rho, &
712 patch_icpp(patch_id)%gamma, &
713 patch_icpp(patch_id)%pi_inf, &
714 patch_icpp(patch_id)%qv)
718 if (model_eqns /= 4)
then
720 do i = 1, cont_idx%end
721 q_prim_vf(i)%sf(
j,
k,
l) = patch_icpp(smooth_patch_id)%alpha_rho(i)
725 if (.not. igr .or. num_fluids > 1)
then
727 do i = adv_idx%beg, adv_idx%end
728 q_prim_vf(i)%sf(
j,
k,
l) = patch_icpp(smooth_patch_id)%alpha(i - e_idx)
732 if (mpp_lim .and. bubbles_euler)
then
735 do i = adv_idx%beg, adv_idx%end - 1
739 do i = adv_idx%beg, adv_idx%end - 1
740 q_prim_vf(i)%sf = q_prim_vf(i)%sf*(1._wp - q_prim_vf(alf_idx)%sf) &
746 if (bubbles_euler)
then
748 mur = r0(i)*patch_icpp(smooth_patch_id)%r0/r0ref
749 muv = patch_icpp(smooth_patch_id)%v0
752 if (dist_type == 1)
then
753 q_prim_vf(bub_idx%fullmom(i, 0, 0))%sf(
j,
k,
l) = 1._wp
754 q_prim_vf(bub_idx%fullmom(i, 1, 0))%sf(
j,
k,
l) = mur
755 q_prim_vf(bub_idx%fullmom(i, 0, 1))%sf(
j,
k,
l) = muv
756 q_prim_vf(bub_idx%fullmom(i, 2, 0))%sf(
j,
k,
l) = mur**2 + (sigr*r0ref)**2
757 q_prim_vf(bub_idx%fullmom(i, 1, 1))%sf(
j,
k,
l) = mur*muv + rhorv*(sigr*r0ref)*(sigv*sqrt(p0ref/rho0ref))
758 q_prim_vf(bub_idx%fullmom(i, 0, 2))%sf(
j,
k,
l) = muv**2 + (sigv*sqrt(p0ref/rho0ref))**2
759 else if (dist_type == 2)
then
760 q_prim_vf(bub_idx%fullmom(i, 0, 0))%sf(
j,
k,
l) = 1._wp
761 q_prim_vf(bub_idx%fullmom(i, 1, 0))%sf(
j,
k,
l) = exp((sigr**2)/2._wp)*mur
762 q_prim_vf(bub_idx%fullmom(i, 0, 1))%sf(
j,
k,
l) = muv
763 q_prim_vf(bub_idx%fullmom(i, 2, 0))%sf(
j,
k,
l) = exp((sigr**2)*2._wp)*(mur**2)
764 q_prim_vf(bub_idx%fullmom(i, 1, 1))%sf(
j,
k,
l) = exp((sigr**2)/2._wp)*mur*muv
765 q_prim_vf(bub_idx%fullmom(i, 0, 2))%sf(
j,
k,
l) = muv**2 + (sigv*sqrt(p0ref/rho0ref))**2
768 q_prim_vf(bub_idx%rs(i))%sf(
j,
k,
l) = mur
769 q_prim_vf(bub_idx%vs(i))%sf(
j,
k,
l) = muv
770 if (.not. polytropic)
then
771 q_prim_vf(bub_idx%ps(i))%sf(
j,
k,
l) = patch_icpp(patch_id)%p0
772 q_prim_vf(bub_idx%ms(i))%sf(
j,
k,
l) = patch_icpp(patch_id)%m0
781 r3bar = r3bar + weight(i)*(q_prim_vf(bub_idx%rs(i))%sf(
j,
k,
l))**3._wp
783 q_prim_vf(n_idx)%sf(
j,
k,
l) = 3*q_prim_vf(alf_idx)%sf(
j,
k,
l)/(4*pi*r3bar)
789 call s_convert_to_mixture_variables( &
790 q_prim_vf,
j,
k,
l, &
791 patch_icpp(smooth_patch_id)%rho, &
792 patch_icpp(smooth_patch_id)%gamma, &
793 patch_icpp(smooth_patch_id)%pi_inf, &
794 patch_icpp(smooth_patch_id)%qv)
797 q_prim_vf(e_idx)%sf(
j,
k,
l) = &
798 (eta*patch_icpp(patch_id)%pres &
799 + (1._wp - eta)*orig_prim_vf(e_idx))
801 if (.not. igr .or. num_fluids > 1)
then
803 do i = adv_idx%beg, adv_idx%end
804 q_prim_vf(i)%sf(
j,
k,
l) = &
805 eta*patch_icpp(patch_id)%alpha(i - e_idx) &
806 + (1._wp - eta)*orig_prim_vf(i)
812 q_prim_vf(b_idx%beg)%sf(
j,
k,
l) = &
813 eta*patch_icpp(patch_id)%By &
814 + (1._wp - eta)*orig_prim_vf(b_idx%beg)
815 q_prim_vf(b_idx%beg + 1)%sf(
j,
k,
l) = &
816 eta*patch_icpp(patch_id)%Bz &
817 + (1._wp - eta)*orig_prim_vf(b_idx%beg + 1)
819 q_prim_vf(b_idx%beg)%sf(
j,
k,
l) = &
820 eta*patch_icpp(patch_id)%Bx &
821 + (1._wp - eta)*orig_prim_vf(b_idx%beg)
822 q_prim_vf(b_idx%beg + 1)%sf(
j,
k,
l) = &
823 eta*patch_icpp(patch_id)%By &
824 + (1._wp - eta)*orig_prim_vf(b_idx%beg + 1)
825 q_prim_vf(b_idx%beg + 2)%sf(
j,
k,
l) = &
826 eta*patch_icpp(patch_id)%Bz &
827 + (1._wp - eta)*orig_prim_vf(b_idx%beg + 2)
833 do i = 1, (stress_idx%end - stress_idx%beg) + 1
834 q_prim_vf(i + stress_idx%beg - 1)%sf(
j,
k,
l) = &
835 (eta*patch_icpp(patch_id)%tau_e(i) &
836 + (1._wp - eta)*orig_prim_vf(i + stress_idx%beg - 1))
841 if (hyperelasticity)
then
844 rcoord = sqrt((x_cc(
j)**2 + y_cc(
k)**2 + z_cc(
l)**2))
845 theta = atan2(y_cc(
k), x_cc(
j))
846 phi = atan2(sqrt(x_cc(
j)**2 + y_cc(
k)**2), z_cc(
l))
848 xi_sph = (rcoord**3 - r0ref**3 + 1._wp)**(1._wp/3._wp)
849 xi_cart(1) = xi_sph*sin(phi)*cos(theta)
850 xi_cart(2) = xi_sph*sin(phi)*sin(theta)
851 xi_cart(3) = xi_sph*cos(phi)
860 q_prim_vf(i + xibeg - 1)%sf(
j,
k,
l) = eta*xi_cart(i) + &
861 (1._wp - eta)*orig_prim_vf(i + xibeg - 1)
865 if (mpp_lim .and. bubbles_euler)
then
868 do i = adv_idx%beg, adv_idx%end - 1
872 do i = adv_idx%beg, adv_idx%end - 1
873 q_prim_vf(i)%sf = q_prim_vf(i)%sf*(1._wp - q_prim_vf(alf_idx)%sf) &
879 if (model_eqns /= 4)
then
881 do i = 1, cont_idx%end
882 q_prim_vf(i)%sf(
j,
k,
l) = &
883 eta*patch_icpp(patch_id)%alpha_rho(i) &
884 + (1._wp - eta)*orig_prim_vf(i)
890 lit_gamma = gs_min(1)
893 q_prim_vf(1)%sf(
j,
k,
l) = &
894 (((q_prim_vf(e_idx)%sf(
j,
k,
l) + pi_inf)/(pref + pi_inf))**(1/lit_gamma))* &
895 rhoref*(1 - q_prim_vf(alf_idx)%sf(
j,
k,
l))
900 call s_convert_to_mixture_variables(q_prim_vf,
j,
k,
l, &
901 rho, gamma, pi_inf, qv)
904 do i = 1, e_idx - mom_idx%beg
905 q_prim_vf(i + cont_idx%end)%sf(
j,
k,
l) = &
906 (eta*patch_icpp(patch_id)%vel(i) &
907 + (1._wp - eta)*orig_prim_vf(i + cont_idx%end))
913 real(wp) :: sum, term
917 do i = 1, num_species
919 eta*patch_icpp(patch_id)%Y(i) &
920 + (1._wp - eta)*patch_icpp(smooth_patch_id)%Y(i)
921 q_prim_vf(chemxb + i - 1)%sf(
j,
k,
l) = term
925 if (sum < verysmall)
then
930 do i = 1, num_species
931 q_prim_vf(chemxb + i - 1)%sf(
j,
k,
l) = &
932 q_prim_vf(chemxb + i - 1)%sf(
j,
k,
l)/sum
933 ys(i) = q_prim_vf(chemxb + i - 1)%sf(
j,
k,
l)
939 if (mixlayer_vel_profile)
then
940 q_prim_vf(1 + cont_idx%end)%sf(
j,
k,
l) = &
941 (eta*patch_icpp(patch_id)%vel(1)*tanh(y_cc(
k)*mixlayer_vel_coef) &
942 + (1._wp - eta)*orig_prim_vf(1 + cont_idx%end))
946 if (model_eqns == 3)
then
947 do i = internalenergies_idx%beg, internalenergies_idx%end
948 q_prim_vf(i)%sf(
j,
k,
l) = q_prim_vf(e_idx)%sf(
j,
k,
l)
953 if (bubbles_euler)
then
955 mur = r0(i)*patch_icpp(patch_id)%r0/r0ref
956 muv = patch_icpp(patch_id)%v0
959 if (dist_type == 1)
then
960 q_prim_vf(bub_idx%fullmom(i, 0, 0))%sf(
j,
k,
l) = 1._wp
961 q_prim_vf(bub_idx%fullmom(i, 1, 0))%sf(
j,
k,
l) = mur
962 q_prim_vf(bub_idx%fullmom(i, 0, 1))%sf(
j,
k,
l) = muv
963 q_prim_vf(bub_idx%fullmom(i, 2, 0))%sf(
j,
k,
l) = mur**2 + (sigr*r0ref)**2
964 q_prim_vf(bub_idx%fullmom(i, 1, 1))%sf(
j,
k,
l) = mur*muv + rhorv*(sigr*r0ref)*(sigv*sqrt(p0ref/rho0ref))
965 q_prim_vf(bub_idx%fullmom(i, 0, 2))%sf(
j,
k,
l) = muv**2 + (sigv*sqrt(p0ref/rho0ref))**2
966 else if (dist_type == 2)
then
967 q_prim_vf(bub_idx%fullmom(i, 0, 0))%sf(
j,
k,
l) = 1._wp
968 q_prim_vf(bub_idx%fullmom(i, 1, 0))%sf(
j,
k,
l) = exp((sigr**2)/2._wp)*mur
969 q_prim_vf(bub_idx%fullmom(i, 0, 1))%sf(
j,
k,
l) = muv
970 q_prim_vf(bub_idx%fullmom(i, 2, 0))%sf(
j,
k,
l) = exp((sigr**2)*2._wp)*(mur**2)
971 q_prim_vf(bub_idx%fullmom(i, 1, 1))%sf(
j,
k,
l) = exp((sigr**2)/2._wp)*mur*muv
972 q_prim_vf(bub_idx%fullmom(i, 0, 2))%sf(
j,
k,
l) = muv**2 + (sigv*sqrt(p0ref/rho0ref))**2
975 q_prim_vf(bub_idx%rs(i))%sf(
j,
k,
l) = mur
976 q_prim_vf(bub_idx%vs(i))%sf(
j,
k,
l) = muv
978 if (.not. polytropic)
then
979 q_prim_vf(bub_idx%ps(i))%sf(
j,
k,
l) = patch_icpp(patch_id)%p0
980 q_prim_vf(bub_idx%ms(i))%sf(
j,
k,
l) = patch_icpp(patch_id)%m0
990 r3bar = r3bar + weight(i)*(q_prim_vf(bub_idx%rs(i))%sf(
j,
k,
l))**3._wp
992 q_prim_vf(n_idx)%sf(
j,
k,
l) = 3*q_prim_vf(alf_idx)%sf(
j,
k,
l)/(4*pi*r3bar)
996 if (mpp_lim .and. bubbles_euler)
then
999 do i = adv_idx%beg, adv_idx%end - 1
1003 do i = adv_idx%beg, adv_idx%end - 1
1004 q_prim_vf(i)%sf = q_prim_vf(i)%sf*(1._wp - q_prim_vf(alf_idx)%sf) &
1009 if (bubbles_euler .and. (.not. polytropic) .and. (.not. qbmm))
then
1011 if (f_is_default(real(q_prim_vf(bub_idx%ps(i))%sf(
j,
k,
l), kind=wp)))
then
1012 q_prim_vf(bub_idx%ps(i))%sf(
j,
k,
l) = pb0(i)
1015 if (f_is_default(real(q_prim_vf(bub_idx%ms(i))%sf(
j,
k,
l), kind=wp)))
then
1016 q_prim_vf(bub_idx%ms(i))%sf(
j,
k,
l) = mass_v0(i)
1021 if (surface_tension)
then
1022 q_prim_vf(c_idx)%sf(
j,
k,
l) = eta*patch_icpp(patch_id)%cf_val + &
1023 (1._wp - eta)*orig_prim_vf(c_idx)
1027 if (1._wp - eta < 1.e-16_wp) patch_id_fp(
j,
k,
l) = patch_id