65 const DoubleTab& pvit = ch.
passe(),
70 const IntTab& f_e = domaine.face_voisins(),
74 &ve = domaine.volumes(),
75 &vf = domaine.volumes_entrelaces(),
76 &fs = domaine.face_surfaces();
77 const DoubleTab& vf_dir = domaine.volumes_entrelaces_dir(),
78 &n_f = domaine.face_normales(),
79 &y_elem = domaine.y_elem(),
80 &y_faces = domaine.y_faces(),
81 &n_y_elem = domaine.normale_paroi_elem(),
82 &n_y_faces = domaine.normale_paroi_faces();
85 nf_tot = domaine.nb_faces_tot(),
86 nf = domaine.nb_faces(),
87 ne_tot = domaine.nb_elem_tot();
89 DoubleTrav dv(N, N), pvit_l(N,D), scal_u(N) ;
92 double fac, a_l, rho_l, db_l, secmem_l;
94 for (f = 0; f < nf; f++)
99 for (d = 0 ; d<D ; d++)
100 for (k = 0 ; k<N ; k++)
101 for (c=0 ; c<2 && (e = f_e(f, c)) >= 0; c++)
102 pvit_l(k, d) += vf_dir(f, c)/vf(f)*pvit(nf_tot+D*e+d, k) ;
104 for (k = 0 ; k<N ; k++)
105 for (d = 0 ; d<D ; d++)
106 scal_u(k) += pvit_l(k, d)*n_f(f, d)/fs(f);
107 for (k = 0 ; k<N ; k++)
108 for (d = 0 ; d<D ; d++)
109 pvit_l(k, d) += (pvit(f, k) - scal_u(k)) * n_f(f, d)/fs(f) ;
113 for (k = 0 ; k<N ; k++)
114 for (d = 0 ; d<D ; d++)
115 scal_u(k) += pvit_l(k, d)*n_y_faces(f, d);
116 for (k = 0 ; k<N ; k++)
117 for (d = 0 ; d<D ; d++)
118 pvit_l(k, d) -= scal_u(k)*n_y_faces(f, d) ;
122 for ( k = 0; k < N; k++)
125 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));
126 dv(k,
n_l) = std::sqrt(dv(k,
n_l));
129 for (k = 0; k < N; k++)
133 for (d = 0 ; d<D ; d++) fac += n_y_faces(f, d) * n_f(f, d)/fs(f);
135 fac *= pf(f) * vf(f) ;
136 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);
137 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);
138 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);
140 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))) ;
142 secmem(f, k) += secmem_l;
143 secmem(f,
n_l) -= secmem_l;
148 for ( e = 0; e < ne_tot; e++)
152 for (d = 0 ; d<D ; d++)
153 for (k = 0 ; k<N ; k++)
154 pvit_l(k, d) += pvit(nf_tot+D*e+d, k) ;
158 for (k = 0 ; k<N ; k++)
159 for (d = 0 ; d<D ; d++)
160 scal_u(k) += pvit_l(k, d)*n_y_elem(e, d);
161 for (k = 0 ; k<N ; k++)
162 for (d = 0 ; d<D ; d++)
163 pvit_l(k, d) -= scal_u(k)*n_y_elem(e, d) ;
167 for ( k = 0; k < N; k++)
170 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));
171 dv(k,
n_l) = std::sqrt(dv(k,
n_l));
174 for (k = 0; k < N; k++)
177 fac = pe(e) * ve(e) ;
178 secmem_l = fac * 2. * alpha(e,k) * rho(e,
n_l) * dv(k,
n_l) * dv(k,
n_l) / d_bulles(e,k) * std::max(0.,
Cw1_ +
Cw2_*d_bulles(e,k)/(2.*y_elem(e))) ;
180 for ( d = 0, i = nf_tot + D * e; d < D; d++, i++)
182 secmem(i , k) += secmem_l * n_y_elem(e, d);
183 secmem(i ,
n_l) -= secmem_l * n_y_elem(e, d);