42 if (!res_en_T)
Process::exit(
"Dispersion_bulles_VDF::ajouter_blocs NOT YET PORTED TO ENTHALPY EQUATION ! TODO FIXME !!");
46 const IntTab& f_e = domaine.face_voisins(), &fcl = ch.
fcl();
48 const DoubleTab& vf_dir = domaine.volumes_entrelaces_dir();
49 const DoubleTab& pvit = ch.
passe(),
60 int N = pvit.
line_size() , Np = press.line_size(), nf_tot = domaine.nb_faces_tot(), nf = domaine.nb_faces(), ne_tot = domaine.nb_elem_tot(), cR = (rho.dimension_tot(0) == 1), cM = (mu.dimension_tot(0) == 1), Nk = (k_turb) ? (*k_turb).dimension(1) : 1;
61 DoubleTrav nut(domaine.nb_elem_tot(), N);
68 in.
alpha.
resize(N), in.
T.
resize(N), in.
p.
resize(N), in.
rho.
resize(N), in.
mu.
resize(N), in.
sigma.
resize(N*(N-1)/2), in.
k_turb.
resize(N), in.
nut.
resize(N), in.
d_bulles.
resize(N), in.
nv.
resize(N, N);
73 DoubleTrav grad_f_a(nf_tot, N);
74 assert ( alpha.dimension_tot(0) == ne_tot );
77 Op_Grad_alp.
calculer(alpha,grad_f_a);
81 domaine.domaine().creer_tableau_elements(pvit_elem);
85 const int nb_max_sat = N * (N-1) /2;
86 DoubleTrav Sigma_tab(ne_tot,nb_max_sat);
89 for (
int k = 0; k < N; k++)
90 for (
int l = k + 1; l < N; l++)
95 const int ind_trav = (k*(N-1)-(k-1)*(k)/2) + (l-k-1);
99 for (
int ii = 0; ii < ne_tot; ii++) Sigma_tab(ii, ind_trav) = sig(ii);
104 const int ind_trav = (k*(N-1)-(k-1)*(k)/2) + (l-k-1);
105 for (
int i = 0 ; i<ne_tot ; i++)
106 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)));
111 for (
int f = 0; f < nf; f++)
116 for (
int c = 0; c < 2 && (e = f_e(f, c)) >= 0; c++)
118 for (
int n = 0; n < N; n++)
120 in.
alpha[n] += vf_dir(f, c)/vf(f) * alpha(e, n);
121 in.
p[n] += vf_dir(f, c)/vf(f) * press(e, n * (Np > 1));
122 in.
T[n] += vf_dir(f, c)/vf(f) * temp(e, n);
123 in.
rho[n] += vf_dir(f, c)/vf(f) * rho(!cR * e, n);
124 in.
mu[n] += vf_dir(f, c)/vf(f) * mu(!cM * e, n);
125 in.
nut[n] +=
is_turb ? vf_dir(f, c)/vf(f) * nut(e,n) : 0;
126 in.
d_bulles[n] += (d_bulles) ? vf_dir(f, c)/vf(f) * (*d_bulles)(e,n) : 0;
127 for (
int k = n+1; k < N; k++)
130 const int ind_trav = (n*(N-1)-(n-1)*(n)/2) + (k-n-1);
131 in.
sigma[ind_trav] += vf_dir(f, c) / vf(f) * Sigma_tab(e, ind_trav);
133 for (
int k = 0; k < N; k++)
134 in.
nv(k, n) += vf_dir(f, c)/vf(f) * ch.
v_norm(pvit_elem, pvit, e, f, k, n,
nullptr,
nullptr);
136 for (
int n = 0; n <Nk; n++) in.
k_turb[n] += (k_turb) ? vf_dir(f, c)/vf(f) * (*k_turb)(e,0) : 0;
141 for (
int k = 0; k < N; k++)
142 for (
int l = 0; l < N; l++)
145 double fac =
beta_*pf(f) * vf(f);
146 secmem(f, k) += fac * ( - out.
Ctd(k, l) * grad_f_a(f, k) + out.
Ctd(l, k) * grad_f_a(f, l));