Unstructured tet mesh based on output from Tetgen: http://wias-berlin.de/software/tetgen/. More...
#include <tetgen_mesh.template.h>
Public Member Functions | |
TetgenMesh () | |
Empty constructor. More... | |
TetgenMesh (const std::string &node_file_name, const std::string &element_file_name, const std::string &face_file_name, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper, const bool &use_attributes=false) | |
Constructor with the input files. More... | |
TetgenMesh (tetgenio &tetgen_data, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper, const bool &use_attributes=false) | |
Constructor with tetgenio data structure. More... | |
TetgenMesh (const std::string &node_file_name, const std::string &element_file_name, const std::string &face_file_name, const bool &split_corner_elements, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper, const bool &use_attributes=false) | |
Constructor with the input files. Setting the boolean flag to true splits "corner" elements, i.e. elements that that have at least three faces on a domain boundary. The relevant elements are split without introducing hanging nodes so the sons have a "worse" shape than their fathers. However, this step avoids otherwise-hard-to-diagnose problems in fluids problems where the application of boundary conditions at such "corner" elements can overconstrain the solution. More... | |
TetgenMesh (tetgenio &tetgen_data, const bool &split_corner_elements, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper, const bool &use_attributes=false) | |
Constructor with tetgen data structure Setting the boolean flag to true splits "corner" elements, i.e. elements that that have at least three faces on a domain boundary. The relevant elements are split without introducing hanging nodes so the sons have a "worse" shape than their fathers. However, this step avoids otherwise-hard-to-diagnose problems in fluids problems where the application of boundary conditions at such "corner" elements can overconstrain the solution. More... | |
TetgenMesh (TetMeshFacetedClosedSurface *const &outer_boundary_pt, Vector< TetMeshFacetedSurface * > &internal_surface_pt, const double &element_volume, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper, const bool &use_attributes=false, const bool &split_corner_elements=false, Vector< double > *const &target_element_volume_in_region_pt=nullptr) | |
Build mesh, based on a TetgenMeshFactedClosedSurface that specifies the outer boundary of the domain and any number of internal boundaries, specified by TetMeshFacetedSurfaces. Also specify target size for uniform element size. Optionally specify the target element volume in each region. More... | |
void | build_tetgenio (TetMeshFacetedSurface *const &outer_boundary_pt, Vector< TetMeshFacetedSurface * > &internal_surface_pt, Vector< double > *const &target_element_volume_in_region_pt, tetgenio &tetgen_io) |
Build tetgenio object from the TetMeshFacetedSurfaces. More... | |
~TetgenMesh () | |
Empty destructor. More... | |
void | set_mesh_level_time_stepper (TimeStepper *const &time_stepper_pt, const bool &preserve_existing_data) |
Overload set_mesh_level_time_stepper so that the stored time stepper now corresponds to the new timestepper. More... | |
bool | tetgenio_exists () const |
Boolen defining whether tetgenio object has been built or not. More... | |
tetgenio *& | tetgenio_pt () |
Access to the triangulateio representation of the mesh. More... | |
void | set_deep_copy_tetgenio_pt (tetgenio *const &tetgenio_pt) |
Set the tetgen pointer by a deep copy. More... | |
void | deep_copy_of_tetgenio (tetgenio *const &input_pt, tetgenio *&output_pt) |
Transfer tetgenio data from the input to the output The output is assumed to have been constructed and "empty". More... | |
Protected Member Functions | |
void | build_from_scaffold (TimeStepper *time_stepper_pt, const bool &use_attributes) |
Build mesh from scaffold. More... | |
void | setup_reverse_lookup_schemes_for_faceted_surface (TetMeshFacetedSurface *const &faceted_surface_pt) |
Function to setup the reverse look-up schemes. More... | |
Protected Attributes | |
TetgenScaffoldMesh * | Tmp_mesh_pt |
Temporary scaffold mesh. More... | |
bool | Tetgenio_exists |
Boolean to indicate whether a tetgenio representation of the mesh exists. More... | |
tetgenio * | Tetgenio_pt |
Tetgen representation of mesh. More... | |
bool | Use_attributes |
Boolean flag to indicate whether to use attributes or not (required for multidomain meshes) More... | |
Unstructured tet mesh based on output from Tetgen: http://wias-berlin.de/software/tetgen/.
Definition at line 51 of file tetgen_mesh.template.h.
|
inline |
Empty constructor.
Definition at line 55 of file tetgen_mesh.template.h.
|
inline |
Constructor with the input files.
Definition at line 62 of file tetgen_mesh.template.h.
References oomph::TetgenMesh< ELEMENT >::build_from_scaffold(), oomph::TetgenMesh< ELEMENT >::Tmp_mesh_pt, and oomph::TetgenMesh< ELEMENT >::Use_attributes.
|
inline |
Constructor with tetgenio data structure.
Definition at line 100 of file tetgen_mesh.template.h.
References oomph::TetgenMesh< ELEMENT >::build_from_scaffold(), oomph::TetgenMesh< ELEMENT >::Tetgenio_exists, oomph::TetgenMesh< ELEMENT >::Tetgenio_pt, oomph::TetgenMesh< ELEMENT >::Tmp_mesh_pt, and oomph::TetgenMesh< ELEMENT >::Use_attributes.
|
inline |
Constructor with the input files. Setting the boolean flag to true splits "corner" elements, i.e. elements that that have at least three faces on a domain boundary. The relevant elements are split without introducing hanging nodes so the sons have a "worse" shape than their fathers. However, this step avoids otherwise-hard-to-diagnose problems in fluids problems where the application of boundary conditions at such "corner" elements can overconstrain the solution.
Definition at line 147 of file tetgen_mesh.template.h.
References oomph::TetgenMesh< ELEMENT >::build_from_scaffold(), oomph::TetgenMesh< ELEMENT >::Tetgenio_exists, oomph::TetgenMesh< ELEMENT >::Tetgenio_pt, oomph::TetgenMesh< ELEMENT >::Tmp_mesh_pt, and oomph::TetgenMesh< ELEMENT >::Use_attributes.
|
inline |
Constructor with tetgen data structure Setting the boolean flag to true splits "corner" elements, i.e. elements that that have at least three faces on a domain boundary. The relevant elements are split without introducing hanging nodes so the sons have a "worse" shape than their fathers. However, this step avoids otherwise-hard-to-diagnose problems in fluids problems where the application of boundary conditions at such "corner" elements can overconstrain the solution.
Definition at line 203 of file tetgen_mesh.template.h.
References oomph::TetgenMesh< ELEMENT >::build_from_scaffold(), oomph::TetgenMesh< ELEMENT >::Tetgenio_exists, oomph::TetgenMesh< ELEMENT >::Tetgenio_pt, oomph::TetgenMesh< ELEMENT >::Tmp_mesh_pt, and oomph::TetgenMesh< ELEMENT >::Use_attributes.
|
inline |
Build mesh, based on a TetgenMeshFactedClosedSurface that specifies the outer boundary of the domain and any number of internal boundaries, specified by TetMeshFacetedSurfaces. Also specify target size for uniform element size. Optionally specify the target element volume in each region.
Definition at line 253 of file tetgen_mesh.template.h.
References oomph::TetgenMesh< ELEMENT >::build_from_scaffold(), oomph::TetgenMesh< ELEMENT >::build_tetgenio(), oomph::TetgenMesh< ELEMENT >::setup_reverse_lookup_schemes_for_faceted_surface(), oomph::TetgenMesh< ELEMENT >::Tetgenio_exists, oomph::TetgenMesh< ELEMENT >::Tetgenio_pt, oomph::TetgenMesh< ELEMENT >::Tmp_mesh_pt, and oomph::TetgenMesh< ELEMENT >::Use_attributes.
|
inline |
Empty destructor.
Definition at line 653 of file tetgen_mesh.template.h.
References oomph::TetgenMesh< ELEMENT >::Tetgenio_exists, and oomph::TetgenMesh< ELEMENT >::Tetgenio_pt.
|
protected |
Build mesh from scaffold.
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
Build unstructured tet mesh based on output from scaffold
Definition at line 48 of file tetgen_mesh.template.cc.
Referenced by oomph::RefineableTetgenMesh< ELEMENT >::RefineableTetgenMesh(), and oomph::TetgenMesh< ELEMENT >::TetgenMesh().
|
inline |
Build tetgenio object from the TetMeshFacetedSurfaces.
ALH: This may not be needed
Definition at line 397 of file tetgen_mesh.template.h.
Referenced by oomph::TetgenMesh< ELEMENT >::TetgenMesh().
void oomph::TetgenMesh< ELEMENT >::deep_copy_of_tetgenio | ( | tetgenio *const & | input_pt, |
tetgenio *& | output_pt | ||
) |
Transfer tetgenio data from the input to the output The output is assumed to have been constructed and "empty".
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
Transfer tetgenio data from the input to the output The output is assumed to have been constructed and "empty"
Definition at line 865 of file tetgen_mesh.template.cc.
Referenced by oomph::RefineableTetgenMesh< ELEMENT >::RefineableTetgenMesh(), and oomph::TetgenMesh< ELEMENT >::set_deep_copy_tetgenio_pt().
|
inline |
Set the tetgen pointer by a deep copy.
Definition at line 685 of file tetgen_mesh.template.h.
References oomph::TetgenMesh< ELEMENT >::deep_copy_of_tetgenio(), oomph::TetgenMesh< ELEMENT >::Tetgenio_exists, and oomph::TetgenMesh< ELEMENT >::Tetgenio_pt.
|
inline |
Overload set_mesh_level_time_stepper so that the stored time stepper now corresponds to the new timestepper.
Definition at line 664 of file tetgen_mesh.template.h.
|
protected |
Function to setup the reverse look-up schemes.
Helper function to set up the reverse look up scheme for facets. This is used to set up boundary coordinates.
Definition at line 828 of file tetgen_mesh.template.cc.
Referenced by oomph::RefineableTetgenMesh< ELEMENT >::RefineableTetgenMesh(), and oomph::TetgenMesh< ELEMENT >::TetgenMesh().
|
inline |
Boolen defining whether tetgenio object has been built or not.
Definition at line 672 of file tetgen_mesh.template.h.
References oomph::TetgenMesh< ELEMENT >::Tetgenio_exists.
|
inline |
Access to the triangulateio representation of the mesh.
Definition at line 679 of file tetgen_mesh.template.h.
References oomph::TetgenMesh< ELEMENT >::Tetgenio_pt.
Referenced by oomph::RefineableTetgenMesh< ELEMENT >::adapt().
|
protected |
Boolean to indicate whether a tetgenio representation of the mesh exists.
Definition at line 717 of file tetgen_mesh.template.h.
Referenced by oomph::RefineableTetgenMesh< ELEMENT >::RefineableTetgenMesh(), oomph::TetgenMesh< ELEMENT >::set_deep_copy_tetgenio_pt(), oomph::TetgenMesh< ELEMENT >::tetgenio_exists(), oomph::TetgenMesh< ELEMENT >::TetgenMesh(), and oomph::TetgenMesh< ELEMENT >::~TetgenMesh().
|
protected |
Tetgen representation of mesh.
Definition at line 720 of file tetgen_mesh.template.h.
Referenced by oomph::RefineableTetgenMesh< ELEMENT >::RefineableTetgenMesh(), oomph::TetgenMesh< ELEMENT >::set_deep_copy_tetgenio_pt(), oomph::TetgenMesh< ELEMENT >::tetgenio_pt(), oomph::TetgenMesh< ELEMENT >::TetgenMesh(), and oomph::TetgenMesh< ELEMENT >::~TetgenMesh().
|
protected |
Temporary scaffold mesh.
Definition at line 713 of file tetgen_mesh.template.h.
Referenced by oomph::RefineableTetgenMesh< ELEMENT >::RefineableTetgenMesh(), and oomph::TetgenMesh< ELEMENT >::TetgenMesh().
|
protected |
Boolean flag to indicate whether to use attributes or not (required for multidomain meshes)
Definition at line 724 of file tetgen_mesh.template.h.
Referenced by oomph::TetgenMesh< ELEMENT >::TetgenMesh().