67 for (
int n_bord = 0; n_bord < le_dom_VDF.
nb_front_Cl(); n_bord++)
78 else if (sub_type(
Navier, la_cl))
85 for (
int i = ndeb; i < nfin; i++)
87 les_faces_Cl[i] = numero_cl;
88 num_Cl_face_[i] = n_bord;
98 int face1, face2, rang1, rang2;
102 int decal_virt = le_dom_VDF.
nb_faces();
106 for (
int num_arete = ndeb; num_arete < nfin; num_arete++)
108 num_arete_ = num_arete - ndeb;
109 face1 = le_dom_VDF.
Qdm(num_arete, 0);
110 face2 = le_dom_VDF.
Qdm(num_arete, 1);
114 if (rang1 >= sz_faces_Cl)
115 rang1 = ind_faces_virt_bord[rang1 - decal_virt];
117 if (rang2 >= sz_faces_Cl)
118 rang2 = ind_faces_virt_bord[rang2 - decal_virt];
120 if (les_faces_Cl[rang1] == 0)
122 if (les_faces_Cl[rang2] == 0)
124 else if (les_faces_Cl[rang2] == 1)
126 else if (les_faces_Cl[rang2] == 2)
130 Cerr <<
"On traite une arete qui separe deux faces de meme orientation : " << finl;
131 Cerr <<
"l'une de ces faces porte une condition limite de type paroi " << finl;
132 Cerr <<
"et l'autre porte une condition de type Periodicite" << finl;
133 Cerr <<
"TRUST ne sait pas traiter cette situation" << finl;
137 Process::Journal() <<
"les_faces_Cl[rang1]:" << les_faces_Cl[rang1] <<
" , les_faces_Cl[rang2]:" << les_faces_Cl[rang2] << finl;
141 else if (les_faces_Cl[rang1] == 1)
143 if (les_faces_Cl[rang2] == 0)
145 else if (les_faces_Cl[rang2] == 1)
147 else if (les_faces_Cl[rang2] == 2)
151 Cerr <<
"On traite une arete qui separe deux faces de meme orientation : " << finl;
152 Cerr <<
"l'une de ces faces porte une condition limite de type frontiere fluide " << finl;
153 Cerr <<
"et l'autre porte une condition de type Periodicite" << finl;
154 Cerr <<
"TRUST ne sait pas traiter cette situation" << finl;
158 else if (les_faces_Cl[rang1] == 2)
160 if (les_faces_Cl[rang2] == 0)
162 else if (les_faces_Cl[rang2] == 1)
164 else if (les_faces_Cl[rang2] == 2)
168 Cerr <<
"On traite une arete qui separe deux faces de meme orientation : " << finl;
169 Cerr <<
"l'une de ces faces porte une condition limite de type Symetrie " << finl;
170 Cerr <<
"et l'autre porte une condition de type Periodicite" << finl;
171 Cerr <<
"TRUST ne sait pas traiter cette situation" << finl;
175 else if (les_faces_Cl[rang1] == 3)
177 if (les_faces_Cl[rang2] == 3)
181 Cerr <<
"On traite une arete qui separe deux faces de meme orientation : " << finl;
182 Cerr <<
"l'une de ces faces porte une condition limite de type Periodicite " << finl;
183 Cerr <<
"et l'autre porte une condition d'un autre type" << finl;
184 Cerr <<
"TRUST ne sait pas traiter cette situation" << finl;
197 int fac1, fac2, fac3, fac4;
199 for (
int num_arete = ndeb; num_arete < nfin; num_arete++)
201 num_arete_ = num_arete - ndeb;
204 fac1 = le_dom_VDF.
Qdm(num_arete_, 0);
205 fac2 = le_dom_VDF.
Qdm(num_arete_, 1);
206 fac3 = le_dom_VDF.
Qdm(num_arete_, 2);
207 fac4 = le_dom_VDF.
Qdm(num_arete_, 3);
235 if (rang1 >= sz_faces_Cl)
238 if (rang2 >= sz_faces_Cl)
241 if (les_faces_Cl[rang1] == 3)
243 if (les_faces_Cl[rang2] == 3)
245 else if (les_faces_Cl[rang2] == 0)
247 else if (les_faces_Cl[rang2] == 1)
251 Cerr <<
"On traite une arete qui separe deux faces dans un coin : " << finl;
252 Cerr <<
"l'une de ces faces porte une condition limite de type periodicite " << finl;
253 Cerr <<
"et l'autre porte une condition autre que periodicite ou paroi" << finl;
254 Cerr <<
"On n a pas encore fait la modif!!!" << finl;
258 else if (les_faces_Cl[rang1] == 0)
260 if (les_faces_Cl[rang2] == 3)
262 else if (les_faces_Cl[rang2] == 0)
264 else if (les_faces_Cl[rang2] == 1)
279 else if (les_faces_Cl[rang1] == 1)
281 if (les_faces_Cl[rang2] == 2)
283 else if (les_faces_Cl[rang2] == 0)
291 else if (les_faces_Cl[rang2] == 1)
300 else if (les_faces_Cl[rang2] == 3)
307 Cerr <<
"On ne traite pas ce cas pour les_faces_Cl[rang1] = 1 " << finl;
308 Cerr <<
"les_faces_Cl[rang2] = " << les_faces_Cl[rang2] << finl;
312 else if (les_faces_Cl[rang1] == 2)
314 if (les_faces_Cl[rang2] == 0)
316 else if (les_faces_Cl[rang2] == 1)
318 else if (les_faces_Cl[rang2] == 2)
320 else if (les_faces_Cl[rang2] == 3)
327 Cerr <<
"On ne traite pas ce cas pour les_faces_Cl[rang1] = 2 " << finl;
328 Cerr <<
"les_faces_Cl[rang2] = " << les_faces_Cl[rang2] << finl;
337 Cerr <<
"Domaine_Cl_VDF::completer() attend en argument un Domaine_VDF\n";
const ArrOfInt_t & ind_faces_virt_bord() const
void imposer_cond_lim(Champ_Inc_base &, double) override
Impose les conditions aux limites a la valeur temporelle "temps" du Champ_Inc.
void associer(const Domaine_dis_base &) override
classe Domaine_Cl_dis_base Les objets Domaine_Cl_dis_base representent les conditions aux limites
int nb_cond_lim() const
Renvoie le nombre de conditions aux limites.
void completer()
Appel Cond_lim_base::completer() sur chaque condition aux limites.
Conds_lim & les_conditions_limites()
Renvoie le tableaux des conditions aux limites.
Domaine_dis_base & domaine_dis()
Renvoie une reference sur le domaine discretise associe aux conditions aux limites.
int orientation(int) const override
inline DoubleVect& Domaine_VDF::porosite_face() {
int Qdm(int num_arete, int) const
int nb_faces() const
renvoie le nombre global de faces.
void creer_tableau_faces_bord(Array_base &, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT) const
int nb_faces_bord() const
renvoie le nombre de faces sur lesquelles sont appliquees les conditions limites :
classe Domaine_dis_base Cette classe est la base de la hierarchie des domaines discretisees.