596 eta, q_prim_vf, patch_id_fp)
598# 289 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
600# 289 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
602# 289 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
604# 289 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
606# 289 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
608# 289 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
610# 289 "/home/runner/work/MFC/MFC/src/pre_process/m_assign_variables.fpp"
613 integer,
intent(in) :: patch_id
614 integer,
intent(in) ::
j,
k,
l
615 real(wp),
intent(in) :: eta
616#ifdef MFC_MIXED_PRECISION
617 integer(kind=1),
dimension(0:m, 0:n, 0:p),
intent(inout) :: patch_id_fp
619 integer,
dimension(0:m, 0:n, 0:p),
intent(inout) :: patch_id_fp
621 type(scalar_field),
dimension(1:sys_size),
intent(inout) :: q_prim_vf
628 real(wp) :: lit_gamma
632 real(wp) :: orig_gamma
633 real(wp) :: orig_pi_inf
637 real(wp) :: rcoord, theta, phi, xi_sph
638 real(wp),
dimension(3) :: xi_cart
640 real(wp) :: ys(1:num_species)
642 real(stp),
dimension(sys_size) :: orig_prim_vf
646 integer :: smooth_patch_id
649 smooth_patch_id = patch_icpp(patch_id)%smooth_patch_id
653 orig_prim_vf(i) = q_prim_vf(i)%sf(
j,
k,
l)
656 if (mpp_lim .and. bubbles_euler)
then
659 do i = adv_idx%beg, adv_idx%end - 1
663 do i = adv_idx%beg, adv_idx%end - 1
664 q_prim_vf(i)%sf = q_prim_vf(i)%sf*(1._wp - q_prim_vf(alf_idx)%sf) &
671 call s_convert_to_mixture_variables( &
672 q_prim_vf,
j,
k,
l, &
675 orig_pi_inf, orig_qv)
679 if (.not. igr .or. num_fluids > 1)
then
681 do i = adv_idx%beg, adv_idx%end
682 q_prim_vf(i)%sf(
j,
k,
l) = patch_icpp(patch_id)%alpha(i - e_idx)
686 if (mpp_lim .and. bubbles_euler)
then
689 do i = adv_idx%beg, adv_idx%end - 1
693 do i = adv_idx%beg, adv_idx%end - 1
694 q_prim_vf(i)%sf = q_prim_vf(i)%sf*(1._wp - q_prim_vf(alf_idx)%sf) &
700 if (model_eqns /= 4)
then
701 do i = 1, cont_idx%end
702 q_prim_vf(i)%sf(
j,
k,
l) = patch_icpp(patch_id)%alpha_rho(i)
708 call s_convert_to_mixture_variables( &
709 q_prim_vf,
j,
k,
l, &
710 patch_icpp(patch_id)%rho, &
711 patch_icpp(patch_id)%gamma, &
712 patch_icpp(patch_id)%pi_inf, &
713 patch_icpp(patch_id)%qv)
717 if (model_eqns /= 4)
then
719 do i = 1, cont_idx%end
720 q_prim_vf(i)%sf(
j,
k,
l) = patch_icpp(smooth_patch_id)%alpha_rho(i)
724 if (.not. igr .or. num_fluids > 1)
then
726 do i = adv_idx%beg, adv_idx%end
727 q_prim_vf(i)%sf(
j,
k,
l) = patch_icpp(smooth_patch_id)%alpha(i - e_idx)
731 if (mpp_lim .and. bubbles_euler)
then
734 do i = adv_idx%beg, adv_idx%end - 1
738 do i = adv_idx%beg, adv_idx%end - 1
739 q_prim_vf(i)%sf = q_prim_vf(i)%sf*(1._wp - q_prim_vf(alf_idx)%sf) &
745 if (bubbles_euler)
then
747 mur = r0(i)*patch_icpp(smooth_patch_id)%r0/r0ref
748 muv = patch_icpp(smooth_patch_id)%v0
751 if (dist_type == 1)
then
752 q_prim_vf(bub_idx%fullmom(i, 0, 0))%sf(
j,
k,
l) = 1._wp
753 q_prim_vf(bub_idx%fullmom(i, 1, 0))%sf(
j,
k,
l) = mur
754 q_prim_vf(bub_idx%fullmom(i, 0, 1))%sf(
j,
k,
l) = muv
755 q_prim_vf(bub_idx%fullmom(i, 2, 0))%sf(
j,
k,
l) = mur**2 + (sigr*r0ref)**2
756 q_prim_vf(bub_idx%fullmom(i, 1, 1))%sf(
j,
k,
l) = mur*muv + rhorv*(sigr*r0ref)*(sigv*sqrt(p0ref/rho0ref))
757 q_prim_vf(bub_idx%fullmom(i, 0, 2))%sf(
j,
k,
l) = muv**2 + (sigv*sqrt(p0ref/rho0ref))**2
758 else if (dist_type == 2)
then
759 q_prim_vf(bub_idx%fullmom(i, 0, 0))%sf(
j,
k,
l) = 1._wp
760 q_prim_vf(bub_idx%fullmom(i, 1, 0))%sf(
j,
k,
l) = exp((sigr**2)/2._wp)*mur
761 q_prim_vf(bub_idx%fullmom(i, 0, 1))%sf(
j,
k,
l) = muv
762 q_prim_vf(bub_idx%fullmom(i, 2, 0))%sf(
j,
k,
l) = exp((sigr**2)*2._wp)*(mur**2)
763 q_prim_vf(bub_idx%fullmom(i, 1, 1))%sf(
j,
k,
l) = exp((sigr**2)/2._wp)*mur*muv
764 q_prim_vf(bub_idx%fullmom(i, 0, 2))%sf(
j,
k,
l) = muv**2 + (sigv*sqrt(p0ref/rho0ref))**2
767 q_prim_vf(bub_idx%rs(i))%sf(
j,
k,
l) = mur
768 q_prim_vf(bub_idx%vs(i))%sf(
j,
k,
l) = muv
769 if (.not. polytropic)
then
770 q_prim_vf(bub_idx%ps(i))%sf(
j,
k,
l) = patch_icpp(patch_id)%p0
771 q_prim_vf(bub_idx%ms(i))%sf(
j,
k,
l) = patch_icpp(patch_id)%m0
780 r3bar = r3bar + weight(i)*(q_prim_vf(bub_idx%rs(i))%sf(
j,
k,
l))**3._wp
782 q_prim_vf(n_idx)%sf(
j,
k,
l) = 3*q_prim_vf(alf_idx)%sf(
j,
k,
l)/(4*pi*r3bar)
788 call s_convert_to_mixture_variables( &
789 q_prim_vf,
j,
k,
l, &
790 patch_icpp(smooth_patch_id)%rho, &
791 patch_icpp(smooth_patch_id)%gamma, &
792 patch_icpp(smooth_patch_id)%pi_inf, &
793 patch_icpp(smooth_patch_id)%qv)
796 q_prim_vf(e_idx)%sf(
j,
k,
l) = &
797 (eta*patch_icpp(patch_id)%pres &
798 + (1._wp - eta)*orig_prim_vf(e_idx))
800 if (.not. igr .or. num_fluids > 1)
then
802 do i = adv_idx%beg, adv_idx%end
803 q_prim_vf(i)%sf(
j,
k,
l) = &
804 eta*patch_icpp(patch_id)%alpha(i - e_idx) &
805 + (1._wp - eta)*orig_prim_vf(i)
811 q_prim_vf(b_idx%beg)%sf(
j,
k,
l) = &
812 eta*patch_icpp(patch_id)%By &
813 + (1._wp - eta)*orig_prim_vf(b_idx%beg)
814 q_prim_vf(b_idx%beg + 1)%sf(
j,
k,
l) = &
815 eta*patch_icpp(patch_id)%Bz &
816 + (1._wp - eta)*orig_prim_vf(b_idx%beg + 1)
818 q_prim_vf(b_idx%beg)%sf(
j,
k,
l) = &
819 eta*patch_icpp(patch_id)%Bx &
820 + (1._wp - eta)*orig_prim_vf(b_idx%beg)
821 q_prim_vf(b_idx%beg + 1)%sf(
j,
k,
l) = &
822 eta*patch_icpp(patch_id)%By &
823 + (1._wp - eta)*orig_prim_vf(b_idx%beg + 1)
824 q_prim_vf(b_idx%beg + 2)%sf(
j,
k,
l) = &
825 eta*patch_icpp(patch_id)%Bz &
826 + (1._wp - eta)*orig_prim_vf(b_idx%beg + 2)
832 do i = 1, (stress_idx%end - stress_idx%beg) + 1
833 q_prim_vf(i + stress_idx%beg - 1)%sf(
j,
k,
l) = &
834 (eta*patch_icpp(patch_id)%tau_e(i) &
835 + (1._wp - eta)*orig_prim_vf(i + stress_idx%beg - 1))
840 if (hyperelasticity)
then
843 rcoord = sqrt((x_cc(
j)**2 + y_cc(
k)**2 + z_cc(
l)**2))
844 theta = atan2(y_cc(
k), x_cc(
j))
845 phi = atan2(sqrt(x_cc(
j)**2 + y_cc(
k)**2), z_cc(
l))
847 xi_sph = (rcoord**3 - r0ref**3 + 1._wp)**(1._wp/3._wp)
848 xi_cart(1) = xi_sph*sin(phi)*cos(theta)
849 xi_cart(2) = xi_sph*sin(phi)*sin(theta)
850 xi_cart(3) = xi_sph*cos(phi)
859 q_prim_vf(i + xibeg - 1)%sf(
j,
k,
l) = eta*xi_cart(i) + &
860 (1._wp - eta)*orig_prim_vf(i + xibeg - 1)
864 if (mpp_lim .and. bubbles_euler)
then
867 do i = adv_idx%beg, adv_idx%end - 1
871 do i = adv_idx%beg, adv_idx%end - 1
872 q_prim_vf(i)%sf = q_prim_vf(i)%sf*(1._wp - q_prim_vf(alf_idx)%sf) &
878 if (model_eqns /= 4)
then
880 do i = 1, cont_idx%end
881 q_prim_vf(i)%sf(
j,
k,
l) = &
882 eta*patch_icpp(patch_id)%alpha_rho(i) &
883 + (1._wp - eta)*orig_prim_vf(i)
889 lit_gamma = gs_min(1)
892 q_prim_vf(1)%sf(
j,
k,
l) = &
893 (((q_prim_vf(e_idx)%sf(
j,
k,
l) + pi_inf)/(pref + pi_inf))**(1/lit_gamma))* &
894 rhoref*(1 - q_prim_vf(alf_idx)%sf(
j,
k,
l))
899 call s_convert_to_mixture_variables(q_prim_vf,
j,
k,
l, &
900 rho, gamma, pi_inf, qv)
903 do i = 1, e_idx - mom_idx%beg
904 q_prim_vf(i + cont_idx%end)%sf(
j,
k,
l) = &
905 (eta*patch_icpp(patch_id)%vel(i) &
906 + (1._wp - eta)*orig_prim_vf(i + cont_idx%end))
912 real(wp) :: sum, term
916 do i = 1, num_species
918 eta*patch_icpp(patch_id)%Y(i) &
919 + (1._wp - eta)*patch_icpp(smooth_patch_id)%Y(i)
920 q_prim_vf(chemxb + i - 1)%sf(
j,
k,
l) = term
924 if (sum < verysmall)
then
929 do i = 1, num_species
930 q_prim_vf(chemxb + i - 1)%sf(
j,
k,
l) = &
931 q_prim_vf(chemxb + i - 1)%sf(
j,
k,
l)/sum
932 ys(i) = q_prim_vf(chemxb + i - 1)%sf(
j,
k,
l)
938 if (mixlayer_vel_profile)
then
939 q_prim_vf(1 + cont_idx%end)%sf(
j,
k,
l) = &
940 (eta*patch_icpp(patch_id)%vel(1)*tanh(y_cc(
k)*mixlayer_vel_coef) &
941 + (1._wp - eta)*orig_prim_vf(1 + cont_idx%end))
945 if (model_eqns == 3)
then
946 do i = internalenergies_idx%beg, internalenergies_idx%end
947 q_prim_vf(i)%sf(
j,
k,
l) = q_prim_vf(e_idx)%sf(
j,
k,
l)
952 if (bubbles_euler)
then
954 mur = r0(i)*patch_icpp(patch_id)%r0/r0ref
955 muv = patch_icpp(patch_id)%v0
958 if (dist_type == 1)
then
959 q_prim_vf(bub_idx%fullmom(i, 0, 0))%sf(
j,
k,
l) = 1._wp
960 q_prim_vf(bub_idx%fullmom(i, 1, 0))%sf(
j,
k,
l) = mur
961 q_prim_vf(bub_idx%fullmom(i, 0, 1))%sf(
j,
k,
l) = muv
962 q_prim_vf(bub_idx%fullmom(i, 2, 0))%sf(
j,
k,
l) = mur**2 + (sigr*r0ref)**2
963 q_prim_vf(bub_idx%fullmom(i, 1, 1))%sf(
j,
k,
l) = mur*muv + rhorv*(sigr*r0ref)*(sigv*sqrt(p0ref/rho0ref))
964 q_prim_vf(bub_idx%fullmom(i, 0, 2))%sf(
j,
k,
l) = muv**2 + (sigv*sqrt(p0ref/rho0ref))**2
965 else if (dist_type == 2)
then
966 q_prim_vf(bub_idx%fullmom(i, 0, 0))%sf(
j,
k,
l) = 1._wp
967 q_prim_vf(bub_idx%fullmom(i, 1, 0))%sf(
j,
k,
l) = exp((sigr**2)/2._wp)*mur
968 q_prim_vf(bub_idx%fullmom(i, 0, 1))%sf(
j,
k,
l) = muv
969 q_prim_vf(bub_idx%fullmom(i, 2, 0))%sf(
j,
k,
l) = exp((sigr**2)*2._wp)*(mur**2)
970 q_prim_vf(bub_idx%fullmom(i, 1, 1))%sf(
j,
k,
l) = exp((sigr**2)/2._wp)*mur*muv
971 q_prim_vf(bub_idx%fullmom(i, 0, 2))%sf(
j,
k,
l) = muv**2 + (sigv*sqrt(p0ref/rho0ref))**2
974 q_prim_vf(bub_idx%rs(i))%sf(
j,
k,
l) = mur
975 q_prim_vf(bub_idx%vs(i))%sf(
j,
k,
l) = muv
977 if (.not. polytropic)
then
978 q_prim_vf(bub_idx%ps(i))%sf(
j,
k,
l) = patch_icpp(patch_id)%p0
979 q_prim_vf(bub_idx%ms(i))%sf(
j,
k,
l) = patch_icpp(patch_id)%m0
989 r3bar = r3bar + weight(i)*(q_prim_vf(bub_idx%rs(i))%sf(
j,
k,
l))**3._wp
991 q_prim_vf(n_idx)%sf(
j,
k,
l) = 3*q_prim_vf(alf_idx)%sf(
j,
k,
l)/(4*pi*r3bar)
995 if (mpp_lim .and. bubbles_euler)
then
998 do i = adv_idx%beg, adv_idx%end - 1
1002 do i = adv_idx%beg, adv_idx%end - 1
1003 q_prim_vf(i)%sf = q_prim_vf(i)%sf*(1._wp - q_prim_vf(alf_idx)%sf) &
1008 if (bubbles_euler .and. (.not. polytropic) .and. (.not. qbmm))
then
1010 if (f_is_default(real(q_prim_vf(bub_idx%ps(i))%sf(
j,
k,
l), kind=wp)))
then
1011 q_prim_vf(bub_idx%ps(i))%sf(
j,
k,
l) = pb0(i)
1014 if (f_is_default(real(q_prim_vf(bub_idx%ms(i))%sf(
j,
k,
l), kind=wp)))
then
1015 q_prim_vf(bub_idx%ms(i))%sf(
j,
k,
l) = mass_v0(i)
1020 if (surface_tension)
then
1021 q_prim_vf(c_idx)%sf(
j,
k,
l) = eta*patch_icpp(patch_id)%cf_val + &
1022 (1._wp - eta)*orig_prim_vf(c_idx)
1026 if (1._wp - eta < 1.e-16_wp) patch_id_fp(
j,
k,
l) = patch_id