62 le_dom_VF=ref_cast(
Domaine_VF,le_dom_dis.valeur());
64 int nb_faces_tot=le_dom_VF->nb_faces_tot();
67 IntTab faces_internes;
68 faces_internes.
resize(nb_faces_tot);
69 int nb_faces_internes=0;
72 faces_bord_0.
resize(nb_faces_tot);
73 int nb_faces_bord_0=0;
76 faces_bord_1.
resize(nb_faces_tot);
77 int nb_faces_bord_1=0;
80 faces_bord.
resize(nb_faces_tot);
84 elem_app.
resize(le_dom_VF->nb_elem_tot());
88 for (
int i=0; i<le_sous_domaine->nb_elem_tot(); i++)
89 elem_app[le_sous_domaine.valeur()(i)]=1;
92 for (
int i=0; i<nb_faces_tot; i++)
96 elem0=le_dom_VF->face_voisins(i,0);
97 elem1=le_dom_VF->face_voisins(i,1);
103 faces_bord(nb_faces_bord++)=i;
110 faces_bord(nb_faces_bord++)=i;
115 if (elem_app[elem0] && elem_app[elem1])
117 faces_internes(nb_faces_internes++)=i;
119 else if (elem_app[elem0])
121 faces_bord_0(nb_faces_bord_0++)=i;
123 else if (elem_app[elem1])
125 faces_bord_1(nb_faces_bord_1++)=i;
135 for (
int i=0; i<nb_faces_internes; i++)
137 for (
int i=0; i<nb_faces_bord_0; i++)
139 for (
int i=0; i<nb_faces_bord_1; i++)
141 for (
int i=0; i<nb_faces_bord; i++)
145 const DoubleVect& volumes=le_dom_VF->volumes();
147 for (
int i=0; i<nb_faces_bord_0; i++)
151 for (
int i=0; i<nb_faces_bord_1; i++)
157 double volume_sous_domaine=0;
158 for (
int j=0; j<le_sous_domaine->nb_elem_tot(); j++)
161 if (le_sous_domaine.valeur()(j)<le_dom_VF->domaine().nb_elem())
162 volume_sous_domaine+=volumes(le_sous_domaine.valeur()(j));
164 volume_sous_domaine=
mp_sum(volume_sous_domaine);
166 Cerr <<
"Volume of sub-domain " << le_sous_domaine->le_nom() <<
": " << volume_sous_domaine << finl;
Cette classe abstraite contient les informations geometrique de sous-domaine communes aux methodes de...
DoubleTab volumes_entrelaces_
int premiere_face_bord_1_
void discretiser() override
Genere les_faces en parcourant les faces du domaine_dis et en cherchant quels voisins appartiennent a...
int premiere_face_bord_0_
Cette classe est a la base de la hierarchie des sous-domaines discretises. Au moment de la discretisa...