74 const Domaine& mon_dom = le_dom->domaine();
76 const int impr_sum = (mon_dom.bords_a_imprimer_sum().est_vide() ? 0 : 1), impr_bord = (mon_dom.bords_a_imprimer().est_vide() ? 0 : 1);
78 DoubleTab& tab_flux_bords = op_base->flux_bords();
79 DoubleVect bilan(tab_flux_bords.
dimension(1));
81 if (impr_mom) xgr = le_dom->calculer_xgr();
82 int k, face, nb_front_Cl = le_dom->nb_front_Cl();
83 DoubleTrav flux_bords2(5, nb_front_Cl, tab_flux_bords.
dimension(1));
85 for (
int num_cl = 0; num_cl < nb_front_Cl; num_cl++)
87 const Cond_lim& la_cl = la_zcl->les_conditions_limites(num_cl);
90 for (face = ndeb; face < nfin; face++)
92 for (k = 0; k < tab_flux_bords.
dimension(1); k++)
94 flux_bords2(0, num_cl, k) += tab_flux_bords(face, k);
97 if (face < (ndeb + frontiere_dis.
nb_faces() / 2))
98 flux_bords2(1, num_cl, k) += tab_flux_bords(face, k);
100 flux_bords2(2, num_cl, k) += tab_flux_bords(face, k);
102 if (mon_dom.bords_a_imprimer_sum().contient(frontiere_dis.
le_nom()))
103 flux_bords2(3, num_cl, k) += tab_flux_bords(face, k);
108 flux_bords2(4, num_cl, 0) += tab_flux_bords(face, 1) * xgr(face, 0) - tab_flux_bords(face, 0) * xgr(face, 1);
111 flux_bords2(4, num_cl, 0) += tab_flux_bords(face, 2) * xgr(face, 1) - tab_flux_bords(face, 1) * xgr(face, 2);
112 flux_bords2(4, num_cl, 1) += tab_flux_bords(face, 0) * xgr(face, 2) - tab_flux_bords(face, 2) * xgr(face, 0);
113 flux_bords2(4, num_cl, 2) += tab_flux_bords(face, 1) * xgr(face, 0) - tab_flux_bords(face, 0) * xgr(face, 1);
121 op_base->ouvrir_fichier(
Flux,
"", 1);
122 op_base->ouvrir_fichier(
Flux_moment,
"moment", impr_mom);
123 op_base->ouvrir_fichier(
Flux_sum,
"sum", impr_sum);
129 for (
int num_cl = 0; num_cl < nb_front_Cl; num_cl++)
131 const Cond_lim& la_cl = la_zcl->les_conditions_limites(num_cl);
132 int periodicite = (
type_cl(la_cl) == periodique ? 1 : 0);
133 for (k = 0; k < tab_flux_bords.
dimension(1); k++)
137 Flux.add_col(flux_bords2(1, num_cl, k));
138 Flux.add_col(flux_bords2(2, num_cl, k));
141 Flux.add_col(flux_bords2(0, num_cl, k));
144 Flux_sum.add_col(flux_bords2(3, num_cl, k));
145 bilan(k) += flux_bords2(0, num_cl, k);
149 for (k = 0; k < tab_flux_bords.
dimension(1); k++)
156 for (k = 0; k < tab_flux_bords.
dimension(1); k++)
157 Flux.add_col(bilan(k));
165 &Liste_bords_a_imprimer = le_dom->domaine().bords_a_imprimer();
166 if (!Liste_bords_a_imprimer.est_vide())
169 op_base->ouvrir_fichier_partage(Flux_face,
"", impr_bord);
170 for (
int num_cl = 0; num_cl < nb_front_Cl; num_cl++)
172 const Frontiere_dis_base& la_fr = la_zcl->les_conditions_limites(num_cl)->frontiere_dis();
173 const Cond_lim& la_cl = la_zcl->les_conditions_limites(num_cl);
176 if (mon_dom.bords_a_imprimer().contient(la_fr.
le_nom()))
180 Flux_face <<
"# Flux par face sur " << la_fr.
le_nom() <<
" au temps ";
182 Flux_face <<
" : " << finl;
184 for (face = ndeb; face < nfin; face++)
187 Flux_face <<
"# Face a x= " << le_dom->xv(face, 0) <<
" y= " << le_dom->xv(face, 1) <<
" : ";
189 Flux_face <<
"# Face a x= " << le_dom->xv(face, 0) <<
" y= " << le_dom->xv(face, 1) <<
" z= " << le_dom->xv(face, 2) <<
" : ";
190 for (k = 0; k < tab_flux_bords.
dimension(1); k++)
191 Flux_face << tab_flux_bords(face, k) <<
" ";