31 if (!res_en_T)
Process::exit(
"Portance_interfaciale_VDF::ajouter_blocs NOT YET PORTED TO ENTHALPY EQUATION ! TODO FIXME !!");
35 const IntTab& f_e = domaine.face_voisins(), &e_f = domaine.elem_faces(), &fcl = ch.
fcl();
36 const DoubleTab& n_f = domaine.face_normales(), &vf_dir = domaine.volumes_entrelaces_dir(), &xv = domaine.xv();
38 const DoubleTab& pvit = ch.
passe(),
50 int e, f, c, d, i, k, l, n, N = ch.
valeurs().
line_size(), Np = press.line_size(), D =
dimension, Nk = (k_turb) ? (*k_turb).dimension(1) : 1 ,
51 cR = (rho.dimension_tot(0) == 1), cM = (mu.dimension_tot(0) == 1);
52 DoubleTrav vr_l(N,D), scal_ur(N), scal_u(N), pvit_l(N, D), vort_l( D==2 ? 1 :D);
53 double fac_f, vl_norm;
58 domaine.domaine().creer_tableau_elements(pvit_elem);
68 const int nbelem_tot = domaine.nb_elem_tot(), nb_max_sat = N * (N-1) /2;
69 DoubleTrav Sigma_tab(nbelem_tot,nb_max_sat);
72 for (k = 0; k < N; k++)
73 for (l = k + 1; l < N; l++)
78 const int ind_trav = (k*(N-1)-(k-1)*(k)/2) + (l-k-1);
82 for (
int ii = 0; ii < nbelem_tot; ii++) Sigma_tab(ii, ind_trav) = sig(ii);
87 const int ind_trav = (k*(N-1)-(k-1)*(k)/2) + (l-k-1);
88 for (i = 0 ; i<nbelem_tot ; i++)
89 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)));
94 for (f = 0 ; f<domaine.nb_faces() ; f++)
98 for ( c = 0; c < 2 ; c++)
99 if ((e = f_e(f, c)) >= 0 )
101 for (n = 0; n < N; n++)
103 in.
alpha[n] += vf_dir(f, c)/vf(f) * alpha(e, n);
104 in.
p[n] += vf_dir(f, c)/vf(f) * press(e, n * (Np > 1));
105 in.
T[n] += vf_dir(f, c)/vf(f) * temp(e, n);
106 in.
rho[n] += vf_dir(f, c)/vf(f) * rho(!cR * e, n);
107 in.
mu[n] += vf_dir(f, c)/vf(f) * mu(!cM * e, n);
108 in.
d_bulles[n] += (d_bulles) ? vf_dir(f, c)/vf(f) *(*d_bulles)(e,n) : 0 ;
109 for (k = n+1; k < N; k++)
112 const int ind_trav = (n*(N-1)-(n-1)*(n)/2) + (k-n-1);
113 in.
sigma[ind_trav] += vf_dir(f, c) / vf(f) * Sigma_tab(e, ind_trav);
115 for (k = 0; k < N; k++)
116 in.
nv(k, n) += vf_dir(f, c)/vf(f) * ch.
v_norm(pvit_elem, pvit, e, f, k, n,
nullptr,
nullptr);
118 for (n = 0; n <Nk; n++) in.
k_turb[n] += (k_turb) ? vf_dir(f, c)/vf(f) * (*k_turb)(e,0) : 0;
126 if ( (f_e(f, 0)<0) || (f_e(f,1)<0) ) vort_l(0) = f_e(f, 0)>=0 ? vort(f_e(f, 0),
n_l) : vort(f_e(f, 1),
n_l) ;
130 int orif = domaine.orientation(f);
131 DoubleTrav grad_loc(D);
132 for ( c = 0; c < 2 ; c++)
135 for ( d = 0 ; d < e_f.line_size() ; d++)
138 int orifb = domaine.orientation(fb);
139 if (orifb != orif) grad_loc(orifb) += .25*pvit(fb,
n_l)/(xv(fb, orif)-xv(f, orif));
142 DoubleTrav grad_ll(D,D);
143 for ( c = 0; c < 2 ; c++)
144 for (
int d_U=0; d_U<D; d_U++)
145 for (
int d_X=0; d_X<D; d_X++)
146 grad_ll(d_U,d_X) += grad_v( e, N * ( D*d_U+d_X ) +
n_l) * vf_dir(f, c)/vf(f);
147 for (
int oril = 0 ; oril<D ; oril++)
149 grad_ll(oril,orif) = grad_loc(oril);
150 if (D==2) vort_l(0) = grad_ll(1,0) - grad_ll(0,1);
153 vort_l(0) = grad_ll(2, 1) - grad_ll(1, 2);
154 vort_l(1) = grad_ll(0, 2) - grad_ll(2, 0);
155 vort_l(2) = grad_ll(1, 0) - grad_ll(0, 1);
162 for (d = 0 ; d<D ; d++)
163 for (k = 0 ; k<N ; k++)
164 for ( c = 0; c < 2 ; c++)
165 if ((e = f_e(f, c)) >= 0 )
166 pvit_l(k, d) += vf_dir(f, c)/vf(f)*pvit_elem(e, N*d+k) ;
168 for (k = 0 ; k<N ; k++)
169 for (d = 0 ; d<D ; d++)
170 scal_u(k) += pvit_l(k, d)*n_f(f, d)/fs(f);
171 for (k = 0 ; k<N ; k++)
172 for (d = 0 ; d<D ; d++)
173 pvit_l(k, d) += (pvit(f, k) - scal_u(k)) * n_f(f, d)/fs(f) ;
176 for (d = 0 ; d < D ; d++) vl_norm += pvit_l(
n_l, d)*pvit_l(
n_l, d);
177 vl_norm = std::sqrt(vl_norm);
180 for (k = 0; k < N; k++)
181 for (d = 0 ; d < D ; d++) scal_ur(k) += pvit_l(
n_l, d)/vl_norm * (pvit_l(k, d) -pvit_l(
n_l, d));
182 for (k = 0; k < N; k++)
183 for (d = 0 ; d < D ; d++) vr_l(k, d) = pvit_l(
n_l, d)/vl_norm * scal_ur(k) ;
185 else for (k=0 ; k<N ; k++)
186 for (d=0 ; d<D ; d++) vr_l(k, d) = pvit_l(k, d)-pvit_l(
n_l, d) ;
191 fac_f =
beta_*pf(f) * vf(f);
192 for (k = 0; k < N; k++)
195 secmem(f,
n_l) += fac_f * n_f(f, 0)/fs(f) * out.
Cl(
n_l, k) * vr_l(k, 1) * vort_l(0) ;
196 secmem(f, k ) -= fac_f * n_f(f, 0)/fs(f) * out.
Cl(
n_l, k) * vr_l(k, 1) * vort_l(0) ;
197 secmem(f,
n_l) -= fac_f * n_f(f, 1)/fs(f) * out.
Cl(
n_l, k) * vr_l(k, 0) * vort_l(0) ;
198 secmem(f, k ) += fac_f * n_f(f, 1)/fs(f) * out.
Cl(
n_l, k) * vr_l(k, 0) * vort_l(0) ;
205 fac_f =
beta_*pf(f) * vf(f);
206 for (k = 0; k < N; k++)
209 secmem(f,
n_l) += fac_f * n_f(f, 0)/fs(f) * out.
Cl(
n_l, k) * (vr_l(k, 1) * vort_l(2) - vr_l(k, 2) * vort_l(1)) ;
210 secmem(f, k ) -= fac_f * n_f(f, 0)/fs(f) * out.
Cl(
n_l, k) * (vr_l(k, 1) * vort_l(2) - vr_l(k, 2) * vort_l(1)) ;
211 secmem(f,
n_l) += fac_f * n_f(f, 1)/fs(f) * out.
Cl(
n_l, k) * (vr_l(k, 2) * vort_l(0) - vr_l(k, 0) * vort_l(2)) ;
212 secmem(f, k ) -= fac_f * n_f(f, 1)/fs(f) * out.
Cl(
n_l, k) * (vr_l(k, 2) * vort_l(0) - vr_l(k, 0) * vort_l(2)) ;
213 secmem(f,
n_l) += fac_f * n_f(f, 2)/fs(f) * out.
Cl(
n_l, k) * (vr_l(k, 0) * vort_l(1) - vr_l(k, 1) * vort_l(0)) ;
214 secmem(f, k ) -= fac_f * n_f(f, 2)/fs(f) * out.
Cl(
n_l, k) * (vr_l(k, 0) * vort_l(1) - vr_l(k, 1) * vort_l(0)) ;