31 #ifndef OOMPH_TRIMESH_HEADER 32 #define OOMPH_TRIMESH_HEADER 36 #include <oomph-lib-config.h> 64 #ifdef OOMPH_HAS_TRIANGLE_LIB 92 #ifdef OOMPH_HAS_TRIANGLE_LIB 102 std::ofstream outfile;
110 #ifdef OOMPH_HAS_TRIANGLE_LIB 143 std::ostringstream error_stream;
144 error_stream <<
"Empty default dump disributed info. method called.\n";
145 error_stream <<
"This should be overloaded in a specific TriangleMesh\n";
147 "TriangleMeshBase::dump_distributed_info_for_restart()",
148 OOMPH_EXCEPTION_LOCATION);
155 std::ostringstream error_stream;
156 error_stream <<
"Empty default dump info. to reset halo haloed scheme.\n";
157 error_stream <<
"This should be overloaded in a specific TriangleMesh\n";
159 "TriangleMeshBase::dump_info_to_reset_halo_haloed_scheme()",
160 OOMPH_EXCEPTION_LOCATION);
167 std::ostringstream error_stream;
168 error_stream <<
"Empty default read disributed info. method called.\n";
169 error_stream <<
"This should be overloaded in a specific TriangleMesh\n";
171 "TriangleMeshBase::read_distributed_info_for_restart()",
172 OOMPH_EXCEPTION_LOCATION);
180 std::ostringstream error_stream;
181 error_stream <<
"Empty default reestablish disributed info method " 183 error_stream <<
"This should be overloaded in a specific " 184 <<
"RefineableTriangleMesh\n";
186 "TriangleMeshBase::reestablish_distribution_info_for_restart()",
187 OOMPH_EXCEPTION_LOCATION);
195 std::ostringstream error_stream;
196 error_stream <<
"Empty default update polylines representation from " 197 <<
"restart method called.\n";
198 error_stream <<
"This should be overloaded in a specific " 199 <<
"RefineableTriangleMesh\n";
201 "TriangleMeshBase::update_polyline_representation_from_restart()",
202 OOMPH_EXCEPTION_LOCATION);
212 std::ostringstream error_stream;
213 error_stream <<
"Empty default remesh function called.\n";
214 error_stream <<
"This should be overloaded in a specific TriangleMesh\n";
216 OOMPH_CURRENT_FUNCTION,
217 OOMPH_EXCEPTION_LOCATION);
220 #endif // #ifdef OOMPH_HAS_TRIANGLE_LIB 224 target_domain_for_local_non_halo_element)
226 std::ostringstream error_stream;
227 error_stream <<
"Empty default load balancing function called.\n";
228 error_stream <<
"This should be overloaded in a specific TriangleMesh\n";
230 "TriangleMeshBase::load_balance()",
231 OOMPH_EXCEPTION_LOCATION);
240 std::ostringstream error_stream;
241 error_stream <<
"Empty default reset boundary element info function" 243 error_stream <<
"This should be overloaded in a specific " 246 "TriangleMeshBase::reset_boundary_element_info()",
247 OOMPH_EXCEPTION_LOCATION);
252 #ifdef OOMPH_HAS_TRIANGLE_LIB 261 #endif // OOMPH_HAS_TRIANGLE
TriangulateIO Triangulateio
TriangulateIO representation of the mesh.
void broken_copy(const std::string &class_name)
Issue error message and terminate execution.
TriangleMeshBase()
Constructor.
TriangulateIO & triangulateio_representation()
Access to the triangulateio representation of the mesh.
void enable_triangulateio_restart()
write access for Use_triangulateio_restart.
virtual void read_distributed_info_for_restart(std::istream &restart_file)
virtual void dump_distributed_info_for_restart(std::ostream &dump_file)
virtual void update_polyline_representation_from_restart()
bool Use_triangulateio_restart
void clear_triangulateio(TriangulateIO &triangulate_io, const bool &clear_hole_data)
Clear TriangulateIO structure.
virtual void dump_info_to_reset_halo_haloed_scheme(std::ostream &dump_file)
void remesh_from_triangulateio(std::istream &restart_file)
Regenerate the mesh from a dumped triangulateio file and dumped boundary coordinates of boundary node...
virtual void load_balance(const Vector< unsigned > &target_domain_for_local_non_halo_element)
Virtual function to perform the load balance rutines.
virtual void reestablish_distribution_info_for_restart(OomphCommunicator *comm_pt, std::istream &restart_file)
TriangleMeshBase(const TriangleMeshBase &node)
Broken copy constructor.
void initialise_triangulateio(TriangulateIO &triangle_io)
Initialise TriangulateIO structure.
void clear_triangulateio()
Helper function. Clean up the memory associated with the TriangulateIO object. This should really onl...
virtual ~TriangleMeshBase()
Broken assignment operator.
virtual void reset_boundary_element_info(Vector< unsigned > &ntmp_boundary_elements, Vector< Vector< unsigned > > &ntmp_boundary_elements_in_region, Vector< FiniteElement *> &deleted_elements)
Virtual function to perform the reset boundary elements info rutines.
std::string string(const unsigned &i)
Return the i-th string or "" if the relevant string hasn't been defined.
void write_triangulateio(TriangulateIO &triangulate_io, std::string &s)
Helper function. Write a TriangulateIO object file with all the triangulateio fields. String s is add to assign a different value for the input and/or output structure.
void disable_triangulateio_restart()
write access for Use_triangulateio_restart.
virtual void remesh_from_internal_triangulateio()
Virtual function that is used for specific remeshing from the triangulateio.
bool use_triangulateio_restart() const
const access for Use_triangulateio_restart.
void dump_triangulateio(std::ostream &dump_file)
Dump the triangulateio structure to a dump file and record boundary coordinates of boundary nodes...
void setup_boundary_element_info()
An oomph-lib wrapper to the MPI_Comm communicator object. Just contains an MPI_Comm object (which is ...