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> 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>
149 void compute_component_wise(
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>
493 compute_projection_from_quadrature_points(
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>
559 interpolate (
const DH1<dim,spacedim> &dof1,
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>
584 void interpolate (
const DH1<dim,spacedim> &dof1,
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>
616 void back_interpolate (
const DH<dim> &dof1,
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
#define DeclException2(Exception2, type1, type2, outsequence)
#define DeclException1(Exception1, type1, outsequence)
#define DeclException0(Exception0)
#define DeclException4(Exception4, type1, type2, type3, type4, outsequence)