libMesh
Public Member Functions | Public Attributes | List of all members
libMesh::TetGenWrapper Class Reference

The TetGenWrapper provides an interface for basic access to TetGen data structures and methods. More...

#include <mesh_tetgen_wrapper.h>

Public Member Functions

 TetGenWrapper ()
 Constructor. More...
 
 ~TetGenWrapper ()
 Destructor. More...
 
void set_switches (const std::string &s)
 Method to set TetGen commandline switches -p Tetrahedralizes a piecewise linear complex (.poly or .smesh file). More...
 
void run_tetgen ()
 Starts the triangulation. More...
 
int get_numberoftetrahedra ()
 
int get_numberoftrifaces ()
 
void set_numberofpoints (int i)
 Sets the number of nodes in the TetGen input. More...
 
int get_numberofpoints ()
 
void set_numberoffacets (int i)
 Sets the number of facets in the TetGen input. More...
 
void set_numberofholes (int i)
 Sets the number of holes in the TetGen input. More...
 
void set_numberofregions (int i)
 Sets the number of regions in the TetGen input. More...
 
void allocate_pointlist (int numofpoints)
 Allocates memory, sets number of nodes in the TetGen input. More...
 
void allocate_facetlist (int numoffacets, int numofholes)
 Allocates memory, sets number of facets, holes in the TetGen input. More...
 
void allocate_regionlist (int numofregions)
 Allocates memory, sets number of regions in the TetGen input. More...
 
void set_node (unsigned i, REAL x, REAL y, REAL z)
 Sets coordinates of point i in the TetGen input. More...
 
void get_output_node (unsigned i, REAL &x, REAL &y, REAL &z)
 
int get_element_node (unsigned i, unsigned j)
 
int get_triface_node (unsigned i, unsigned j)
 
REAL get_element_attribute (unsigned i)
 
void set_hole (unsigned i, REAL x, REAL y, REAL z)
 Sets coordinates of hole i in the TetGen input. More...
 
void set_facet_numberofpolygons (unsigned i, int num)
 Sets the number of polygons for facet i in the TetGen input. More...
 
void set_facet_numberofholes (unsigned i, int num)
 Sets the number of holes for facet i in the TetGen input. More...
 
void allocate_facet_polygonlist (unsigned i, int numofpolygons)
 Allocates memory, sets number of polygons for facet i in the TetGen input. More...
 
void set_polygon_numberofvertices (unsigned i, unsigned j, int num)
 Sets the number of vertices for polygon j, facet i in the TetGen input. More...
 
void allocate_polygon_vertexlist (unsigned i, unsigned j, int numofvertices)
 Allocates memory, sets number of vertices for polygon j, facet i in the TetGen input. More...
 
void set_vertex (unsigned i, unsigned j, unsigned k, int nodeindex)
 Sets index of ith facet, jth polygon, kth vertex in the TetGen input. More...
 
void set_region (unsigned i, REAL x, REAL y, REAL z, REAL attribute, REAL vol_constraint)
 Sets coordinates, attribute, and volume constraint for region i in the TetGen input. More...
 

Public Attributes

tetgenio tetgen_data
 TetGen input structure. More...
 
std::unique_ptr< tetgenio > tetgen_output
 TetGen output structure. More...
 
tetgenmesh tetgen_mesh
 TetGen mesh structure (from the TetGen library). More...
 
tetgenbehavior tetgen_be
 TetGen control class (from the TetGen library). More...
 

Detailed Description

The TetGenWrapper provides an interface for basic access to TetGen data structures and methods.

Author
Steffen Petersen
Date
2004
Author
John W. Peterson
Date
2011

Definition at line 45 of file mesh_tetgen_wrapper.h.

Constructor & Destructor Documentation

◆ TetGenWrapper()

libMesh::TetGenWrapper::TetGenWrapper ( )

Constructor.

Definition at line 32 of file mesh_tetgen_wrapper.C.

32  :
33  tetgen_output(libmesh_make_unique<tetgenio>())
34 {
35  this->tetgen_data.mesh_dim = 3;
36  this->tetgen_data.numberofpointattributes = 0;
37  this->tetgen_data.firstnumber = 0;
38 }

References tetgen_data.

◆ ~TetGenWrapper()

libMesh::TetGenWrapper::~TetGenWrapper ( )

Destructor.

Empty.

Definition at line 42 of file mesh_tetgen_wrapper.C.

43 {
44 }

Member Function Documentation

◆ allocate_facet_polygonlist()

void libMesh::TetGenWrapper::allocate_facet_polygonlist ( unsigned  i,
int  numofpolygons 
)

Allocates memory, sets number of polygons for facet i in the TetGen input.

Definition at line 277 of file mesh_tetgen_wrapper.C.

278 {
279  this->set_facet_numberofpolygons(i, numofpolygons);
280  this->set_facet_numberofholes(i, 0);
281 
282  // Don't try to create an array of size zero, this isn't portable
283  if (numofpolygons > 0)
284  {
285  // Is there previously-allocated memory here?
286  if (this->tetgen_data.facetlist[i].polygonlist != nullptr)
287  libmesh_error_msg("Cannot allocate on top of previously allocated memory!");
288 
289  // We allocate memory here, the tetgenio destructor cleans it up.
290  this->tetgen_data.facetlist[i].polygonlist = new tetgenio::polygon[numofpolygons];
291 
292  for (int j=0; j<this->tetgen_data.facetlist[i].numberofpolygons; j++)
293  this->tetgen_data.init(&(this->tetgen_data.facetlist[i].polygonlist[j]));
294  }
295 }

References set_facet_numberofholes(), set_facet_numberofpolygons(), and tetgen_data.

Referenced by libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole().

◆ allocate_facetlist()

void libMesh::TetGenWrapper::allocate_facetlist ( int  numoffacets,
int  numofholes 
)

Allocates memory, sets number of facets, holes in the TetGen input.

Definition at line 208 of file mesh_tetgen_wrapper.C.

209 {
210  // These are both stored as ints in TetGen
211  this->set_numberoffacets(numoffacets);
212  this->set_numberofholes(numofholes);
213 
214  // Don't try to allocate an array of size zero, this is not portable...
215  if (this->tetgen_data.numberoffacets > 0)
216  {
217  // Is there previously-allocated memory here?
218  if (this->tetgen_data.facetlist != nullptr)
219  libmesh_error_msg("Cannot allocate on top of previously allocated memory!");
220 
221  // We allocate memory here, the tetgenio destructor cleans it up.
222  this->tetgen_data.facetlist = new tetgenio::facet[this->tetgen_data.numberoffacets];
223 
224  for (int i=0; i<numoffacets; i++)
225  this->tetgen_data.init(&(this->tetgen_data.facetlist[i]));
226  }
227 
228 
229  // Don't try to allocate an array of size zero, this is not portable...
230  if (this->tetgen_data.numberofholes > 0)
231  {
232  // Is there previously-allocated memory here?
233  if (this->tetgen_data.holelist != nullptr)
234  libmesh_error_msg("Cannot allocate on top of previously allocated memory!");
235 
236  this->tetgen_data.holelist = new REAL[this->tetgen_data.numberofholes * 3];
237  }
238 }

References set_numberoffacets(), set_numberofholes(), and tetgen_data.

Referenced by libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole().

◆ allocate_pointlist()

void libMesh::TetGenWrapper::allocate_pointlist ( int  numofpoints)

Allocates memory, sets number of nodes in the TetGen input.

Definition at line 136 of file mesh_tetgen_wrapper.C.

137 {
138  // This is stored as an int in tetgen, so we store it that way as well.
139  this->set_numberofpoints(numofpoints);
140 
141  // Don't try to allocate an array of size zero, this is not portable...
142  if (this->tetgen_data.numberofpoints > 0)
143  {
144  // Is there previously-allocated memory here?
145  if (this->tetgen_data.pointlist != nullptr)
146  libmesh_error_msg("Cannot allocate on top of previously allocated memory!");
147 
148  // We allocate memory here, the tetgenio destructor will delete it.
149  this->tetgen_data.pointlist = new REAL[this->tetgen_data.numberofpoints * 3];
150  }
151 }

References set_numberofpoints(), and tetgen_data.

Referenced by libMesh::TetGenMeshInterface::fill_pointlist().

◆ allocate_polygon_vertexlist()

void libMesh::TetGenWrapper::allocate_polygon_vertexlist ( unsigned  i,
unsigned  j,
int  numofvertices 
)

Allocates memory, sets number of vertices for polygon j, facet i in the TetGen input.

Definition at line 307 of file mesh_tetgen_wrapper.C.

308 {
309  this->set_polygon_numberofvertices(i, j, numofvertices);
310 
311  // Don't try to create an array of size zero, this isn't portable
312  if (numofvertices > 0)
313  {
314  // Is there previously-allocated memory here?
315  if (this->tetgen_data.facetlist[i].polygonlist[j].vertexlist != nullptr)
316  libmesh_error_msg("Cannot allocate on top of previously allocated memory!");
317 
318  // We allocate memory here, the tetgenio destructor cleans it up.
319  this->tetgen_data.facetlist[i].polygonlist[j].vertexlist = new int[numofvertices];
320  }
321 }

References set_polygon_numberofvertices(), and tetgen_data.

Referenced by libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole().

◆ allocate_regionlist()

void libMesh::TetGenWrapper::allocate_regionlist ( int  numofregions)

Allocates memory, sets number of regions in the TetGen input.

Definition at line 242 of file mesh_tetgen_wrapper.C.

243 {
244  this->set_numberofregions(numofregions);
245 
246  // Don't try to allocate an array of size zero, this is not portable...
247  if (this->tetgen_data.numberofregions > 0)
248  {
249  // Is there previously-allocated memory here?
250  if (this->tetgen_data.regionlist != nullptr)
251  libmesh_error_msg("Cannot allocate on top of previously allocated memory!");
252 
253  // We allocate memory here, the tetgenio destructor cleans it up.
254  this->tetgen_data.regionlist = new REAL[this->tetgen_data.numberofregions * 5];
255  }
256 }

References set_numberofregions(), and tetgen_data.

◆ get_element_attribute()

REAL libMesh::TetGenWrapper::get_element_attribute ( unsigned  i)
Returns
The attribute of element i in the TetGen output.

Definition at line 128 of file mesh_tetgen_wrapper.C.

129 {
130  libmesh_assert(tetgen_output->numberoftetrahedronattributes>0);
131  return tetgen_output->tetrahedronattributelist[tetgen_output->numberoftetrahedronattributes*i];
132 }

References libMesh::libmesh_assert(), and tetgen_output.

◆ get_element_node()

int libMesh::TetGenWrapper::get_element_node ( unsigned  i,
unsigned  j 
)
Returns
The index of jth node from element i in the TetGen output.

Definition at line 114 of file mesh_tetgen_wrapper.C.

115 {
116  return tetgen_output->tetrahedronlist[i*4+j];
117 }

References tetgen_output.

Referenced by libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole(), and libMesh::TetGenMeshInterface::triangulate_pointset().

◆ get_numberofpoints()

int libMesh::TetGenWrapper::get_numberofpoints ( )
Returns
Number of nodes in the TetGen output.

Definition at line 107 of file mesh_tetgen_wrapper.C.

108 {
109  return tetgen_output->numberofpoints;
110 }

References tetgen_output.

Referenced by libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole().

◆ get_numberoftetrahedra()

int libMesh::TetGenWrapper::get_numberoftetrahedra ( )
Returns
Number of tetrahedra in the TetGen output.

Definition at line 93 of file mesh_tetgen_wrapper.C.

94 {
95  return tetgen_output->numberoftetrahedra;
96 }

References tetgen_output.

Referenced by libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole(), and libMesh::TetGenMeshInterface::triangulate_pointset().

◆ get_numberoftrifaces()

int libMesh::TetGenWrapper::get_numberoftrifaces ( )
Returns
Number of triangle surface elements in the TetGen output.

Definition at line 100 of file mesh_tetgen_wrapper.C.

101 {
102  return tetgen_output->numberoftrifaces;
103 }

References tetgen_output.

Referenced by libMesh::TetGenMeshInterface::pointset_convexhull().

◆ get_output_node()

void libMesh::TetGenWrapper::get_output_node ( unsigned  i,
REAL x,
REAL y,
REAL z 
)
Returns
The coordinates of point i in the TetGen output.

Definition at line 76 of file mesh_tetgen_wrapper.C.

77 {
78  // Bounds checking...
79  if (i >= static_cast<unsigned>(tetgen_output->numberofpoints))
80  libmesh_error_msg("Error, requested point " \
81  << i \
82  << ", but there are only " \
83  << tetgen_output->numberofpoints \
84  << " points available.");
85 
86  x = tetgen_output->pointlist[3*i];
87  y = tetgen_output->pointlist[3*i+1];
88  z = tetgen_output->pointlist[3*i+2];
89 }

References tetgen_output.

Referenced by libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole().

◆ get_triface_node()

int libMesh::TetGenWrapper::get_triface_node ( unsigned  i,
unsigned  j 
)
Returns
The index of the jth node from surface triangle i in the TetGen output.

Definition at line 121 of file mesh_tetgen_wrapper.C.

122 {
123  return tetgen_output->trifacelist[i*3+j];
124 }

References tetgen_output.

Referenced by libMesh::TetGenMeshInterface::pointset_convexhull().

◆ run_tetgen()

void libMesh::TetGenWrapper::run_tetgen ( )

Starts the triangulation.

Definition at line 176 of file mesh_tetgen_wrapper.C.

177 {
178  // Call tetrahedralize from the TetGen library.
179  tetrahedralize(&tetgen_be, &tetgen_data, tetgen_output.get());
180 }

References tetgen_be, tetgen_data, and tetgen_output.

Referenced by libMesh::TetGenMeshInterface::pointset_convexhull(), libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole(), and libMesh::TetGenMeshInterface::triangulate_pointset().

◆ set_facet_numberofholes()

void libMesh::TetGenWrapper::set_facet_numberofholes ( unsigned  i,
int  num 
)

Sets the number of holes for facet i in the TetGen input.

Definition at line 268 of file mesh_tetgen_wrapper.C.

269 {
270  // numberofholes is stored as an int in TetGen
271  this->tetgen_data.facetlist[i].numberofholes = num;
272 }

References tetgen_data.

Referenced by allocate_facet_polygonlist().

◆ set_facet_numberofpolygons()

void libMesh::TetGenWrapper::set_facet_numberofpolygons ( unsigned  i,
int  num 
)

Sets the number of polygons for facet i in the TetGen input.

Definition at line 260 of file mesh_tetgen_wrapper.C.

261 {
262  // numberofpolygons is stored as an int in TetGen
263  this->tetgen_data.facetlist[i].numberofpolygons = num;
264 }

References tetgen_data.

Referenced by allocate_facet_polygonlist().

◆ set_hole()

void libMesh::TetGenWrapper::set_hole ( unsigned  i,
REAL  x,
REAL  y,
REAL  z 
)

Sets coordinates of hole i in the TetGen input.

Definition at line 58 of file mesh_tetgen_wrapper.C.

59 {
60  unsigned index = i*3;
61  tetgen_data.holelist[index++] = x;
62  tetgen_data.holelist[index++] = y;
63  tetgen_data.holelist[index++] = z;
64 }

References tetgen_data.

Referenced by libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole().

◆ set_node()

void libMesh::TetGenWrapper::set_node ( unsigned  i,
REAL  x,
REAL  y,
REAL  z 
)

Sets coordinates of point i in the TetGen input.

Definition at line 48 of file mesh_tetgen_wrapper.C.

49 {
50  unsigned index = i*3;
51  tetgen_data.pointlist[index++] = x;
52  tetgen_data.pointlist[index++] = y;
53  tetgen_data.pointlist[index++] = z;
54 }

References tetgen_data.

Referenced by libMesh::TetGenMeshInterface::fill_pointlist().

◆ set_numberoffacets()

void libMesh::TetGenWrapper::set_numberoffacets ( int  i)

Sets the number of facets in the TetGen input.

Definition at line 184 of file mesh_tetgen_wrapper.C.

185 {
186  // This is stored as an int in TetGen
187  this->tetgen_data.numberoffacets = i;
188 }

References tetgen_data.

Referenced by allocate_facetlist().

◆ set_numberofholes()

void libMesh::TetGenWrapper::set_numberofholes ( int  i)

Sets the number of holes in the TetGen input.

Definition at line 192 of file mesh_tetgen_wrapper.C.

193 {
194  // This is stored as an int in TetGen
195  this->tetgen_data.numberofholes = i;
196 }

References tetgen_data.

Referenced by allocate_facetlist().

◆ set_numberofpoints()

void libMesh::TetGenWrapper::set_numberofpoints ( int  i)

Sets the number of nodes in the TetGen input.

Definition at line 68 of file mesh_tetgen_wrapper.C.

69 {
70  // This is an int in tetgen, so use an int here even though it should be unsigned
71  tetgen_data.numberofpoints = i;
72 }

References tetgen_data.

Referenced by allocate_pointlist().

◆ set_numberofregions()

void libMesh::TetGenWrapper::set_numberofregions ( int  i)

Sets the number of regions in the TetGen input.

Definition at line 200 of file mesh_tetgen_wrapper.C.

201 {
202  // This is stored as an int in TetGen
203  this->tetgen_data.numberofregions = i;
204 }

References tetgen_data.

Referenced by allocate_regionlist().

◆ set_polygon_numberofvertices()

void libMesh::TetGenWrapper::set_polygon_numberofvertices ( unsigned  i,
unsigned  j,
int  num 
)

Sets the number of vertices for polygon j, facet i in the TetGen input.

Definition at line 299 of file mesh_tetgen_wrapper.C.

300 {
301  // numberofvertices is stored as an int in TetGen
302  this->tetgen_data.facetlist[i].polygonlist[j].numberofvertices = num;
303 }

References tetgen_data.

Referenced by allocate_polygon_vertexlist().

◆ set_region()

void libMesh::TetGenWrapper::set_region ( unsigned  i,
REAL  x,
REAL  y,
REAL  z,
REAL  attribute,
REAL  vol_constraint 
)

Sets coordinates, attribute, and volume constraint for region i in the TetGen input.

Note
Coordinates and attributes will only be considered if the corresponding switches are enabled. See TetGen documentation for more details.

Definition at line 334 of file mesh_tetgen_wrapper.C.

336 {
337  unsigned index = i*5;
338  tetgen_data.regionlist[index++] = x;
339  tetgen_data.regionlist[index++] = y;
340  tetgen_data.regionlist[index++] = z;
341  tetgen_data.regionlist[index++] = attribute;
342  tetgen_data.regionlist[index++] = vol_constraint;
343 }

References tetgen_data.

◆ set_switches()

void libMesh::TetGenWrapper::set_switches ( const std::string &  s)

Method to set TetGen commandline switches -p Tetrahedralizes a piecewise linear complex (.poly or .smesh file).

-q Quality mesh generation. A minimum radius-edge ratio may be specified (default 2.0). -a Applies a maximum tetrahedron volume constraint. -A Assigns attributes to identify tetrahedra in certain regions. -r Reconstructs and Refines a previously generated mesh. -Y Suppresses boundary facets/segments splitting. -i Inserts a list of additional points into mesh. -M Does not merge coplanar facets. -T Set a tolerance for coplanar test (default 1e-8). -d Detect intersections of PLC facets. -z Numbers all output items starting from zero. -o2 Generates second-order subparametric elements. -f Outputs faces (including non-boundary faces) to .face file. -e Outputs subsegments to .edge file. -n Outputs tetrahedra neighbors to .neigh file. -g Outputs mesh to .mesh file for viewing by Medit. -G Outputs mesh to .msh file for viewing by Gid. -O Outputs mesh to .off file for viewing by Geomview. -J No jettison of unused vertices from output .node file. -B Suppresses output of boundary information. -N Suppresses output of .node file. -E Suppresses output of .ele file. -F Suppresses output of .face file. -I Suppresses mesh iteration numbers. -C Checks the consistency of the final mesh. -Q Quiet: No terminal output except errors. -V Verbose: Detailed information, more terminal output. -v Prints the version information. -h Help: A brief instruction for using TetGen.

Definition at line 155 of file mesh_tetgen_wrapper.C.

156 {
157  // A temporary buffer for passing to the C API, it requires
158  // a char *, not a const char *...
159  char buffer[256];
160 
161  // Make sure char buffer has enough room
162  if (s.size() >= sizeof(buffer)-1)
163  libmesh_error_msg("Fixed size buffer of length " \
164  << sizeof(buffer) \
165  << " not large enough to hold TetGen switches.");
166 
167  // Copy the string, don't forget to terminate!
168  buffer[ s.copy( buffer , sizeof( buffer ) - 1 ) ] = '\0' ;
169 
170  if (!tetgen_be.parse_commandline(buffer))
171  libMesh::out << "TetGen replies: Wrong switches!" << std::endl;
172 }

References libMesh::out, and tetgen_be.

Referenced by libMesh::TetGenMeshInterface::pointset_convexhull(), libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole(), and libMesh::TetGenMeshInterface::triangulate_pointset().

◆ set_vertex()

void libMesh::TetGenWrapper::set_vertex ( unsigned  i,
unsigned  j,
unsigned  k,
int  nodeindex 
)

Sets index of ith facet, jth polygon, kth vertex in the TetGen input.

Definition at line 326 of file mesh_tetgen_wrapper.C.

327 {
328  // vertexlist entries are stored as ints in TetGen
329  this->tetgen_data.facetlist[i].polygonlist[j].vertexlist[k] = nodeindex;
330 }

References tetgen_data.

Referenced by libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole().

Member Data Documentation

◆ tetgen_be

tetgenbehavior libMesh::TetGenWrapper::tetgen_be

TetGen control class (from the TetGen library).

Definition at line 240 of file mesh_tetgen_wrapper.h.

Referenced by run_tetgen(), and set_switches().

◆ tetgen_data

tetgenio libMesh::TetGenWrapper::tetgen_data

◆ tetgen_mesh

tetgenmesh libMesh::TetGenWrapper::tetgen_mesh

TetGen mesh structure (from the TetGen library).

Definition at line 235 of file mesh_tetgen_wrapper.h.

◆ tetgen_output

std::unique_ptr<tetgenio> libMesh::TetGenWrapper::tetgen_output

The documentation for this class was generated from the following files:
libMesh::TetGenWrapper::set_numberofholes
void set_numberofholes(int i)
Sets the number of holes in the TetGen input.
Definition: mesh_tetgen_wrapper.C:192
libMesh::TetGenWrapper::set_facet_numberofpolygons
void set_facet_numberofpolygons(unsigned i, int num)
Sets the number of polygons for facet i in the TetGen input.
Definition: mesh_tetgen_wrapper.C:260
libMesh::TetGenWrapper::set_facet_numberofholes
void set_facet_numberofholes(unsigned i, int num)
Sets the number of holes for facet i in the TetGen input.
Definition: mesh_tetgen_wrapper.C:268
libMesh::TetGenWrapper::tetgen_output
std::unique_ptr< tetgenio > tetgen_output
TetGen output structure.
Definition: mesh_tetgen_wrapper.h:230
libMesh::TetGenWrapper::tetgen_be
tetgenbehavior tetgen_be
TetGen control class (from the TetGen library).
Definition: mesh_tetgen_wrapper.h:240
libMesh::libmesh_assert
libmesh_assert(ctx)
libMesh::REAL
Real REAL
Definition: mesh_triangle_wrapper.h:44
libMesh::TetGenWrapper::set_numberofregions
void set_numberofregions(int i)
Sets the number of regions in the TetGen input.
Definition: mesh_tetgen_wrapper.C:200
libMesh::TetGenWrapper::set_numberofpoints
void set_numberofpoints(int i)
Sets the number of nodes in the TetGen input.
Definition: mesh_tetgen_wrapper.C:68
libMesh::TetGenWrapper::tetgen_data
tetgenio tetgen_data
TetGen input structure.
Definition: mesh_tetgen_wrapper.h:225
libMesh::TetGenWrapper::set_polygon_numberofvertices
void set_polygon_numberofvertices(unsigned i, unsigned j, int num)
Sets the number of vertices for polygon j, facet i in the TetGen input.
Definition: mesh_tetgen_wrapper.C:299
libMesh::TetGenWrapper::set_numberoffacets
void set_numberoffacets(int i)
Sets the number of facets in the TetGen input.
Definition: mesh_tetgen_wrapper.C:184
libMesh::out
OStreamProxy out