From 5c70bc2856681cac89c6c08c959f8d015d62cdcc Mon Sep 17 00:00:00 2001 From: kanschat Date: Tue, 13 Jan 2009 00:19:17 +0000 Subject: [PATCH] cell_JxW_values, which was not really the right concept, has been removed git-svn-id: https://svn.dealii.org/trunk@18191 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/deal.II/include/fe/fe_update_flags.h | 10 - deal.II/deal.II/include/fe/fe_values.h | 27 +-- deal.II/deal.II/include/fe/mapping.h | 6 +- .../deal.II/include/fe/mapping_cartesian.h | 33 +-- deal.II/deal.II/include/fe/mapping_q.h | 6 +- deal.II/deal.II/include/fe/mapping_q1.h | 51 +--- deal.II/deal.II/source/fe/fe_abf.cc | 2 - deal.II/deal.II/source/fe/fe_poly_tensor.cc | 4 - .../deal.II/source/fe/fe_raviart_thomas.cc | 2 + .../source/fe/fe_raviart_thomas_nodal.cc | 48 ++-- deal.II/deal.II/source/fe/fe_system.cc | 3 +- deal.II/deal.II/source/fe/fe_values.cc | 12 +- .../deal.II/source/fe/mapping_cartesian.cc | 114 ++++----- deal.II/deal.II/source/fe/mapping_q.cc | 16 +- deal.II/deal.II/source/fe/mapping_q1.cc | 222 ++++++------------ 15 files changed, 177 insertions(+), 379 deletions(-) diff --git a/deal.II/deal.II/include/fe/fe_update_flags.h b/deal.II/deal.II/include/fe/fe_update_flags.h index b81bd855ff..9eb404b7a7 100644 --- a/deal.II/deal.II/include/fe/fe_update_flags.h +++ b/deal.II/deal.II/include/fe/fe_update_flags.h @@ -227,16 +227,6 @@ enum UpdateFlags * in each quadrature point. */ update_volume_elements = 0x4000, - /** - * Compute the JxW values - * on faces for the cell mapping - * and not the face mapping! - * This functionality is required - * for the Piola mapping which - * is used in conjunction with - * H_div subspaces like RT and ABF. - */ - update_cell_JxW_values = 0x8000, /** * Update the location of the * mapped generalized support diff --git a/deal.II/deal.II/include/fe/fe_values.h b/deal.II/deal.II/include/fe/fe_values.h index b6584a454c..324b508213 100644 --- a/deal.II/deal.II/include/fe/fe_values.h +++ b/deal.II/deal.II/include/fe/fe_values.h @@ -2,7 +2,7 @@ // $Id$ // Version: $Name: $ // -// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 by the deal.II authors +// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by the deal.II authors // // This file is subject to QPL and may not be distributed // without copyright and license information. Please refer @@ -984,31 +984,6 @@ class FEValuesData */ std::vector > inverse_jacobians; - /** - * Store an array of weights - * times the Jacobi determinant - * at the quadrature points. This - * function is reset each time - * reinit() is called. The - * Jacobi determinant is actually - * the reciprocal value of the - * Jacobi matrices stored in this - * class, see the general - * documentation of this class - * for more information. - * - * In contrast to JxW_values, - * this vector uses the transformation - * of the cell even in case the - * corresponding FEValues object - * refers to a face. Currently the - * only purpose is to provide - * exactly this value to the - * transformation which is used - * for the PolyTensor elements. - */ - std::vector cell_JxW_values; - /** * Array of quadrature points. This array * is set up upon calling reinit() and diff --git a/deal.II/deal.II/include/fe/mapping.h b/deal.II/deal.II/include/fe/mapping.h index 095d4e6204..9e042adb34 100644 --- a/deal.II/deal.II/include/fe/mapping.h +++ b/deal.II/deal.II/include/fe/mapping.h @@ -586,8 +586,7 @@ class Mapping : public Subscriptor std::vector > &quadrature_points, std::vector &JxW_values, std::vector > &boundary_form, - std::vector > &normal_vectors, - std::vector &cell_JxW_values) const = 0; + std::vector > &normal_vectors) const = 0; /** * See above. @@ -601,8 +600,7 @@ class Mapping : public Subscriptor std::vector > &quadrature_points, std::vector &JxW_values, std::vector > &boundary_form, - std::vector > &normal_vectors, - std::vector &cell_JxW_values) const = 0; + std::vector > &normal_vectors) const = 0; /** * Give class @p FEValues access diff --git a/deal.II/deal.II/include/fe/mapping_cartesian.h b/deal.II/deal.II/include/fe/mapping_cartesian.h index e15022238b..dff1212763 100644 --- a/deal.II/deal.II/include/fe/mapping_cartesian.h +++ b/deal.II/deal.II/include/fe/mapping_cartesian.h @@ -78,8 +78,7 @@ class MappingCartesian : public Mapping std::vector > &quadrature_points, std::vector &JxW_values, std::vector > &boundary_form, - std::vector > &normal_vectors, - std::vector &cell_JxW_values) const ; + std::vector > &normal_vectors) const ; virtual void fill_fe_subface_values (const typename Triangulation::cell_iterator &cell, const unsigned int face_no, @@ -89,8 +88,7 @@ class MappingCartesian : public Mapping std::vector > &quadrature_points, std::vector &JxW_values, std::vector > &boundary_form, - std::vector > &normal_vectors, - std::vector &cell_JxW_values) const ; + std::vector > &normal_vectors) const ; virtual void transform (const VectorSlice > > input, @@ -202,33 +200,6 @@ class MappingCartesian : public Mapping /* -------------- declaration of explicit specializations ------------- */ -#ifndef DOXYGEN - -template <> void MappingCartesian<1>::fill_fe_face_values ( - const Triangulation<1>::cell_iterator &, - const unsigned, - const Quadrature<0>&, - Mapping<1>::InternalDataBase&, - std::vector >&, - std::vector&, - std::vector >&, - std::vector >&, - std::vector&) const; - -template <> void MappingCartesian<1>::fill_fe_subface_values ( - const Triangulation<1>::cell_iterator &, - const unsigned, - const unsigned, - const Quadrature<0>&, - Mapping<1>::InternalDataBase&, - std::vector >&, - std::vector&, - std::vector >&, - std::vector >&, - std::vector&) const; - -#endif // DOXYGEN - DEAL_II_NAMESPACE_CLOSE #endif diff --git a/deal.II/deal.II/include/fe/mapping_q.h b/deal.II/deal.II/include/fe/mapping_q.h index 13e7a4546a..24c8d11e60 100644 --- a/deal.II/deal.II/include/fe/mapping_q.h +++ b/deal.II/deal.II/include/fe/mapping_q.h @@ -225,8 +225,7 @@ class MappingQ : public MappingQ1 typename std::vector > &quadrature_points, std::vector &JxW_values, typename std::vector > &exterior_form, - typename std::vector > &normal_vectors, - std::vector &cell_JxW_values) const ; + typename std::vector > &normal_vectors) const ; /** * Implementation of the interface in @@ -241,8 +240,7 @@ class MappingQ : public MappingQ1 typename std::vector > &quadrature_points, std::vector &JxW_values, typename std::vector > &exterior_form, - typename std::vector > &normal_vectors, - std::vector &cell_JxW_values) const ; + typename std::vector > &normal_vectors) const ; /** * For dim=2,3. Append the diff --git a/deal.II/deal.II/include/fe/mapping_q1.h b/deal.II/deal.II/include/fe/mapping_q1.h index 0e059bb1dc..4afe9df44b 100644 --- a/deal.II/deal.II/include/fe/mapping_q1.h +++ b/deal.II/deal.II/include/fe/mapping_q1.h @@ -277,8 +277,6 @@ class MappingQ1 : public Mapping unsigned int n_shape_functions; }; - protected: - /** * Declare a convenience typedef * for the class that describes @@ -317,8 +315,7 @@ class MappingQ1 : public Mapping typename std::vector > &quadrature_points, std::vector &JxW_values, typename std::vector > &boundary_form, - typename std::vector > &normal_vectors, - std::vector &cell_JxW_values) const ; + typename std::vector > &normal_vectors) const ; /** * Implementation of the interface in @@ -333,8 +330,7 @@ class MappingQ1 : public Mapping typename std::vector > &quadrature_points, std::vector &JxW_values, typename std::vector > &boundary_form, - typename std::vector > &normal_vectors, - std::vector &cell_JxW_values) const ; + typename std::vector > &normal_vectors) const ; /** * Compute shape values and/or @@ -405,8 +401,7 @@ class MappingQ1 : public Mapping std::vector > &quadrature_points, std::vector &JxW_values, std::vector > &boundary_form, - std::vector > &normal_vectors, - std::vector &cell_JxW_values) const; + std::vector > &normal_vectors) const; /** * Compute shape values and/or @@ -705,46 +700,6 @@ MappingQ1::InternalData::second_derivative (const unsigned int qpo /* -------------- declaration of explicit specializations ------------- */ -#ifndef DOXYGEN - -template <> void MappingQ1<1>::compute_fill_face ( - const Triangulation<1>::cell_iterator &, - const unsigned int, - const unsigned int, - const unsigned int, - const DataSetDescriptor, - const std::vector &, - InternalData &, - std::vector > &, - std::vector &, - std::vector > &, - std::vector > &, - std::vector &) const; - -template <> void MappingQ1<1>::fill_fe_face_values ( - const Triangulation<1>::cell_iterator &, - const unsigned, - const Quadrature<0>&, - Mapping<1>::InternalDataBase&, - std::vector >&, - std::vector&, - std::vector >&, - std::vector >&, - std::vector&) const; - -template <> void MappingQ1<1>::fill_fe_subface_values ( - const Triangulation<1>::cell_iterator &, - const unsigned, - const unsigned, - const Quadrature<0>&, - Mapping<1>::InternalDataBase&, - std::vector >&, - std::vector&, - std::vector >&, - std::vector >&, - std::vector&) const; - -#endif // DOXYGEN DEAL_II_NAMESPACE_CLOSE diff --git a/deal.II/deal.II/source/fe/fe_abf.cc b/deal.II/deal.II/source/fe/fe_abf.cc index 55d99e23e3..240ce63e18 100644 --- a/deal.II/deal.II/source/fe/fe_abf.cc +++ b/deal.II/deal.II/source/fe/fe_abf.cc @@ -540,12 +540,10 @@ FE_ABF::update_each (const UpdateFlags flags) const if (flags & update_values) out |= update_values | update_covariant_transformation | update_piola - | update_cell_JxW_values | update_JxW_values; if (flags & update_gradients) out |= update_gradients | update_covariant_transformation | update_piola - | update_cell_JxW_values | update_JxW_values; //TODO: Set update flags appropriately and figure out, how the second // derivatives for the RT elements can be computed correctly. diff --git a/deal.II/deal.II/source/fe/fe_poly_tensor.cc b/deal.II/deal.II/source/fe/fe_poly_tensor.cc index 9e1dc328fc..04aa19b501 100644 --- a/deal.II/deal.II/source/fe/fe_poly_tensor.cc +++ b/deal.II/deal.II/source/fe/fe_poly_tensor.cc @@ -530,10 +530,6 @@ FE_PolyTensor::fill_fe_face_values ( const UpdateFlags flags(fe_data.update_once | fe_data.update_each); -// Assert(mapping_type == independent -// || ( mapping_type == independent_on_cartesian -// && dynamic_cast*>(&mapping) != 0), -// ExcNotImplemented()); //TODO: Size assertions // Create table with sign changes, due to the special structure of the RT elements. diff --git a/deal.II/deal.II/source/fe/fe_raviart_thomas.cc b/deal.II/deal.II/source/fe/fe_raviart_thomas.cc index 4ab6e9f1b0..58cf547741 100644 --- a/deal.II/deal.II/source/fe/fe_raviart_thomas.cc +++ b/deal.II/deal.II/source/fe/fe_raviart_thomas.cc @@ -497,6 +497,8 @@ FE_RaviartThomas::has_support_on_face (const unsigned int shape_index, } +// Since this is a vector valued element, we cannot interpolate a +// scalar function template void FE_RaviartThomas::interpolate( diff --git a/deal.II/deal.II/source/fe/fe_raviart_thomas_nodal.cc b/deal.II/deal.II/source/fe/fe_raviart_thomas_nodal.cc index 738fad80ff..10221ca74c 100644 --- a/deal.II/deal.II/source/fe/fe_raviart_thomas_nodal.cc +++ b/deal.II/deal.II/source/fe/fe_raviart_thomas_nodal.cc @@ -416,8 +416,8 @@ FE_RaviartThomasNodal::hp_constraints_are_implemented () const template std::vector > -FE_RaviartThomasNodal:: -hp_vertex_dof_identities (const FiniteElement &fe_other) const +FE_RaviartThomasNodal::hp_vertex_dof_identities ( + const FiniteElement &fe_other) const { // we can presently only compute these // identities if both FEs are @@ -495,8 +495,8 @@ hp_line_dof_identities (const FiniteElement &fe_other) const template std::vector > -FE_RaviartThomasNodal:: -hp_quad_dof_identities (const FiniteElement &fe_other) const +FE_RaviartThomasNodal::hp_quad_dof_identities ( + const FiniteElement& fe_other) const { // we can presently only compute // these identities if both FEs are @@ -536,8 +536,8 @@ hp_quad_dof_identities (const FiniteElement &fe_other) const template FiniteElementDomination::Domination -FE_RaviartThomasNodal:: -compare_for_face_domination (const FiniteElement &fe_other) const +FE_RaviartThomasNodal::compare_for_face_domination ( + const FiniteElement& fe_other) const { if (const FE_RaviartThomasNodal *fe_q_other = dynamic_cast*>(&fe_other)) @@ -559,26 +559,22 @@ compare_for_face_domination (const FiniteElement &fe_other) const template <> void -FE_RaviartThomasNodal<1>:: -get_face_interpolation_matrix (const FiniteElement<1> &/*x_source_fe*/, - FullMatrix &/*interpolation_matrix*/) const +FE_RaviartThomasNodal<1>::get_face_interpolation_matrix ( + const FiniteElement<1> &/*x_source_fe*/, + FullMatrix &/*interpolation_matrix*/) const { - Assert (false, - FiniteElement<1>:: - ExcInterpolationNotImplemented ()); + Assert (false, ExcImpossibleInDim(1)); } template <> void -FE_RaviartThomasNodal<1>:: -get_subface_interpolation_matrix (const FiniteElement<1> &/*x_source_fe*/, - const unsigned int /*subface*/, - FullMatrix &/*interpolation_matrix*/) const +FE_RaviartThomasNodal<1>::get_subface_interpolation_matrix ( + const FiniteElement<1> &/*x_source_fe*/, + const unsigned int /*subface*/, + FullMatrix &/*interpolation_matrix*/) const { - Assert (false, - FiniteElement<1>:: - ExcInterpolationNotImplemented ()); + Assert (false, ExcImpossibleInDim(1)); } #endif @@ -588,9 +584,9 @@ get_subface_interpolation_matrix (const FiniteElement<1> &/*x_source_fe*/, template void -FE_RaviartThomasNodal:: -get_face_interpolation_matrix (const FiniteElement &x_source_fe, - FullMatrix &interpolation_matrix) const +FE_RaviartThomasNodal::get_face_interpolation_matrix ( + const FiniteElement &x_source_fe, + FullMatrix &interpolation_matrix) const { // this is only implemented, if the // source FE is also a @@ -694,10 +690,10 @@ get_face_interpolation_matrix (const FiniteElement &x_source_fe, template void -FE_RaviartThomasNodal:: -get_subface_interpolation_matrix (const FiniteElement &x_source_fe, - const unsigned int subface, - FullMatrix &interpolation_matrix) const +FE_RaviartThomasNodal::get_subface_interpolation_matrix ( + const FiniteElement &x_source_fe, + const unsigned int subface, + FullMatrix &interpolation_matrix) const { // this is only implemented, if the // source FE is also a diff --git a/deal.II/deal.II/source/fe/fe_system.cc b/deal.II/deal.II/source/fe/fe_system.cc index f5365dad04..0290b28e69 100644 --- a/deal.II/deal.II/source/fe/fe_system.cc +++ b/deal.II/deal.II/source/fe/fe_system.cc @@ -2,7 +2,7 @@ // $Id$ // Version: $Name$ // -// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 by the deal.II authors +// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by the deal.II authors // // This file is subject to QPL and may not be distributed // without copyright and license information. Please refer @@ -834,7 +834,6 @@ compute_fill (const Mapping &mapping, // the reference element to the global // coordinate system. base_data.JxW_values = data.JxW_values; - base_data.cell_JxW_values = data.cell_JxW_values; // Make sure that in the diff --git a/deal.II/deal.II/source/fe/fe_values.cc b/deal.II/deal.II/source/fe/fe_values.cc index fad84c5413..566ccff831 100644 --- a/deal.II/deal.II/source/fe/fe_values.cc +++ b/deal.II/deal.II/source/fe/fe_values.cc @@ -2,7 +2,7 @@ // $Id$ // Version: $Name$ // -// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 by the deal.II authors +// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by the deal.II authors // // This file is subject to QPL and may not be distributed // without copyright and license information. Please refer @@ -1655,9 +1655,6 @@ FEValuesData::initialize (const unsigned int n_quadrature_p if (flags & update_normal_vectors) this->normal_vectors.resize(n_quadrature_points); - if (flags & update_cell_JxW_values) - this->cell_JxW_values.resize(n_quadrature_points); - if (flags & update_cell_normal_vectors) this->cell_normal_vectors.resize(n_quadrature_points); } @@ -3138,7 +3135,6 @@ FEValuesBase::memory_consumption () const MemoryConsumption::memory_consumption (this->quadrature_points) + MemoryConsumption::memory_consumption (this->normal_vectors) + MemoryConsumption::memory_consumption (this->boundary_forms) + - MemoryConsumption::memory_consumption (this->cell_JxW_values) + sizeof(this->update_flags) + MemoryConsumption::memory_consumption (n_quadrature_points) + MemoryConsumption::memory_consumption (dofs_per_cell) + @@ -3714,8 +3710,7 @@ void FEFaceValues::do_reinit (const unsigned int face_no) this->quadrature_points, this->JxW_values, this->boundary_forms, - this->normal_vectors, - this->cell_JxW_values); + this->normal_vectors); this->get_fe().fill_fe_face_values(this->get_mapping(), *this->present_cell, face_no, @@ -4036,8 +4031,7 @@ void FESubfaceValues::do_reinit (const unsigned int face_no, this->quadrature_points, this->JxW_values, this->boundary_forms, - this->normal_vectors, - this->cell_JxW_values); + this->normal_vectors); this->get_fe().fill_fe_subface_values(this->get_mapping(), *this->present_cell, diff --git a/deal.II/deal.II/source/fe/mapping_cartesian.cc b/deal.II/deal.II/source/fe/mapping_cartesian.cc index 20fad4a21d..f908b2bb8b 100644 --- a/deal.II/deal.II/source/fe/mapping_cartesian.cc +++ b/deal.II/deal.II/source/fe/mapping_cartesian.cc @@ -364,17 +364,56 @@ fill_fe_values (const typename Triangulation::cell_iterator& cell, +#if (deal_II_dimension == 1) + +template +void +MappingCartesian::fill_fe_face_values ( + const typename Triangulation::cell_iterator &, + const unsigned int, + const Quadrature&, + typename Mapping::InternalDataBase&, + std::vector >&, + std::vector&, + std::vector >&, + std::vector >&) const +{ + Assert(false, ExcNotImplemented()); +} + + +template +void +MappingCartesian::fill_fe_subface_values ( + const typename Triangulation::cell_iterator &, + const unsigned int, + const unsigned int, + const Quadrature&, + typename Mapping::InternalDataBase&, + std::vector >&, + std::vector&, + std::vector >&, + std::vector >&) const +{ + Assert(false, ExcNotImplemented()); +} + + +#else + +// Implementation for dim != 1 + template void -MappingCartesian::fill_fe_face_values (const typename Triangulation::cell_iterator &cell, - const unsigned int face_no, - const Quadrature &q, - typename Mapping::InternalDataBase &mapping_data, - std::vector > &quadrature_points, - std::vector &JxW_values, - std::vector > &boundary_forms, - std::vector > &normal_vectors, - std::vector &/*cell_JxW_values*/) const +MappingCartesian::fill_fe_face_values ( + const typename Triangulation::cell_iterator &cell, + const unsigned int face_no, + const Quadrature &q, + typename Mapping::InternalDataBase &mapping_data, + std::vector > &quadrature_points, + std::vector &JxW_values, + std::vector > &boundary_forms, + std::vector > &normal_vectors) const { // convert data object to internal // data for this class. fails with @@ -417,16 +456,16 @@ MappingCartesian::fill_fe_face_values (const typename Triangulati template void -MappingCartesian::fill_fe_subface_values (const typename Triangulation::cell_iterator &cell, - const unsigned int face_no, - const unsigned int sub_no, - const Quadrature &q, - typename Mapping::InternalDataBase &mapping_data, - std::vector > &quadrature_points, - std::vector &JxW_values, - std::vector > &boundary_forms, - std::vector > &normal_vectors, - std::vector &/*cell_JxW_values*/) const +MappingCartesian::fill_fe_subface_values ( + const typename Triangulation::cell_iterator &cell, + const unsigned int face_no, + const unsigned int sub_no, + const Quadrature &q, + typename Mapping::InternalDataBase &mapping_data, + std::vector > &quadrature_points, + std::vector &JxW_values, + std::vector > &boundary_forms, + std::vector > &normal_vectors) const { // convert data object to internal // data for this class. fails with @@ -481,43 +520,10 @@ MappingCartesian::fill_fe_subface_values (const typename Triangul } } - -#if (deal_II_dimension == 1) - -template <> -void -MappingCartesian<1>::fill_fe_face_values (const Triangulation<1>::cell_iterator &, - const unsigned, - const Quadrature<0>&, - Mapping<1>::InternalDataBase&, - std::vector >&, - std::vector&, - std::vector >&, - std::vector >&, - std::vector &/*cell_JxW_values*/) const -{ - Assert(false, ExcNotImplemented()); -} - - -template <> -void -MappingCartesian<1>::fill_fe_subface_values (const Triangulation<1>::cell_iterator &, - const unsigned, - const unsigned, - const Quadrature<0>&, - Mapping<1>::InternalDataBase&, - std::vector >&, - std::vector&, - std::vector >&, - std::vector >&, - std::vector &/*cell_JxW_values*/) const -{ - Assert(false, ExcNotImplemented()); -} + #endif - + template void MappingCartesian::transform ( diff --git a/deal.II/deal.II/source/fe/mapping_q.cc b/deal.II/deal.II/source/fe/mapping_q.cc index 22940c6486..658eb90f32 100644 --- a/deal.II/deal.II/source/fe/mapping_q.cc +++ b/deal.II/deal.II/source/fe/mapping_q.cc @@ -353,8 +353,7 @@ MappingQ::fill_fe_face_values ( std::vector > &quadrature_points, std::vector &JxW_values, std::vector > &exterior_forms, - std::vector > &normal_vectors, - std::vector &cell_JxW_values) const + std::vector > &normal_vectors) const { // convert data object to internal // data for this class. fails with @@ -400,10 +399,7 @@ MappingQ::fill_fe_face_values ( q.get_weights(), *p_data, quadrature_points, JxW_values, - exterior_forms, normal_vectors, - cell_JxW_values); - - // TODO: Verify implementation of cell_JxW_values + exterior_forms, normal_vectors); } @@ -417,8 +413,7 @@ MappingQ::fill_fe_subface_values (const typename Triangulation > &quadrature_points, std::vector &JxW_values, std::vector > &exterior_forms, - std::vector > &normal_vectors, - std::vector &cell_JxW_values) const + std::vector > &normal_vectors) const { // convert data object to internal // data for this class. fails with @@ -464,10 +459,7 @@ MappingQ::fill_fe_subface_values (const typename Triangulation::update_each (const UpdateFlags in) const | update_contravariant_transformation | update_JxW_values | update_cell_normal_vectors - | update_cell_JxW_values | update_boundary_forms | update_normal_vectors | update_volume_elements @@ -441,7 +440,7 @@ MappingQ1::update_each (const UpdateFlags in) const // Therefore these values have to // updated for each cell. if (out & update_contravariant_transformation) - out |= update_JxW_values | update_cell_JxW_values; + out |= update_JxW_values; if (out & update_cell_normal_vectors) out |= update_JxW_values | update_cell_normal_vectors; @@ -869,28 +868,84 @@ MappingQ1<2,3>::compute_fill_face (const Triangulation<2,3>::cell_iterator &, std::vector >&, std::vector&, std::vector > &, - std::vector > &, - std::vector&) const + std::vector > &) const { Assert(false, ExcNotImplemented()); } #endif +#if (deal_II_dimension == 1) + +template +void +MappingQ1::compute_fill_face ( + const typename Triangulation::cell_iterator &, + const unsigned int, + const unsigned int, + const unsigned int, + const DataSetDescriptor, + const std::vector &, + InternalData &, + std::vector > &, + std::vector &, + std::vector > &, + std::vector > &) const +{ + Assert(false, ExcNotImplemented()); +} + + +template +void +MappingQ1::fill_fe_face_values ( + const typename Triangulation::cell_iterator &, + const unsigned, + const Quadrature&, + typename Mapping::InternalDataBase&, + std::vector >&, + std::vector&, + std::vector >&, + std::vector >&) const +{ + Assert(false, ExcNotImplemented()); +} + + +template +void +MappingQ1::fill_fe_subface_values ( + const typename Triangulation::cell_iterator &, + const unsigned, + const unsigned, + const Quadrature&, + typename Mapping::InternalDataBase&, + std::vector >&, + std::vector&, + std::vector >&, + std::vector >&) const +{ + Assert(false, ExcNotImplemented()); +} + + +#else +// Implementation for 2D and 3D + template void -MappingQ1::compute_fill_face (const typename Triangulation::cell_iterator &cell, - const unsigned int face_no, - const unsigned int subface_no, - const unsigned int n_q_points, - const DataSetDescriptor data_set, - const std::vector &weights, - InternalData &data, - std::vector > &quadrature_points, - std::vector &JxW_values, - std::vector > &boundary_forms, - std::vector > &normal_vectors, - std::vector &cell_JxW_values) const +MappingQ1::compute_fill_face ( + const typename Triangulation::cell_iterator &cell, + const unsigned int face_no, + const unsigned int subface_no, + const unsigned int n_q_points, + const DataSetDescriptor data_set, + const std::vector &weights, + InternalData &data, + std::vector > &quadrature_points, + std::vector &JxW_values, + std::vector > &boundary_forms, + std::vector > &normal_vectors) const { compute_fill (cell, n_q_points, data_set, data, quadrature_points); @@ -964,23 +1019,6 @@ MappingQ1::compute_fill_face (const typename Triangulation::fill_fe_face_values (const typename Triangulation > &quadrature_points, std::vector &JxW_values, std::vector > &boundary_forms, - std::vector > &normal_vectors, - std::vector &cell_JxW_values) const + std::vector > &normal_vectors) const { // ensure that the following cast is really correct: Assert (dynamic_cast(&mapping_data) != 0, @@ -1015,8 +1052,7 @@ MappingQ1::fill_fe_face_values (const typename Triangulation::fill_fe_subface_values (const typename Triangulation > &quadrature_points, std::vector &JxW_values, std::vector > &boundary_forms, - std::vector > &normal_vectors, - std::vector &cell_JxW_values) const + std::vector > &normal_vectors) const { // ensure that the following cast is really correct: Assert (dynamic_cast(&mapping_data) != 0, @@ -1053,114 +1088,7 @@ MappingQ1::fill_fe_subface_values (const typename Triangulation -void -MappingQ1<1>::compute_fill_face (const Triangulation<1>::cell_iterator &, - const unsigned int, - const unsigned int, - const unsigned int, - const DataSetDescriptor, - const std::vector &, - InternalData &, - std::vector > &, - std::vector &, - std::vector > &, - std::vector > &, - std::vector &/*cell_JxW_values*/) const -{ - Assert(false, ExcNotImplemented()); -} - - -template <> -void -MappingQ1<1>::fill_fe_face_values (const Triangulation<1>::cell_iterator &, - const unsigned, - const Quadrature<0>&, - Mapping<1>::InternalDataBase&, - std::vector >&, - std::vector&, - std::vector >&, - std::vector >&, - std::vector &/*cell_JxW_values*/) const -{ - Assert(false, ExcNotImplemented()); -} - - -template <> -void -MappingQ1<1>::fill_fe_subface_values (const Triangulation<1>::cell_iterator &, - const unsigned, - const unsigned, - const Quadrature<0>&, - Mapping<1>::InternalDataBase&, - std::vector >&, - std::vector&, - std::vector >&, - std::vector >&, - std::vector &/*cell_JxW_values*/) const -{ - Assert(false, ExcNotImplemented()); -} - - -template <> -void -MappingQ1<1,2>::compute_fill_face (const Triangulation<1,2>::cell_iterator &, - const unsigned int, - const unsigned int, - const unsigned int, - const DataSetDescriptor, - const std::vector &, - InternalData &, - std::vector > &, - std::vector &, - std::vector > &, - std::vector > &, - std::vector &/*cell_JxW_values*/) const -{ - Assert(false, ExcNotImplemented()); -} - - -template <> -void -MappingQ1<1,2>::fill_fe_face_values (const Triangulation<1,2>::cell_iterator &, - const unsigned, - const Quadrature<0>&, - Mapping<1,2>::InternalDataBase&, - std::vector >&, - std::vector&, - std::vector >&, - std::vector >&, - std::vector &/*cell_JxW_values*/) const -{ - Assert(false, ExcNotImplemented()); -} - - -template <> -void -MappingQ1<1,2>::fill_fe_subface_values (const Triangulation<1,2>::cell_iterator &, - const unsigned, - const unsigned, - const Quadrature<0>&, - Mapping<1,2>::InternalDataBase&, - std::vector >&, - std::vector&, - std::vector >&, - std::vector >&, - std::vector &/*cell_JxW_values*/) const -{ - Assert(false, ExcNotImplemented()); + normal_vectors); } -- 2.39.5