23 #ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS 63 libmesh_error_msg(
"Unsupported dim = " << dim);
95 libmesh_error_msg(
"Unsupported dim = " << dim);
105 const unsigned int n)
127 libmesh_error_msg(
"Unsupported dim = " << dim);
159 libmesh_error_msg(
"Unsupported dim = " << dim);
169 const std::vector<Number> & elem_soln,
170 std::vector<Number> & nodal_soln)
181 libmesh_error_msg(
"ERROR: INFINITE_MAP is not a valid shape family for radial approximation.");
193 libmesh_error_msg(
"ERROR: Spherical & Ellipsoidal IFEMs not implemented.");
208 libmesh_error_msg(
"ERROR: Spherical & Ellipsoidal IFEMs not implemented.");
223 libmesh_error_msg(
"ERROR: Spherical & Ellipsoidal IFEMs not implemented.");
238 libmesh_error_msg(
"ERROR: Spherical & Ellipsoidal IFEMs not implemented.");
244 libmesh_error_msg(
"ERROR: Bad FEType.radial_family= " << fe_t.
radial_family);
259 libmesh_error_msg(
"ERROR: INFINITE_MAP is not a valid shape family for radial approximation.");
271 libmesh_error_msg(
"ERROR: Spherical & Ellipsoidal IFEMs not implemented.");
286 libmesh_error_msg(
"ERROR: Spherical & Ellipsoidal IFEMs not implemented.");
301 libmesh_error_msg(
"ERROR: Spherical & Ellipsoidal IFEMs not implemented.");
316 libmesh_error_msg(
"ERROR: Spherical & Ellipsoidal IFEMs not implemented.");
322 libmesh_error_msg(
"ERROR: Bad FEType.radial_family= " << fe_t.
radial_family);
337 libmesh_error_msg(
"ERROR: INFINITE_MAP is not a valid shape family for radial approximation.");
349 libmesh_error_msg(
"ERROR: Spherical & Ellipsoidal IFEMs not implemented.");
364 libmesh_error_msg(
"ERROR: Spherical & Ellipsoidal IFEMs not implemented.");
379 libmesh_error_msg(
"ERROR: Spherical & Ellipsoidal IFEMs not implemented.");
394 libmesh_error_msg(
"ERROR: Spherical & Ellipsoidal IFEMs not implemented.");
402 libmesh_error_msg(
"ERROR: Bad FEType.radial_family= " << fe_t.
radial_family);
409 libmesh_error_msg(
"Invalid dim = " << dim);
434 libmesh_error_msg(
"Invalid dim = " << dim);
439 libmesh_not_implemented_msg(
"ERROR: Spherical and Ellipsoidal IFEMs not (yet) implemented.");
441 libmesh_error_msg(
"Invalid map = " << fe_t.
inf_map);
451 const Real tolerance,
466 libmesh_not_implemented_msg(
"ERROR: Spherical and Ellipsoidal IFEMs not (yet) implemented.");
477 libmesh_error_msg(
"Invalid map = " << fe_t.
inf_map);
492 libmesh_not_implemented_msg(
"ERROR: Spherical and Ellipsoidal IFEMs not (yet) implemented.");
503 libmesh_error_msg(
"Invalid map = " << fe_t.
inf_map);
518 libmesh_not_implemented_msg(
"ERROR: Spherical and Ellipsoidal IFEMs not (yet) implemented.");
529 libmesh_error_msg(
"Invalid map = " << fe_t.
inf_map);
534 libmesh_error_msg(
"Invalid dim = " << dim);
543 const std::vector<Point> & physical_points,
544 std::vector<Point> & reference_points,
545 const Real tolerance,
560 libmesh_error_msg(
"Invalid map = " << fe_t.
inf_map);
575 libmesh_error_msg(
"Invalid map = " << fe_t.
inf_map);
590 libmesh_error_msg(
"Invalid map = " << fe_t.
inf_map);
595 libmesh_error_msg(
"Invalid dim = " << dim);
615 const unsigned int i,
646 libmesh_error_msg(
"Invalid radial family = " << fe_t.
radial_family);
672 libmesh_error_msg(
"Invalid radial family = " << fe_t.
radial_family);
698 libmesh_error_msg(
"Invalid radial family = " << fe_t.
radial_family);
703 libmesh_error_msg(
"Invalid dim = " << dim);
713 const unsigned int i,
744 libmesh_error_msg(
"Invalid radial family = " << fe_t.
radial_family);
770 libmesh_error_msg(
"Invalid radial family = " << fe_t.
radial_family);
796 libmesh_error_msg(
"Invalid radial family = " << fe_t.
radial_family);
801 libmesh_error_msg(
"Invalid dim = " << dim);
846 libmesh_error_msg(
"Invalid radial family = " << fe_t.
radial_family);
879 libmesh_error_msg(
"Invalid radial family = " << fe_t.
radial_family);
912 libmesh_error_msg(
"Invalid radial family = " << fe_t.
radial_family);
920 libmesh_error_msg(
"Invalid dim = " << dim);
927 #endif // ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS Manages the family, order, etc. parameters for a given FE.
static unsigned int n_dofs_per_elem(const FEType &fet, const ElemType inf_elem_type)
static unsigned int ifem_n_shape_functions(const unsigned int dim, const FEType &fe_t, const ElemType t)
static unsigned int n_dofs_at_node(const FEType &fet, const ElemType inf_elem_type, const unsigned int n)
static bool ifem_on_reference_element(const Point &p, const ElemType t, const Real eps)
static Real ifem_shape(const unsigned int dim, const FEType &fe_t, const ElemType t, const unsigned int i, const Point &p)
Helper class used with FEInterface::compute_data().
The base class for all geometric element types.
static Real shape(const FEType &fet, const ElemType t, const unsigned int i, const Point &p)
static Point ifem_inverse_map(const unsigned int dim, const FEType &fe_t, const Elem *elem, const Point &p, const Real tolerance=TOLERANCE, const bool secure=true)
static bool on_reference_element(const Point &p, const ElemType t, const Real eps=TOLERANCE)
static void ifem_compute_data(const unsigned int dim, const FEType &fe_t, const Elem *elem, FEComputeData &data)
static unsigned int n_dofs(const FEType &fet, const ElemType inf_elem_type)
static Point ifem_map(const unsigned int dim, const FEType &fe_t, const Elem *elem, const Point &p)
static void ifem_nodal_soln(const unsigned int dim, const FEType &fe_t, const Elem *elem, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
static unsigned int ifem_n_dofs_per_elem(const unsigned int dim, const FEType &fe_t, const ElemType t)
static Point inverse_map(const Elem *elem, const Point &p, const Real tolerance=TOLERANCE, const bool secure=true)
static unsigned int ifem_n_dofs(const unsigned int dim, const FEType &fe_t, const ElemType t)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static Point map(const Elem *inf_elem, const Point &reference_point)
static void compute_data(const FEType &fe_t, const Elem *inf_elem, FEComputeData &data)
static void nodal_soln(const unsigned int dim, const FEType &fe_t, const Elem *elem, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
static void nodal_soln(const FEType &fet, const Elem *elem, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln)
A geometric point in (x,y,z) space.
virtual unsigned int n_shape_functions() const override
static unsigned int ifem_n_dofs_at_node(const unsigned int dim, const FEType &fe_t, const ElemType t, const unsigned int n)