From b0fb099c3473f5b6b65cb165fcc92e2dc8433094 Mon Sep 17 00:00:00 2001 From: guido Date: Mon, 10 May 1999 12:49:05 +0000 Subject: [PATCH] Boundary removed from FEValues git-svn-id: https://svn.dealii.org/trunk@1306 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/deal.II/include/fe/fe_values.h | 48 +++++++++++-------- deal.II/deal.II/source/dofs/mg_dof_handler.cc | 2 +- deal.II/deal.II/source/fe/fe_values.cc | 38 +++++++-------- .../source/multigrid/mg_dof_handler.cc | 2 +- deal.II/deal.II/source/numerics/assembler.cc | 3 +- deal.II/deal.II/source/numerics/data_io.cc | 3 +- .../source/numerics/error_estimator.cc | 9 ++-- deal.II/deal.II/source/numerics/matrices.cc | 2 +- deal.II/deal.II/source/numerics/vectors.cc | 4 +- 9 files changed, 54 insertions(+), 57 deletions(-) diff --git a/deal.II/deal.II/include/fe/fe_values.h b/deal.II/deal.II/include/fe/fe_values.h index 5bac5fe67a..dec58f62f8 100644 --- a/deal.II/deal.II/include/fe/fe_values.h +++ b/deal.II/deal.II/include/fe/fe_values.h @@ -10,7 +10,6 @@ #include #include #include -#include #include #include #include @@ -203,7 +202,8 @@ * @author Wolfgang Bangerth, 1998 */ template -class FEValuesBase { +class FEValuesBase +{ public: /** @@ -249,8 +249,7 @@ class FEValuesBase { const unsigned int n_transform_functions, const unsigned int n_values_array, const UpdateFlags update_flags, - const FiniteElement &fe, - const Boundary &boundary); + const FiniteElement &fe); /** @@ -694,11 +693,6 @@ class FEValuesBase { * Store the finite element for later use. */ const SmartPointer > fe; - - /** - * Store the boundary for later use. - */ - const SmartPointer > boundary; }; @@ -724,7 +718,10 @@ class FEValuesBase { * @author Wolfgang Bangerth, 1998 */ template -class FEValues : public FEValuesBase { +class FEValues + : + public FEValuesBase +{ public: @@ -743,6 +740,8 @@ class FEValues : public FEValuesBase { * need to be initialized using the * #reinit# function. * + * UPDATE! + * * This function needs a boundary object * passed, since this class needs to know * how to handle faces which are located @@ -758,8 +757,7 @@ class FEValues : public FEValuesBase { */ FEValues (const FiniteElement &fe, const Quadrature &quadrature, - const UpdateFlags update_flags, - const Boundary &boundary); + const UpdateFlags update_flags); /** * Reinitialize the gradients, Jacobi @@ -878,7 +876,10 @@ class FEValues : public FEValuesBase { * @author Wolfgang Bangerth, 1998 */ template -class FEFaceValuesBase : public FEValuesBase { +class FEFaceValuesBase + : + public FEValuesBase +{ public: /** * Constructor. Call the constructor of @@ -904,8 +905,7 @@ class FEFaceValuesBase : public FEValuesBase { const unsigned int n_transform_functions, const unsigned int n_faces_or_subfaces, const UpdateFlags update_flags, - const FiniteElement &fe, - const Boundary &boundary); + const FiniteElement &fe); /** * Return the outward normal vector to @@ -1016,7 +1016,10 @@ class FEFaceValuesBase : public FEValuesBase { * @author Wolfgang Bangerth, 1998 */ template -class FEFaceValues : public FEFaceValuesBase { +class FEFaceValues + : + public FEFaceValuesBase +{ public: /** * Constructor. Fill all arrays with the @@ -1034,6 +1037,8 @@ class FEFaceValues : public FEFaceValuesBase { * need to be initialized using the * #reinit# function. * + * UPDATE! + * * This function needs a boundary object * passed, since this class needs to know * how to handle faces which are located @@ -1049,8 +1054,7 @@ class FEFaceValues : public FEFaceValuesBase { */ FEFaceValues (const FiniteElement &, const Quadrature &, - const UpdateFlags, - const Boundary &); + const UpdateFlags); /** * Reinitialize the gradients, Jacobi @@ -1166,7 +1170,10 @@ class FEFaceValues : public FEFaceValuesBase { * @author Wolfgang Bangerth, 1998 */ template -class FESubfaceValues : public FEFaceValuesBase { +class FESubfaceValues + : + public FEFaceValuesBase +{ public: /** * Constructor. Fill all arrays with the @@ -1186,8 +1193,7 @@ class FESubfaceValues : public FEFaceValuesBase { */ FESubfaceValues (const FiniteElement &fe, const Quadrature &face_quadrature, - const UpdateFlags update_flags, - const Boundary &boundary); + const UpdateFlags update_flags); /** * Reinitialize the gradients, Jacobi diff --git a/deal.II/deal.II/source/dofs/mg_dof_handler.cc b/deal.II/deal.II/source/dofs/mg_dof_handler.cc index 26c8d83933..5f7961248d 100644 --- a/deal.II/deal.II/source/dofs/mg_dof_handler.cc +++ b/deal.II/deal.II/source/dofs/mg_dof_handler.cc @@ -1548,7 +1548,7 @@ void MGDoFHandler::make_sparsity_pattern (const unsigned int level, const unsigned int total_dofs = selected_fe->total_dofs; vector dofs_on_this_cell(total_dofs); - cell_iterator cell = begin_active(level), + cell_iterator cell = begin(level), endc = end(level); for (; cell!=endc; ++cell) { diff --git a/deal.II/deal.II/source/fe/fe_values.cc b/deal.II/deal.II/source/fe/fe_values.cc index 048ebe4ade..07c8581ce1 100644 --- a/deal.II/deal.II/source/fe/fe_values.cc +++ b/deal.II/deal.II/source/fe/fe_values.cc @@ -22,8 +22,8 @@ FEValuesBase::FEValuesBase (const unsigned int n_q_points, const unsigned int n_transform_functions, const unsigned int n_values_arrays, const UpdateFlags update_flags, - const FiniteElement &fe, - const Boundary &boundary) : + const FiniteElement &fe) + : n_quadrature_points (n_q_points), total_dofs (total_dofs), n_transform_functions (n_transform_functions), @@ -41,8 +41,7 @@ FEValuesBase::FEValuesBase (const unsigned int n_q_points, n_quadrature_points)), selected_dataset (0), update_flags (update_flags), - fe(&fe), - boundary(&boundary) + fe(&fe) {}; @@ -283,16 +282,15 @@ double FEValuesBase::JxW (const unsigned int i) const { template FEValues::FEValues (const FiniteElement &fe, const Quadrature &quadrature, - const UpdateFlags update_flags, - const Boundary &boundary) : + const UpdateFlags update_flags) + : FEValuesBase (quadrature.n_quadrature_points, fe.total_dofs, fe.total_dofs, fe.n_transform_functions, 1, update_flags, - fe, - boundary), + fe), unit_shape_gradients(fe.total_dofs, vector >(quadrature.n_quadrature_points)), unit_shape_2nd_derivatives(fe.total_dofs, @@ -426,16 +424,15 @@ FEFaceValuesBase::FEFaceValuesBase (const unsigned int n_q_points, const unsigned int n_transform_functions, const unsigned int n_faces_or_subfaces, const UpdateFlags update_flags, - const FiniteElement &fe, - const Boundary &boundary) : + const FiniteElement &fe) + : FEValuesBase (n_q_points, n_support_points, total_dofs, n_transform_functions, n_faces_or_subfaces, update_flags, - fe, - boundary), + fe), unit_shape_gradients (n_faces_or_subfaces, vector > >(total_dofs, vector >(n_q_points))), @@ -475,16 +472,15 @@ FEFaceValuesBase::normal_vector (const unsigned int i) const { template FEFaceValues::FEFaceValues (const FiniteElement &fe, const Quadrature &quadrature, - const UpdateFlags update_flags, - const Boundary &boundary) : + const UpdateFlags update_flags) + : FEFaceValuesBase (quadrature.n_quadrature_points, fe.dofs_per_face, fe.total_dofs, fe.n_transform_functions, GeometryInfo::faces_per_cell, update_flags, - fe, - boundary) + fe) { unit_face_quadrature_points = quadrature.get_quad_points(); weights = quadrature.get_weights (); @@ -627,16 +623,15 @@ void FEFaceValues::reinit (const typename DoFHandler::cell_iterator &c template FESubfaceValues::FESubfaceValues (const FiniteElement &fe, const Quadrature &quadrature, - const UpdateFlags update_flags, - const Boundary &boundary) : + const UpdateFlags update_flags) + : FEFaceValuesBase (quadrature.n_quadrature_points, 0, fe.total_dofs, fe.n_transform_functions, GeometryInfo::faces_per_cell * GeometryInfo::subfaces_per_face, update_flags, - fe, - boundary) + fe) { Assert ((update_flags & update_support_points) == false, ExcInvalidUpdateFlag()); @@ -698,7 +693,8 @@ FESubfaceValues::FESubfaceValues (const FiniteElement &fe, template void FESubfaceValues::reinit (const typename DoFHandler::cell_iterator &cell, const unsigned int face_no, - const unsigned int subface_no) { + const unsigned int subface_no) +{ Assert (cell->face(face_no)->at_boundary() == false, ExcReinitCalledWithBoundaryFace()); diff --git a/deal.II/deal.II/source/multigrid/mg_dof_handler.cc b/deal.II/deal.II/source/multigrid/mg_dof_handler.cc index 26c8d83933..5f7961248d 100644 --- a/deal.II/deal.II/source/multigrid/mg_dof_handler.cc +++ b/deal.II/deal.II/source/multigrid/mg_dof_handler.cc @@ -1548,7 +1548,7 @@ void MGDoFHandler::make_sparsity_pattern (const unsigned int level, const unsigned int total_dofs = selected_fe->total_dofs; vector dofs_on_this_cell(total_dofs); - cell_iterator cell = begin_active(level), + cell_iterator cell = begin(level), endc = end(level); for (; cell!=endc; ++cell) { diff --git a/deal.II/deal.II/source/numerics/assembler.cc b/deal.II/deal.II/source/numerics/assembler.cc index e94d47c4f3..d404302043 100644 --- a/deal.II/deal.II/source/numerics/assembler.cc +++ b/deal.II/deal.II/source/numerics/assembler.cc @@ -45,8 +45,7 @@ Assembler::Assembler (Triangulation *tria, rhs_vector(local_data->rhs_vector), fe_values (dof_handler->get_fe(), local_data->quadrature, - local_data->update_flags, - tria->get_boundary()) + local_data->update_flags) { Assert (!assemble_matrix || (matrix.m() == dof_handler->n_dofs()), ExcInvalidData()); diff --git a/deal.II/deal.II/source/numerics/data_io.cc b/deal.II/deal.II/source/numerics/data_io.cc index 679bbb0819..7e3acd6b13 100644 --- a/deal.II/deal.II/source/numerics/data_io.cc +++ b/deal.II/deal.II/source/numerics/data_io.cc @@ -594,8 +594,7 @@ void DataOut::write_gnuplot (ostream &out, unsigned int accuracy) const QIteratedTrapez points(accuracy); - FEValues fe(dofs->get_fe(), points, UpdateFlags(update_q_points), - dofs->get_tria().get_boundary()); + FEValues fe(dofs->get_fe(), points, UpdateFlags(update_q_points)); vector< vector > > values (dof_data.size(), vector< Vector >(points.n_quadrature_points, diff --git a/deal.II/deal.II/source/numerics/error_estimator.cc b/deal.II/deal.II/source/numerics/error_estimator.cc index ff5989b1d6..5faacc3ec2 100644 --- a/deal.II/deal.II/source/numerics/error_estimator.cc +++ b/deal.II/deal.II/source/numerics/error_estimator.cc @@ -88,12 +88,9 @@ void KellyErrorEstimator::estimate (const DoFHandler &dof, ((!neumann_bc.empty() || (coefficient != 0)) ? update_q_points : 0) | - update_normal_vectors), - dof.get_tria().get_boundary()); - FEFaceValues fe_face_values_neighbor (dof.get_fe(), quadrature, update_gradients, - dof.get_tria().get_boundary()); - FESubfaceValues fe_subface_values (dof.get_fe(), quadrature, update_gradients, - dof.get_tria().get_boundary()); + update_normal_vectors)); + FEFaceValues fe_face_values_neighbor (dof.get_fe(), quadrature, update_gradients); + FESubfaceValues fe_subface_values (dof.get_fe(), quadrature, update_gradients); // loop over all cells const active_cell_iterator endc = dof.end(); diff --git a/deal.II/deal.II/source/numerics/matrices.cc b/deal.II/deal.II/source/numerics/matrices.cc index 8700e1fda6..9ae672f09e 100644 --- a/deal.II/deal.II/source/numerics/matrices.cc +++ b/deal.II/deal.II/source/numerics/matrices.cc @@ -146,7 +146,7 @@ void MatrixCreator::create_boundary_mass_matrix (const DoFHandler & UpdateFlags update_flags = UpdateFlags (update_JxW_values | update_q_points); - FEFaceValues fe_values (fe, q, update_flags, dof.get_tria().get_boundary()); + FEFaceValues fe_values (fe, q, update_flags); DoFHandler::active_cell_iterator cell = dof.begin_active (), endc = dof.end (); diff --git a/deal.II/deal.II/source/numerics/vectors.cc b/deal.II/deal.II/source/numerics/vectors.cc index 283957f62c..691d7e3d66 100644 --- a/deal.II/deal.II/source/numerics/vectors.cc +++ b/deal.II/deal.II/source/numerics/vectors.cc @@ -453,7 +453,7 @@ void VectorTools::integrate_difference (const DoFHandler &dof, update_JxW_values); if ((norm==H1_seminorm) || (norm==H1_norm)) update_flags = UpdateFlags (update_flags | update_gradients); - FEValues fe_values(fe, q, update_flags, dof.get_tria().get_boundary()); + FEValues fe_values(fe, q, update_flags); // loop over all cells DoFHandler::active_cell_iterator cell = dof.begin_active(), @@ -643,7 +643,7 @@ VectorTools::integrate_difference (const DoFHandler &dof, update_JxW_values); if ((norm==H1_seminorm) || (norm==H1_norm)) update_flags = UpdateFlags (update_flags | update_gradients); - FEValues fe_values(fe, q, update_flags, dof.get_tria().get_boundary()); + FEValues fe_values(fe, q, update_flags); // loop over all cells DoFHandler::active_cell_iterator cell = dof.begin_active(), -- 2.39.5