Go to the documentation of this file.
   20 #include "libmesh/cell_tet.h" 
   21 #include "libmesh/cell_tet4.h" 
   22 #include "libmesh/face_tri3.h" 
   23 #include "libmesh/enum_elem_quality.h" 
   56   libmesh_assert_less (s, this->
n_sides());
 
   66                                   unsigned int side_node)
 const 
   68   libmesh_assert_less (side, this->
n_sides());
 
   69   libmesh_assert_less (side_node, 3);
 
   78   libmesh_assert_less (i, this->
n_sides());
 
   80   std::unique_ptr<Elem> face = libmesh_make_unique<Tri3>();
 
   82   for (
auto n : face->node_index_range())
 
   93   this->simple_side_ptr<Tet,Tet4>(side, i, 
TRI3);
 
  108 #ifdef LIBMESH_ENABLE_AMR 
  112                                   const unsigned int s,
 
  113                                   const unsigned int checked_nodes[][3])
 const 
  116   libmesh_assert_less (s, this->
n_sides());
 
  120   for (
unsigned int i = 0; i != 3; ++i)
 
  135   const unsigned int node_facing_side[4] = {3, 2, 0, 1};
 
  136   const unsigned int n = node_facing_side[s];
 
  141   Real embedding_sum = 0.;
 
  142   for (
unsigned i=0; i<3; ++i)
 
  145   return ( 
std::abs(embedding_sum) < 1.e-3 );
 
  152                                   const unsigned int [][3])
 const 
  154   libmesh_not_implemented();
 
  158 #endif //LIBMESH_ENABLE_AMR 
  174       if (diag_01_23 < diag_02_13 || diag_03_12 < diag_02_13)
 
  176           if (diag_01_23 < diag_03_12)
 
  188                           const unsigned int s)
 const 
  190   libmesh_assert_less (e, this->
n_edges());
 
  191   libmesh_assert_less (s, this->
n_sides());
 
  209   std::pair<Real, Real> bounds;
 
  238       bounds.second = 1.414;
 
  242       libMesh::out << 
"Warning: Invalid quality measure chosen." << std::endl;
 
  
static const unsigned int side_nodes_map[num_sides][nodes_per_side]
This maps the  node of the  side to element node numbers.
 
virtual bool is_node_on_side(const unsigned int n, const unsigned int s) const =0
 
static dof_id_type compute_key(dof_id_type n0)
 
virtual float embedding_matrix(const unsigned int child_num, const unsigned int child_node_num, const unsigned int parent_node_num) const =0
 
void choose_diagonal() const
Derived classes use this function to select an initial diagonal during refinement.
 
virtual std::pair< Real, Real > qual_bounds(const ElemQuality q) const override
 
virtual unsigned int n_children() const override final
 
The libMesh namespace provides an interface to certain functionality in the library.
 
void select_diagonal(const Diagonal diag) const
Allows the user to select the diagonal for the refinement.
 
virtual Real quality(const ElemQuality q) const override
 
bool is_child_on_side_helper(const unsigned int c, const unsigned int s, const unsigned int checked_nodes[][3]) const
Called by descendant classes with appropriate data to determine if child c is on side s.
 
const Point & point(const unsigned int i) const
 
MetaPhysicL::DualNumber< T, D > abs(const MetaPhysicL::DualNumber< T, D > &in)
 
virtual dof_id_type key() const
 
virtual Real quality(const ElemQuality q) const
 
virtual bool is_edge_on_side(const unsigned int e, const unsigned int s) const override final
 
virtual unsigned int which_node_am_i(unsigned int side, unsigned int side_node) const override
 
ElemQuality
Defines an enum for element quality metrics.
 
Diagonal _diagonal_selection
The currently-selected diagonal used during refinement.
 
virtual std::unique_ptr< Elem > side_ptr(const unsigned int i) override final
 
virtual unsigned int n_sides() const override final
 
virtual unsigned int n_edges() const override final
 
dof_id_type node_id(const unsigned int i) const
 
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
 
const Node * node_ptr(const unsigned int i) const
 
static const Real _master_points[10][3]
Master element node locations.
 
Diagonal
This enumeration keeps track of which diagonal is selected during refinement.
 
static const unsigned int edge_nodes_map[num_edges][nodes_per_edge]
This maps the  node of the  edge to element node numbers.