libMesh
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | Friends | List of all members
libMesh::FE< Dim, T > Class Template Reference

A specific instantiation of the FEBase class. More...

#include <fe.h>

Inheritance diagram for libMesh::FE< Dim, T >:
[legend]

Public Types

typedef FEGenericBase< typename FEOutputType< T >::type >::OutputShape OutputShape
 
typedef TensorTools::IncrementRank< OutputShape >::type OutputGradient
 
typedef TensorTools::IncrementRank< OutputGradient >::type OutputTensor
 
typedef TensorTools::DecrementRank< OutputShape >::type OutputDivergence
 
typedef TensorTools::MakeNumber< OutputShape >::type OutputNumber
 
typedef TensorTools::IncrementRank< OutputNumber >::type OutputNumberGradient
 
typedef TensorTools::IncrementRank< OutputNumberGradient >::type OutputNumberTensor
 
typedef TensorTools::DecrementRank< OutputNumber >::type OutputNumberDivergence
 

Public Member Functions

 FE (const FEType &fet)
 Constructor. More...
 
virtual unsigned int n_shape_functions () const libmesh_override
 
virtual FEContinuity get_continuity () const libmesh_override
 
virtual bool is_hierarchic () const libmesh_override
 
virtual void reinit (const Elem *elem, const std::vector< Point > *const pts=libmesh_nullptr, const std::vector< Real > *const weights=libmesh_nullptr) libmesh_override
 This is at the core of this class. More...
 
virtual void reinit (const Elem *elem, const unsigned int side, const Real tolerance=TOLERANCE, const std::vector< Point > *const pts=libmesh_nullptr, const std::vector< Real > *const weights=libmesh_nullptr) libmesh_override
 Reinitializes all the physical element-dependent data based on the side of face. More...
 
virtual void edge_reinit (const Elem *elem, const unsigned int edge, const Real tolerance=TOLERANCE, const std::vector< Point > *const pts=libmesh_nullptr, const std::vector< Real > *const weights=libmesh_nullptr) libmesh_override
 Reinitializes all the physical element-dependent data based on the edge. More...
 
virtual void side_map (const Elem *elem, const Elem *side, const unsigned int s, const std::vector< Point > &reference_side_points, std::vector< Point > &reference_points) libmesh_override
 Computes the reference space quadrature points on the side of an element based on the side quadrature points. More...
 
virtual void attach_quadrature_rule (QBase *q) libmesh_override
 Provides the class with the quadrature rule, which provides the locations (on a reference element) where the shape functions are to be calculated. More...
 
virtual unsigned int n_quadrature_points () const libmesh_override
 
virtual bool shapes_need_reinit () const libmesh_override
 
template<>
Real shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 Subdivision finite elements. More...
 
template<>
Real shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
void compute_constraints (DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
 
template<>
void compute_constraints (DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
Real shape (const ElemType, const Order, const unsigned int libmesh_dbg_var(i), const Point &)
 
template<>
Real shape (const Elem *, const Order, const unsigned int libmesh_dbg_var(i), const Point &)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape (const ElemType, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape_deriv (const ElemType, const Order order, const unsigned int i, const unsigned int libmesh_dbg_var(j), const Point &p)
 
template<>
Real shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape (const ElemType, const Order, const unsigned int, const Point &)
 
template<>
Real shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape (const ElemType, const Order, const unsigned int, const Point &)
 
template<>
Real shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
void compute_constraints (DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
 
template<>
void compute_constraints (DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
Real shape (const ElemType, const Order, const unsigned int libmesh_dbg_var(i), const Point &)
 
template<>
Real shape (const Elem *, const Order, const unsigned int libmesh_dbg_var(i), const Point &)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape (const ElemType, const Order, const unsigned int, const Point &)
 
template<>
Real shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape (const ElemType, const Order, const unsigned int, const Point &)
 
template<>
Real shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape (const ElemType, const Order, const unsigned int, const Point &)
 
template<>
Real shape (const Elem *libmesh_dbg_var(elem), const Order, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *libmesh_dbg_var(elem), const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *libmesh_dbg_var(elem), const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
void compute_constraints (DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
 
template<>
void compute_constraints (DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
Real shape (const ElemType, const Order, const unsigned int libmesh_dbg_var(i), const Point &)
 
template<>
Real shape (const Elem *, const Order, const unsigned int libmesh_dbg_var(i), const Point &)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape (const ElemType, const Order, const unsigned int, const Point &)
 
template<>
Real shape (const Elem *elem, const Order libmesh_dbg_var(order), const unsigned int i, const Point &p)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *elem, const Order libmesh_dbg_var(order), const unsigned int i, const unsigned int, const Point &p)
 
template<>
Real shape_second_deriv (const Elem *elem, const Order libmesh_dbg_var(order), const unsigned int i, const unsigned int, const Point &p)
 
template<>
Real shape (const ElemType, const Order, const unsigned int, const Point &)
 
template<>
Real shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape (const ElemType, const Order, const unsigned int, const Point &)
 
template<>
Real shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
void compute_constraints (DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
 
template<>
void compute_constraints (DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
Real shape (const ElemType, const Order, const unsigned int libmesh_dbg_var(i), const Point &)
 
template<>
Real shape (const Elem *, const Order, const unsigned int libmesh_dbg_var(i), const Point &)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape (const ElemType, const Order libmesh_dbg_var(order), const unsigned int i, const Point &p)
 
template<>
Real shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape_deriv (const ElemType, const Order libmesh_dbg_var(order), const unsigned int i, const unsigned int libmesh_dbg_var(j), const Point &p)
 
template<>
Real shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const ElemType, const Order libmesh_dbg_var(order), const unsigned int i, const unsigned int libmesh_dbg_var(j), const Point &p)
 
template<>
Real shape_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape (const ElemType, const Order, const unsigned int, const Point &)
 
template<>
Real shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape (const ElemType, const Order, const unsigned int, const Point &)
 
template<>
Real shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_at_node (const ElemType, const Order, const unsigned int)
 
template<>
unsigned int n_dofs_at_node (const ElemType, const Order, const unsigned int)
 
template<>
unsigned int n_dofs_at_node (const ElemType, const Order, const unsigned int)
 
template<>
unsigned int n_dofs_at_node (const ElemType, const Order, const unsigned int)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
void compute_constraints (DofConstraints &, DofMap &, const unsigned int, const Elem *)
 
template<>
void compute_constraints (DofConstraints &, DofMap &, const unsigned int, const Elem *)
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
Real shape (const ElemType, const Order, const unsigned int libmesh_dbg_var(i), const Point &)
 
template<>
Real shape (const Elem *, const Order, const unsigned int libmesh_dbg_var(i), const Point &)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape (const ElemType, const Order libmesh_dbg_var(order), const unsigned int i, const Point &p)
 
template<>
Real shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape_deriv (const ElemType, const Order libmesh_dbg_var(order), const unsigned int i, const unsigned int libmesh_dbg_var(j), const Point &p)
 
template<>
Real shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const ElemType, const Order libmesh_dbg_var(order), const unsigned int i, const unsigned int libmesh_dbg_var(j), const Point &p)
 
template<>
Real shape_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape (const ElemType, const Order, const unsigned int, const Point &)
 
template<>
Real shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape (const ElemType, const Order, const unsigned int, const Point &)
 
template<>
Real shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_at_node (const ElemType, const Order, const unsigned int)
 
template<>
unsigned int n_dofs_at_node (const ElemType, const Order, const unsigned int)
 
template<>
unsigned int n_dofs_at_node (const ElemType, const Order, const unsigned int)
 
template<>
unsigned int n_dofs_at_node (const ElemType, const Order, const unsigned int)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
void compute_constraints (DofConstraints &, DofMap &, const unsigned int, const Elem *)
 
template<>
void compute_constraints (DofConstraints &, DofMap &, const unsigned int, const Elem *)
 
template<>
Real shape (const ElemType, const Order, const unsigned int libmesh_dbg_var(i), const Point &)
 
template<>
Real shape (const Elem *, const Order, const unsigned int libmesh_dbg_var(i), const Point &)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape (const ElemType, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape_deriv (const ElemType, const Order order, const unsigned int i, const unsigned int libmesh_dbg_var(j), const Point &p)
 
template<>
Real shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const ElemType, const Order order, const unsigned int i, const unsigned int libmesh_dbg_var(j), const Point &p)
 
template<>
Real shape_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape (const ElemType type, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape_deriv (const ElemType type, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const ElemType type, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape (const ElemType type, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape_deriv (const ElemType type, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const ElemType type, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_per_elem (const ElemType, const Order)
 
template<>
unsigned int n_dofs_per_elem (const ElemType, const Order)
 
template<>
unsigned int n_dofs_per_elem (const ElemType, const Order)
 
template<>
unsigned int n_dofs_per_elem (const ElemType, const Order)
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
void compute_constraints (DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
 
template<>
void compute_constraints (DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
 
template<>
Real shape (const ElemType, const Order, const unsigned int libmesh_dbg_var(i), const Point &)
 
template<>
Real shape (const Elem *, const Order, const unsigned int libmesh_dbg_var(i), const Point &)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape (const ElemType, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape_deriv (const ElemType, const Order order, const unsigned int i, const unsigned int libmesh_dbg_var(j), const Point &p)
 
template<>
Real shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const ElemType, const Order order, const unsigned int i, const unsigned int libmesh_dbg_var(j), const Point &p)
 
template<>
Real shape_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape (const ElemType type, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape_deriv (const ElemType type, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const ElemType type, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape (const ElemType type, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape_deriv (const ElemType type, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const ElemType type, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
RealGradient shape (const ElemType type, const Order order, const unsigned int i, const Point &p)
 
template<>
RealGradient shape_deriv (const ElemType type, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
RealGradient shape_second_deriv (const ElemType type, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
RealGradient shape (const ElemType type, const Order order, const unsigned int i, const Point &p)
 
template<>
RealGradient shape_deriv (const ElemType type, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
RealGradient shape_second_deriv (const ElemType type, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
RealGradient shape (const ElemType type, const Order order, const unsigned int i, const Point &p)
 
template<>
RealGradient shape_deriv (const ElemType type, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
RealGradient shape_second_deriv (const ElemType type, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
RealGradient shape (const ElemType type, const Order order, const unsigned int i, const Point &p)
 
template<>
RealGradient shape_deriv (const ElemType type, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
RealGradient shape_second_deriv (const ElemType type, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
RealGradient shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
RealGradient shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
RealGradient shape_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
RealGradient shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
RealGradient shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
RealGradient shape_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
RealGradient shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
RealGradient shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
RealGradient shape_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
RealGradient shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
RealGradient shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
RealGradient shape_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_per_elem (const ElemType, const Order)
 
template<>
unsigned int n_dofs_per_elem (const ElemType, const Order)
 
template<>
unsigned int n_dofs_per_elem (const ElemType, const Order)
 
template<>
unsigned int n_dofs_per_elem (const ElemType, const Order)
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
void compute_constraints (DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
 
template<>
void compute_constraints (DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_at_node (const ElemType, const Order, const unsigned int)
 
template<>
unsigned int n_dofs_at_node (const ElemType, const Order, const unsigned int)
 
template<>
unsigned int n_dofs_at_node (const ElemType, const Order, const unsigned int)
 
template<>
unsigned int n_dofs_at_node (const ElemType, const Order, const unsigned int)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
void compute_constraints (DofConstraints &, DofMap &, const unsigned int, const Elem *)
 
template<>
void compute_constraints (DofConstraints &, DofMap &, const unsigned int, const Elem *)
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
Real shape (const ElemType, const Order, const unsigned int libmesh_dbg_var(i), const Point &)
 
template<>
Real shape (const Elem *, const Order, const unsigned int libmesh_dbg_var(i), const Point &)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape (const ElemType, const Order libmesh_dbg_var(order), const unsigned int i, const Point &p)
 
template<>
Real shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape_deriv (const ElemType, const Order libmesh_dbg_var(order), const unsigned int i, const unsigned int libmesh_dbg_var(j), const Point &p)
 
template<>
Real shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const ElemType, const Order libmesh_dbg_var(order), const unsigned int i, const unsigned int libmesh_dbg_var(j), const Point &p)
 
template<>
Real shape_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape (const ElemType, const Order libmesh_dbg_var(order), const unsigned int i, const Point &p)
 
template<>
Real shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape_deriv (const ElemType, const Order libmesh_dbg_var(order), const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const ElemType, const Order libmesh_dbg_var(order), const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape (const ElemType, const Order libmesh_dbg_var(order), const unsigned int i, const Point &p)
 
template<>
Real shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape_deriv (const ElemType, const Order libmesh_dbg_var(order), const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const ElemType, const Order libmesh_dbg_var(order), const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
void nodal_soln (const Elem *, const Order, const std::vector< Number > &, std::vector< Number > &)
 
template<>
void nodal_soln (const Elem *, const Order, const std::vector< Number > &, std::vector< Number > &)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
unsigned int n_dofs (const ElemType, const Order)
 
template<>
unsigned int n_dofs (const ElemType, const Order)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_at_node (const ElemType, const Order, const unsigned int)
 
template<>
unsigned int n_dofs_at_node (const ElemType, const Order, const unsigned int)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_per_elem (const ElemType, const Order)
 
template<>
unsigned int n_dofs_per_elem (const ElemType, const Order)
 
template<>
unsigned int n_dofs_per_elem (const ElemType, const Order)
 
template<>
unsigned int n_dofs_per_elem (const ElemType, const Order)
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
void compute_constraints (DofConstraints &, DofMap &, const unsigned int, const Elem *)
 
template<>
void compute_constraints (DofConstraints &, DofMap &, const unsigned int, const Elem *)
 
template<>
void compute_constraints (DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
 
template<>
void compute_constraints (DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
 
template<>
RealGradient shape (const ElemType, const Order, const unsigned int, const Point &)
 
template<>
RealGradient shape (const Elem *, const Order, const unsigned int, const Point &)
 
template<>
RealGradient shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
RealGradient shape_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
RealGradient shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
RealGradient shape_second_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
RealGradient shape (const ElemType, const Order, const unsigned int, const Point &)
 
template<>
RealGradient shape (const Elem *, const Order, const unsigned int, const Point &)
 
template<>
RealGradient shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
RealGradient shape_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
RealGradient shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
RealGradient shape_second_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
RealGradient shape (const ElemType, const Order, const unsigned int, const Point &)
 
template<>
RealGradient shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
RealGradient shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
RealGradient shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &)
 
template<>
RealGradient shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
RealGradient shape_second_deriv (const Elem *elem, const Order order, const unsigned int libmesh_dbg_var(i), const unsigned int libmesh_dbg_var(j), const Point &)
 
template<>
RealGradient shape (const ElemType, const Order, const unsigned int, const Point &)
 
template<>
RealGradient shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
RealGradient shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
RealGradient shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
RealGradient shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
RealGradient shape_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &libmesh_dbg_var(p))
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
unsigned int n_dofs (const ElemType, const Order o)
 
template<>
unsigned int n_dofs (const ElemType, const Order o)
 
template<>
unsigned int n_dofs (const ElemType, const Order o)
 
template<>
unsigned int n_dofs (const ElemType, const Order o)
 
template<>
unsigned int n_dofs_at_node (const ElemType, const Order, const unsigned int)
 
template<>
unsigned int n_dofs_at_node (const ElemType, const Order, const unsigned int)
 
template<>
unsigned int n_dofs_at_node (const ElemType, const Order, const unsigned int)
 
template<>
unsigned int n_dofs_at_node (const ElemType, const Order, const unsigned int)
 
template<>
unsigned int n_dofs_per_elem (const ElemType, const Order)
 
template<>
unsigned int n_dofs_per_elem (const ElemType, const Order)
 
template<>
unsigned int n_dofs_per_elem (const ElemType, const Order)
 
template<>
unsigned int n_dofs_per_elem (const ElemType, const Order)
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
void compute_constraints (DofConstraints &, DofMap &, const unsigned int, const Elem *)
 
template<>
void compute_constraints (DofConstraints &, DofMap &, const unsigned int, const Elem *)
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
Real shape (const ElemType, const Order, const unsigned int, const Point &)
 
template<>
Real shape (const Elem *, const Order, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape (const ElemType, const Order, const unsigned int, const Point &)
 
template<>
Real shape (const Elem *, const Order, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape (const ElemType, const Order, const unsigned int, const Point &)
 
template<>
Real shape (const Elem *, const Order, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape (const ElemType, const Order, const unsigned int, const Point &)
 
template<>
Real shape (const Elem *, const Order, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape (const ElemType type, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape_deriv (const ElemType type, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const ElemType type, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
void nodal_soln (const Elem *elem, const Order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void side_map (const Elem *, const Elem *, const unsigned int, const std::vector< Point > &, std::vector< Point > &)
 Computes the reference space quadrature points on the side of an element based on the side quadrature points. More...
 
template<>
void edge_reinit (Elem const *, unsigned int, Real, const std::vector< Point > *const, const std::vector< Real > *const)
 
template<>
Point inverse_map (const Elem *, const Point &, const Real, const bool)
 
template<>
void inverse_map (const Elem *, const std::vector< Point > &, std::vector< Point > &, Real, bool)
 
template<>
unsigned int n_dofs (const ElemType, const Order)
 
template<>
unsigned int n_dofs_at_node (const ElemType, const Order, const unsigned int)
 
template<>
unsigned int n_dofs_per_elem (const ElemType, const Order)
 
template<>
void dofs_on_side (const Elem *const, const Order, unsigned int, std::vector< unsigned int > &di)
 
template<>
void dofs_on_edge (const Elem *const, const Order, unsigned int, std::vector< unsigned int > &di)
 
template<>
FEContinuity get_continuity () const
 
template<>
bool is_hierarchic () const
 
template<>
bool shapes_need_reinit () const
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
void compute_constraints (DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
 
template<>
void compute_constraints (DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
Real shape (const ElemType, const Order, const unsigned int libmesh_dbg_var(i), const Point &)
 
template<>
Real shape (const Elem *, const Order, const unsigned int libmesh_dbg_var(i), const Point &)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape (const ElemType, const Order libmesh_dbg_var(order), const unsigned int i, const Point &p)
 
template<>
Real shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape_deriv (const ElemType, const Order libmesh_dbg_var(order), const unsigned int i, const unsigned int libmesh_dbg_var(j), const Point &p)
 
template<>
Real shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape (const ElemType, const Order, const unsigned int, const Point &)
 
template<>
Real shape (const Elem *elem, const Order order, const unsigned int i, const Point &p)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape (const ElemType, const Order, const unsigned int, const Point &)
 
template<>
Real shape (const Elem *, const Order, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
void nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_at_node (const ElemType, const Order, const unsigned int)
 
template<>
unsigned int n_dofs_at_node (const ElemType, const Order, const unsigned int)
 
template<>
unsigned int n_dofs_at_node (const ElemType, const Order, const unsigned int)
 
template<>
unsigned int n_dofs_at_node (const ElemType, const Order, const unsigned int)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
FEContinuity get_continuity () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
bool is_hierarchic () const
 
template<>
void compute_constraints (DofConstraints &, DofMap &, const unsigned int, const Elem *)
 
template<>
void compute_constraints (DofConstraints &, DofMap &, const unsigned int, const Elem *)
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
bool shapes_need_reinit () const
 
template<>
Real shape (const ElemType, const Order, const unsigned int libmesh_dbg_var(i), const Point &)
 
template<>
Real shape (const Elem *, const Order, const unsigned int libmesh_dbg_var(i), const Point &)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape (const ElemType, const Order, const unsigned int, const Point &)
 
template<>
Real shape (const Elem *elem, const Order libmesh_dbg_var(order), const unsigned int i, const Point &point_in)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *elem, const Order libmesh_dbg_var(order), const unsigned int i, const unsigned int libmesh_dbg_var(j), const Point &point_in)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *elem, const Order libmesh_dbg_var(order), const unsigned int i, const unsigned int libmesh_dbg_var(j), const Point &point_in)
 
template<>
Real shape (const ElemType, const Order, const unsigned int, const Point &)
 
template<>
Real shape (const Elem *elem, const Order libmesh_dbg_var(order), const unsigned int i, const Point &point_in)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *elem, const Order libmesh_dbg_var(order), const unsigned int i, const unsigned int j, const Point &point_in)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *elem, const Order libmesh_dbg_var(order), const unsigned int i, const unsigned int j, const Point &point_in)
 
template<>
Real shape (const ElemType, const Order, const unsigned int, const Point &)
 
template<>
Real shape (const Elem *elem, const Order libmesh_dbg_var(order), const unsigned int i, const Point &point_in)
 
template<>
Real shape_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_deriv (const Elem *elem, const Order libmesh_dbg_var(order), const unsigned int i, const unsigned int j, const Point &point_in)
 
template<>
Real shape_second_deriv (const ElemType, const Order, const unsigned int, const unsigned int, const Point &)
 
template<>
Real shape_second_deriv (const Elem *elem, const Order libmesh_dbg_var(order), const unsigned int i, const unsigned int j, const Point &point_in)
 
const std::vector< std::vector< OutputShape > > & get_phi () const
 
const std::vector< std::vector< OutputGradient > > & get_dphi () const
 
const std::vector< std::vector< OutputShape > > & get_curl_phi () const
 
const std::vector< std::vector< OutputDivergence > > & get_div_phi () const
 
const std::vector< std::vector< OutputShape > > & get_dphidx () const
 
const std::vector< std::vector< OutputShape > > & get_dphidy () const
 
const std::vector< std::vector< OutputShape > > & get_dphidz () const
 
const std::vector< std::vector< OutputShape > > & get_dphidxi () const
 
const std::vector< std::vector< OutputShape > > & get_dphideta () const
 
const std::vector< std::vector< OutputShape > > & get_dphidzeta () const
 
const std::vector< std::vector< OutputTensor > > & get_d2phi () const
 
const std::vector< std::vector< OutputShape > > & get_d2phidx2 () const
 
const std::vector< std::vector< OutputShape > > & get_d2phidxdy () const
 
const std::vector< std::vector< OutputShape > > & get_d2phidxdz () const
 
const std::vector< std::vector< OutputShape > > & get_d2phidy2 () const
 
const std::vector< std::vector< OutputShape > > & get_d2phidydz () const
 
const std::vector< std::vector< OutputShape > > & get_d2phidz2 () const
 
const std::vector< std::vector< OutputShape > > & get_d2phidxi2 () const
 
const std::vector< std::vector< OutputShape > > & get_d2phidxideta () const
 
const std::vector< std::vector< OutputShape > > & get_d2phidxidzeta () const
 
const std::vector< std::vector< OutputShape > > & get_d2phideta2 () const
 
const std::vector< std::vector< OutputShape > > & get_d2phidetadzeta () const
 
const std::vector< std::vector< OutputShape > > & get_d2phidzeta2 () const
 
const std::vector< OutputGradient > & get_dphase () const
 
const std::vector< Real > & get_Sobolev_weight () const
 
const std::vector< RealGradient > & get_Sobolev_dweight () const
 
void print_phi (std::ostream &os) const
 Prints the value of each shape function at each quadrature point. More...
 
void print_dphi (std::ostream &os) const
 Prints the value of each shape function's derivative at each quadrature point. More...
 
void print_d2phi (std::ostream &os) const
 Prints the value of each shape function's second derivatives at each quadrature point. More...
 
unsigned int get_dim () const
 
const std::vector< Point > & get_xyz () const
 
const std::vector< Real > & get_JxW () const
 
const std::vector< RealGradient > & get_dxyzdxi () const
 
const std::vector< RealGradient > & get_dxyzdeta () const
 
const std::vector< RealGradient > & get_dxyzdzeta () const
 
const std::vector< RealGradient > & get_d2xyzdxi2 () const
 
const std::vector< RealGradient > & get_d2xyzdeta2 () const
 
const std::vector< RealGradient > & get_d2xyzdzeta2 () const
 
const std::vector< RealGradient > & get_d2xyzdxideta () const
 
const std::vector< RealGradient > & get_d2xyzdxidzeta () const
 
const std::vector< RealGradient > & get_d2xyzdetadzeta () const
 
const std::vector< Real > & get_dxidx () const
 
const std::vector< Real > & get_dxidy () const
 
const std::vector< Real > & get_dxidz () const
 
const std::vector< Real > & get_detadx () const
 
const std::vector< Real > & get_detady () const
 
const std::vector< Real > & get_detadz () const
 
const std::vector< Real > & get_dzetadx () const
 
const std::vector< Real > & get_dzetady () const
 
const std::vector< Real > & get_dzetadz () const
 
const std::vector< std::vector< Point > > & get_tangents () const
 
const std::vector< Point > & get_normals () const
 
const std::vector< Real > & get_curvatures () const
 
ElemType get_type () const
 
unsigned int get_p_level () const
 
FEType get_fe_type () const
 
Order get_order () const
 
void set_fe_order (int new_order)
 Sets the base FE order of the finite element. More...
 
FEFamily get_family () const
 
const FEMapget_fe_map () const
 
void print_JxW (std::ostream &os) const
 Prints the Jacobian times the weight for each quadrature point. More...
 
void print_xyz (std::ostream &os) const
 Prints the spatial location of each quadrature point (on the physical element). More...
 
void print_info (std::ostream &os) const
 Prints all the relevant information about the current element. More...
 

Static Public Member Functions

static OutputShape shape (const ElemType t, const Order o, const unsigned int i, const Point &p)
 
static OutputShape shape (const Elem *elem, const Order o, const unsigned int i, const Point &p)
 
static OutputShape shape_deriv (const ElemType t, const Order o, const unsigned int i, const unsigned int j, const Point &p)
 
static OutputShape shape_deriv (const Elem *elem, const Order o, const unsigned int i, const unsigned int j, const Point &p)
 
static OutputShape shape_second_deriv (const ElemType t, const Order o, const unsigned int i, const unsigned int j, const Point &p)
 
static OutputShape shape_second_deriv (const Elem *elem, const Order o, const unsigned int i, const unsigned int j, const Point &p)
 
static void nodal_soln (const Elem *elem, const Order o, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
 Build the nodal soln from the element soln. More...
 
static unsigned int n_shape_functions (const ElemType t, const Order o)
 
static unsigned int n_dofs (const ElemType t, const Order o)
 
static unsigned int n_dofs_at_node (const ElemType t, const Order o, const unsigned int n)
 
static unsigned int n_dofs_per_elem (const ElemType t, const Order o)
 
static void dofs_on_side (const Elem *const elem, const Order o, unsigned int s, std::vector< unsigned int > &di)
 Fills the vector di with the local degree of freedom indices associated with side s of element elem. More...
 
static void dofs_on_edge (const Elem *const elem, const Order o, unsigned int e, std::vector< unsigned int > &di)
 Fills the vector di with the local degree of freedom indices associated with edge e of element elem. More...
 
static Point inverse_map (const Elem *elem, const Point &p, const Real tolerance=TOLERANCE, const bool secure=true)
 
static void inverse_map (const Elem *elem, const std::vector< Point > &physical_points, std::vector< Point > &reference_points, const Real tolerance=TOLERANCE, const bool secure=true)
 Takes a number points in physical space (in the physical_points vector) and finds their location on the reference element for the input element elem. More...
 
static void compute_constraints (DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
 Computes the constraint matrix contributions (for non-conforming adapted meshes) corresponding to variable number var_number, using element-specific optimizations if possible. More...
 
static Point map (const Elem *elem, const Point &reference_point)
 
static Point map_xi (const Elem *elem, const Point &reference_point)
 
static Point map_eta (const Elem *elem, const Point &reference_point)
 
static Point map_zeta (const Elem *elem, const Point &reference_point)
 
static UniquePtr< FEGenericBasebuild (const unsigned int dim, const FEType &type)
 Builds a specific finite element type. More...
 
static UniquePtr< FEGenericBasebuild_InfFE (const unsigned int dim, const FEType &type)
 Builds a specific infinite element type. More...
 
static void compute_proj_constraints (DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
 Computes the constraint matrix contributions (for non-conforming adapted meshes) corresponding to variable number var_number, using generic projections. More...
 
static void coarsened_dof_values (const NumericVector< Number > &global_vector, const DofMap &dof_map, const Elem *coarse_elem, DenseVector< Number > &coarse_dofs, const unsigned int var, const bool use_old_dof_indices=false)
 Creates a local projection on coarse_elem, based on the DoF values in global_vector for it's children. More...
 
static void coarsened_dof_values (const NumericVector< Number > &global_vector, const DofMap &dof_map, const Elem *coarse_elem, DenseVector< Number > &coarse_dofs, const bool use_old_dof_indices=false)
 Creates a local projection on coarse_elem, based on the DoF values in global_vector for it's children. More...
 
static void compute_periodic_constraints (DofConstraints &constraints, DofMap &dof_map, const PeriodicBoundaries &boundaries, const MeshBase &mesh, const PointLocatorBase *point_locator, const unsigned int variable_number, const Elem *elem)
 Computes the constraint matrix contributions (for meshes with periodic boundary conditions) corresponding to variable number var_number, using generic projections. More...
 
static bool on_reference_element (const Point &p, const ElemType t, const Real eps=TOLERANCE)
 
static void get_refspace_nodes (const ElemType t, std::vector< Point > &nodes)
 
static void compute_node_constraints (NodeConstraints &constraints, const Elem *elem)
 Computes the nodal constraint contributions (for non-conforming adapted meshes), using Lagrange geometry. More...
 
static void compute_periodic_node_constraints (NodeConstraints &constraints, const PeriodicBoundaries &boundaries, const MeshBase &mesh, const PointLocatorBase *point_locator, const Elem *elem)
 Computes the node position constraint equation contributions (for meshes with periodic boundary conditions) More...
 
static void print_info (std::ostream &out=libMesh::out)
 Prints the reference information, by default to libMesh::out. More...
 
static std::string get_info ()
 Gets a string containing the reference information. More...
 
static unsigned int n_objects ()
 Prints the number of outstanding (created, but not yet destroyed) objects. More...
 
static void enable_print_counter_info ()
 Methods to enable/disable the reference counter output from print_info() More...
 
static void disable_print_counter_info ()
 

Protected Types

typedef std::map< std::string, std::pair< unsigned int, unsigned int > > Counts
 Data structure to log the information. More...
 

Protected Member Functions

virtual void init_shape_functions (const std::vector< Point > &qp, const Elem *e)
 Update the various member data fields phi, dphidxi, dphideta, dphidzeta, etc. More...
 
virtual void init_base_shape_functions (const std::vector< Point > &qp, const Elem *e) libmesh_override
 Initialize the data fields for the base of an an infinite element. More...
 
void determine_calculations ()
 Determine which values are to be calculated, for both the FE itself and for the FEMap. More...
 
virtual void compute_shape_functions (const Elem *elem, const std::vector< Point > &qp)
 After having updated the jacobian and the transformation from local to global coordinates in FEAbstract::compute_map(), the first derivatives of the shape functions are transformed to global coordinates, giving dphi, dphidx, dphidy, and dphidz. More...
 
void increment_constructor_count (const std::string &name)
 Increments the construction counter. More...
 
void increment_destructor_count (const std::string &name)
 Increments the destruction counter. More...
 

Protected Attributes

std::vector< Pointcached_nodes
 An array of the node locations on the last element we computed on. More...
 
ElemType last_side
 The last side and last edge we did a reinit on. More...
 
unsigned int last_edge
 
UniquePtr< FETransformationBase< FEOutputType< T >::type > > _fe_trans
 Object that handles computing shape function values, gradients, etc in the physical domain. More...
 
std::vector< std::vector< OutputShape > > phi
 Shape function values. More...
 
std::vector< std::vector< OutputGradient > > dphi
 Shape function derivative values. More...
 
std::vector< std::vector< OutputShape > > curl_phi
 Shape function curl values. More...
 
std::vector< std::vector< OutputDivergence > > div_phi
 Shape function divergence values. More...
 
std::vector< std::vector< OutputShape > > dphidxi
 Shape function derivatives in the xi direction. More...
 
std::vector< std::vector< OutputShape > > dphideta
 Shape function derivatives in the eta direction. More...
 
std::vector< std::vector< OutputShape > > dphidzeta
 Shape function derivatives in the zeta direction. More...
 
std::vector< std::vector< OutputShape > > dphidx
 Shape function derivatives in the x direction. More...
 
std::vector< std::vector< OutputShape > > dphidy
 Shape function derivatives in the y direction. More...
 
std::vector< std::vector< OutputShape > > dphidz
 Shape function derivatives in the z direction. More...
 
std::vector< std::vector< OutputTensor > > d2phi
 Shape function second derivative values. More...
 
std::vector< std::vector< OutputShape > > d2phidxi2
 Shape function second derivatives in the xi direction. More...
 
std::vector< std::vector< OutputShape > > d2phidxideta
 Shape function second derivatives in the xi-eta direction. More...
 
std::vector< std::vector< OutputShape > > d2phidxidzeta
 Shape function second derivatives in the xi-zeta direction. More...
 
std::vector< std::vector< OutputShape > > d2phideta2
 Shape function second derivatives in the eta direction. More...
 
std::vector< std::vector< OutputShape > > d2phidetadzeta
 Shape function second derivatives in the eta-zeta direction. More...
 
std::vector< std::vector< OutputShape > > d2phidzeta2
 Shape function second derivatives in the zeta direction. More...
 
std::vector< std::vector< OutputShape > > d2phidx2
 Shape function second derivatives in the x direction. More...
 
std::vector< std::vector< OutputShape > > d2phidxdy
 Shape function second derivatives in the x-y direction. More...
 
std::vector< std::vector< OutputShape > > d2phidxdz
 Shape function second derivatives in the x-z direction. More...
 
std::vector< std::vector< OutputShape > > d2phidy2
 Shape function second derivatives in the y direction. More...
 
std::vector< std::vector< OutputShape > > d2phidydz
 Shape function second derivatives in the y-z direction. More...
 
std::vector< std::vector< OutputShape > > d2phidz2
 Shape function second derivatives in the z direction. More...
 
std::vector< OutputGradientdphase
 Used for certain infinite element families: the first derivatives of the phase term in global coordinates, over all quadrature points. More...
 
std::vector< RealGradientdweight
 Used for certain infinite element families: the global derivative of the additional radial weight $ 1/{r^2} $, over all quadrature points. More...
 
std::vector< Realweight
 Used for certain infinite element families: the additional radial weight $ 1/{r^2} $ in local coordinates, over all quadrature points. More...
 
UniquePtr< FEMap_fe_map
 
const unsigned int dim
 The dimensionality of the object. More...
 
bool calculations_started
 Have calculations with this object already been started? Then all get_* functions should already have been called. More...
 
bool calculate_phi
 Should we calculate shape functions? More...
 
bool calculate_dphi
 Should we calculate shape function gradients? More...
 
bool calculate_d2phi
 Should we calculate shape function hessians? More...
 
bool calculate_curl_phi
 Should we calculate shape function curls? More...
 
bool calculate_div_phi
 Should we calculate shape function divergences? More...
 
bool calculate_dphiref
 Should we calculate reference shape function gradients? More...
 
FEType fe_type
 The finite element type for this object. More...
 
ElemType elem_type
 The element type the current data structures are set up for. More...
 
unsigned int _p_level
 The p refinement level the current data structures are set up for. More...
 
QBaseqrule
 A pointer to the quadrature rule employed. More...
 
bool shapes_on_quadrature
 A flag indicating if current data structures correspond to quadrature rule points. More...
 

Static Protected Attributes

static Counts _counts
 Actually holds the data. More...
 
static Threads::atomic< unsigned int_n_objects
 The number of objects. More...
 
static Threads::spin_mutex _mutex
 Mutual exclusion object to enable thread-safe reference counting. More...
 
static bool _enable_print_counter = true
 Flag to control whether reference count information is printed when print_info is called. More...
 

Friends

template<unsigned int friend_Dim, FEFamily friend_T_radial, InfMapType friend_T_map>
class InfFE
 make InfFE classes friends, so that these may access the private map, map_xyz methods More...
 

Detailed Description

template<unsigned int Dim, FEFamily T>
class libMesh::FE< Dim, T >

A specific instantiation of the FEBase class.

This class is templated, and specific template instantiations will result in different Finite Element families. Full specialization of the template for specific dimensions(Dim) and families (T) provide support for specific finite element types. The use of templates allows for compile-time optimization, however it requires that the specific finite element family and dimension is also known at compile time. If this is too restricting for your application you can use the FEBase::build() member to create abstract (but still optimized) finite elements.

Author
Benjamin S. Kirk
Date
2002-2007 Template class which generates the different FE families and orders.

Definition at line 89 of file fe.h.

Member Typedef Documentation

typedef std::map<std::string, std::pair<unsigned int, unsigned int> > libMesh::ReferenceCounter::Counts
protectedinherited

Data structure to log the information.

The log is identified by the class name.

Definition at line 119 of file reference_counter.h.

Definition at line 123 of file fe_base.h.

Definition at line 121 of file fe_base.h.

Definition at line 124 of file fe_base.h.

Definition at line 127 of file fe_base.h.

Definition at line 125 of file fe_base.h.

Definition at line 126 of file fe_base.h.

template<unsigned int Dim, FEFamily T>
typedef FEGenericBase<typename FEOutputType<T>::type>::OutputShape libMesh::FE< Dim, T >::OutputShape

Definition at line 101 of file fe.h.

Definition at line 122 of file fe_base.h.

Constructor & Destructor Documentation

template<unsigned int Dim, FEFamily T>
libMesh::FE< Dim, T >::FE ( const FEType fet)
explicit

Constructor.

Definition at line 1052 of file fe.h.

References libMesh::FEAbstract::get_family().

1052  :
1053  FEGenericBase<typename FEOutputType<T>::type> (Dim,fet),
1056 {
1057  // Sanity check. Make sure the
1058  // Family specified in the template instantiation
1059  // matches the one in the FEType object
1060  libmesh_assert_equal_to (T, this->get_family());
1061 }
unsigned int last_edge
Definition: fe.h:482
const unsigned int invalid_uint
A number which is used quite often to represent an invalid or uninitialized value.
Definition: libmesh.h:184
FEFamily get_family() const
Definition: fe_abstract.h:447
ElemType last_side
The last side and last edge we did a reinit on.
Definition: fe.h:480

Member Function Documentation

template<unsigned int Dim, FEFamily T>
void libMesh::FE< Dim, T >::attach_quadrature_rule ( QBase q)
virtual

Provides the class with the quadrature rule, which provides the locations (on a reference element) where the shape functions are to be calculated.

Implements libMesh::FEAbstract.

Reimplemented in libMesh::FESubdivision.

Definition at line 44 of file fe.C.

References libMesh::INVALID_ELEM, and libMesh::libmesh_assert().

45 {
46  libmesh_assert(q);
47  this->qrule = q;
48  // make sure we don't cache results from a previous quadrature rule
49  this->elem_type = INVALID_ELEM;
50  return;
51 }
libmesh_assert(j)
QBase * qrule
A pointer to the quadrature rule employed.
Definition: fe_abstract.h:584
ElemType elem_type
The element type the current data structures are set up for.
Definition: fe_abstract.h:573
static UniquePtr<FEGenericBase> libMesh::FEGenericBase< FEOutputType< T >::type >::build ( const unsigned int  dim,
const FEType type 
)
staticinherited

Builds a specific finite element type.

A UniquePtr<FEGenericBase> is returned to prevent a memory leak. This way the user need not remember to delete the object.

The build call will fail if the OutputType of this class is not compatible with the output required for the requested type

static UniquePtr<FEGenericBase> libMesh::FEGenericBase< FEOutputType< T >::type >::build_InfFE ( const unsigned int  dim,
const FEType type 
)
staticinherited

Builds a specific infinite element type.

A UniquePtr<FEGenericBase> is returned to prevent a memory leak. This way the user need not remember to delete the object.

The build call will fail if the OutputShape of this class is not compatible with the output required for the requested type

static void libMesh::FEGenericBase< FEOutputType< T >::type >::coarsened_dof_values ( const NumericVector< Number > &  global_vector,
const DofMap dof_map,
const Elem coarse_elem,
DenseVector< Number > &  coarse_dofs,
const unsigned int  var,
const bool  use_old_dof_indices = false 
)
staticinherited

Creates a local projection on coarse_elem, based on the DoF values in global_vector for it's children.

Computes a vector of coefficients corresponding to dof_indices for only the single given var

static void libMesh::FEGenericBase< FEOutputType< T >::type >::coarsened_dof_values ( const NumericVector< Number > &  global_vector,
const DofMap dof_map,
const Elem coarse_elem,
DenseVector< Number > &  coarse_dofs,
const bool  use_old_dof_indices = false 
)
staticinherited

Creates a local projection on coarse_elem, based on the DoF values in global_vector for it's children.

Computes a vector of coefficients corresponding to all dof_indices.

template<>
void libMesh::FE< 2, SCALAR >::compute_constraints ( DofConstraints ,
DofMap ,
const unsigned  int,
const Elem  
)

Definition at line 122 of file fe_scalar.C.

126 { }
template<>
void libMesh::FE< 3, SCALAR >::compute_constraints ( DofConstraints ,
DofMap ,
const unsigned  int,
const Elem  
)

Definition at line 129 of file fe_scalar.C.

133 { }
template<>
void libMesh::FE< 2, L2_HIERARCHIC >::compute_constraints ( DofConstraints ,
DofMap ,
const unsigned  int,
const Elem  
)

Definition at line 210 of file fe_l2_hierarchic.C.

214 { }
template<>
void libMesh::FE< 3, L2_HIERARCHIC >::compute_constraints ( DofConstraints ,
DofMap ,
const unsigned  int,
const Elem  
)

Definition at line 217 of file fe_l2_hierarchic.C.

221 { }
template<>
void libMesh::FE< 2, CLOUGH >::compute_constraints ( DofConstraints constraints,
DofMap dof_map,
const unsigned int  variable_number,
const Elem elem 
)

Definition at line 313 of file fe_clough.C.

317 { compute_proj_constraints(constraints, dof_map, variable_number, elem); }
static void compute_proj_constraints(DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
Computes the constraint matrix contributions (for non-conforming adapted meshes) corresponding to var...
template<>
void libMesh::FE< 3, CLOUGH >::compute_constraints ( DofConstraints constraints,
DofMap dof_map,
const unsigned int  variable_number,
const Elem elem 
)

Definition at line 320 of file fe_clough.C.

324 { compute_proj_constraints(constraints, dof_map, variable_number, elem); }
static void compute_proj_constraints(DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
Computes the constraint matrix contributions (for non-conforming adapted meshes) corresponding to var...
template<>
void libMesh::FE< 2, HERMITE >::compute_constraints ( DofConstraints constraints,
DofMap dof_map,
const unsigned int  variable_number,
const Elem elem 
)

Definition at line 364 of file fe_hermite.C.

368 { compute_proj_constraints(constraints, dof_map, variable_number, elem); }
static void compute_proj_constraints(DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
Computes the constraint matrix contributions (for non-conforming adapted meshes) corresponding to var...
template<>
void libMesh::FE< 3, HERMITE >::compute_constraints ( DofConstraints constraints,
DofMap dof_map,
const unsigned int  variable_number,
const Elem elem 
)

Definition at line 371 of file fe_hermite.C.

375 { compute_proj_constraints(constraints, dof_map, variable_number, elem); }
static void compute_proj_constraints(DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
Computes the constraint matrix contributions (for non-conforming adapted meshes) corresponding to var...
template<>
void libMesh::FE< 2, HIERARCHIC >::compute_constraints ( DofConstraints constraints,
DofMap dof_map,
const unsigned int  variable_number,
const Elem elem 
)

Definition at line 392 of file fe_hierarchic.C.

396 { compute_proj_constraints(constraints, dof_map, variable_number, elem); }
static void compute_proj_constraints(DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
Computes the constraint matrix contributions (for non-conforming adapted meshes) corresponding to var...
template<unsigned int Dim, FEFamily T>
static void libMesh::FE< Dim, T >::compute_constraints ( DofConstraints constraints,
DofMap dof_map,
const unsigned int  variable_number,
const Elem elem 
)
static

Computes the constraint matrix contributions (for non-conforming adapted meshes) corresponding to variable number var_number, using element-specific optimizations if possible.

Referenced by libMesh::FEInterface::compute_constraints().

template<>
void libMesh::FE< 3, HIERARCHIC >::compute_constraints ( DofConstraints constraints,
DofMap dof_map,
const unsigned int  variable_number,
const Elem elem 
)

Definition at line 399 of file fe_hierarchic.C.

403 { compute_proj_constraints(constraints, dof_map, variable_number, elem); }
static void compute_proj_constraints(DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
Computes the constraint matrix contributions (for non-conforming adapted meshes) corresponding to var...
template<>
void libMesh::FE< 2, MONOMIAL >::compute_constraints ( DofConstraints ,
DofMap ,
const unsigned  int,
const Elem  
)

Definition at line 422 of file fe_monomial.C.

422 {}
template<>
void libMesh::FE< 3, MONOMIAL >::compute_constraints ( DofConstraints ,
DofMap ,
const unsigned  int,
const Elem  
)

Definition at line 423 of file fe_monomial.C.

423 {}
template<>
void libMesh::FE< 2, BERNSTEIN >::compute_constraints ( DofConstraints constraints,
DofMap dof_map,
const unsigned int  variable_number,
const Elem elem 
)

Definition at line 459 of file fe_bernstein.C.

463 { compute_proj_constraints(constraints, dof_map, variable_number, elem); }
static void compute_proj_constraints(DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
Computes the constraint matrix contributions (for non-conforming adapted meshes) corresponding to var...
template<>
void libMesh::FE< 3, BERNSTEIN >::compute_constraints ( DofConstraints constraints,
DofMap dof_map,
const unsigned int  variable_number,
const Elem elem 
)

Definition at line 466 of file fe_bernstein.C.

470 { compute_proj_constraints(constraints, dof_map, variable_number, elem); }
static void compute_proj_constraints(DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
Computes the constraint matrix contributions (for non-conforming adapted meshes) corresponding to var...
template<>
void libMesh::FE< 2, L2_LAGRANGE >::compute_constraints ( DofConstraints ,
DofMap ,
const unsigned  int,
const Elem  
)

Definition at line 498 of file fe_l2_lagrange.C.

502 { }
template<>
void libMesh::FE< 3, L2_LAGRANGE >::compute_constraints ( DofConstraints ,
DofMap ,
const unsigned  int,
const Elem  
)

Definition at line 505 of file fe_l2_lagrange.C.

509 { }
template<>
void libMesh::FE< 0, NEDELEC_ONE >::compute_constraints ( DofConstraints ,
DofMap ,
const unsigned  int,
const Elem  
)

Definition at line 569 of file fe_nedelec_one.C.

573 { NEDELEC_LOW_D_ERROR_MESSAGE }
template<>
void libMesh::FE< 1, NEDELEC_ONE >::compute_constraints ( DofConstraints ,
DofMap ,
const unsigned  int,
const Elem  
)

Definition at line 576 of file fe_nedelec_one.C.

580 { NEDELEC_LOW_D_ERROR_MESSAGE }
template<>
void libMesh::FE< 2, NEDELEC_ONE >::compute_constraints ( DofConstraints constraints,
DofMap dof_map,
const unsigned int  variable_number,
const Elem elem 
)

Definition at line 583 of file fe_nedelec_one.C.

587 { nedelec_one_compute_constraints(constraints, dof_map, variable_number, elem, /*Dim=*/2); }
template<>
void libMesh::FE< 3, NEDELEC_ONE >::compute_constraints ( DofConstraints constraints,
DofMap dof_map,
const unsigned int  variable_number,
const Elem elem 
)

Definition at line 590 of file fe_nedelec_one.C.

594 { nedelec_one_compute_constraints(constraints, dof_map, variable_number, elem, /*Dim=*/3); }
template<>
void libMesh::FE< 2, LAGRANGE >::compute_constraints ( DofConstraints constraints,
DofMap dof_map,
const unsigned int  variable_number,
const Elem elem 
)

Definition at line 905 of file fe_lagrange.C.

909 { lagrange_compute_constraints(constraints, dof_map, variable_number, elem, /*Dim=*/2); }
template<>
void libMesh::FE< 3, LAGRANGE >::compute_constraints ( DofConstraints constraints,
DofMap dof_map,
const unsigned int  variable_number,
const Elem elem 
)

Definition at line 912 of file fe_lagrange.C.

916 { lagrange_compute_constraints(constraints, dof_map, variable_number, elem, /*Dim=*/3); }
template<>
void libMesh::FE< 2, XYZ >::compute_constraints ( DofConstraints ,
DofMap ,
const unsigned  int,
const Elem  
)

Definition at line 942 of file fe_xyz.C.

942 {}
template<>
void libMesh::FE< 3, XYZ >::compute_constraints ( DofConstraints ,
DofMap ,
const unsigned  int,
const Elem  
)

Definition at line 943 of file fe_xyz.C.

943 {}
template<>
void libMesh::FE< 2, LAGRANGE_VEC >::compute_constraints ( DofConstraints constraints,
DofMap dof_map,
const unsigned int  variable_number,
const Elem elem 
)

Definition at line 950 of file fe_lagrange_vec.C.

References libMesh::FEGenericBase< OutputType >::compute_proj_constraints().

954 { //libmesh_not_implemented();
955  FEVectorBase::compute_proj_constraints(constraints, dof_map, variable_number, elem);
956 }
static void compute_proj_constraints(DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
Computes the constraint matrix contributions (for non-conforming adapted meshes) corresponding to var...
Definition: fe_base.C:1371
template<>
void libMesh::FE< 3, LAGRANGE_VEC >::compute_constraints ( DofConstraints constraints,
DofMap dof_map,
const unsigned int  variable_number,
const Elem elem 
)

Definition at line 959 of file fe_lagrange_vec.C.

References libMesh::FEGenericBase< OutputType >::compute_proj_constraints().

963 { //libmesh_not_implemented();
964  FEVectorBase::compute_proj_constraints(constraints, dof_map, variable_number, elem);
965 }
static void compute_proj_constraints(DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
Computes the constraint matrix contributions (for non-conforming adapted meshes) corresponding to var...
Definition: fe_base.C:1371
template<>
void libMesh::FE< 2, SZABAB >::compute_constraints ( DofConstraints constraints,
DofMap dof_map,
const unsigned int  variable_number,
const Elem elem 
)

Definition at line 1293 of file fe_szabab.C.

1297 { compute_proj_constraints(constraints, dof_map, variable_number, elem); }
static void compute_proj_constraints(DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
Computes the constraint matrix contributions (for non-conforming adapted meshes) corresponding to var...
template<>
void libMesh::FE< 3, SZABAB >::compute_constraints ( DofConstraints constraints,
DofMap dof_map,
const unsigned int  variable_number,
const Elem elem 
)

Definition at line 1300 of file fe_szabab.C.

1304 { compute_proj_constraints(constraints, dof_map, variable_number, elem); }
static void compute_proj_constraints(DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
Computes the constraint matrix contributions (for non-conforming adapted meshes) corresponding to var...
void libMesh::FEAbstract::compute_node_constraints ( NodeConstraints constraints,
const Elem elem 
)
staticinherited

Computes the nodal constraint contributions (for non-conforming adapted meshes), using Lagrange geometry.

Definition at line 796 of file fe_abstract.C.

References std::abs(), libMesh::Elem::build_side_ptr(), libMesh::Elem::default_order(), libMesh::Elem::dim(), libMesh::FEAbstract::fe_type, libMesh::FEInterface::inverse_map(), libMesh::LAGRANGE, libMesh::Elem::level(), libMesh::libmesh_assert(), libmesh_nullptr, libMesh::FEInterface::n_dofs(), libMesh::Elem::neighbor_ptr(), libMesh::Elem::parent(), libMesh::Real, libMesh::remote_elem, libMesh::FEInterface::shape(), libMesh::Elem::side_index_range(), libMesh::Threads::spin_mtx, and libMesh::Elem::subactive().

798 {
799  libmesh_assert(elem);
800 
801  const unsigned int Dim = elem->dim();
802 
803  // Only constrain elements in 2,3D.
804  if (Dim == 1)
805  return;
806 
807  // Only constrain active and ancestor elements
808  if (elem->subactive())
809  return;
810 
811  // We currently always use LAGRANGE mappings for geometry
812  const FEType fe_type(elem->default_order(), LAGRANGE);
813 
814  std::vector<const Node *> my_nodes, parent_nodes;
815 
816  // Look at the element faces. Check to see if we need to
817  // build constraints.
818  for (auto s : elem->side_index_range())
819  if (elem->neighbor_ptr(s) != libmesh_nullptr &&
820  elem->neighbor_ptr(s) != remote_elem)
821  if (elem->neighbor_ptr(s)->level() < elem->level()) // constrain dofs shared between
822  { // this element and ones coarser
823  // than this element.
824  // Get pointers to the elements of interest and its parent.
825  const Elem * parent = elem->parent();
826 
827  // This can't happen... Only level-0 elements have NULL
828  // parents, and no level-0 elements can be at a higher
829  // level than their neighbors!
830  libmesh_assert(parent);
831 
832  const UniquePtr<const Elem> my_side (elem->build_side_ptr(s));
833  const UniquePtr<const Elem> parent_side (parent->build_side_ptr(s));
834 
835  const unsigned int n_side_nodes = my_side->n_nodes();
836 
837  my_nodes.clear();
838  my_nodes.reserve (n_side_nodes);
839  parent_nodes.clear();
840  parent_nodes.reserve (n_side_nodes);
841 
842  for (unsigned int n=0; n != n_side_nodes; ++n)
843  my_nodes.push_back(my_side->node_ptr(n));
844 
845  for (unsigned int n=0; n != n_side_nodes; ++n)
846  parent_nodes.push_back(parent_side->node_ptr(n));
847 
848  for (unsigned int my_side_n=0;
849  my_side_n < n_side_nodes;
850  my_side_n++)
851  {
852  libmesh_assert_less (my_side_n, FEInterface::n_dofs(Dim-1, fe_type, my_side->type()));
853 
854  const Node * my_node = my_nodes[my_side_n];
855 
856  // The support point of the DOF
857  const Point & support_point = *my_node;
858 
859  // Figure out where my node lies on their reference element.
860  const Point mapped_point = FEInterface::inverse_map(Dim-1, fe_type,
861  parent_side.get(),
862  support_point);
863 
864  // Compute the parent's side shape function values.
865  for (unsigned int their_side_n=0;
866  their_side_n < n_side_nodes;
867  their_side_n++)
868  {
869  libmesh_assert_less (their_side_n, FEInterface::n_dofs(Dim-1, fe_type, parent_side->type()));
870 
871  const Node * their_node = parent_nodes[their_side_n];
872  libmesh_assert(their_node);
873 
874  const Real their_value = FEInterface::shape(Dim-1,
875  fe_type,
876  parent_side->type(),
877  their_side_n,
878  mapped_point);
879 
880  const Real their_mag = std::abs(their_value);
881 #ifdef DEBUG
882  // Protect for the case u_i ~= u_j,
883  // in which case i better equal j.
884  if (their_mag > 0.999)
885  {
886  libmesh_assert_equal_to (my_node, their_node);
887  libmesh_assert_less (std::abs(their_value - 1.), 0.001);
888  }
889  else
890 #endif
891  // To make nodal constraints useful for constructing
892  // sparsity patterns faster, we need to get EVERY
893  // POSSIBLE constraint coupling identified, even if
894  // there is no coupling in the isoparametric
895  // Lagrange case.
896  if (their_mag < 1.e-5)
897  {
898  // since we may be running this method concurrently
899  // on multiple threads we need to acquire a lock
900  // before modifying the shared constraint_row object.
901  Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
902 
903  // A reference to the constraint row.
904  NodeConstraintRow & constraint_row = constraints[my_node].first;
905 
906  constraint_row.insert(std::make_pair (their_node,
907  0.));
908  }
909  // To get nodal coordinate constraints right, only
910  // add non-zero and non-identity values for Lagrange
911  // basis functions.
912  else // (1.e-5 <= their_mag <= .999)
913  {
914  // since we may be running this method concurrently
915  // on multiple threads we need to acquire a lock
916  // before modifying the shared constraint_row object.
917  Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
918 
919  // A reference to the constraint row.
920  NodeConstraintRow & constraint_row = constraints[my_node].first;
921 
922  constraint_row.insert(std::make_pair (their_node,
923  their_value));
924  }
925  }
926  }
927  }
928 }
double abs(double a)
static unsigned int n_dofs(const unsigned int dim, const FEType &fe_t, const ElemType t)
Definition: fe_interface.C:414
const class libmesh_nullptr_t libmesh_nullptr
libmesh_assert(j)
spin_mutex spin_mtx
A convenient spin mutex object which can be used for obtaining locks.
Definition: threads.C:29
static Real shape(const unsigned int dim, const FEType &fe_t, const ElemType t, const unsigned int i, const Point &p)
Definition: fe_interface.C:641
static Point inverse_map(const unsigned int dim, const FEType &fe_t, const Elem *elem, const Point &p, const Real tolerance=TOLERANCE, const bool secure=true)
Definition: fe_interface.C:569
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
std::map< const Node *, Real, std::less< const Node * >, Threads::scalable_allocator< std::pair< const Node *const, Real > > > NodeConstraintRow
A row of the Node constraint mapping.
Definition: dof_map.h:136
FEType fe_type
The finite element type for this object.
Definition: fe_abstract.h:567
const RemoteElem * remote_elem
Definition: remote_elem.C:57
static void libMesh::FEGenericBase< FEOutputType< T >::type >::compute_periodic_constraints ( DofConstraints constraints,
DofMap dof_map,
const PeriodicBoundaries boundaries,
const MeshBase mesh,
const PointLocatorBase point_locator,
const unsigned int  variable_number,
const Elem elem 
)
staticinherited

Computes the constraint matrix contributions (for meshes with periodic boundary conditions) corresponding to variable number var_number, using generic projections.

void libMesh::FEAbstract::compute_periodic_node_constraints ( NodeConstraints constraints,
const PeriodicBoundaries boundaries,
const MeshBase mesh,
const PointLocatorBase point_locator,
const Elem elem 
)
staticinherited

Computes the node position constraint equation contributions (for meshes with periodic boundary conditions)

Definition at line 939 of file fe_abstract.C.

References libMesh::Elem::active(), libMesh::PeriodicBoundaries::boundary(), libMesh::BoundaryInfo::boundary_ids(), libMesh::Elem::build_side_ptr(), libMesh::Elem::default_order(), libMesh::Elem::dim(), libMesh::FEAbstract::fe_type, libMesh::MeshBase::get_boundary_info(), libMesh::PeriodicBoundaryBase::get_corresponding_pos(), libMesh::invalid_uint, libMesh::FEInterface::inverse_map(), libMesh::LAGRANGE, libMesh::Elem::level(), libMesh::libmesh_assert(), libMesh::FEInterface::n_dofs(), libMesh::PeriodicBoundaries::neighbor(), libMesh::Elem::neighbor_ptr(), libMesh::PeriodicBoundaryBase::pairedboundary, libMesh::Real, libMesh::FEInterface::shape(), libMesh::Elem::side_index_range(), libMesh::BoundaryInfo::side_with_boundary_id(), and libMesh::Threads::spin_mtx.

944 {
945  // Only bother if we truly have periodic boundaries
946  if (boundaries.empty())
947  return;
948 
949  libmesh_assert(elem);
950 
951  // Only constrain active elements with this method
952  if (!elem->active())
953  return;
954 
955  const unsigned int Dim = elem->dim();
956 
957  // We currently always use LAGRANGE mappings for geometry
958  const FEType fe_type(elem->default_order(), LAGRANGE);
959 
960  std::vector<const Node *> my_nodes, neigh_nodes;
961 
962  // Look at the element faces. Check to see if we need to
963  // build constraints.
964  std::vector<boundary_id_type> bc_ids;
965  for (auto s : elem->side_index_range())
966  {
967  if (elem->neighbor_ptr(s))
968  continue;
969 
970  mesh.get_boundary_info().boundary_ids (elem, s, bc_ids);
971  for (std::vector<boundary_id_type>::const_iterator id_it=bc_ids.begin(); id_it!=bc_ids.end(); ++id_it)
972  {
973  const boundary_id_type boundary_id = *id_it;
974  const PeriodicBoundaryBase * periodic = boundaries.boundary(boundary_id);
975  if (periodic)
976  {
977  libmesh_assert(point_locator);
978 
979  // Get pointers to the element's neighbor.
980  const Elem * neigh = boundaries.neighbor(boundary_id, *point_locator, elem, s);
981 
982  // h refinement constraints:
983  // constrain dofs shared between
984  // this element and ones as coarse
985  // as or coarser than this element.
986  if (neigh->level() <= elem->level())
987  {
988  unsigned int s_neigh =
989  mesh.get_boundary_info().side_with_boundary_id(neigh, periodic->pairedboundary);
990  libmesh_assert_not_equal_to (s_neigh, libMesh::invalid_uint);
991 
992 #ifdef LIBMESH_ENABLE_AMR
993  libmesh_assert(neigh->active());
994 #endif // #ifdef LIBMESH_ENABLE_AMR
995 
996  const UniquePtr<const Elem> my_side (elem->build_side_ptr(s));
997  const UniquePtr<const Elem> neigh_side (neigh->build_side_ptr(s_neigh));
998 
999  const unsigned int n_side_nodes = my_side->n_nodes();
1000 
1001  my_nodes.clear();
1002  my_nodes.reserve (n_side_nodes);
1003  neigh_nodes.clear();
1004  neigh_nodes.reserve (n_side_nodes);
1005 
1006  for (unsigned int n=0; n != n_side_nodes; ++n)
1007  my_nodes.push_back(my_side->node_ptr(n));
1008 
1009  for (unsigned int n=0; n != n_side_nodes; ++n)
1010  neigh_nodes.push_back(neigh_side->node_ptr(n));
1011 
1012  // Make sure we're not adding recursive constraints
1013  // due to the redundancy in the way we add periodic
1014  // boundary constraints, or adding constraints to
1015  // nodes that already have AMR constraints
1016  std::vector<bool> skip_constraint(n_side_nodes, false);
1017 
1018  for (unsigned int my_side_n=0;
1019  my_side_n < n_side_nodes;
1020  my_side_n++)
1021  {
1022  libmesh_assert_less (my_side_n, FEInterface::n_dofs(Dim-1, fe_type, my_side->type()));
1023 
1024  const Node * my_node = my_nodes[my_side_n];
1025 
1026  // Figure out where my node lies on their reference element.
1027  const Point neigh_point = periodic->get_corresponding_pos(*my_node);
1028 
1029  const Point mapped_point = FEInterface::inverse_map(Dim-1, fe_type,
1030  neigh_side.get(),
1031  neigh_point);
1032 
1033  // If we've already got a constraint on this
1034  // node, then the periodic constraint is
1035  // redundant
1036  {
1037  Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
1038 
1039  if (constraints.count(my_node))
1040  {
1041  skip_constraint[my_side_n] = true;
1042  continue;
1043  }
1044  }
1045 
1046  // Compute the neighbors's side shape function values.
1047  for (unsigned int their_side_n=0;
1048  their_side_n < n_side_nodes;
1049  their_side_n++)
1050  {
1051  libmesh_assert_less (their_side_n, FEInterface::n_dofs(Dim-1, fe_type, neigh_side->type()));
1052 
1053  const Node * their_node = neigh_nodes[their_side_n];
1054 
1055  // If there's a constraint on an opposing node,
1056  // we need to see if it's constrained by
1057  // *our side* making any periodic constraint
1058  // on us recursive
1059  {
1060  Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
1061 
1062  if (!constraints.count(their_node))
1063  continue;
1064 
1065  const NodeConstraintRow & their_constraint_row =
1066  constraints[their_node].first;
1067 
1068  for (unsigned int orig_side_n=0;
1069  orig_side_n < n_side_nodes;
1070  orig_side_n++)
1071  {
1072  libmesh_assert_less (orig_side_n, FEInterface::n_dofs(Dim-1, fe_type, my_side->type()));
1073 
1074  const Node * orig_node = my_nodes[orig_side_n];
1075 
1076  if (their_constraint_row.count(orig_node))
1077  skip_constraint[orig_side_n] = true;
1078  }
1079  }
1080  }
1081  }
1082  for (unsigned int my_side_n=0;
1083  my_side_n < n_side_nodes;
1084  my_side_n++)
1085  {
1086  libmesh_assert_less (my_side_n, FEInterface::n_dofs(Dim-1, fe_type, my_side->type()));
1087 
1088  if (skip_constraint[my_side_n])
1089  continue;
1090 
1091  const Node * my_node = my_nodes[my_side_n];
1092 
1093  // Figure out where my node lies on their reference element.
1094  const Point neigh_point = periodic->get_corresponding_pos(*my_node);
1095 
1096  // Figure out where my node lies on their reference element.
1097  const Point mapped_point = FEInterface::inverse_map(Dim-1, fe_type,
1098  neigh_side.get(),
1099  neigh_point);
1100 
1101  for (unsigned int their_side_n=0;
1102  their_side_n < n_side_nodes;
1103  their_side_n++)
1104  {
1105  libmesh_assert_less (their_side_n, FEInterface::n_dofs(Dim-1, fe_type, neigh_side->type()));
1106 
1107  const Node * their_node = neigh_nodes[their_side_n];
1108  libmesh_assert(their_node);
1109 
1110  const Real their_value = FEInterface::shape(Dim-1,
1111  fe_type,
1112  neigh_side->type(),
1113  their_side_n,
1114  mapped_point);
1115 
1116  // since we may be running this method concurrently
1117  // on multiple threads we need to acquire a lock
1118  // before modifying the shared constraint_row object.
1119  {
1120  Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
1121 
1122  NodeConstraintRow & constraint_row =
1123  constraints[my_node].first;
1124 
1125  constraint_row.insert(std::make_pair(their_node,
1126  their_value));
1127  }
1128  }
1129  }
1130  }
1131  }
1132  }
1133  }
1134 }
static unsigned int n_dofs(const unsigned int dim, const FEType &fe_t, const ElemType t)
Definition: fe_interface.C:414
const unsigned int invalid_uint
A number which is used quite often to represent an invalid or uninitialized value.
Definition: libmesh.h:184
MeshBase & mesh
libmesh_assert(j)
spin_mutex spin_mtx
A convenient spin mutex object which can be used for obtaining locks.
Definition: threads.C:29
int8_t boundary_id_type
Definition: id_types.h:51
static Real shape(const unsigned int dim, const FEType &fe_t, const ElemType t, const unsigned int i, const Point &p)
Definition: fe_interface.C:641
static Point inverse_map(const unsigned int dim, const FEType &fe_t, const Elem *elem, const Point &p, const Real tolerance=TOLERANCE, const bool secure=true)
Definition: fe_interface.C:569
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
std::map< const Node *, Real, std::less< const Node * >, Threads::scalable_allocator< std::pair< const Node *const, Real > > > NodeConstraintRow
A row of the Node constraint mapping.
Definition: dof_map.h:136
FEType fe_type
The finite element type for this object.
Definition: fe_abstract.h:567
static void libMesh::FEGenericBase< FEOutputType< T >::type >::compute_proj_constraints ( DofConstraints constraints,
DofMap dof_map,
const unsigned int  variable_number,
const Elem elem 
)
staticinherited

Computes the constraint matrix contributions (for non-conforming adapted meshes) corresponding to variable number var_number, using generic projections.

virtual void libMesh::FEGenericBase< FEOutputType< T >::type >::compute_shape_functions ( const Elem elem,
const std::vector< Point > &  qp 
)
protectedvirtualinherited

After having updated the jacobian and the transformation from local to global coordinates in FEAbstract::compute_map(), the first derivatives of the shape functions are transformed to global coordinates, giving dphi, dphidx, dphidy, and dphidz.

This method should rarely be re-defined in derived classes, but still should be usable for children. Therefore, keep it protected.

Implements libMesh::FEAbstract.

Reimplemented in libMesh::FEXYZ< Dim >.

void libMesh::FEGenericBase< FEOutputType< T >::type >::determine_calculations ( )
protectedinherited

Determine which values are to be calculated, for both the FE itself and for the FEMap.

Referenced by libMesh::FESubdivision::attach_quadrature_rule().

void libMesh::ReferenceCounter::disable_print_counter_info ( )
staticinherited

Definition at line 107 of file reference_counter.C.

References libMesh::ReferenceCounter::_enable_print_counter.

Referenced by libMesh::LibMeshInit::LibMeshInit(), and libMesh::ReferenceCounter::n_objects().

108 {
109  _enable_print_counter = false;
110  return;
111 }
static bool _enable_print_counter
Flag to control whether reference count information is printed when print_info is called...
template<unsigned int Dim, FEFamily T>
void libMesh::FE< Dim, T >::dofs_on_edge ( const Elem *const  elem,
const Order  o,
unsigned int  e,
std::vector< unsigned int > &  di 
)
static

Fills the vector di with the local degree of freedom indices associated with edge e of element elem.

On a p-refined element, o should be the base order of the element.

Definition at line 89 of file fe.C.

References libMesh::Elem::is_node_on_edge(), libMesh::libmesh_assert(), libMesh::Elem::n_edges(), n_nodes, libMesh::Elem::n_nodes(), libMesh::Elem::p_level(), and libMesh::Elem::type().

93 {
94  libmesh_assert(elem);
95  libmesh_assert_less (e, elem->n_edges());
96 
97  di.clear();
98  unsigned int nodenum = 0;
99  const unsigned int n_nodes = elem->n_nodes();
100  for (unsigned int n = 0; n != n_nodes; ++n)
101  {
102  const unsigned int n_dofs = n_dofs_at_node(elem->type(),
103  static_cast<Order>(o + elem->p_level()), n);
104  if (elem->is_node_on_edge(n, e))
105  for (unsigned int i = 0; i != n_dofs; ++i)
106  di.push_back(nodenum++);
107  else
108  nodenum += n_dofs;
109  }
110 }
static unsigned int n_dofs(const ElemType t, const Order o)
static unsigned int n_dofs_at_node(const ElemType t, const Order o, const unsigned int n)
libmesh_assert(j)
const dof_id_type n_nodes
Definition: tecplot_io.C:67
Order
defines an enum for polynomial orders.
Definition: enum_order.h:32
template<>
void libMesh::FE< 2, SUBDIVISION >::dofs_on_edge ( const Elem const,
const Order  ,
unsigned  int,
std::vector< unsigned int > &  di 
)

Definition at line 925 of file fe_subdivision_2D.C.

925 { di.resize(0); }
template<unsigned int Dim, FEFamily T>
void libMesh::FE< Dim, T >::dofs_on_side ( const Elem *const  elem,
const Order  o,
unsigned int  s,
std::vector< unsigned int > &  di 
)
static

Fills the vector di with the local degree of freedom indices associated with side s of element elem.

On a p-refined element, o should be the base order of the element.

Definition at line 63 of file fe.C.

References libMesh::Elem::is_node_on_side(), libMesh::libmesh_assert(), n_nodes, libMesh::Elem::n_nodes(), libMesh::Elem::n_sides(), libMesh::Elem::p_level(), and libMesh::Elem::type().

67 {
68  libmesh_assert(elem);
69  libmesh_assert_less (s, elem->n_sides());
70 
71  di.clear();
72  unsigned int nodenum = 0;
73  const unsigned int n_nodes = elem->n_nodes();
74  for (unsigned int n = 0; n != n_nodes; ++n)
75  {
76  const unsigned int n_dofs = n_dofs_at_node(elem->type(),
77  static_cast<Order>(o + elem->p_level()), n);
78  if (elem->is_node_on_side(n, s))
79  for (unsigned int i = 0; i != n_dofs; ++i)
80  di.push_back(nodenum++);
81  else
82  nodenum += n_dofs;
83  }
84 }
static unsigned int n_dofs(const ElemType t, const Order o)
static unsigned int n_dofs_at_node(const ElemType t, const Order o, const unsigned int n)
libmesh_assert(j)
const dof_id_type n_nodes
Definition: tecplot_io.C:67
Order
defines an enum for polynomial orders.
Definition: enum_order.h:32
template<>
void libMesh::FE< 2, SUBDIVISION >::dofs_on_side ( const Elem const,
const Order  ,
unsigned  int,
std::vector< unsigned int > &  di 
)

Definition at line 924 of file fe_subdivision_2D.C.

924 { di.resize(0); }
template<unsigned int Dim, FEFamily T>
void libMesh::FE< Dim, T >::edge_reinit ( const Elem elem,
const unsigned int  edge,
const Real  tolerance = TOLERANCE,
const std::vector< Point > *const  pts = libmesh_nullptr,
const std::vector< Real > *const  weights = libmesh_nullptr 
)
virtual

Reinitializes all the physical element-dependent data based on the edge.

The tolerance parameter is passed to the involved call to inverse_map(). By default the shape functions and associated data are computed at the quadrature points specified by the quadrature rule qrule, but may be any points specified on the reference side element specified in the optional argument pts.

Implements libMesh::FEAbstract.

Definition at line 260 of file fe_boundary.C.

References libMesh::Elem::build_edge_ptr(), libMesh::libmesh_assert(), libmesh_nullptr, libMesh::Elem::p_level(), and libMesh::Elem::type().

Referenced by libMesh::FEMap::compute_edge_map().

265 {
266  libmesh_assert(elem);
268  // We don't do this for 1D elements!
269  libmesh_assert_not_equal_to (Dim, 1);
270 
271  // We're (possibly re-) calculating now! Time to determine what.
272  // FIXME - we currently just assume that we're using JxW and calling
273  // edge_map later.
274  this->_fe_map->calculations_started = false;
275  this->_fe_map->get_JxW();
276  this->_fe_map->get_xyz();
277  this->determine_calculations();
278 
279  // Build the side of interest
280  const UniquePtr<const Elem> edge(elem->build_edge_ptr(e));
281 
282  // Initialize the shape functions at the user-specified
283  // points
284  if (pts != libmesh_nullptr)
285  {
286  // The shape functions do not correspond to the qrule
287  this->shapes_on_quadrature = false;
288 
289  // Initialize the edge shape functions
290  this->_fe_map->template init_edge_shape_functions<Dim> (*pts, edge.get());
291 
292  // Compute the Jacobian*Weight on the face for integration
293  if (weights != libmesh_nullptr)
294  {
295  this->_fe_map->compute_edge_map (Dim, *weights, edge.get());
296  }
297  else
298  {
299  std::vector<Real> dummy_weights (pts->size(), 1.);
300  this->_fe_map->compute_edge_map (Dim, dummy_weights, edge.get());
301  }
302  }
303  // If there are no user specified points, we use the
304  // quadrature rule
305  else
306  {
307  // initialize quadrature rule
308  this->qrule->init(edge->type(), elem->p_level());
309 
310  if (this->qrule->shapes_need_reinit())
311  this->shapes_on_quadrature = false;
312 
313  // We might not need to reinitialize the shape functions
314  if ((this->get_type() != elem->type()) ||
315  (edge->type() != static_cast<int>(last_edge)) || // Comparison between enum and unsigned, cast the unsigned to int
316  this->shapes_need_reinit() ||
317  !this->shapes_on_quadrature)
318  {
319  // Set the element type
320  this->elem_type = elem->type();
321 
322  // Set the last_edge
323  last_edge = edge->type();
324 
325  // Initialize the edge shape functions
326  this->_fe_map->template init_edge_shape_functions<Dim> (this->qrule->get_points(), edge.get());
327  }
328 
329  // Compute the Jacobian*Weight on the face for integration
330  this->_fe_map->compute_edge_map (Dim, this->qrule->get_weights(), edge.get());
331 
332  // The shape functions correspond to the qrule
333  this->shapes_on_quadrature = true;
334  }
335 
336  // make a copy of the Jacobian for integration
337  const std::vector<Real> JxW_int(this->_fe_map->get_JxW());
338 
339  // Find where the integration points are located on the
340  // full element.
341  std::vector<Point> qp;
342  this->inverse_map (elem, this->_fe_map->get_xyz(), qp, tolerance);
343 
344  // compute the shape function and derivative values
345  // at the points qp
346  this->reinit (elem, &qp);
347 
348  // copy back old data
349  this->_fe_map->get_JxW() = JxW_int;
350 }
virtual void init(const ElemType type=INVALID_ELEM, unsigned int p_level=0)
Initializes the data structures for a quadrature rule for an element of type type.
Definition: quadrature.C:28
virtual bool shapes_need_reinit()
Definition: quadrature.h:217
unsigned int last_edge
Definition: fe.h:482
bool shapes_on_quadrature
A flag indicating if current data structures correspond to quadrature rule points.
Definition: fe_abstract.h:590
virtual bool shapes_need_reinit() const libmesh_override
const class libmesh_nullptr_t libmesh_nullptr
libmesh_assert(j)
ElemType get_type() const
Definition: fe_abstract.h:410
QBase * qrule
A pointer to the quadrature rule employed.
Definition: fe_abstract.h:584
void determine_calculations()
Determine which values are to be calculated, for both the FE itself and for the FEMap.
const std::vector< Real > & get_weights() const
Definition: quadrature.h:140
UniquePtr< FEMap > _fe_map
Definition: fe_abstract.h:517
virtual void reinit(const Elem *elem, const std::vector< Point > *const pts=libmesh_nullptr, const std::vector< Real > *const weights=libmesh_nullptr) libmesh_override
This is at the core of this class.
Definition: fe.C:115
const std::vector< Point > & get_points() const
Definition: quadrature.h:128
ElemType elem_type
The element type the current data structures are set up for.
Definition: fe_abstract.h:573
static Point inverse_map(const Elem *elem, const Point &p, const Real tolerance=TOLERANCE, const bool secure=true)
Definition: fe_map.C:1566
template<>
void libMesh::FE< 2, SUBDIVISION >::edge_reinit ( Elem const *  ,
unsigned  int,
Real  ,
const std::vector< Point > *  const,
const std::vector< Real > *  const 
)

Definition at line 884 of file fe_subdivision_2D.C.

889 {
890  libmesh_not_implemented();
891 }
void libMesh::ReferenceCounter::enable_print_counter_info ( )
staticinherited

Methods to enable/disable the reference counter output from print_info()

Definition at line 101 of file reference_counter.C.

References libMesh::ReferenceCounter::_enable_print_counter.

Referenced by libMesh::ReferenceCounter::n_objects().

102 {
103  _enable_print_counter = true;
104  return;
105 }
static bool _enable_print_counter
Flag to control whether reference count information is printed when print_info is called...
template<>
FEContinuity libMesh::FE< 0, SCALAR >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 107 of file fe_scalar.C.

References libMesh::DISCONTINUOUS.

template<>
FEContinuity libMesh::FE< 1, SCALAR >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 108 of file fe_scalar.C.

References libMesh::DISCONTINUOUS.

template<>
FEContinuity libMesh::FE< 2, SCALAR >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 109 of file fe_scalar.C.

References libMesh::DISCONTINUOUS.

template<>
FEContinuity libMesh::FE< 3, SCALAR >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 110 of file fe_scalar.C.

References libMesh::DISCONTINUOUS.

template<>
FEContinuity libMesh::FE< 0, L2_HIERARCHIC >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 196 of file fe_l2_hierarchic.C.

References libMesh::DISCONTINUOUS.

template<>
FEContinuity libMesh::FE< 1, L2_HIERARCHIC >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 197 of file fe_l2_hierarchic.C.

References libMesh::DISCONTINUOUS.

template<>
FEContinuity libMesh::FE< 2, L2_HIERARCHIC >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 198 of file fe_l2_hierarchic.C.

References libMesh::DISCONTINUOUS.

template<>
FEContinuity libMesh::FE< 3, L2_HIERARCHIC >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 199 of file fe_l2_hierarchic.C.

References libMesh::DISCONTINUOUS.

template<unsigned int Dim, FEFamily T>
virtual FEContinuity libMesh::FE< Dim, T >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

template<>
FEContinuity libMesh::FE< 0, CLOUGH >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 299 of file fe_clough.C.

References libMesh::C_ONE.

299 { return C_ONE; }
template<>
FEContinuity libMesh::FE< 1, CLOUGH >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 300 of file fe_clough.C.

References libMesh::C_ONE.

300 { return C_ONE; }
template<>
FEContinuity libMesh::FE< 2, CLOUGH >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 301 of file fe_clough.C.

References libMesh::C_ONE.

301 { return C_ONE; }
template<>
FEContinuity libMesh::FE< 3, CLOUGH >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 302 of file fe_clough.C.

References libMesh::C_ONE.

302 { return C_ONE; }
template<>
FEContinuity libMesh::FE< 0, HERMITE >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 349 of file fe_hermite.C.

References libMesh::C_ONE.

349 { return C_ONE; }
template<>
FEContinuity libMesh::FE< 1, HERMITE >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 350 of file fe_hermite.C.

References libMesh::C_ONE.

350 { return C_ONE; }
template<>
FEContinuity libMesh::FE< 2, HERMITE >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 351 of file fe_hermite.C.

References libMesh::C_ONE.

351 { return C_ONE; }
template<>
FEContinuity libMesh::FE< 3, HERMITE >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 352 of file fe_hermite.C.

References libMesh::C_ONE.

352 { return C_ONE; }
template<>
FEContinuity libMesh::FE< 0, HIERARCHIC >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 378 of file fe_hierarchic.C.

References libMesh::C_ZERO.

378 { return C_ZERO; }
template<>
FEContinuity libMesh::FE< 1, HIERARCHIC >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 379 of file fe_hierarchic.C.

References libMesh::C_ZERO.

379 { return C_ZERO; }
template<>
FEContinuity libMesh::FE< 2, HIERARCHIC >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 380 of file fe_hierarchic.C.

References libMesh::C_ZERO.

380 { return C_ZERO; }
template<>
FEContinuity libMesh::FE< 3, HIERARCHIC >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 381 of file fe_hierarchic.C.

References libMesh::C_ZERO.

381 { return C_ZERO; }
template<>
FEContinuity libMesh::FE< 0, MONOMIAL >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 405 of file fe_monomial.C.

References libMesh::DISCONTINUOUS.

template<>
FEContinuity libMesh::FE< 1, MONOMIAL >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 406 of file fe_monomial.C.

References libMesh::DISCONTINUOUS.

template<>
FEContinuity libMesh::FE< 2, MONOMIAL >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 407 of file fe_monomial.C.

References libMesh::DISCONTINUOUS.

template<>
FEContinuity libMesh::FE< 3, MONOMIAL >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 408 of file fe_monomial.C.

References libMesh::DISCONTINUOUS.

template<>
FEContinuity libMesh::FE< 0, BERNSTEIN >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 445 of file fe_bernstein.C.

References libMesh::C_ZERO.

445 { return C_ZERO; }
template<>
FEContinuity libMesh::FE< 1, BERNSTEIN >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 446 of file fe_bernstein.C.

References libMesh::C_ZERO.

446 { return C_ZERO; }
template<>
FEContinuity libMesh::FE< 2, BERNSTEIN >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 447 of file fe_bernstein.C.

References libMesh::C_ZERO.

447 { return C_ZERO; }
template<>
FEContinuity libMesh::FE< 3, BERNSTEIN >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 448 of file fe_bernstein.C.

References libMesh::C_ZERO.

448 { return C_ZERO; }
template<>
FEContinuity libMesh::FE< 0, L2_LAGRANGE >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 477 of file fe_l2_lagrange.C.

References libMesh::DISCONTINUOUS.

template<>
FEContinuity libMesh::FE< 1, L2_LAGRANGE >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 478 of file fe_l2_lagrange.C.

References libMesh::DISCONTINUOUS.

template<>
FEContinuity libMesh::FE< 2, L2_LAGRANGE >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 479 of file fe_l2_lagrange.C.

References libMesh::DISCONTINUOUS.

template<>
FEContinuity libMesh::FE< 3, L2_LAGRANGE >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 480 of file fe_l2_lagrange.C.

References libMesh::DISCONTINUOUS.

template<>
FEContinuity libMesh::FE< 0, NEDELEC_ONE >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 550 of file fe_nedelec_one.C.

550 { NEDELEC_LOW_D_ERROR_MESSAGE }
template<>
FEContinuity libMesh::FE< 1, NEDELEC_ONE >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 551 of file fe_nedelec_one.C.

551 { NEDELEC_LOW_D_ERROR_MESSAGE }
template<>
FEContinuity libMesh::FE< 2, NEDELEC_ONE >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 552 of file fe_nedelec_one.C.

References libMesh::H_CURL.

552 { return H_CURL; }
template<>
FEContinuity libMesh::FE< 3, NEDELEC_ONE >::get_continuity ( ) const
virtual
Returns
The continuity level of the finite element.

Implements libMesh::FEAbstract.

Definition at line 553 of file fe_nedelec_one.C.

References libMesh::H_CURL.

553 { return H_CURL; }
template<>
FEContinuity libMesh::FE< 0, LAGRANGE >::get_continuity ( ) const
virtual