![]() |
|
Base class for tet meshes (meshes made of 3D tet elements). More...
#include <tet_mesh.h>
Public Member Functions | |
TetMeshBase () | |
Constructor. More... | |
TetMeshBase (const TetMeshBase &node)=delete | |
Broken copy constructor. More... | |
void | operator= (const TetMeshBase &)=delete |
Broken assignment operator. More... | |
virtual | ~TetMeshBase () |
Destructor (empty) More... | |
void | assess_mesh_quality (std::ofstream &some_file) |
template<class ELEMENT > | |
void | setup_boundary_coordinates (const unsigned &b) |
template<class ELEMENT > | |
void | setup_boundary_coordinates (const unsigned &b, const bool &switch_normal) |
template<class ELEMENT > | |
void | setup_boundary_coordinates (const unsigned &b, const bool &switch_normal, std::ofstream &outfile) |
template<class ELEMENT > | |
void | setup_boundary_coordinates (const unsigned &b, std::ofstream &outfile) |
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... | |
unsigned | nregion () |
Return the number of regions specified by attributes. More... | |
unsigned | nregion_element (const unsigned &r) |
Return the number of elements in region r. More... | |
double | region_attribute (const unsigned &i) |
FiniteElement * | region_element_pt (const unsigned &r, const unsigned &e) |
Return the e-th element in the r-th region. More... | |
template<class ELEMENT > | |
void | snap_to_quadratic_surface (const Vector< unsigned > &boundary_id, const std::string &quadratic_surface_file_name, const bool &switch_normal, DocInfo &doc_info) |
template<class ELEMENT > | |
void | snap_to_quadratic_surface (const Vector< unsigned > &boundary_id, const std::string &quadratic_surface_file_name, const bool &switch_normal) |
void | snap_nodes_onto_geometric_objects () |
template<class ELEMENT > | |
void | split_elements_in_corners (TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) |
void | setup_boundary_element_info () |
void | setup_boundary_element_info (std::ostream &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... | |
Static Public Attributes | |
static double | Tolerance_for_boundary_finding = 1.0e-5 |
![]() | |
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... | |
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) |
![]() | |
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) |
Base class for tet meshes (meshes made of 3D tet elements).
//////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
|
inline |
Constructor.
|
delete |
Broken copy constructor.
void oomph::TetMeshBase::assess_mesh_quality | ( | std::ofstream & | some_file | ) |
Assess mesh quality: Ratio of max. edge length to min. height, so if it's very large it's BAAAAAD.
References e(), boost::multiprecision::fabs(), oomph::Mesh::finite_element_pt(), Global_Physical_Variables::height(), i, j, oomph::Mesh::nelement(), oomph::FiniteElement::node_pt(), WallFunction::normal(), oomph::oomph_info, sqrt(), and oomph::Node::x().
|
inline |
Return pointer to the e-th element adjacent to boundary b in region r.
References b, Boundary_region_element_pt, e(), Eigen::placeholders::end, and UniformPSDSelfTest::r.
Referenced by oomph::RefineableTetgenMesh< ELEMENT >::adapt(), and oomph::RefineableGmshTetMesh< ELEMENT >::adapt().
|
inline |
Return face index of the e-th element adjacent to boundary b in region r.
References b, e(), Eigen::placeholders::end, Face_index_region_at_boundary, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and UniformPSDSelfTest::r.
Referenced by oomph::RefineableTetgenMesh< ELEMENT >::adapt(), and oomph::RefineableGmshTetMesh< ELEMENT >::adapt().
|
inline |
Return the number of elements adjacent to boundary b in region r.
References b, Boundary_region_element_pt, Eigen::placeholders::end, and UniformPSDSelfTest::r.
Referenced by oomph::RefineableTetgenMesh< ELEMENT >::adapt(), and oomph::RefineableGmshTetMesh< ELEMENT >::adapt().
|
inline |
Return the number of regions specified by attributes.
References Region_element_pt.
Referenced by oomph::RefineableTetgenMesh< ELEMENT >::adapt(), and oomph::RefineableGmshTetMesh< ELEMENT >::adapt().
Return the number of elements in region r.
References boost::multiprecision::fabs(), MergeRestartFiles::found, i, n, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, UniformPSDSelfTest::r, Region_attribute, and Region_element_pt.
Referenced by oomph::RefineableTetgenMesh< ELEMENT >::adapt(), and oomph::RefineableGmshTetMesh< ELEMENT >::adapt().
|
delete |
Broken assignment operator.
Return the i-th region attribute (here only used as the (assumed to be unsigned) region id
References i, and Region_attribute.
Referenced by oomph::RefineableTetgenMesh< ELEMENT >::adapt(), and oomph::RefineableGmshTetMesh< ELEMENT >::adapt().
|
inline |
Return the e-th element in the r-th region.
References e(), boost::multiprecision::fabs(), MergeRestartFiles::found, i, n, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, UniformPSDSelfTest::r, Region_attribute, and Region_element_pt.
Referenced by oomph::RefineableTetgenMesh< ELEMENT >::adapt(), and oomph::RefineableGmshTetMesh< ELEMENT >::adapt().
|
inline |
Setup boundary coordinate on boundary b which is assumed to be planar. Boundary coordinates are the x-y coordinates in the plane of that boundary, with the x-axis along the line from the (lexicographically) "lower left" to the "upper right" node. The y axis is obtained by taking the cross-product of the positive x direction with the outer unit normal computed by the face elements (or its negative if switch_normal is set to true). Doc faces in output file (if it's open).
Note 1: Setup of boundary coordinates is not done if the boundary in question turns out to be nonplanar.
Note 2: If a triangular TetMeshFacet is associated with a boundary we also store the boundary coordinates of its vertices. They are needed to interpolated intrinsic coordinates of an associated GeomObject (if any) into the interior.
References b.
|
inline |
Setup boundary coordinate on boundary b which is assumed to be planar. Boundary coordinates are the x-y coordinates in the plane of that boundary, with the x-axis along the line from the (lexicographically) "lower left" to the "upper right" node. The y axis is obtained by taking the cross-product of the positive x direction with the outer unit normal computed by the face elements (or its negative if switch_normal is set to true). Doc faces in output file (if it's open).
Note 1: Setup of boundary coordinates is not done if the boundary in question turns out to be nonplanar.
Note 2: If a triangular TetMeshFacet is associated with a boundary we also store the boundary coordinates of its vertices. They are needed to interpolated intrinsic coordinates of an associated GeomObject (if any) into the interior. Final boolean argument allows switching of the direction of the outer unit normal.
References b.
void oomph::TetMeshBase::setup_boundary_coordinates | ( | const unsigned & | b, |
const bool & | switch_normal, | ||
std::ofstream & | outfile | ||
) |
Setup boundary coordinate on boundary b which is assumed to be planar. Boundary coordinates are the x-y coordinates in the plane of that boundary, with the x-axis along the line from the (lexicographically) "lower left" to the "upper right" node. The y axis is obtained by taking the cross-product of the positive x direction with the outer unit normal computed by the face elements (or its negative if switch_normal is set to true). Doc faces in output file (if it's open).
Note 1: Setup of boundary coordinates is not done if the boundary in question turns out to be nonplanar.
Note 2: If a triangular TetMeshFacet is associated with a boundary we also store the boundary coordinates of its vertices. They are needed to interpolated intrinsic coordinates of an associated GeomObject (if any) into the interior. Boolean argument allows switching of the direction of the outer unit normal. Output file for doc.
/////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// Setup boundary coordinate on boundary b which is assumed to be planar. Boundary coordinates are the x-y coordinates in the plane of that boundary, with the x-axis along the line from the (lexicographically) "lower left" to the "upper right" node. The y axis is obtained by taking the cross-product of the positive x direction with the outer unit normal computed by the face elements (or its negative if switch_normal is set to true). Doc faces in output file (if it's open).
Note 1: Setup of boundary coordinates is not done if the boundary in question turns out to be nonplanar.
Note 2: If a triangular TetMeshFacet is associated with a boundary we also store the boundary coordinates of its vertices. They are needed to interpolated intrinsic coordinates of an associated GeomObject (if any) into the interior.
References abs(), b, oomph::Mesh::Boundary_coordinate_exists, oomph::Mesh::boundary_element_pt(), oomph::Mesh::boundary_node_pt(), MultiOpt::delta, e(), calibrate::error, oomph::Mesh::face_index_at_boundary(), j, n, oomph::Mesh::nboundary_element(), oomph::Mesh::nboundary_node(), WallFunction::normal(), oomph::TetMeshFacet::nvertex(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, Eigen::bfloat16_impl::pow(), s, oomph::Node::set_coordinates_on_boundary(), sqrt(), Tet_mesh_facet_pt, Tolerance_for_boundary_finding, Triangular_facet_vertex_boundary_coordinate, oomph::TetMeshFacet::vertex_pt(), oomph::Node::x(), oomph::TetMeshVertex::x(), and Eigen::zeta().
|
inline |
Setup boundary coordinate on boundary b which is assumed to be planar. Boundary coordinates are the x-y coordinates in the plane of that boundary, with the x-axis along the line from the (lexicographically) "lower left" to the "upper right" node. The y axis is obtained by taking the cross-product of the positive x direction with the outer unit normal computed by the face elements (or its negative if switch_normal is set to true). Doc faces in output file (if it's open).
Note 1: Setup of boundary coordinates is not done if the boundary in question turns out to be nonplanar.
Note 2: If a triangular TetMeshFacet is associated with a boundary we also store the boundary coordinates of its vertices. They are needed to interpolated intrinsic coordinates of an associated GeomObject (if any) into the interior. Output file for doc.
References b.
|
inlinevirtual |
Setup lookup schemes which establish which elements are located next to mesh's boundaries (wrapper to suppress doc).
Reimplemented from oomph::Mesh.
Referenced by split_elements_in_corners().
|
virtual |
Setup lookup schemes which establish which elements are located next to mesh's boundaries. Doc in outfile (if it's open).
Setup lookup schemes which establish which elements are located next to which boundaries (Doc to outfile if it's open).
Reimplemented from oomph::Mesh.
References oomph::Mesh::Boundary_element_pt, oomph::FiniteElement::dim(), e(), Eigen::placeholders::end, oomph::Mesh::Face_index_at_boundary, oomph::Mesh::finite_element_pt(), oomph::Node::get_boundaries_pt(), i, oomph::Mesh::Lookup_for_elements_next_boundary_is_setup, oomph::Mesh::nboundary(), oomph::Mesh::nelement(), oomph::FiniteElement::node_pt(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and oomph::FiniteElement::output().
void oomph::TetMeshBase::snap_nodes_onto_geometric_objects | ( | ) |
Move the nodes on boundaries with associated GeomObjects so that they exactly coincide with the geometric object. This requires that the boundary coordinates are set up consistently.
Move the nodes on boundaries with associated Geometric Objects (if any) so that they exactly coincide with the geometric object. This requires that the boundary coordinates are set up consistently
References b, oomph::Mesh::Boundary_coordinate_exists, oomph::Mesh::boundary_node_pt(), oomph::TetMeshFacetedSurface::boundary_zeta01(), oomph::TetMeshFacetedSurface::boundary_zeta12(), oomph::TetMeshFacetedSurface::boundary_zeta20(), oomph::FiniteElement::check_J_eulerian_at_knots(), e(), calibrate::error, f(), oomph::TetMeshFacetedSurface::facet_pt(), MergeRestartFiles::filename, oomph::Mesh::finite_element_pt(), oomph::TetMeshFacetedSurface::geom_object_with_boundaries_pt(), oomph::Node::get_coordinates_on_boundary(), i, j, n, oomph::Mesh::nboundary(), oomph::Mesh::nboundary_node(), oomph::Mesh::nelement(), oomph::TetMeshFacetedSurface::nfacet(), oomph::FiniteElement::nnode(), oomph::Mesh::nnode(), oomph::FiniteElement::nnode_1d(), oomph::FiniteElement::node_pt(), oomph::Mesh::node_pt(), oomph::TimeStepper::nprev_values(), oomph::TetMeshFacet::nvertex(), oomph::TetMeshFacetedSurface::one_based_facet_boundary_id(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::oomph_info, oomph::FiniteElement::output(), oomph::GeomObject::position(), oomph::Node::position(), oomph::Node::position_time_stepper_pt(), Eigen::bfloat16_impl::pow(), size, sqrt(), plotPSD::t, Tet_mesh_faceted_surface_pt, Triangular_facet_vertex_boundary_coordinate, v, oomph::TetMeshFacet::vertex_pt(), plotDoE::x, oomph::Node::x(), Global_parameters::x1(), Global_parameters::x2(), Eigen::zeta(), and oomph::TetMeshVertex::zeta_in_geom_object().
Referenced by oomph::GmshTetMesh< ELEMENT >::build_it(), oomph::RefineableTetgenMesh< ELEMENT >::RefineableTetgenMesh(), and oomph::TetgenMesh< ELEMENT >::TetgenMesh().
|
inline |
Snap boundaries specified by the IDs listed in boundary_id to a quadratric surface, specified in the file quadratic_surface_file_name. This is usually used with vmtk-based meshes for which oomph-lib's xda to poly conversion code produces the files "quadratic_fsi_boundary.dat" and "quadratic_outer_solid_boundary.dat" which specify the quadratic FSI boundary (for the fluid and the solid) and the quadratic representation of the outer boundary of the solid. When used with these files, the flag switch_normal should be set to true when calling the function for the outer boundary of the solid.
References oomph::DocInfo::disable_doc().
void oomph::TetMeshBase::snap_to_quadratic_surface | ( | const Vector< unsigned > & | boundary_id, |
const std::string & | quadratic_surface_file_name, | ||
const bool & | switch_normal, | ||
DocInfo & | doc_info | ||
) |
Snap boundaries specified by the IDs listed in boundary_id to a quadratric surface, specified in the file quadratic_surface_file_name. This is usually used with vmtk-based meshes for which oomph-lib's xda to poly conversion code produces the files "quadratic_fsi_boundary.dat" and "quadratic_outer_solid_boundary.dat" which specify the quadratic FSI boundary (for the fluid and the solid) and the quadratic representation of the outer boundary of the solid. When used with these files, the flag switch_normal should be set to true when calling the function for the outer boundary of the solid. The DocInfo object can be used to label optional output files. (Uses directory and label).
References b, oomph::Mesh::boundary_element_pt(), MultiOpt::delta, oomph::DocInfo::directory(), e(), calibrate::error, MergeRestartFiles::filename, oomph::Node::get_coordinates_on_boundary(), i, oomph::DocInfo::is_doc_enabled(), oomph::Node::is_on_boundary(), j, oomph::DocInfo::label(), oomph::Mesh::nboundary_element(), oomph::FiniteElement::nnode(), oomph::FiniteElement::node_pt(), WallFunction::normal(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::GeomObject::position(), Eigen::bfloat16_impl::pow(), s, oomph::Node::set_coordinates_on_boundary(), sqrt(), oomph::Global_string_for_annotation::string(), Tolerance_for_boundary_finding, plotDoE::x, oomph::Node::x(), and Eigen::zeta().
void oomph::TetMeshBase::split_elements_in_corners | ( | TimeStepper * | time_stepper_pt = &Mesh::Default_TimeStepper | ) |
Non-Delaunay split elements that have three faces on a boundary into sons. Timestepper species timestepper for new nodes; defaults to to steady timestepper.
Non-delaunay split elements that have three faces on a boundary into sons.
References oomph::Mesh::add_node_pt(), b, oomph::Mesh::boundary_element_pt(), Boundary_region_element_pt, oomph::FiniteElement::construct_boundary_node(), oomph::FiniteElement::construct_node(), e(), oomph::Mesh::Element_pt, Eigen::placeholders::end, oomph::Mesh::face_index_at_boundary(), Face_index_region_at_boundary, oomph::Mesh::finite_element_pt(), MergeRestartFiles::found, i, j, oomph::Mesh::Lookup_for_elements_next_boundary_is_setup, nb, oomph::Mesh::nboundary(), oomph::Mesh::nboundary_element(), oomph::Mesh::nelement(), oomph::FiniteElement::nnode(), oomph::Mesh::nnode(), oomph::FiniteElement::nnode_1d(), oomph::FiniteElement::node_pt(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::oomph_info, Region_attribute, Region_element_pt, setup_boundary_element_info(), and oomph::Node::x().
|
protected |
Storage for elements adjacent to a boundary in a particular region.
Referenced by boundary_element_in_region_pt(), oomph::GmshTetMesh< ELEMENT >::build_from_scaffold(), nboundary_element_in_region(), and split_elements_in_corners().
|
protected |
Storage for the face index adjacent to a boundary in a particular region
Referenced by oomph::GmshTetMesh< ELEMENT >::build_from_scaffold(), face_index_at_boundary_in_region(), and split_elements_in_corners().
|
protected |
Vector to faceted surfaces that define internal boundaries.
Referenced by oomph::GmshTetMesh< ELEMENT >::build_it(), oomph::RefineableTetgenMesh< ELEMENT >::RefineableTetgenMesh(), and oomph::TetgenMesh< ELEMENT >::TetgenMesh().
|
protected |
Faceted surface that defines outer boundaries.
Referenced by oomph::GmshTetMesh< ELEMENT >::build_it(), oomph::RefineableTetgenMesh< ELEMENT >::RefineableTetgenMesh(), and oomph::TetgenMesh< ELEMENT >::TetgenMesh().
Vector of attributes associated with the elements in each region NOTE: double is enforced on us by tetgen. We use it as an unsigned to indicate the actual (zero-based) region ID
Referenced by oomph::GmshTetMesh< ELEMENT >::build_from_scaffold(), oomph::GmshTetScaffoldMesh::create_mesh_from_msh_file(), nregion_element(), region_attribute(), region_element_pt(), and split_elements_in_corners().
|
protected |
Vectors of vectors of elements in each region (note: this just stores them; the region IDs are contained in Region_attribute!)
Referenced by oomph::GmshTetMesh< ELEMENT >::build_from_scaffold(), oomph::GmshTetScaffoldMesh::create_mesh_from_msh_file(), nregion(), nregion_element(), region_element_pt(), and split_elements_in_corners().
|
protected |
Reverse lookup scheme: Pointer to facet (if any!) associated with boundary b
Referenced by oomph::GmshTetMesh< ELEMENT >::build_it(), and setup_boundary_coordinates().
|
protected |
Reverse lookup scheme: Pointer to faceted surface (if any!) associated with boundary b
Referenced by oomph::GmshTetMesh< ELEMENT >::build_it(), and snap_nodes_onto_geometric_objects().
|
protected |
Timestepper used to build nodes.
Referenced by oomph::GmshTetMesh< ELEMENT >::build_it(), oomph::RefineableTetgenMesh< ELEMENT >::RefineableTetgenMesh(), oomph::TetgenMesh< ELEMENT >::set_mesh_level_time_stepper(), and oomph::TetgenMesh< ELEMENT >::TetgenMesh().
|
static |
Global static data that specifies the permitted error in the setup of the boundary coordinates
Referenced by setup_boundary_coordinates(), and snap_to_quadratic_surface().
|
protected |
Boundary coordinates of vertices in triangular facets associated with given boundary. Is only set up for triangular facets!
Referenced by setup_boundary_coordinates(), and snap_nodes_onto_geometric_objects().