31 if (!res_en_T)
Process::exit(
"Frottement_interfacial_VDF::ajouter_blocs NOT YET PORTED TO ENTHALPY EQUATION ! TODO FIXME !!");
36 const IntTab& f_e = domaine.face_voisins(), &fcl = ch.
fcl();
39 const DoubleTab& inco = ch.
valeurs(), &pvit = ch.
passe(), &vfd = domaine.volumes_entrelaces_dir(),
50 int e, f, c, i, j, k, l, n, N = inco.
line_size(), Np = press.line_size(), cR = (rho.dimension_tot(0) == 1), cM = (mu.dimension_tot(0) == 1);
51 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);
52 double ddv_c[4] = {0., 0., 0., 0. };
57 domaine.domaine().creer_tableau_elements(pvit_elem);
61 const int ne_tot = domaine.nb_elem_tot(), nb_max_sat = N * (N-1) /2;
62 DoubleTrav Sigma_tab(ne_tot,nb_max_sat);
65 for (k = 0; k < N; k++)
66 for (l = k + 1; l < N; l++)
71 const int ind_trav = (k*(N-1)-(k-1)*(k)/2) + (l-k-1);
75 for (
int ii = 0; ii < ne_tot; ii++) Sigma_tab(ii, ind_trav) = sig(ii);
80 const int ind_trav = (k*(N-1)-(k-1)*(k)/2) + (l-k-1);
81 for (i = 0 ; i<ne_tot ; i++)
82 Sigma_tab(i,ind_trav) = res_en_T ? sat.
sigma(temp(i,k),press(i,k * (Np > 1))) : sat.
sigma_h(temp(i,k),press(i,k * (Np > 1)));
87 for (f = 0; f < domaine.nb_faces(); f++)
90 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;
91 for (c = 0; c < 2 ; c++)
92 if( (e = f_e(f, c)) >= 0 )
93 for (n = 0; n < N; n++)
95 a_l(n) += vfd(f, c) / vf(f) * alpha(e, n);
96 p_l(n) += vfd(f, c) / vf(f) * press(e, n * (Np > 1));
97 T_l(n) += vfd(f, c) / vf(f) * temp(e, n);
98 rho_l(n) += vfd(f, c) / vf(f) * rho(!cR * e, n);
99 mu_l(n) += vfd(f, c) / vf(f) * mu(!cM * e, n);
100 for (k = n+1; k < N; k++)
103 const int ind_trav = (n*(N-1)-(n-1)*(n)/2) + (k-n-1);
104 sigma_l(ind_trav) += vfd(f, c) / vf(f) * Sigma_tab(e, ind_trav);
106 dh += vfd(f, c) / vf(f) * alpha(e, n) * dh_e(e);
108 for (k = 0; k < N; k++)
110 double dv_c = ch.
v_norm(pvit_elem, pvit, e, f, k, n,
nullptr, &ddv_c[0]);
112 for (dv(k, n) = dv_c, i = 0; i < 4; i++)
113 ddv(k, n, i) = ddv_c[i];
115 d_bulles_l(n) += (d_bulles) ? vfd(f, c) / vf(f) * (*d_bulles)(e, n) : 0;
118 correlation_fi.
coefficient(a_l, p_l, T_l, rho_l, mu_l, sigma_l, dh, dv, d_bulles_l, coeff);
119 for (k = 0; k < N; k++)
120 for (l = 0; l < N; l++)
121 for (j = 0; j < 2; j++)
122 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);
125 for (k = 0; k < N; k++)
126 for (l = 0; l < N; l++)
129 double fac = pf(f) * vf(f);
131 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))));
133 for (j = 0; j < 2; j++)
134 (*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)));