48 int face, nb_faces = le_dom_->nb_faces();
49 int premiere_face_interne = le_dom_->premiere_face_int();
51 const IntVect& orientation = le_dom_->orientation();
52 const DoubleVect& volumes_entrelaces = le_dom_->volumes_entrelaces();
53 DoubleVect porosite_surf;
54 porosite_surf.
ref(
equation().milieu().porosite_face());
66 if (type_systeme_naire == 0)
70 for (num_cl = 0; num_cl < le_dom_->nb_front_Cl(); num_cl++)
72 const Cond_lim& la_cl = le_dom_Cl_->les_conditions_limites(num_cl);
75 int nfin = ndeb + le_bord.
nb_faces();
79 for (face = ndeb; face < nfin; face++)
80 resu(face) += g(orientation(face)) * porosite_surf(face) * volumes_entrelaces(face);
83 for (face = premiere_face_interne; face < nb_faces; face++)
84 resu(face) += g(orientation(face)) * porosite_surf(face) * volumes_entrelaces(face);
89 double rho0 = mil.
rho0();
90 const IntTab& face_voisins = le_dom_->face_voisins();
91 const DoubleVect& volumes = le_dom_->volumes();
93 for (num_cl = 0; num_cl < le_dom_->nb_front_Cl(); num_cl++)
95 const Cond_lim& la_cl = le_dom_Cl_->les_conditions_limites(num_cl);
98 int nfin = ndeb + le_bord.
nb_faces();
102 for (face = ndeb; face < nfin; face++)
104 int el0 = face_voisins(face, 0);
105 int el1 = face_voisins(face, 1);
106 double vol0 = volumes(el0);
107 double vol1 = volumes(el1);
108 double cbetaface = (vol0 * (rho(el0) / rho0 - 1.0) + vol1 * (rho(el1) / rho0 - 1.0)) / (vol0 + vol1);
109 resu(face) += cbetaface * g(orientation(face)) * porosite_surf(face) * volumes_entrelaces(face);
113 for (face = premiere_face_interne; face < nb_faces; face++)
115 int el0 = face_voisins(face, 0);
116 int el1 = face_voisins(face, 1);
117 double vol0 = volumes(el0);
118 double vol1 = volumes(el1);
119 double cbetaface = (vol0 * (rho(el0) / rho0 - 1.0) + vol1 * (rho(el1) / rho0 - 1.0)) / (vol0 + vol1);
120 resu(face) += cbetaface * g(orientation(face)) * porosite_surf(face) * volumes_entrelaces(face);
124 else if (type_systeme_naire == 1)
128 for (num_cl = 0; num_cl < le_dom_->nb_front_Cl(); num_cl++)
130 const Cond_lim& la_cl = le_dom_Cl_->les_conditions_limites(num_cl);
133 int nfin = ndeb + le_bord.
nb_faces();
137 for (face = ndeb; face < nfin; face++)
138 resu(face) += g(orientation(face)) * porosite_surf(face) * volumes_entrelaces(face);
141 for (face = premiere_face_interne; face < nb_faces; face++)
142 resu(face) += g(orientation(face)) * porosite_surf(face) * volumes_entrelaces(face);
144 else if (boussi == 1)
147 double rho0 = mil.
rho0();
148 const IntTab& face_voisins = le_dom_->face_voisins();
149 const DoubleVect& volumes = le_dom_->volumes();
151 for (num_cl = 0; num_cl < le_dom_->nb_front_Cl(); num_cl++)
153 const Cond_lim& la_cl = le_dom_Cl_->les_conditions_limites(num_cl);
156 int nfin = ndeb + le_bord.
nb_faces();
160 for (face = ndeb; face < nfin; face++)
162 int el0 = face_voisins(face, 0);
163 int el1 = face_voisins(face, 1);
164 double vol0 = volumes(el0);
165 double vol1 = volumes(el1);
166 double cbetaface = (vol0 * (rho(el0) / rho0 - 1.0) + vol1 * (rho(el1) / rho0 - 1.0)) / (vol0 + vol1);
167 resu(face) += cbetaface * g(orientation(face)) * porosite_surf(face) * volumes_entrelaces(face);
171 for (face = premiere_face_interne; face < nb_faces; face++)
173 int el0 = face_voisins(face, 0);
174 int el1 = face_voisins(face, 1);
175 double vol0 = volumes(el0);
176 double vol1 = volumes(el1);
177 double cbetaface = (vol0 * (rho(el0) / rho0 - 1.0) + vol1 * (rho(el1) / rho0 - 1.0)) / (vol0 + vol1);
178 resu(face) += cbetaface * g(orientation(face)) * porosite_surf(face) * volumes_entrelaces(face);
classe Domaine_Cl_dis_base Les objets Domaine_Cl_dis_base representent les conditions aux limites
classe Domaine_dis_base Cette classe est la base de la hierarchie des domaines discretisees.