17 #ifndef __deal2__fe_tools_H
18 #define __deal2__fe_tools_H
22 #include <deal.II/base/config.h>
24 #include <deal.II/base/geometry_info.h>
25 #include <deal.II/base/tensor.h>
26 #include <deal.II/base/symmetric_tensor.h>
32 DEAL_II_NAMESPACE_OPEN
35 template <
typename number>
class Vector;
38 template <
int dim,
int spacedim>
class DoFHandler;
41 template <
int dim,
int spacedim>
class DoFHandler;
81 template <
int dim,
int spacedim=dim>
89 get (
const unsigned int degree)
const = 0;
123 get (
const unsigned int degree)
const;
148 template<
int dim,
int spacedim>
151 std::vector<unsigned int> &renumbering,
152 std::vector<std::vector<unsigned int> > &start_indices);
170 template<
int dim,
int spacedim>
173 std::vector<types::global_dof_index> &renumbering,
174 std::vector<types::global_dof_index> &block_data,
175 bool return_start_indices =
true);
190 template <
int dim,
typename number,
int spacedim>
207 template <
int dim,
typename number,
int spacedim>
223 template <
int dim,
typename number,
int spacedim>
232 template <
int dim,
typename number,
int spacedim>
264 template <
int dim,
int spacedim>
303 template <
int dim,
typename number,
int spacedim>
306 const bool isotropic_only =
false);
321 template <
int dim,
typename number,
int spacedim>
325 const unsigned int face_coarse,
326 const unsigned int face_fine);
355 template <
int dim,
typename number,
int spacedim>
359 const bool isotropic_only =
false);
446 template <
int dim,
int spacedim>
460 template <
int dim,
int spacedim>
510 template <
int dim,
int spacedim>
515 const typename DoFHandler<dim, spacedim>::active_cell_iterator &cell,
516 const unsigned int face,
554 template <
int dim,
int spacedim,
555 template <
int,
int>
class DH1,
556 template <
int,
int>
class DH2,
557 class InVector,
class OutVector>
561 const DH2<dim,spacedim> &dof2,
580 template <
int dim,
int spacedim,
581 template <
int,
int>
class DH1,
582 template <
int,
int>
class DH2,
583 class InVector,
class OutVector>
586 const DH2<dim,spacedim> &dof2,
603 template <
int dim,
class InVector,
class OutVector,
int spacedim>
607 OutVector &u1_interpolated);
614 template <
int>
class DH,
615 class InVector,
class OutVector,
int spacedim>
619 OutVector &u1_interpolated);
634 template <
int dim,
class InVector,
class OutVector,
int spacedim>
640 OutVector &u1_interpolated);
651 template <
int dim,
class InVector,
class OutVector,
int spacedim>
655 OutVector &z1_difference);
669 template <
int dim,
class InVector,
class OutVector,
int spacedim>
675 OutVector &z1_difference);
687 template <
int dim,
class InVector,
class OutVector,
int spacedim>
712 template <
int dim,
class InVector,
class OutVector,
int spacedim>
728 template <
int dim,
class InVector,
class OutVector,
int spacedim>
762 std::vector<unsigned int> &h2l);
769 std::vector<unsigned int>
780 std::vector<unsigned int> &l2h);
787 std::vector<unsigned int>
869 template <
int dim,
int spacedim>
884 <<
"Can't re-generate a finite element from the string '"
900 <<
"The dimension " << arg1
901 <<
" in the finite element string must match "
902 <<
"the space dimension "
933 <<
"You are using continuous elements on a grid with "
934 <<
"hanging nodes but without providing hanging node "
935 <<
"constraints. Use the respective function with "
936 <<
"additional ConstraintMatrix argument(s), instead."
951 <<
"This is a " << arg1 <<
"x" << arg2 <<
" matrix, "
952 <<
"but should be a " << arg3 <<
"x" << arg4 <<
" matrix.");
960 <<
"Least squares fit leaves a gap of " << arg1);
969 << arg1 <<
" must be greater than " << arg2);
981 return new FE(degree);
989 DEAL_II_NAMESPACE_CLOSE
DeclException2(ExcInvalidFEDimension, char, int,<< "The dimension "<< arg1<< " in the finite element string must match "<< "the space dimension "<< arg2<< ".")
DeclException1(ExcInvalidFEName, std::string,<< "Can't re-generate a finite element from the string '"<< arg1<< "'.")
DeclException0(ExcInvalidFE)
DeclException4(ExcMatrixDimensionMismatch, int, int, int, int,<< "This is a "<< arg1<< "x"<< arg2<< " matrix, "<< "but should be a "<< arg3<< "x"<< arg4<< " matrix.")