42 &fs = domaine.face_surfaces();
43 const IntTab& f_e = domaine.face_voisins(), &fcl = ch.
fcl();
48 DoubleTrav a_f(N), rho_m(2);
49 for (a_f = 1, f = 0; f < domaine.nb_faces(); f++)
54 for (i = 0; i < 2; i++)
55 for (e = f_e(f, i), n = 0; n < N; n++)
56 for (d = 0; d < D; d++)
57 secmem(f, n) += vfd(f, i) * pf(f) * (alp ? (*alp)(e, n) * (*rho)(!cR * e, n) : 1) * nf(f, d) / fs(f) * vals(!cS * e, N * d + n);
63 for (a_f = 0, i = 0; i < 2; i++)
64 for (e = f_e(f, i), n = 0; n < N; n++)
65 a_f(n) += vfd(f, i) / vf(f) * (*alp)(e, n);
66 for (rho_m = 0, i = 0; i < 2; i++)
67 for (e = f_e(f, i), n = 0; n < N; n++)
68 rho_m(i) += (alp ? (*alp)(e, n) : 1) * (*rho)(!cR * e, n);
69 for (i = 0; i < 2; i++)
70 for (e = f_e(f, i), n = 0; n < N; n++)
73 for (d = 0; d < D; d++)
74 vnf += nf(f, d) / fs(f) * vals(!cS * e, N * d + n);
75 int strat = (i ? 1 : -1) * (rho_m(i) - (*rho)(!cR * e, n)) * vnf > 0;
76 double R = alp && strat ? ((*alp)(e, n) < 1e-4 ? 1 : 0) : 0;
77 secmem(f, n) += vfd(f, i) * pf(f) * a_f(n) * (R * rho_m(i) + (1 - R) * (*rho)(!cR * e, n)) * vnf;
81 else if (calc_cl || fcl(f, 0) < 2)
82 for (e = f_e(f, 0), n = 0; n < N; n++)
83 for (d = 0; d < D; d++)
84 secmem(f, n) += pf(f) * vf(f) * (alp ? (*alp)(e, n) * (*rho)(!cR * e, n) : 1) * nf(f, d) / fs(f) * vals(!cS * e, N * d + n);
88 for (e = 0; e < domaine.nb_elem_tot(); e++)
89 for (d = 0; d < D; d++)
90 for (n = 0; n < N; n++)
91 secmem(nf_tot + D * e + d, n) += pe(e) * ve(e) * (alp ? (*rho)(!cR * e, n) * (*alp)(e, n) : 1) * vals(!cS * e, N * d + n);