45 if (!res_en_T)
Process::exit(
"Frottement_interfacial_PolyMAC_MPFA::ajouter_blocs NOT YET PORTED TO ENTHALPY EQUATION ! TODO FIXME !!");
50 const IntTab& f_e = domaine.face_voisins(), &fcl = ch.
fcl();
52 const DoubleTab& inco = ch.
valeurs(), &pvit = ch.
passe(), &vfd = domaine.volumes_entrelaces_dir(),
62 int e, f, c, i, j, k, l, n, N = inco.
line_size(), Np = press.line_size(), d, D =
dimension, nf_tot = domaine.nb_faces_tot(),
63 cR = (rho.dimension_tot(0) == 1), cM = (mu.dimension_tot(0) == 1);
64 DoubleTrav a_l(N), p_l(N), T_l(N), rho_l(N), mu_l(N), sigma_l(N*(N-1)/2), dv(N, N), ddv(N, N, 4), d_bulles_l(N), coeff(N, N, 2);
65 double ddv_c[4] = {0., 0., 0., 0. };
71 const int ne_tot = domaine.nb_elem_tot(), nb_max_sat = N * (N-1) /2;
72 DoubleTrav Sigma_tab(ne_tot,nb_max_sat);
75 for (k = 0; k < N; k++)
76 for (l = k + 1; l < N; l++)
81 const int ind_trav = (k*(N-1)-(k-1)*(k)/2) + (l-k-1);
85 for (
int ii = 0; ii < ne_tot; ii++) Sigma_tab(ii, ind_trav) = sig(ii);
90 const int ind_trav = (k*(N-1)-(k-1)*(k)/2) + (l-k-1);
92 for (
int ii = 0; ii < ne_tot; ii++) Sigma_tab(ii, ind_trav) = sig(ii);
97 for (f = 0; f < domaine.nb_faces(); f++)
100 for (a_l = 0, p_l = 0, T_l = 0, rho_l = 0, mu_l = 0, dh = 0, sigma_l = 0, dv =
dv_min, ddv = 0, d_bulles_l=0, c = 0; c < 2 && (e = f_e(f, c)) >= 0; c++)
101 for (n = 0; n < N; n++)
103 a_l(n) += vfd(f, c) / vf(f) * alpha(e, n);
104 p_l(n) += vfd(f, c) / vf(f) * press(e, n * (Np > 1));
105 T_l(n) += vfd(f, c) / vf(f) * temp(e, n);
106 rho_l(n) += vfd(f, c) / vf(f) * rho(!cR * e, n);
107 mu_l(n) += vfd(f, c) / vf(f) * mu(!cM * e, n);
108 for (k = n+1; k < N; k++)
110 const int ind_trav = (n*(N-1)-(n-1)*(n)/2) + (k-n-1);
111 sigma_l(ind_trav) += vfd(f, c) / vf(f) * Sigma_tab(e, ind_trav);
113 dh += vfd(f, c) / vf(f) * alpha(e, n) * dh_e(e);
114 for (k = 0; k < N; k++)
116 double dv_c = ch.
v_norm(pvit, pvit, e, f, k, n,
nullptr, &ddv_c[0]);
118 for (dv(k, n) = dv_c, i = 0; i < 4; i++) ddv(k, n, i) = ddv_c[i];
120 d_bulles_l(n) += (d_bulles) ? vfd(f, c) / vf(f) * (*d_bulles)(e,n) : 0;
123 correlation_fi.
coefficient(a_l, p_l, T_l, rho_l, mu_l, sigma_l, dh, dv, d_bulles_l, coeff);
124 for (k = 0; k < N; k++)
125 for (l = 0; l < N; l++)
126 for (j = 0; j < 2; j++)
127 coeff(k, l, j) *= 1 + (a_l(k) > 1e-8 ? std::pow(a_l(k) /
a_res_, -
exp_res) : 0) + (a_l(l) > 1e-8 ? std::pow(a_l(l) /
a_res_, -
exp_res) : 0);
130 for (k = 0; k < N; k++)
131 for (l = 0; l < N; l++)
134 double fac =
beta_ * pf(f) * vf(f);
136 secmem(f, k) -= fac * (coeff(k, l, 0) * (inco(f, k) - inco(f, l)) + coeff(k, l, 1) * ddv(k, l, 3) * (pvit(f, k) - pvit(f, l)) * ((inco(f, k) - inco(f, l)) - (pvit(f, k) - pvit(f, l))));
138 for (j = 0; j < 2; j++) (*mat)(N * f + k, N * f + (j ? l : k)) += fac * (j ? -1 : 1) * (coeff(k, l, 0) + coeff(k, l, 1) * ddv(k, l, 3) * (pvit(f, k) - pvit(f, l)));
143 for (e = 0; e < domaine.nb_elem_tot(); e++)
146 for (n = 0; n < N; n++)
148 a_l(n) = alpha(e, n);
149 p_l(n) = press(e, n * (Np > 1));
151 rho_l(n) = rho(!cR * e, n);
152 mu_l(n) = mu(!cM * e, n);
153 for (k = n+1; k < N; k++)
155 const int ind_trav = (n*(N-1)-(n-1)*(n)/2) + (k-n-1);
156 sigma_l(ind_trav) = Sigma_tab(e, ind_trav);
158 d_bulles_l(n) = (d_bulles) ? (*d_bulles)(e,n) : 0;
160 for (k = 0; k < N; k++) dv(k, n) = std::max(ch.
v_norm(pvit, pvit, e, -1, k, n,
nullptr, &ddv(k, n, 0)),
dv_min);
164 correlation_fi.
coefficient(a_l, p_l, T_l, rho_l, mu_l, sigma_l, dh_e(e), dv, d_bulles_l, coeff);
166 for (k = 0; k < N; k++)
167 for (l = 0; l < N; l++)
169 coeff(k, l, 1) *= (dv(k, l) >
dv_min);
170 for (j = 0; j < 2; j++)
171 coeff(k, l, j) *= 1 + (a_l(k) > 1e-8 ? std::pow(a_l(k) /
a_res_, -
exp_res) : 0) + (a_l(l) > 1e-8 ? std::pow(a_l(l) /
a_res_, -
exp_res) : 0);
174 for (d = 0, i = nf_tot + D * e; d < D; d++, i++)
175 for (k = 0; k < N; k++)
176 for (l = 0; l < N; l++)
179 double fac =
beta_ * pe(e) * ve(e);
181 secmem(i, k) -= fac * (coeff(k, l, 0) * (inco(i, k) - inco(i, l)) + coeff(k, l, 1) * ddv(k, l, d) * (pvit(i, k) - pvit(i, l)) * ((inco(i, k) - inco(i, l)) - (pvit(i, k) - pvit(i, l))));
183 for (j = 0; j < 2; j++) (*mat)(N * i + k, N * i + (j ? l : k)) += fac * (j ? -1 : 1) * (coeff(k, l, 0) + coeff(k, l, 1) * ddv(k, l, d) * (pvit(i, k) - pvit(i, l)));