From f2c19e49a5edaf2a4efdbccaa23c708a8a0f2861 Mon Sep 17 00:00:00 2001 From: David Wells Date: Fri, 19 Jun 2020 14:36:36 -0400 Subject: [PATCH] Remove DoFHandlerType from hp::FEValues templates. --- include/deal.II/hp/fe_values.h | 53 +++++++++++++++++----------------- source/hp/fe_values.cc | 39 +++++++++++++------------ source/hp/fe_values.inst.in | 9 +++--- 3 files changed, 51 insertions(+), 50 deletions(-) diff --git a/include/deal.II/hp/fe_values.h b/include/deal.II/hp/fe_values.h index c599df056e..44fa1b968e 100644 --- a/include/deal.II/hp/fe_values.h +++ b/include/deal.II/hp/fe_values.h @@ -18,6 +18,8 @@ #include +#include + #include #include @@ -318,7 +320,7 @@ namespace hp * passed to the constructor of this class with index given by * cell-@>active_fe_index(). Consequently, the * hp::FECollection argument given to this object should really be the - * same as that used in the construction of the hp::DoFHandler associated + * same as that used in the construction of the DoFHandler associated * with the present cell. On the other hand, if a value is given for this * argument, it overrides the choice of * cell-@>active_fe_index(). @@ -347,19 +349,18 @@ namespace hp * all finite elements in an hp discretization), then this single mapping * is used unless a different value for this argument is specified. */ - template + template void - reinit(const TriaIterator> cell, + reinit(const TriaIterator< + DoFCellAccessor, lda>> cell, const unsigned int q_index = numbers::invalid_unsigned_int, const unsigned int mapping_index = numbers::invalid_unsigned_int, const unsigned int fe_index = numbers::invalid_unsigned_int); /** - * Like the previous function, but for non-hp iterators. The reason this - * (and the other non-hp iterator) function exists is so that one can use - * hp::FEValues not only for hp::DoFhandler objects, but for all sorts of - * DoFHandler objects, and triangulations not associated with DoFHandlers - * in general. + * Like the previous function, but for non-DoFHandler iterators. The reason + * this function exists is so that one can use hp::FEValues for + * Triangulation objects too. * * Since cell-@>active_fe_index() doesn't make sense for * triangulation iterators, this function chooses the zero-th finite @@ -439,7 +440,7 @@ namespace hp * passed to the constructor of this class with index given by * cell-@>active_fe_index(). Consequently, the * hp::FECollection argument given to this object should really be the - * same as that used in the construction of the hp::DoFHandler associated + * same as that used in the construction of the DoFHandler associated * with the present cell. On the other hand, if a value is given for this * argument, it overrides the choice of * cell-@>active_fe_index(). @@ -468,20 +469,19 @@ namespace hp * all finite elements in an hp discretization), then this single mapping * is used unless a different value for this argument is specified. */ - template + template void - reinit(const TriaIterator> cell, - const unsigned int face_no, + reinit(const TriaIterator< + DoFCellAccessor, lda>> cell, + const unsigned int face_no, const unsigned int q_index = numbers::invalid_unsigned_int, const unsigned int mapping_index = numbers::invalid_unsigned_int, const unsigned int fe_index = numbers::invalid_unsigned_int); /** - * Like the previous function, but for non-hp iterators. The reason this - * (and the other non-hp iterator) function exists is so that one can use - * hp::FEValues not only for hp::DoFhandler objects, but for all sorts of - * DoFHandler objects, and triangulations not associated with DoFHandlers - * in general. + * Like the previous function, but for non-DoFHandler iterators. The reason + * this function exists is so that one can use this class for + * Triangulation objects too. * * Since cell-@>active_fe_index() doesn't make sense for * triangulation iterators, this function chooses the zero-th finite @@ -566,24 +566,23 @@ namespace hp * all finite elements in an hp discretization), then this single mapping * is used unless a different value for this argument is specified. */ - template + template void - reinit(const TriaIterator> cell, - const unsigned int face_no, - const unsigned int subface_no, + reinit(const TriaIterator< + DoFCellAccessor, lda>> cell, + const unsigned int face_no, + const unsigned int subface_no, const unsigned int q_index = numbers::invalid_unsigned_int, const unsigned int mapping_index = numbers::invalid_unsigned_int, const unsigned int fe_index = numbers::invalid_unsigned_int); /** - * Like the previous function, but for non-hp iterators. The reason this - * (and the other non-hp iterator) function exists is so that one can use - * hp::FEValues not only for hp::DoFhandler objects, but for all sorts of - * DoFHandler objects, and triangulations not associated with DoFHandlers - * in general. + * Like the previous function, but for non-DoFHandler iterators. The reason + * this function exists is so that one can use this class for + * Triangulation objects too. * * Since cell-@>active_fe_index() doesn't make sense for - * triangulation iterators, this function chooses the zero-th finite + * Triangulation iterators, this function chooses the zero-th finite * element, mapping, and quadrature object from the relevant constructions * passed to the constructor of this object. The only exception is if you * specify a value different from the default value for any of these last diff --git a/source/hp/fe_values.cc b/source/hp/fe_values.cc index 8bc477b42e..233b474ab5 100644 --- a/source/hp/fe_values.cc +++ b/source/hp/fe_values.cc @@ -223,13 +223,14 @@ namespace hp template - template + template void FEValues::reinit( - const TriaIterator> cell, - const unsigned int q_index, - const unsigned int mapping_index, - const unsigned int fe_index) + const TriaIterator, lda>> + cell, + const unsigned int q_index, + const unsigned int mapping_index, + const unsigned int fe_index) { // determine which indices we // should actually use @@ -334,14 +335,15 @@ namespace hp template - template + template void FEFaceValues::reinit( - const TriaIterator> cell, - const unsigned int face_no, - const unsigned int q_index, - const unsigned int mapping_index, - const unsigned int fe_index) + const TriaIterator, lda>> + cell, + const unsigned int face_no, + const unsigned int q_index, + const unsigned int mapping_index, + const unsigned int fe_index) { // determine which indices we // should actually use @@ -447,15 +449,16 @@ namespace hp template - template + template void FESubfaceValues::reinit( - const TriaIterator> cell, - const unsigned int face_no, - const unsigned int subface_no, - const unsigned int q_index, - const unsigned int mapping_index, - const unsigned int fe_index) + const TriaIterator, lda>> + cell, + const unsigned int face_no, + const unsigned int subface_no, + const unsigned int q_index, + const unsigned int mapping_index, + const unsigned int fe_index) { // determine which indices we // should actually use diff --git a/source/hp/fe_values.inst.in b/source/hp/fe_values.inst.in index 5b38d72824..dac83a8e80 100644 --- a/source/hp/fe_values.inst.in +++ b/source/hp/fe_values.inst.in @@ -82,8 +82,7 @@ for (deal_II_dimension : DIMENSIONS) #endif } -for (dof_handler : DOFHANDLER_TEMPLATE; deal_II_dimension : DIMENSIONS; - deal_II_space_dimension : SPACE_DIMENSIONS; +for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS; lda : BOOL) { namespace hp @@ -93,7 +92,7 @@ for (dof_handler : DOFHANDLER_TEMPLATE; deal_II_dimension : DIMENSIONS; template void FEValues::reinit( TriaIterator, + dealii::DoFHandler, lda>>, unsigned int, unsigned int, @@ -101,7 +100,7 @@ for (dof_handler : DOFHANDLER_TEMPLATE; deal_II_dimension : DIMENSIONS; template void FEFaceValues::reinit( TriaIterator, + dealii::DoFHandler, lda>>, unsigned int, unsigned int, @@ -110,7 +109,7 @@ for (dof_handler : DOFHANDLER_TEMPLATE; deal_II_dimension : DIMENSIONS; template void FESubfaceValues::reinit( TriaIterator, + dealii::DoFHandler, lda>>, unsigned int, unsigned int, -- 2.39.5