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;
Class Bord This class represents a boundary of a domain, it is a type of frontier.
Class Bord_Interne The class serves to represent a set of faces that are internal.
class Domaine_32_64 A Domain is a mesh composed of a set of geometric elements of the same type.
Groupe_Faces_t & groupe_faces(int i)
void typer(const Nom &)
Sets the element type of the domain using the name passed as parameter.
Class defining operators and methods for all reading operation in an input flow (file,...
void ajouter_faces(const IntTab_t &)
Adds one or more faces to the boundary; the face(s) are specified by an array.
void nommer(const Nom &) override
Gives a name to the boundary.
void dimensionner(int_t i)
Sizes the boundary, i.e. sets its number of faces.
void typer_faces(const Motcle &)
Sets the type of the boundary faces.
void associer_domaine(const Domaine_t &)
Associates the boundary to the domain it belongs to.
void add(const Frontiere_32_64 &)
Adds the vertices (and faces) of the given boundary to this object (Frontiere_32_64).
Groupe_Face class — represents a selection of faces read from a med file.
The Joint class is a Frontiere that contains the joint faces and vertices with the neighboring domain...
A character string (Nom) in uppercase.
An array of Motcle objects.
class Nom: a character string for naming TRUST objects.
virtual Entree & readOn(Entree &)
Reads an Objet_U from an input stream. Virtual method to override.
static double precision_geom
virtual Sortie & printOn(Sortie &) const
Writes the object to an output stream. Virtual method to override.
Class Pave A domain that is particularly easy to mesh!
int_t & maille_sommet(int i, int l)
Returns a reference to the index of the l-th vertex of the i-th cell (along X) of the pave.
int_t numero_sommet(int i)
Returns the index of the i-th vertex (along X).
void maille3D()
Performs a 3D meshing of the box with the values of the parameters read by ReadOn.
void lire_noeuds(Entree &is)
Reads the number of nodes from the data set input stream and builds the nodes.
void maille2D()
Performs a 1D meshing of the pave using the parameter values read by ReadOn.
Frontiere_32_64< _SIZE_ > Frontiere_t
double & coord_noeud(int i)
Returns a reference to the coordinates of the i-th node.
void typer_()
Types the pave according to the space dimension and the requested coordinate system (cylindrical.
IntTab_T< _SIZE_ > IntTab_t
void lire_front(Entree &, Frontiere_t &)
Reads the specifications of a boundary from the data set input stream and builds it.
void lire_longueurs(Entree &is)
Reads the lengths LX LY [LZ] from the data set input stream.
static void exit(int exit_code=-1)
Exit routine for TRUST within a Kokkos region.
Class Raccord_base This class is simply a boundary; it is the base class of the.
Base class for output streams.
void resize(_SIZE_ n, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)