37 #ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS 39 template <
unsigned int friend_Dim, FEFamily friend_T_radial, InfMapType friend_T_map>
88 template <
unsigned int Dim, FEFamily T>
113 const unsigned int i,
126 const unsigned int i,
138 const unsigned int i,
139 const unsigned int j,
150 const unsigned int i,
151 const unsigned int j,
176 const unsigned int i,
177 const unsigned int j,
202 const unsigned int i,
203 const unsigned int j,
213 const std::vector<Number> & elem_soln,
249 const unsigned int n);
280 std::vector<unsigned int> & di);
290 std::vector<unsigned int> & di);
304 const bool secure =
true);
317 const std::vector<Point> & physical_points,
318 std::vector<Point> & reference_points,
320 const bool secure =
true);
333 const std::vector<Point> *
const pts =
nullptr,
334 const std::vector<Real> *
const weights =
nullptr)
override;
346 const unsigned int side,
348 const std::vector<Point> *
const pts =
nullptr,
349 const std::vector<Real> *
const weights =
nullptr)
override;
361 const unsigned int edge,
363 const std::vector<Point> *
const pts =
nullptr,
364 const std::vector<Real> *
const weights =
nullptr)
override;
372 const unsigned int s,
373 const std::vector<Point> & reference_side_points,
374 std::vector<Point> & reference_points)
override;
390 #ifdef LIBMESH_ENABLE_AMR 399 const unsigned int variable_number,
401 #endif // #ifdef LIBMESH_ENABLE_AMR 416 const Point & reference_point);
423 const Point & reference_point);
430 const Point & reference_point);
437 const Point & reference_point);
439 #ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS 444 template <
unsigned int friend_Dim, FEFamily friend_T_radial, InfMapType friend_T_map>
460 #ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS 467 const Elem * e)
override;
494 template <
unsigned int Dim>
518 template <
unsigned int Dim>
554 const unsigned int i,
560 const unsigned int i,
561 const unsigned int j,
567 const unsigned int i,
568 const unsigned int j,
594 const std::vector<Point> *
const pts =
nullptr,
595 const std::vector<Real> *
const weights =
nullptr)
override;
604 const std::vector<Point> *
const =
nullptr,
605 const std::vector<Real> *
const =
nullptr)
override 606 { libmesh_not_implemented(); }
623 const Elem * elem)
override;
642 const unsigned int j,
653 const unsigned int j,
668 const unsigned int valence);
676 unsigned int valence);
688 template <
unsigned int Dim>
712 template <
unsigned int Dim>
736 template <
unsigned int Dim>
755 template <
unsigned int Dim>
778 template <
unsigned int Dim>
797 template <
unsigned int Dim>
823 template <
unsigned int Dim>
843 const std::vector<Point> *
const pts =
nullptr,
844 const std::vector<Real> *
const weights =
nullptr)
override 852 const unsigned int side,
854 const std::vector<Point> *
const pts =
nullptr,
855 const std::vector<Real> *
const weights =
nullptr)
override;
868 const Elem * e)
override;
887 const std::vector<Real> & weights);
899 template <
unsigned int Dim>
923 template <
unsigned int Dim>
943 namespace FiniteElements
1049 #endif // LIBMESH_FE_H
Manages the family, order, etc. parameters for a given FE.
FELagrange(const FEType &fet)
FESubdivision(const FEType &fet)
FEMonomial(const FEType &fet)
static unsigned int n_dofs(const ElemType t, const Order o)
static Real regular_shape(const unsigned int i, const Real v, const Real w)
Base class for all the infinite geometric element types.
static Point map_zeta(const Elem *elem, const Point &reference_point)
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) override
static OutputShape shape(const ElemType t, const Order o, const unsigned int i, const Point &p)
FE< 1, MONOMIAL > FEMonomial1D
FE< 2, L2_HIERARCHIC > FEL2Hierarchic2D
virtual void attach_quadrature_rule(QBase *q) override
FE< 3, L2_HIERARCHIC > FEL2Hierarchic3D
static void init_subdivision_matrix(DenseMatrix< Real > &A, unsigned int valence)
void compute_face_values(const Elem *elem, const Elem *side, const std::vector< Real > &weights)
FEClough(const FEType &fet)
static Point map_xi(const Elem *elem, const Point &reference_point)
static void loop_subdivision_mask(std::vector< Real > &weights, const unsigned int valence)
FE< 1, L2_LAGRANGE > FEL2Lagrange1D
The base class for all geometric element types.
FEGenericBase< typename FEOutputType< T >::type >::OutputShape OutputShape
static unsigned int n_dofs_at_node(const ElemType t, const Order o, const unsigned int n)
static OutputShape shape_deriv(const ElemType t, const Order o, const unsigned int i, const unsigned int j, const Point &p)
static void dofs_on_side(const Elem *const elem, const Order o, unsigned int s, std::vector< unsigned int > &di)
FE< 3, L2_LAGRANGE > FEL2Lagrange3D
static const Real TOLERANCE
virtual bool shapes_need_reinit() const override
FE< 1, HIERARCHIC > FEHierarchic1D
static Real hermite_raw_shape_second_deriv(const unsigned int basis_num, const Real xi)
virtual void init_shape_functions(const std::vector< Point > &qp, const Elem *e) override
FE< 2, LAGRANGE > FELagrange2D
FELagrangeVec(const FEType &fet)
static Real hermite_raw_shape(const unsigned int basis_num, const Real xi)
virtual void attach_quadrature_rule(QBase *q) override
FE< 3, LAGRANGE > FELagrange3D
FEL2Lagrange(const FEType &fet)
virtual bool is_hierarchic() const override
Manages the degrees of freedom (DOFs) in a simulation.
FEHierarchic(const FEType &fet)
virtual void reinit(const Elem *elem, const std::vector< Point > *const pts=nullptr, const std::vector< Real > *const weights=nullptr) override
virtual unsigned int n_shape_functions() const override
Template class which generates the different FE families and orders.
static Point map(const Elem *elem, const Point &reference_point)
static Real regular_shape_second_deriv(const unsigned int i, const unsigned int j, const Real v, const Real w)
FEHermite(const FEType &fet)
FE< 3, HIERARCHIC > FEHierarchic3D
FEL2Hierarchic(const FEType &fet)
FE< 2, MONOMIAL > FEMonomial2D
static Real regular_shape_deriv(const unsigned int i, const unsigned int j, const Real v, const Real w)
FEOutputType< T >::type OutputShape
static unsigned int n_dofs_per_elem(const ElemType t, const Order o)
virtual FEContinuity get_continuity() const override
FENedelecOne(const FEType &fet)
virtual unsigned int n_quadrature_points() const override
static void compute_constraints(DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem)
static Point map_eta(const Elem *elem, const Point &reference_point)
static unsigned int n_shape_functions(const ElemType t, const Order o)
static void dofs_on_edge(const Elem *const elem, const Order o, unsigned int e, std::vector< unsigned int > &di)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
FE< 2, HIERARCHIC > FEHierarchic2D
virtual void compute_shape_functions(const Elem *elem, const std::vector< Point > &qp) override
static PetscErrorCode Mat * A
static void nodal_soln(const Elem *elem, const Order o, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
FE< 3, MONOMIAL > FEMonomial3D
virtual void init_shape_functions(const std::vector< Point > &qp, const Elem *e)
static Real hermite_raw_shape_deriv(const unsigned int basis_num, const Real xi)
FE< 2, L2_LAGRANGE > FEL2Lagrange2D
FE< 1, LAGRANGE > FELagrange1D
FEScalar(const FEType &fet)
FE< 1, L2_HIERARCHIC > FEL2Hierarchic1D
std::vector< Point > cached_nodes
virtual void init_shape_functions(const std::vector< Point > &qp, const Elem *elem) override
A matrix object used for finite element assembly and numerics.
virtual void edge_reinit(const Elem *elem, const unsigned int edge, const Real tolerance=TOLERANCE, const std::vector< Point > *const pts=nullptr, const std::vector< Real > *const weights=nullptr) override
A geometric point in (x,y,z) space.
virtual void reinit(const Elem *elem, const std::vector< Point > *const pts=nullptr, const std::vector< Real > *const weights=nullptr) override
virtual void reinit(const Elem *elem, const std::vector< Point > *const pts=nullptr, const std::vector< Real > *const weights=nullptr) override
Base class for all quadrature families and orders.
static OutputShape shape_second_deriv(const ElemType t, const Order o, const unsigned int i, const unsigned int j, const Point &p)
static Point inverse_map(const Elem *elem, const Point &p, const Real tolerance=TOLERANCE, const bool secure=true)
virtual void init_base_shape_functions(const std::vector< Point > &qp, const Elem *e) override
virtual void reinit(const Elem *, const unsigned int, const Real=TOLERANCE, const std::vector< Point > *const =nullptr, const std::vector< Real > *const =nullptr) override