82template <
typename _SIZE_>
85 return Domaine_t::printOn(s) ;
125template <
typename _SIZE_>
128 if(this->dimension<0)
130 Cerr <<
"You must give the dimension before to mesh" << finl;
131 Cerr <<
" The syntax is \"Dimension dim\" " << finl ;
134 facteurs_.resize(this->dimension);
136 symetrique_.resize(this->dimension);
138 origine_.resize(this->dimension);
139 longueurs_.resize(this->dimension);
140 nb_noeuds_.resize(this->dimension);
147 Cerr <<
"Reading of the block " << this->nom_ << finl;
151 Cerr <<
"We expected a { after " << this->nom_ << finl;
157 les_mots[0]=
"Origine";
158 les_mots[1]=
"Longueurs";
159 les_mots[2]=
"Nombre_de_noeuds";
160 les_mots[3]=
"Facteurs";
165 les_mots[8]=
"xtanh_dilatation";
166 les_mots[9]=
"xtanh_taille_premiere_maille";
167 les_mots[10]=
"ytanh";
168 les_mots[11]=
"ytanh_dilatation";
169 les_mots[12]=
"ytanh_taille_premiere_maille";
170 les_mots[13]=
"ztanh";
171 les_mots[14]=
"ztanh_dilatation";
172 les_mots[15]=
"ztanh_taille_premiere_maille";
173 les_mots[16]=
"reprise_VEF";
179 rang = les_mots.search(motlu);
183 for(
int i=0; i< this->dimension; i++)
193 for(
int i=0; i< this->dimension; i++)
200 if(this->dimension<2)
202 Cerr <<
"Symy has meaning only in dimension >= 2" << finl;
208 if(this->dimension<3)
210 Cerr <<
"Symz has meaning only in dimension >= 3" << finl;
222 is >> xtanh_dilatation;
231 assert(xtanh_dilatation!=-123);
232 if (xtanh_dilatation != 0 )
236 assert(!est_egal(xa_tanh,-123.));
237 for(
int decimale=1; decimale<7; decimale++)
239 x_tmp=longueurs_(0)/fac_sym*(1.+tanh((-1.+fac_sym*1./((Mx-1)*1.))*atanh(xa_tanh))/xa_tanh);
242 xa_tanh+=pow(10.,-decimale);
246 Cerr <<
"Error: The coefficient xa_tanh has a value of : " << xa_tanh << finl ;
247 Cerr <<
"So the mesh can't be generated with tanh (hyperbolic tangent) variation!" << finl ;
248 Cerr <<
"You must decrease either the xtanh_taille_premiere_maille size of the first cell of the mesh " << finl;
249 Cerr <<
"or the nombre_de_noeuds Nx node number in the X direction." << finl;
252 x_tmp=longueurs_(0)/fac_sym*(1.+tanh((-1.+fac_sym*1./((Mx-1)*1.))*atanh(xa_tanh))/xa_tanh);
254 xa_tanh-=pow(10.,-decimale);
258 Cerr <<
"Error: The coefficient xa_tanh has a value of : " << xa_tanh << finl ;
259 Cerr <<
"So the mesh can't be generated with tanh (hyperbolic tangent) variation!" << finl ;
260 Cerr <<
"You must decrease either the xtanh_taille_premiere_maille size of the first cell of the mesh " << finl;
261 Cerr <<
"or the nombre_de_noeuds Nx node number in the X direction." << finl;
265 Cerr <<
"The coefficient xa_tanh has a value of : " << xa_tanh << finl ;
275 is >> tanh_dilatation;
284 assert(tanh_dilatation!=-123);
285 if (tanh_dilatation != 0 )
289 assert(!est_egal(a_tanh,-123.));
290 for(
int decimale=1; decimale<7; decimale++)
292 y_tmp=longueurs_(1)/fac_sym*(1.+tanh((-1.+fac_sym*1./((My-1)*1.))*atanh(a_tanh))/a_tanh);
295 a_tanh+=pow(10.,-decimale);
299 Cerr <<
"Error: The coefficient ya_tanh has a value of : " << a_tanh << finl ;
300 Cerr <<
"So the mesh can't be generated with tanh (hyperbolic tangent) variation!" << finl ;
301 Cerr <<
"You must decrease either the ytanh_taille_premiere_maille size of the first cell of the mesh " << finl;
302 Cerr <<
"or the nombre_de_noeuds Ny node number in the Y direction." << finl;
305 y_tmp=longueurs_(1)/fac_sym*(1.+tanh((-1.+fac_sym*1./((My-1)*1.))*atanh(a_tanh))/a_tanh);
307 a_tanh-=pow(10.,-decimale);
311 Cerr <<
"Error: The coefficient ya_tanh has a value of : " << a_tanh << finl ;
312 Cerr <<
"So the mesh can't be generated with tanh (hyperbolic tangent) variation!" << finl ;
313 Cerr <<
"You must decrease either the ytanh_taille_premiere_maille size of the first cell of the mesh " << finl;
314 Cerr <<
"or the nombre_de_noeuds Ny node number in the Y direction." << finl;
318 Cerr <<
"The coefficient ya_tanh has a value of : " << a_tanh << finl ;
328 is >> ztanh_dilatation;
337 assert(ztanh_dilatation!=-123);
338 if (ztanh_dilatation != 0 )
342 assert(!est_egal(za_tanh,-123.));
343 for(
int decimale=1; decimale<7; decimale++)
345 z_tmp=longueurs_(2)/fac_sym*(1.+tanh((-1.+fac_sym*1./((Mz-1)*1.))*atanh(za_tanh))/za_tanh);
348 za_tanh+=pow(10.,-decimale);
352 Cerr <<
"Error: The coefficient za_tanh has a value of : " << za_tanh << finl ;
353 Cerr <<
"So the mesh can't be generated with tanh (hyperbolic tangent) variation!" << finl ;
354 Cerr <<
"You must decrease either the ztanh_taille_premiere_maille size of the first cell of the mesh " << finl;
355 Cerr <<
"or the nombre_de_noeuds Nz node number in the Z direction." << finl;
358 z_tmp=longueurs_(2)/fac_sym*(1.+tanh((-1.+fac_sym*1./((Mz-1)*1.))*atanh(za_tanh))/za_tanh);
360 za_tanh-=pow(10.,-decimale);
364 Cerr <<
"Error: The coefficient za_tanh has a value of : " << za_tanh << finl ;
365 Cerr <<
"So the mesh can't be generated with tanh (hyperbolic tangent) variation!" << finl ;
366 Cerr <<
"You must decrease either the ztanh_taille_premiere_maille size of the first cell of the mesh " << finl;
367 Cerr <<
"or the nombre_de_noeuds Nz node number in the Z direction." << finl;
371 Cerr <<
"The coefficient za_tanh has a value of : " << za_tanh << finl ;
382 if (motlu ==
"tanh" || motlu ==
"tanh_dilatation" || motlu ==
"tanh_taille_premiere_maille")
383 Cerr <<
"Error: '" << motlu <<
"' keyword is obsolete since V1.7.9. We renamed it to 'Y"<< motlu <<
"'" << finl;
386 Cerr << motlu <<
" is not understood " << finl;
392 pas_.resize(this->dimension);
393 if(min_array(facteurs_)<=0.)
395 Cerr <<
"The progression factors must be positives" << finl;
398 switch(this->dimension)
410 Cerr <<
"There must be at least two cells on x" << finl;
416 double deux_pi=M_PI*2.0 ;
418 int_t nb_som=this->sommets_.dimension(0);
419 for(int_t i=0; i<nb_som; i++)
421 this->sommets_(i, 1) -=
static_cast<double>((int_t) this->sommets_(i, 1));
422 this->sommets_(i, 1) *= deux_pi;
426 longueurs_(1)*=deux_pi;
427 origine_(1)*=deux_pi;
433 Cerr <<
"We expected a { before reading the boundaries" << finl;
439 les_mots[1]=
"Raccord";
440 les_mots[2]=
"Internes";
443 les_mots[5]=
"Groupe_Faces";
449 rang = les_mots.search(motlu);
455 lire_front(is , newbord );
463 is >> local >> homogene;
469 Cerr <<
"Do not use sequential local connection!" << finl;
472 newraccord.typer(type);
473 lire_front(is , newraccord.valeur() );
479 lire_front(is , faces );
485 lire_front(is , faces );
493 lire_front(is , newjoint );
499 Cerr << motlu <<
" is not understood " << finl;
579template <
typename _SIZE_>
582 Cerr <<
"Step of 2D mesh in progress... " << finl;
601 assert(!est_egal(
xa_tanh,-123.));
605 Cerr <<
"In if( (xa_tanh>epsilon_geom)&&(xa_tanh<1.) )" << finl;
618 Cerr <<
"i=" << i << finl;
623 Cerr <<
"\rIt was created " << pourcent <<
"% of coordx" << flush;
625 assert(!est_egal(
xa_tanh,-123.));
628 Cerr <<
"It was created " << pourcent <<
"% of coordx" << flush;
635 Cerr <<
"i=" << i << finl;
640 Cerr <<
"\rIt was created " << pourcent <<
"% of coordx" << flush;
642 assert(!est_egal(
xa_tanh,-123.));
645 Cerr <<
"It was created " << pourcent <<
"% of coordx" << flush;
661 Cerr <<
"It was created " << pourcent <<
"% of coordx" << flush;
663 if (std::fabs(
facteurs_(0)-1.)>epsilon_geom)
701 Cerr <<
"It was created " << pourcent <<
"% of coordx" << flush;
720 assert(!est_egal(
a_tanh,-123.));
724 Cerr <<
"In if( (a_tanh>epsilon_geom)&&(a_tanh<1.) )" << finl;
737 Cerr <<
"j=" << j << finl;
742 Cerr <<
"\rIt was created " << pourcent <<
"% of coordy" << flush;
744 assert(!est_egal(
a_tanh,-123.));
747 Cerr <<
"coord_noeud(0,j,1)=" <<
coord_noeud(0,j,1) << finl;
748 Cerr <<
"It was created " << pourcent <<
"% of coordy" << flush;
755 Cerr <<
"j=" << j << finl;
760 Cerr <<
"\rIt was created " << pourcent <<
"% of coordy" << flush;
762 assert(!est_egal(
a_tanh,-123.));
765 Cerr <<
"coord_noeud(0,j,1)=" <<
coord_noeud(0,j,1) << finl;
766 Cerr <<
"It was created " << pourcent <<
"% of coordy" << flush;
782 Cerr <<
"It was created " << pourcent <<
"% of coordy" << flush;
784 if (std::fabs(
facteurs_(1)-1.)>epsilon_geom)
822 Cerr <<
"It was created " << pourcent <<
"% of coordy" << flush;
838 Cerr <<
"Step of mesh ended " << finl;
843template <
typename _SIZE_>
846 Cerr <<
"Step of 3D mesh in progress... " << finl;
871 assert(!est_egal(
xa_tanh,-123.));
875 Cerr <<
"In if( (xa_tanh>epsilon)&&(xa_tanh<1.) )" << finl;
888 Cerr <<
"i=" << i << finl;
893 Cerr <<
"\rIt was created " << pourcent <<
"% of coordx" << flush;
895 assert(!est_egal(
xa_tanh,-123.));
899 Cerr <<
"coord_noeud(i,0,0,0)=" <<
coord_noeud(i,0,0,0) << finl;
906 Cerr <<
"i=" << i << finl;
911 Cerr <<
"It was created " << pourcent <<
"% of coordx" << flush;
913 assert(!est_egal(
xa_tanh,-123.));
918 Cerr <<
"coord_noeud(i,0,0,0)=" <<
coord_noeud(i,0,0,0) << finl;
936 Cerr <<
"It was created " << pourcent <<
"% of coordx" << flush;
938 if(std::fabs(
facteurs_(0)-1.)>epsilon_geom)
978 Cerr <<
"It was created " << pourcent <<
"% of coordx" << flush;
1000 assert(!est_egal(
a_tanh,-123.));
1004 Cerr <<
"In if( (a_tanh>epsilon)&&(a_tanh<1.) )" << finl;
1015 for (j=0; j<
My; j++)
1017 Cerr <<
"j=" << j << finl;
1022 Cerr <<
"\rIt was created " << pourcent <<
"% of coordy" << flush;
1024 assert(!est_egal(
a_tanh,-123.));
1025 for (i=0; i<
Mx; i++)
1026 for (k=0; k<
Mz; k++)
1028 Cerr <<
"coord_noeud(0,j,0,1)=" <<
coord_noeud(0,j,0,1) << finl;
1033 for (j=0; j<
My; j++)
1035 Cerr <<
"j=" << j << finl;
1040 Cerr <<
"It was created " << pourcent <<
"% of coordy" << flush;
1042 assert(!est_egal(
a_tanh,-123.));
1043 for (i=0; i<
Mx; i++)
1044 for (k=0; k<
Mz; k++)
1047 Cerr <<
"coord_noeud(0,j,0,1)=" <<
coord_noeud(0,j,0,1) << finl;
1050 for (i=0; i<
Mx; i++)
1051 for (k=0; k<
Mz; k++)
1058 for (j=0; j<
Ny; j++)
1064 Cerr <<
"It was created " << pourcent <<
"% of coordy" << flush;
1066 if(std::fabs(
facteurs_(1)-1.)>epsilon_geom)
1071 for (i=0; i<
Mx; i++)
1072 for (k=0; k<
Mz; k++)
1075 for (i=0; i<
Mx; i++)
1076 for (k=0; k<
Mz; k++)
1101 for (j=0; j<Iy; j++)
1107 Cerr <<
"It was created " << pourcent <<
"% of coordy" << flush;
1109 for (i=0; i<
Mx; i++)
1110 for (k=0; k<
Mz; k++)
1119 for (i=0; i<
Mx; i++)
1120 for (k=0; k<
Mz; k++)
1129 assert(!est_egal(
za_tanh,-123.));
1133 Cerr <<
"In if( (za_tanh>epsilon)&&(za_tanh<1.) )" << finl;
1144 for (k=0; k<
Mz; k++)
1146 Cerr <<
"k=" << k << finl;
1151 Cerr <<
"\rIt was created " << pourcent <<
"% of coordz" << flush;
1153 assert(!est_egal(
za_tanh,-123.));
1154 for (i=0; i<
Mx; i++)
1155 for (j=0; j<
My; j++)
1157 Cerr <<
"coord_noeud(0,0,k,2)=" <<
coord_noeud(0,0,k,2) << finl;
1162 for (k=0; k<
Mz; k++)
1164 Cerr <<
"k=" << k << finl;
1169 Cerr <<
"It was created " << pourcent <<
"% of coordz" << flush;
1171 assert(!est_egal(
za_tanh,-123.));
1172 for (i=0; i<
Mx; i++)
1173 for (j=0; j<
My; j++)
1176 Cerr <<
"coord_noeud(0,0,k,2)=" <<
coord_noeud(0,0,k,2) << finl;
1179 for (i=0; i<
Mx; i++)
1180 for (j=0; j<
My; j++)
1187 for (k=0; k<
Nz; k++)
1193 Cerr <<
"It was created " << pourcent <<
"% of coordz" << flush;
1195 if(std::fabs(
facteurs_(2)-1.)>epsilon_geom)
1199 for (i=0; i<
Mx; i++)
1200 for (j=0; j<
My; j++)
1203 for (i=0; i<
Mx; i++)
1204 for (j=0; j<
My; j++)
1229 for (k=0; k<Iz; k++)
1235 Cerr <<
"It was created " << pourcent <<
"% of coordz" << flush;
1237 for (i=0; i<
Mx; i++)
1238 for (j=0; j<
My; j++)
1247 for (i=0; i<
Mx; i++)
1248 for (j=0; j<
My; j++)
1258 for (j=1; j<
My; j+=2)
1259 for (i=0; i<
Mx; i++)
1260 for (k=0; k<
Mz; k++)
1261 coord_noeud(i,j,k,1)=
coord_noeud(i,j-1,k,1)+0.5*(
coord_noeud(i,j+1,k,1)-
coord_noeud(i,j-1,k,1));
1266 Cerr <<
"Step of mesh ended " << finl;
1277template <
typename _SIZE_>
1281 switch(this->dimension)
1288 typ =
"Rectangle_Axi";
1290 typ =
"Rectangle_2D_Axi";
1296 typ =
"Hexaedre_Axi";
1314template <
typename _SIZE_>
1318 for(i=0; i< this->dimension; i++)
1324 Cerr <<
"The length \"Longueurs\" is in number of turns in axisymmetric" << finl;
1325 Cerr <<
"It must be between 0 and 1" << finl;
1341template <
typename _SIZE_>
1347 Cerr<<
"You must first read the length in axisymmetric!" << finl;
1350 for(i=0; i< this->dimension; i++)
1354 if (std::is_same<_SIZE_, int>::value)
1356 trustIdType nb_nod = 1;
1359 if(8*nb_nod > std::numeric_limits<int>::max())
1361 Cerr <<
"ERROR: Pave: the total number of nodes you specified is bigger than the 32b limit!" << finl;
1362 Cerr <<
" If this is intended, you should switch to the 64 mode by using the 'Pave_64' (and Domaine_64 etc.) keyword." << finl;
1369 Cerr <<
"\nError: The number of nodes in directions Nx and Ny (and Nz) for 'Pave " << this->nom_ <<
"' must be greater than 1." << finl;
1370 Cerr <<
"If you want to define a unique cell in a given direction, set the number of nodes to 2 in that direction." << finl;
1373 if(this->dimension==1)
1379 for (i=0; i<
Nx; i++)
1385 else if(this->dimension==2)
1394 for (i=0; i<
Nx; i++)
1395 for (j=0; j<
Ny; j++)
1403 else if(this->dimension==3)
1414 for (i=0; i<
Nx; i++)
1415 for ( j=0; j<
Ny; j++)
1416 for ( k=0; k<
Nz; k++)
1430 Cerr <<
"dimension = " << this->dimension <<
"not provided " << finl;
1455template <
typename _SIZE_>
1461 Cerr <<
"Reading of the boundary " << nom_front << finl;
1466 if(this->dimension==1)
1470 is >> X >> egal >> coupe ;
1473 Cerr <<
"We expected a = X instead of" << X <<
1474 " before " << egal <<
" " << coupe << finl;
1479 Cerr <<
"We expected a = after " << X << finl;
1486 Cerr << coupe <<
" is not an extremity" << finl;
1487 Cerr <<
"The extremities are : "
1498 else if(this->dimension==2)
1500 Nom X, Y, egal, infegal1, infegal2;
1503 is >> X >> egal >> coupe ;
1504 if( (X!=
"X") && (X!=
"Y") )
1506 Cerr <<
"We expected a = X or Y instead of" << X <<
1507 " before " << egal <<
" " << coupe << finl;
1512 Cerr <<
"We expected a = after " << X << finl;
1515 is >> xmin >> infegal1 >> Y >> infegal2 >> xmax;
1518 Cerr <<
"We expected a <= after " << xmin <<
" and not " << infegal1 << finl;
1525 Cerr <<
"We expected a Y after " << infegal1 << finl;
1530 double deux_pi=M_PI*2.0 ;
1539 Cerr <<
"There is no boundary in teta! " << finl;
1540 Cerr <<
"You have meshed a complete crown! " << finl;
1545 Cerr <<
"We expected a X after " << infegal1 << finl;
1551 Cerr <<
"We expected a <= after " << Y <<
" and not " << infegal2 <<finl;
1561 Cerr <<
"X = " << coupe <<
" is not a boundary" << finl;
1567 Cerr <<
"X = " << coupe <<
" is a boundary" << finl;
1594 for(j=jmin; j<jmax; j++)
1604 double deux_pi=M_PI*2.0 ;
1610 Cerr <<
"Y = " << coupe <<
" is not a boundary" << finl;
1616 Cerr <<
"Y = " << coupe <<
" is a boundary" << finl;
1641 for(i=imin; i<imax; i++)
1650 else if(this->dimension==3)
1652 Nom X, Y, Z, egal, infegal1, infegal2, infegal3, infegal4;
1654 double xmin, xmax, ymin, ymax;
1655 is >> X >> egal >> coupe ;
1656 if( (X!=
"X") && (X!=
"Y") && (X!=
"Z"))
1658 Cerr <<
"We expected a = X or Y or Z instead of" << X <<
1659 " before " << egal <<
" " << coupe << finl;
1664 Cerr <<
"We expected a = after " << X << finl;
1667 is >> xmin >> infegal1 >> Y >> infegal2 >> xmax;
1670 Cerr <<
"We expected a <= after " << xmin <<
" and not " << infegal1 <<finl;
1675 Cerr <<
"We expected a <= after " << Y <<
" and not " << infegal2 << finl;
1678 is >> ymin >> infegal3 >> Z >> infegal4 >> ymax;
1681 Cerr <<
"We expected a <= after " << ymin <<
" and not " << infegal3 << finl;
1686 Cerr <<
"We expected a <= after " << Z <<
" and not " << infegal4 << finl;
1693 Cerr <<
"We expected a Y and not " << Y << finl;
1698 double deux_pi=M_PI*2.0 ;
1704 Cerr <<
"We expected a Z and not " << Z << finl;
1712 Cerr <<
"There is no boundary in teta! " << finl;
1713 Cerr <<
"You have meshed a complete crown! " << finl;
1718 Cerr <<
"We expected a X and not " << Y << finl;
1723 Cerr <<
"We expected a Z and not " << Z << finl;
1731 Cerr <<
"We expected a X and not " << Y << finl;
1736 Cerr <<
"We expected a Z and not " << Z << finl;
1741 double deux_pi=M_PI*2.0 ;
1753 Cerr <<
"X = " << coupe <<
" is not a boundary " << finl;
1759 Cerr <<
"X = " << coupe <<
" is a boundary " << finl;
1762 int jmin, jmax, kmin, kmax;
1786 som.
resize((jmax-jmin)*(kmax-kmin),4);
1787 for(j=jmin; j<jmax; j++)
1788 for(k=kmin; k<kmax; k++)
1791 som((k-kmin)*(jmax-jmin)+j-jmin,1)=
numero_sommet(i, j+1, k);
1792 som((k-kmin)*(jmax-jmin)+j-jmin,2)=
numero_sommet(i, j, k+1);
1793 som((k-kmin)*(jmax-jmin)+j-jmin,3)=
numero_sommet(i, j+1, k+1);
1800 double deux_pi=M_PI*2.0 ;
1806 Cerr <<
"Y = " << coupe <<
" is not a boundary " << finl;
1812 Cerr <<
"Y = " << coupe <<
" is a boundary " << finl;
1815 int imin, imax, kmin, kmax;
1834 som.
resize((imax-imin)*(kmax-kmin),4);
1835 for(i=imin; i<imax; i++)
1836 for(k=kmin; k<kmax; k++)
1839 som((k-kmin)*(imax-imin)+i-imin,1)=
numero_sommet(i+1, j, k);
1840 som((k-kmin)*(imax-imin)+i-imin,2)=
numero_sommet(i, j, k+1);
1841 som((k-kmin)*(imax-imin)+i-imin,3)=
numero_sommet(i+1, j, k+1);
1849 Cerr <<
"Z = " << coupe <<
" is not a boundary " << finl;
1855 Cerr <<
"Z = " << coupe <<
" is a boundary " << finl;
1858 int imin, imax, jmin, jmax;
1882 som.
resize((imax-imin)*(jmax-jmin),4);
1883 for(i=imin; i<imax; i++)
1884 for(j=jmin; j<jmax; j++)
1887 som((j-jmin)*(imax-imin)+i-imin,1)=
numero_sommet(i+1, j, k);
1888 som((j-jmin)*(imax-imin)+i-imin,2)=
numero_sommet(i, j+1, k);
1889 som((j-jmin)*(imax-imin)+i-imin,3)=
numero_sommet(i+1, j+1, k);
1899 Cerr <<
"End of reading of the boundary : " << nom_front << finl;
Classe Bord Cette classe represente un bord d'un domaine, c'est un type de frontiere.
Classe Bord_Interne La classe sert a representer un ensemble de faces qui sont internes.
classe Domaine_32_64 un Domaine est un maillage compose d'un ensemble d'elements geometriques de meme...
Groupe_Faces_t & groupe_faces(int i)
void typer(const Nom &)
Type les elements du domaine avec le nom passe en parametre.
Class defining operators and methods for all reading operation in an input flow (file,...
void ajouter_faces(const IntTab_t &)
Ajoute une (ou plusieurs) face(s) a la frontiere, la (les) face(s) est (sont) specifiee(s) par un tab...
void nommer(const Nom &) override
Donne un nom a la frontiere.
void dimensionner(int_t i)
Dimensionne la frontiere, i.e. fixe son nombre de faces.
void typer_faces(const Motcle &)
Type les faces de la frontiere.
void associer_domaine(const Domaine_t &)
Associe la frontiere au domaine dont elle depend.
void add(const Frontiere_32_64 &)
Ajoute les sommets (et faces) de la frontiere passee en parametre a l'objet (Frontiere_32_64).
Classe Groupe_Face La classe sert a representer une selection de faces lu dans le fichier med.
La classe Joint est une Frontiere qui contient les faces et les sommets de joint avec le domaine PEvo...
Une chaine de caractere (Nom) en majuscules.
Un tableau d'objets de la classe Motcle.
class Nom Une chaine de caractere pour nommer les objets de TRUST
virtual Entree & readOn(Entree &)
Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
static double precision_geom
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
Classe Pave Un domaine particulierement facile a mailler!
int_t & maille_sommet(int i, int l)
Renvoie une reference sur le numero du l-ieme sommet de la i-ieme maille (suivant X) du pave.
int_t numero_sommet(int i)
Renvoie le numero du i-ieme sommet (suivant X).
void maille3D()
Effectue un maillage 3D, du pave avec les valeurs des parametres lus par ReadOn.
void lire_noeuds(Entree &is)
Lit le nombre de noeuds dans le jeu de donnee a partir d'un flot d'entree et construit les noeuds.
void maille2D()
Effectue un maillage 1D, du pave avec les valeurs des parametres lus par ReadOn.
Frontiere_32_64< _SIZE_ > Frontiere_t
double & coord_noeud(int i)
Renvoie une reference sur les coordonnees du i-ieme noeud.
void typer_()
Type le pave suivant la dimension d'espace et suivant le repere de coordonnees demande (cylindrique.
IntTab_T< _SIZE_ > IntTab_t
void lire_front(Entree &, Frontiere_t &)
Lit les specifications d'une frontiere du jeu de donnee a partir d'un flot d'entree et la construit.
void lire_longueurs(Entree &is)
Lit les longueurs LX LY [LZ] du jeu de donnee a partir d'un flot d'entree.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Classe Raccord_base Cette classe est simplement une frontiere, c'est la classe de base de la.
Classe de base des flux de sortie.
void resize(_SIZE_ n, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)