![]() |
|
#include <quad_from_triangle_mesh.template.h>
Public Member Functions | |
QuadFromTriangleMesh () | |
Empty constructor. More... | |
QuadFromTriangleMesh (const std::string &node_file_name, const std::string &element_file_name, const std::string &poly_file_name, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper, const bool &use_attributes=false, const bool &allow_automatic_creation_of_vertices_on_boundaries=true) | |
Constructor with the input files. More... | |
QuadFromTriangleMesh (const QuadFromTriangleMesh &dummy)=delete | |
Broken copy constructor. More... | |
void | operator= (const QuadFromTriangleMesh &)=delete |
Broken assignment operator. More... | |
~QuadFromTriangleMesh () | |
Empty destructor. More... | |
void | build_from_scaffold (TriangleScaffoldMesh *tmp_mesh_pt, TimeStepper *time_stepper_pt, const bool &use_attributes) |
Build the quad mesh from the given scaffold mesh. More... | |
![]() | |
UnstructuredTwoDMeshGeometryBase () | |
Empty constructor. More... | |
UnstructuredTwoDMeshGeometryBase (const UnstructuredTwoDMeshGeometryBase &dummy)=delete | |
Broken copy constructor. More... | |
void | operator= (const UnstructuredTwoDMeshGeometryBase &)=delete |
Broken assignment operator. More... | |
~UnstructuredTwoDMeshGeometryBase () | |
Empty destructor. More... | |
unsigned | nregion () |
Return the number of regions specified by attributes. More... | |
unsigned | nregion_element (const unsigned &i) |
Return the number of elements in the i-th region. More... | |
FiniteElement * | region_element_pt (const unsigned &i, const unsigned &e) |
Return the e-th element in the i-th region. More... | |
unsigned | nregion_attribute () |
Return the number of attributes used in the mesh. More... | |
double | region_attribute (const unsigned &i) |
Return the attribute associated with region i. More... | |
GeomObject * | boundary_geom_object_pt (const unsigned &b) |
std::map< unsigned, GeomObject * > & | boundary_geom_object_pt () |
Return direct access to the geometric object storage. More... | |
std::map< unsigned, Vector< double > > & | boundary_coordinate_limits () |
Vector< double > & | boundary_coordinate_limits (const unsigned &b) |
unsigned | nboundary_element_in_region (const unsigned &b, const unsigned &r) const |
Return the number of elements adjacent to boundary b in region r. More... | |
FiniteElement * | boundary_element_in_region_pt (const unsigned &b, const unsigned &r, const unsigned &e) const |
Return pointer to the e-th element adjacent to boundary b in region r. More... | |
int | face_index_at_boundary_in_region (const unsigned &b, const unsigned &r, const unsigned &e) const |
Return face index of the e-th element adjacent to boundary b in region r. More... | |
TriangleMeshPolyLine * | boundary_polyline_pt (const unsigned &b) |
std::map< unsigned, std::set< Node * > > & | nodes_on_boundary_pt () |
const bool | get_connected_vertex_number_on_destination_polyline (TriangleMeshPolyLine *dst_polyline_pt, Vector< double > &vertex_coordinates, unsigned &vertex_number) |
void | check_contiguousness_on_polylines_helper (Vector< TriangleMeshPolyLine * > &polylines_pt, unsigned &index) |
void | check_contiguousness_on_polylines_helper (Vector< TriangleMeshPolyLine * > &polylines_pt, unsigned &index_halo_start, unsigned &index_halo_end) |
bool | is_point_inside_polygon_helper (Vector< Vector< double >> polygon_vertices, Vector< double > point) |
Helper function that checks if a given point is inside a polygon. More... | |
void | enable_automatic_creation_of_vertices_on_boundaries () |
void | disable_automatic_creation_of_vertices_on_boundaries () |
bool | is_automatic_creation_of_vertices_on_boundaries_allowed () |
template<class ELEMENT > | |
void | setup_boundary_coordinates (const unsigned &b) |
template<class ELEMENT > | |
void | setup_boundary_coordinates (const unsigned &b, std::ofstream &outfile) |
![]() | |
Mesh () | |
Default constructor. More... | |
Mesh (const Vector< Mesh * > &sub_mesh_pt) | |
void | merge_meshes (const Vector< Mesh * > &sub_mesh_pt) |
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... | |
![]() | |
QuadMeshBase () | |
Constructor (empty) More... | |
QuadMeshBase (const QuadMeshBase &node)=delete | |
Broken copy constructor. More... | |
void | operator= (const QuadMeshBase &)=delete |
Broken assignment operator. More... | |
virtual | ~QuadMeshBase () |
Destructor (empty) More... | |
void | setup_boundary_element_info () |
void | setup_boundary_element_info (std::ostream &outfile) |
Public Attributes | |
TimeStepper * | Time_stepper_pt |
Timestepper used to build elements. More... | |
bool | Use_attributes |
Quad mesh built on top of triangle scaffold mesh coming from the triangle mesh generator Triangle. http://www.cs.cmu.edu/~quake/triangle.html
|
inline |
Empty constructor.
References oomph::UnstructuredTwoDMeshGeometryBase::Allow_automatic_creation_of_vertices_on_boundaries.
|
inline |
Constructor with the input files.
References oomph::UnstructuredTwoDMeshGeometryBase::Allow_automatic_creation_of_vertices_on_boundaries, oomph::QuadFromTriangleMesh< ELEMENT >::build_from_scaffold(), oomph::Mesh::nboundary(), oomph::QuadFromTriangleMesh< ELEMENT >::Time_stepper_pt, and oomph::QuadFromTriangleMesh< ELEMENT >::Use_attributes.
|
delete |
Broken copy constructor.
|
inline |
Empty destructor.
References oomph::UnstructuredTwoDMeshGeometryBase::Free_curve_section_pt, oomph::UnstructuredTwoDMeshGeometryBase::Free_open_curve_pt, and oomph::UnstructuredTwoDMeshGeometryBase::Free_polygon_pt.
void oomph::QuadFromTriangleMesh< ELEMENT >::build_from_scaffold | ( | TriangleScaffoldMesh * | tmp_mesh_pt, |
TimeStepper * | time_stepper_pt, | ||
const bool & | use_attributes | ||
) |
Build the quad mesh from the given scaffold mesh.
Build the full mesh with the help of the scaffold mesh coming from the triangle mesh generator, Triangle. To build this quad element based mesh we make use of the fact that a triangle element can be split as shown in the diagram below:
N2 | | N0 : 1st scaffold element node | | N1 : 2nd scaffold element node | | N2 : 3rd scaffold element node | | C | Q_2 | B Edge 0 : N0 --> N1 | | | | Edge 1 : N1 --> N2 | | | | Edge 2 : N2 --> N0 | | | | | | | | A : Midpoint of edge 0 | Q_0 | Q_1 | B : Midpoint of edge 1 | | | C : Midpoint of edge 2 | | | N0 __________|__________ N1 A
The intersection of all three quad elements is the centroid. Using this splitting, the subsequent mesh will consist of quadrilaterals whose shape which depend on the structure of the underlying mesh.
References e(), oomph::TriangleScaffoldMesh::edge_boundary(), oomph::Mesh::finite_element_pt(), oomph::Node::get_boundaries_pt(), j, k, oomph::Mesh::nboundary(), oomph::Mesh::nelement(), oomph::FiniteElement::node_pt(), s, plotDoE::x, oomph::Node::x(), and y.
Referenced by oomph::QuadFromTriangleMesh< ELEMENT >::QuadFromTriangleMesh().
|
delete |
Broken assignment operator.
TimeStepper* oomph::QuadFromTriangleMesh< ELEMENT >::Time_stepper_pt |
Timestepper used to build elements.
Referenced by oomph::QuadFromTriangleMesh< ELEMENT >::QuadFromTriangleMesh().
bool oomph::QuadFromTriangleMesh< ELEMENT >::Use_attributes |
Boolean flag to indicate whether to use attributes or not (required for multidomain meshes)
Referenced by oomph::QuadFromTriangleMesh< ELEMENT >::QuadFromTriangleMesh().