Пример #1
0
void FEInterface::dofs_on_edge(const Elem* const elem,
                               const unsigned int dim,
                               const FEType& fe_t,
                               unsigned int e,
                               std::vector<unsigned int>& di)
{
  const Order o = fe_t.order;

  void_fe_with_vec_switch(dofs_on_edge(elem, o, e, di));

  libmesh_error();
}
Пример #2
0
void FEInterface::dofs_on_side(const Elem * const elem,
                               const unsigned int dim,
                               const FEType & fe_t,
                               unsigned int s,
                               std::vector<unsigned int> & di)
{
  const Order o = fe_t.order;

  void_fe_with_vec_switch(dofs_on_side(elem, o, s, di));

  libmesh_error_msg("We'll never get here!");
}
Пример #3
0
void FEInterface::nodal_soln(const unsigned int dim,
                             const FEType& fe_t,
                             const Elem* elem,
                             const std::vector<Number>& elem_soln,
                             std::vector<Number>&       nodal_soln)
{
#ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS

  if ( is_InfFE_elem(elem->type()) )
    {
      ifem_nodal_soln(dim, fe_t, elem, elem_soln, nodal_soln);
      return;
    }

#endif

  const Order order = fe_t.order;

  void_fe_with_vec_switch(nodal_soln(elem, order, elem_soln, nodal_soln));
}
Пример #4
0
void FEInterface::inverse_map (const unsigned int dim,
                               const FEType& fe_t,
                               const Elem* elem,
                               const std::vector<Point>& physical_points,
                               std::vector<Point>&       reference_points,
                               const Real tolerance,
                               const bool secure)
{
  const std::size_t n_pts = physical_points.size();

  // Resize the vector
  reference_points.resize(n_pts);

  if (n_pts == 0)
    {
      libMesh::err << "WARNING: empty vector physical_points!"
                   << std::endl;
      libmesh_here();
      return;
    }

#ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS

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

      //       libMesh::err << "ERROR: Not implemented!"
      // << std::endl;
      //       libmesh_error();
    }

#endif

  void_fe_with_vec_switch(inverse_map(elem, physical_points, reference_points, tolerance, secure));

  libmesh_error();
  return;
}