![]() |
|
#include <tetgen_scaffold_mesh.h>
Public Member Functions | |
TetgenScaffoldMesh () | |
Empty constructor. More... | |
TetgenScaffoldMesh (const std::string &node_file_name, const std::string &element_file_name, const std::string &face_file_name) | |
Constructor: Pass the filename of the tetrahedra file. More... | |
TetgenScaffoldMesh (tetgenio &tetgen_data) | |
Constructor using direct tetgenio object. More... | |
~TetgenScaffoldMesh () | |
Empty destructor. More... | |
unsigned | global_node_number (const unsigned &i) |
unsigned | face_boundary (const unsigned &e, const unsigned &i) const |
unsigned | nglobal_edge () |
Return the number of internal edges. More... | |
bool | edge_boundary (const unsigned &i) |
unsigned | edge_index (const unsigned &e, const unsigned &i) const |
unsigned | nglobal_face () |
Return the number of internal face. More... | |
unsigned | face_index (const unsigned &e, const unsigned &i) const |
double | element_attribute (const unsigned &e) const |
![]() | |
Mesh () | |
Default constructor. More... | |
Mesh (const Vector< Mesh * > &sub_mesh_pt) | |
void | merge_meshes (const Vector< Mesh * > &sub_mesh_pt) |
virtual void | setup_boundary_element_info () |
virtual void | setup_boundary_element_info (std::ostream &outfile) |
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. More... | |
template<class BULK_ELEMENT > | |
void | doc_boundary_coordinates (const unsigned &b, std::ofstream &the_file) |
virtual void | scale_mesh (const double &factor) |
Mesh (const Mesh &dummy)=delete | |
Broken copy constructor. More... | |
void | operator= (const Mesh &)=delete |
Broken assignment operator. More... | |
virtual | ~Mesh () |
Virtual Destructor to clean up all memory. More... | |
void | flush_element_and_node_storage () |
void | flush_element_storage () |
void | flush_node_storage () |
Node *& | node_pt (const unsigned long &n) |
Return pointer to global node n. More... | |
Node * | node_pt (const unsigned long &n) const |
Return pointer to global node n (const version) More... | |
GeneralisedElement *& | element_pt (const unsigned long &e) |
Return pointer to element e. More... | |
GeneralisedElement * | element_pt (const unsigned long &e) const |
Return pointer to element e (const version) More... | |
const Vector< GeneralisedElement * > & | element_pt () const |
Return reference to the Vector of elements. More... | |
Vector< GeneralisedElement * > & | element_pt () |
Return reference to the Vector of elements. More... | |
FiniteElement * | finite_element_pt (const unsigned &e) const |
Node *& | boundary_node_pt (const unsigned &b, const unsigned &n) |
Return pointer to node n on boundary b. More... | |
Node * | boundary_node_pt (const unsigned &b, const unsigned &n) const |
Return pointer to node n on boundary b. More... | |
void | set_nboundary (const unsigned &nbound) |
Set the number of boundaries in the mesh. More... | |
void | remove_boundary_nodes () |
Clear all pointers to boundary nodes. More... | |
void | remove_boundary_nodes (const unsigned &b) |
void | remove_boundary_node (const unsigned &b, Node *const &node_pt) |
Remove a node from the boundary b. More... | |
void | add_boundary_node (const unsigned &b, Node *const &node_pt) |
Add a (pointer to) a node to the b-th boundary. More... | |
void | copy_boundary_node_data_from_nodes () |
bool | boundary_coordinate_exists (const unsigned &i) const |
Indicate whether the i-th boundary has an intrinsic coordinate. More... | |
unsigned long | nelement () const |
Return number of elements in the mesh. More... | |
unsigned long | nnode () const |
Return number of nodes in the mesh. More... | |
unsigned | ndof_types () const |
Return number of dof types in mesh. More... | |
unsigned | elemental_dimension () const |
Return number of elemental dimension in mesh. More... | |
unsigned | nodal_dimension () const |
Return number of nodal dimension in mesh. More... | |
void | add_node_pt (Node *const &node_pt) |
Add a (pointer to a) node to the mesh. More... | |
void | add_element_pt (GeneralisedElement *const &element_pt) |
Add a (pointer to) an element to the mesh. More... | |
virtual void | node_update (const bool &update_all_solid_nodes=false) |
virtual void | reorder_nodes (const bool &use_old_ordering=true) |
virtual void | get_node_reordering (Vector< Node * > &reordering, const bool &use_old_ordering=true) const |
template<class BULK_ELEMENT , template< class > class FACE_ELEMENT> | |
void | build_face_mesh (const unsigned &b, Mesh *const &face_mesh_pt) |
unsigned | self_test () |
Self-test: Check elements and nodes. Return 0 for OK. More... | |
void | max_and_min_element_size (double &max_size, double &min_size) |
double | total_size () |
void | check_inverted_elements (bool &mesh_has_inverted_elements, std::ofstream &inverted_element_file) |
void | check_inverted_elements (bool &mesh_has_inverted_elements) |
unsigned | check_for_repeated_nodes (const double &epsilon=1.0e-12) |
Vector< Node * > | prune_dead_nodes () |
unsigned | nboundary () const |
Return number of boundaries. More... | |
unsigned long | nboundary_node (const unsigned &ibound) const |
Return number of nodes on a particular boundary. More... | |
FiniteElement * | boundary_element_pt (const unsigned &b, const unsigned &e) const |
Return pointer to e-th finite element on boundary b. More... | |
Node * | get_some_non_boundary_node () const |
unsigned | nboundary_element (const unsigned &b) const |
Return number of finite elements that are adjacent to boundary b. More... | |
int | face_index_at_boundary (const unsigned &b, const unsigned &e) const |
virtual void | dump (std::ofstream &dump_file, const bool &use_old_ordering=true) const |
Dump the data in the mesh into a file for restart. More... | |
void | dump (const std::string &dump_file_name, const bool &use_old_ordering=true) const |
Dump the data in the mesh into a file for restart. More... | |
virtual void | read (std::ifstream &restart_file) |
Read solution from restart file. More... | |
void | output_paraview (std::ofstream &file_out, const unsigned &nplot) const |
void | output_fct_paraview (std::ofstream &file_out, const unsigned &nplot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt) const |
void | output_fct_paraview (std::ofstream &file_out, const unsigned &nplot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt) const |
void | output (std::ostream &outfile) |
Output for all elements. More... | |
void | output (std::ostream &outfile, const unsigned &n_plot) |
Output at f(n_plot) points in each element. More... | |
void | output (FILE *file_pt) |
Output for all elements (C-style output) More... | |
void | output (FILE *file_pt, const unsigned &nplot) |
Output at f(n_plot) points in each element (C-style output) More... | |
void | output (const std::string &output_filename) |
Output for all elements. More... | |
void | output (const std::string &output_filename, const unsigned &n_plot) |
Output at f(n_plot) points in each element. More... | |
void | output_fct (std::ostream &outfile, const unsigned &n_plot, FiniteElement::SteadyExactSolutionFctPt) |
Output a given Vector function at f(n_plot) points in each element. More... | |
void | output_fct (std::ostream &outfile, const unsigned &n_plot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt) |
void | output_boundaries (std::ostream &outfile) |
Output the nodes on the boundaries (into separate tecplot zones) More... | |
void | output_boundaries (const std::string &output_filename) |
void | assign_initial_values_impulsive () |
Assign initial values for an impulsive start. More... | |
void | shift_time_values () |
void | calculate_predictions () |
void | set_nodal_and_elemental_time_stepper (TimeStepper *const &time_stepper_pt, const bool &preserve_existing_data) |
virtual void | set_mesh_level_time_stepper (TimeStepper *const &time_stepper_pt, const bool &preserve_existing_data) |
void | set_consistent_pinned_values_for_continuation (ContinuationStorageScheme *const &continuation_stepper_pt) |
Set consistent values for pinned data in continuation. More... | |
bool | does_pointer_correspond_to_mesh_data (double *const ¶meter_pt) |
Does the double pointer correspond to any mesh data. More... | |
void | set_nodal_time_stepper (TimeStepper *const &time_stepper_pt, const bool &preserve_existing_data) |
Set the timestepper associated with the nodal data in the mesh. More... | |
void | set_elemental_internal_time_stepper (TimeStepper *const &time_stepper_pt, const bool &preserve_existing_data) |
virtual void | compute_norm (double &norm) |
virtual void | compute_norm (Vector< double > &norm) |
virtual void | compute_error (std::ostream &outfile, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, double &error, double &norm) |
virtual void | compute_error (std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error, double &norm) |
virtual void | compute_error (FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error, double &norm) |
virtual void | compute_error (FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, Vector< double > &error, Vector< double > &norm) |
virtual void | compute_error (std::ostream &outfile, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, Vector< double > &error, Vector< double > &norm) |
virtual void | compute_error (std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, Vector< double > &error, Vector< double > &norm) |
virtual void | compute_error (FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, double &error, double &norm) |
Returns the norm of the error and that of the exact solution. More... | |
virtual void | compute_error (FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, Vector< double > &error, Vector< double > &norm) |
bool | is_mesh_distributed () const |
Boolean to indicate if Mesh has been distributed. More... | |
OomphCommunicator * | communicator_pt () const |
void | delete_all_external_storage () |
Wipe the storage for all externally-based elements. More... | |
Protected Attributes | |
unsigned | Nglobal_face |
Storage for the number of global faces. More... | |
unsigned | Nglobal_edge |
Storage for the number of global edges. More... | |
Vector< unsigned > | Global_node |
Storage for global node numbers listed element-by-element. More... | |
std::vector< bool > | Edge_boundary |
Vector< Vector< unsigned > > | Face_boundary |
Vector< Vector< unsigned > > | Edge_index |
Vector of vectors containing the global edge index of. More... | |
Vector< Vector< unsigned > > | Face_index |
Vector of vectors containing the global edge index of. More... | |
Vector< double > | Element_attribute |
![]() | |
Vector< Vector< Node * > > | Boundary_node_pt |
bool | Lookup_for_elements_next_boundary_is_setup |
Vector< Vector< FiniteElement * > > | Boundary_element_pt |
Vector< Vector< int > > | Face_index_at_boundary |
Vector< Node * > | Node_pt |
Vector of pointers to nodes. More... | |
Vector< GeneralisedElement * > | Element_pt |
Vector of pointers to generalised elements. More... | |
std::vector< bool > | Boundary_coordinate_exists |
Additional Inherited Members | |
![]() | |
typedef void(FiniteElement::* | SteadyExactSolutionFctPt) (const Vector< double > &x, Vector< double > &soln) |
typedef void(FiniteElement::* | UnsteadyExactSolutionFctPt) (const double &time, const Vector< double > &x, Vector< double > &soln) |
![]() | |
static Steady< 0 > | Default_TimeStepper |
The Steady Timestepper. More... | |
static bool | Suppress_warning_about_empty_mesh_level_time_stepper_function |
Static boolean flag to control warning about mesh level timesteppers. More... | |
![]() | |
unsigned long | assign_global_eqn_numbers (Vector< double * > &Dof_pt) |
Assign (global) equation numbers to the nodes. More... | |
void | describe_dofs (std::ostream &out, const std::string ¤t_string) const |
void | describe_local_dofs (std::ostream &out, const std::string ¤t_string) const |
void | assign_local_eqn_numbers (const bool &store_local_dof_pt) |
Assign local equation numbers in all elements. More... | |
void | convert_to_boundary_node (Node *&node_pt, const Vector< FiniteElement * > &finite_element_pt) |
void | convert_to_boundary_node (Node *&node_pt) |
Mesh that is based on input files generated by the tetrahedra mesh generator tetgen.
oomph::TetgenScaffoldMesh::TetgenScaffoldMesh | ( | const std::string & | node_file_name, |
const std::string & | element_file_name, | ||
const std::string & | face_file_name | ||
) |
Constructor: Pass the filename of the tetrahedra file.
Constructor: Pass the filename of the tetrahedra file The assumptions are that the nodes have been assigned boundary information which is used in the nodal construction to make sure that BoundaryNodes are constructed. Any additional boundaries are determined from the face boundary information.
References oomph::Mesh::add_boundary_node(), oomph::FiniteElement::construct_boundary_node(), oomph::FiniteElement::construct_node(), e(), Edge_boundary, Edge_index, Element_attribute, oomph::Mesh::Element_pt, Eigen::placeholders::end, face_boundary(), Face_boundary, Face_index, oomph::Mesh::finite_element_pt(), Global_node, global_node_number(), i, j, k, Nglobal_edge, Nglobal_face, oomph::FiniteElement::node_pt(), oomph::Mesh::Node_pt, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::Mesh::set_nboundary(), and oomph::Global_string_for_annotation::string().
oomph::TetgenScaffoldMesh::TetgenScaffoldMesh | ( | tetgenio & | tetgen_data | ) |
Constructor using direct tetgenio object.
Constructor: Pass a tetgenio data structure that represents the input data of the mesh. The assumptions are that the nodes have been assigned boundary information which is used in the nodal construction to make sure that BoundaryNodes are constructed. Any additional boundaries are determined from the face boundary information.
References oomph::Mesh::add_boundary_node(), oomph::FiniteElement::construct_boundary_node(), oomph::FiniteElement::construct_node(), e(), Edge_boundary, Edge_index, Element_attribute, oomph::Mesh::Element_pt, Eigen::placeholders::end, face_boundary(), Face_boundary, Face_index, oomph::Mesh::finite_element_pt(), Global_node, global_node_number(), i, j, k, Nglobal_edge, Nglobal_face, oomph::FiniteElement::node_pt(), oomph::Mesh::Node_pt, tetgenio::numberofcorners, tetgenio::numberofpoints, tetgenio::numberoftetrahedra, tetgenio::numberoftetrahedronattributes, tetgenio::numberoftrifaces, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, tetgenio::pointlist, tetgenio::pointmarkerlist, oomph::Mesh::set_nboundary(), tetgenio::tetrahedronattributelist, tetgenio::tetrahedronlist, tetgenio::trifacelist, and tetgenio::trifacemarkerlist.
Return a boolean indicating whether the i-th global edge is on a boundary
References Edge_boundary, and i.
|
inline |
Return the global index of the i-th edge in the e-th element: The global index starts from zero
References e(), Edge_index, and i.
Return the attribute of the element e. NOTE: Attributes are doubles because tetgen forces us to! We only use them for region IDs
References e(), and Element_attribute.
|
inline |
Return the boundary id of the i-th face in the e-th element: This is zero-based as in tetgen. Zero means the face is not on a boundary. Postive numbers identify the boundary. Will be reduced by one to identify the oomph-lib boundary.
References e(), Face_boundary, and i.
Referenced by TetgenScaffoldMesh().
|
inline |
Return the global index of the i-th face in the e-th element: The global index starts from zero
References e(), Face_index, and i.
Return the global node of each local node listed element-by-element e*n_local_node + n_local Note that the node numbers are indexed from 1
References Global_node, and i.
Referenced by TetgenScaffoldMesh().
|
inline |
|
inline |
|
protected |
Vector of booleans to indicate whether a global edge lies on a boundary
Referenced by edge_boundary(), and TetgenScaffoldMesh().
Vector of vectors containing the global edge index of.
Referenced by edge_index(), and TetgenScaffoldMesh().
Vector of double attributes for each element. NOTE: This stores doubles because tetgen forces us to! We only use it for region IDs
Referenced by element_attribute(), and TetgenScaffoldMesh().
Vector of vectors containing the boundary ids of the elements' faces
Referenced by face_boundary(), and TetgenScaffoldMesh().
Vector of vectors containing the global edge index of.
Referenced by face_index(), and TetgenScaffoldMesh().
Storage for global node numbers listed element-by-element.
Referenced by global_node_number(), and TetgenScaffoldMesh().
|
protected |
Storage for the number of global edges.
Referenced by nglobal_edge(), and TetgenScaffoldMesh().
|
protected |
Storage for the number of global faces.
Referenced by nglobal_face(), and TetgenScaffoldMesh().