36 Pb_Multiphase *pbm = sub_type(Pb_Multiphase,
equation().probleme()) ? &ref_cast(Pb_Multiphase,
equation().probleme()) : nullptr;
64 const DoubleTab& pvit = ch.
passe(),
69 const IntTab& f_e = domaine.face_voisins(),
72 &vf = domaine.volumes_entrelaces(),
73 &fs = domaine.face_surfaces();
74 const DoubleTab& vf_dir = domaine.volumes_entrelaces_dir(),
75 &n_f = domaine.face_normales(),
76 &y_faces = domaine.y_faces(),
77 &n_y_faces = domaine.normale_paroi_faces();
80 nf = domaine.nb_faces();
82 DoubleTrav dv(N, N), pvit_l(N,D), scal_u(N) ;
85 double fac, a_l, rho_l, db_l, secmem_l;
88 domaine.domaine().creer_tableau_elements(pvit_elem);
91 for (f = 0; f < nf; f++)
96 for (d = 0 ; d<D ; d++)
97 for (k = 0 ; k<N ; k++)
98 for (c=0 ; c<2 && (e = f_e(f, c)) >= 0; c++)
99 pvit_l(k, d) += vf_dir(f, c)/vf(f)*pvit_elem(e, N*d+k) ;
101 for (k = 0 ; k<N ; k++)
102 for (d = 0 ; d<D ; d++)
103 scal_u(k) += pvit_l(k, d)*n_f(f, d)/fs(f);
104 for (k = 0 ; k<N ; k++)
105 for (d = 0 ; d<D ; d++)
106 pvit_l(k, d) += (pvit(f, k) - scal_u(k)) * n_f(f, d)/fs(f) ;
110 for (k = 0 ; k<N ; k++)
111 for (d = 0 ; d<D ; d++)
112 scal_u(k) += pvit_l(k, d)*n_y_faces(f, d);
113 for (k = 0 ; k<N ; k++)
114 for (d = 0 ; d<D ; d++)
115 pvit_l(k, d) -= scal_u(k)*n_y_faces(f, d) ;
119 for ( k = 0; k < N; k++)
122 for (d = 0 ; d<D ; d++) dv(k,
n_l) += (pvit_l(k, d)-pvit_l(
n_l, d)) * (pvit_l(k, d)-pvit_l(
n_l, d));
123 dv(k,
n_l) = std::sqrt(dv(k,
n_l));
126 for (k = 0; k < N; k++)
130 for (d = 0 ; d<D ; d++) fac += n_y_faces(f, d) * n_f(f, d)/fs(f);
132 fac *= pf(f) * vf(f) ;
133 a_l = ( alpha(f_e(f, 0), k)*vf_dir(f,0) + ((e = f_e(f, 1))>0 ? alpha(e, k)*vf_dir(f,1) : 0) ) / vf(f);
134 rho_l=( rho(f_e(f, 0),
n_l)*vf_dir(f,0) + ((e = f_e(f, 1))>0 ? rho(e,
n_l)*vf_dir(f,1) : 0) ) / vf(f);
135 db_l= ( d_bulles(f_e(f, 0), k)*vf_dir(f,0) + ((e = f_e(f, 1))>0 ? d_bulles(e, k)*vf_dir(f,1):0) ) / vf(f);
137 secmem_l = fac * 2. * a_l * rho_l * dv(k,
n_l) * dv(k,
n_l) / db_l * std::max(0.,
Cw1_ +
Cw2_*db_l/(2.*y_faces(f))) ;
139 secmem(f, k) += secmem_l;
140 secmem(f,
n_l) -= secmem_l;