Esempio n. 1
0
Point FEInterface::map(unsigned int dim,
                       const FEType& fe_t,
                       const Elem* elem,
                       const Point& p)
{
  fe_with_vec_switch(map(elem, p));

  libmesh_error();
  return Point();
}
Esempio n. 2
0
Point FEInterface::map(unsigned int dim,
                       const FEType & fe_t,
                       const Elem * elem,
                       const Point & p)
{
#ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS
  if (is_InfFE_elem(elem->type()))
    return ifem_map(dim, fe_t, elem, p);
#endif
  fe_with_vec_switch(map(elem, p));

  libmesh_error_msg("We'll never get here!");
  return Point();
}
Esempio n. 3
0
unsigned int FEInterface::n_dofs_per_elem(const unsigned int dim,
                                          const FEType& fe_t,
                                          const ElemType t)
{
#ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS

  if ( is_InfFE_elem(t) )
    return ifem_n_dofs_per_elem(dim, fe_t, t);

#endif

  const Order o = fe_t.order;

  fe_with_vec_switch(n_dofs_per_elem(t, o));

  libmesh_error();
  return 0;
}
Esempio n. 4
0
Point FEInterface::inverse_map (const unsigned int dim,
                                const FEType& fe_t,
                                const Elem* elem,
                                const Point& p,
                                const Real tolerance,
                                const bool secure)
{
#ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS

  if ( is_InfFE_elem(elem->type()) )
    return ifem_inverse_map(dim, fe_t, elem, p,tolerance, secure);

#endif

  fe_with_vec_switch(inverse_map(elem, p, tolerance, secure));

  libmesh_error();
  return Point();
}
Esempio n. 5
0
unsigned int FEInterface::n_dofs_at_node(const unsigned int dim,
                                         const FEType & fe_t,
                                         const ElemType t,
                                         const unsigned int n)
{
#ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS

  if ( is_InfFE_elem(t) )
    return ifem_n_dofs_at_node(dim, fe_t, t, n);

#endif

  const Order o = fe_t.order;

  fe_with_vec_switch(n_dofs_at_node(t, o, n));

  libmesh_error_msg("We'll never get here!");
  return 0;
}
Esempio n. 6
0
unsigned int FEInterface::n_shape_functions(const unsigned int dim,
                                            const FEType& fe_t,
                                            const ElemType t)
{

#ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS
  /*
   * Since the FEType, stored in DofMap/(some System child), has to
   * be the _same_ for InfFE and FE, we have to catch calls
   * to infinite elements through the element type.
   */

  if ( is_InfFE_elem(t) )
    return ifem_n_shape_functions(dim, fe_t, t);

#endif

  const Order o = fe_t.order;

  fe_with_vec_switch(n_shape_functions(t, o));

  libmesh_error();
  return 0;
}