]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Boundary removed from FEValues
authorguido <guido@0785d39b-7218-0410-832d-ea1e28bc413d>
Mon, 10 May 1999 12:49:05 +0000 (12:49 +0000)
committerguido <guido@0785d39b-7218-0410-832d-ea1e28bc413d>
Mon, 10 May 1999 12:49:05 +0000 (12:49 +0000)
git-svn-id: https://svn.dealii.org/trunk@1306 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/deal.II/include/fe/fe_values.h
deal.II/deal.II/source/dofs/mg_dof_handler.cc
deal.II/deal.II/source/fe/fe_values.cc
deal.II/deal.II/source/multigrid/mg_dof_handler.cc
deal.II/deal.II/source/numerics/assembler.cc
deal.II/deal.II/source/numerics/data_io.cc
deal.II/deal.II/source/numerics/error_estimator.cc
deal.II/deal.II/source/numerics/matrices.cc
deal.II/deal.II/source/numerics/vectors.cc

index 5bac5fe67a059c8d6ea83a1f533285b59b0bf184..dec58f62f89b43b805e37a4616741eab5ec8c42e 100644 (file)
@@ -10,7 +10,6 @@
 #include <base/subscriptor.h>
 #include <lac/fullmatrix.h>
 #include <grid/dof.h>
-#include <grid/tria_boundary.h>
 #include <base/point.h>
 #include <grid/tria.h>
 #include <fe/fe_update_flags.h>
  * @author Wolfgang Bangerth, 1998
  */
 template <int dim>
-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<dim> &fe,
-                 const Boundary<dim>      &boundary);
+                 const FiniteElement<dim> &fe);
     
 
                                     /**
@@ -694,11 +693,6 @@ class FEValuesBase {
                                      * Store the finite element for later use.
                                      */
     const SmartPointer<const FiniteElement<dim> > fe;
-
-                                    /**
-                                     * Store the boundary for later use.
-                                     */
-    const SmartPointer<const Boundary<dim> > boundary;
 };
 
 
@@ -724,7 +718,10 @@ class FEValuesBase {
  * @author Wolfgang Bangerth, 1998  
  */
 template <int dim>
-class FEValues : public FEValuesBase<dim> {
+class FEValues
+  :
+  public FEValuesBase<dim>
+{
   public:
 
     
@@ -743,6 +740,8 @@ class FEValues : public FEValuesBase<dim> {
                                      * 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<dim> {
                                      */
     FEValues (const FiniteElement<dim> &fe,
              const Quadrature<dim>    &quadrature,
-             const UpdateFlags         update_flags,
-             const Boundary<dim>      &boundary);
+             const UpdateFlags         update_flags);
     
                                     /**
                                      * Reinitialize the gradients, Jacobi
@@ -878,7 +876,10 @@ class FEValues : public FEValuesBase<dim> {
  *  @author Wolfgang Bangerth, 1998
 */
 template <int dim>
-class FEFaceValuesBase : public FEValuesBase<dim> {
+class FEFaceValuesBase
+  :
+  public FEValuesBase<dim>
+{
   public:
                                     /**
                                      * Constructor. Call the constructor of
@@ -904,8 +905,7 @@ class FEFaceValuesBase : public FEValuesBase<dim> {
                      const unsigned int n_transform_functions,
                      const unsigned int n_faces_or_subfaces,
                      const UpdateFlags         update_flags,
-                     const FiniteElement<dim> &fe,
-                     const Boundary<dim>      &boundary);
+                     const FiniteElement<dim> &fe);
 
                                     /**
                                      * Return the outward normal vector to
@@ -1016,7 +1016,10 @@ class FEFaceValuesBase : public FEValuesBase<dim> {
  * @author Wolfgang Bangerth, 1998
  */
 template <int dim>
-class FEFaceValues : public FEFaceValuesBase<dim> {
+class FEFaceValues
+  :
+  public FEFaceValuesBase<dim>
+{
   public:
                                     /**
                                      * Constructor. Fill all arrays with the
@@ -1034,6 +1037,8 @@ class FEFaceValues : public FEFaceValuesBase<dim> {
                                      * 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<dim> {
                                      */
     FEFaceValues (const FiniteElement<dim> &,
                  const Quadrature<dim-1> &,
-                 const UpdateFlags,
-                 const Boundary<dim> &);
+                 const UpdateFlags);
 
                                     /**
                                      * Reinitialize the gradients, Jacobi
@@ -1166,7 +1170,10 @@ class FEFaceValues : public FEFaceValuesBase<dim> {
  * @author Wolfgang Bangerth, 1998
  */
 template <int dim>
-class FESubfaceValues : public FEFaceValuesBase<dim> {
+class FESubfaceValues
+  :
+  public FEFaceValuesBase<dim>
+{
   public:
                                     /**
                                      * Constructor. Fill all arrays with the
@@ -1186,8 +1193,7 @@ class FESubfaceValues : public FEFaceValuesBase<dim> {
                                      */
     FESubfaceValues (const FiniteElement<dim> &fe,
                     const Quadrature<dim-1>  &face_quadrature,
-                    const UpdateFlags         update_flags,
-                    const Boundary<dim>      &boundary);
+                    const UpdateFlags         update_flags);
 
                                     /**
                                      * Reinitialize the gradients, Jacobi
index 26c8d83933ce6bdaa4b088e59f75679f53b93b2f..5f7961248dac271a053e220ed9bb5fc824220514 100644 (file)
@@ -1548,7 +1548,7 @@ void MGDoFHandler<dim>::make_sparsity_pattern (const unsigned int  level,
 
   const unsigned int total_dofs = selected_fe->total_dofs;
   vector<int> dofs_on_this_cell(total_dofs);
-  cell_iterator cell = begin_active(level),
+  cell_iterator cell = begin(level),
                endc = end(level);
   for (; cell!=endc; ++cell) 
     {
index 048ebe4ade3cac2ed829959cc8d61b6f8485dccd..07c8581ce151e60c3a87d49107753f437e9622fb 100644 (file)
@@ -22,8 +22,8 @@ FEValuesBase<dim>::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<dim> &fe,
-                                const Boundary<dim>      &boundary) :
+                                const FiniteElement<dim> &fe)
+               :
                n_quadrature_points (n_q_points),
                total_dofs (total_dofs),
                n_transform_functions (n_transform_functions),
@@ -41,8 +41,7 @@ FEValuesBase<dim>::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<dim>::JxW (const unsigned int i) const {
 template <int dim>
 FEValues<dim>::FEValues (const FiniteElement<dim> &fe,
                         const Quadrature<dim>    &quadrature,
-                        const UpdateFlags         update_flags,
-                        const Boundary<dim>      &boundary) :
+                        const UpdateFlags         update_flags)
+               :
                FEValuesBase<dim> (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<Tensor<1,dim> >(quadrature.n_quadrature_points)),
                unit_shape_2nd_derivatives(fe.total_dofs,
@@ -426,16 +424,15 @@ FEFaceValuesBase<dim>::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<dim> &fe,
-                                        const Boundary<dim>      &boundary) :
+                                        const FiniteElement<dim> &fe)
+               :
                FEValuesBase<dim> (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<vector<Tensor<1,dim> > >(total_dofs,
                                                                   vector<Tensor<1,dim> >(n_q_points))),
@@ -475,16 +472,15 @@ FEFaceValuesBase<dim>::normal_vector (const unsigned int i) const {
 template <int dim>
 FEFaceValues<dim>::FEFaceValues (const FiniteElement<dim> &fe,
                                 const Quadrature<dim-1>  &quadrature,
-                                const UpdateFlags         update_flags,
-                                const Boundary<dim>      &boundary) :
+                                const UpdateFlags         update_flags)
+               :
                FEFaceValuesBase<dim> (quadrature.n_quadrature_points,
                                       fe.dofs_per_face,
                                       fe.total_dofs,
                                       fe.n_transform_functions,
                                       GeometryInfo<dim>::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<dim>::reinit (const typename DoFHandler<dim>::cell_iterator &c
 template <int dim>
 FESubfaceValues<dim>::FESubfaceValues (const FiniteElement<dim> &fe,
                                       const Quadrature<dim-1>  &quadrature,
-                                      const UpdateFlags         update_flags,
-                                      const Boundary<dim>      &boundary) :
+                                      const UpdateFlags         update_flags)
+               :
                FEFaceValuesBase<dim> (quadrature.n_quadrature_points,
                                       0,
                                       fe.total_dofs,
                                       fe.n_transform_functions,
                                       GeometryInfo<dim>::faces_per_cell * GeometryInfo<dim>::subfaces_per_face,
                                       update_flags,
-                                      fe,
-                                      boundary)
+                                      fe)
 {
   Assert ((update_flags & update_support_points) == false,
          ExcInvalidUpdateFlag());
@@ -698,7 +693,8 @@ FESubfaceValues<dim>::FESubfaceValues (const FiniteElement<dim> &fe,
 template <int dim>
 void FESubfaceValues<dim>::reinit (const typename DoFHandler<dim>::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());
   
index 26c8d83933ce6bdaa4b088e59f75679f53b93b2f..5f7961248dac271a053e220ed9bb5fc824220514 100644 (file)
@@ -1548,7 +1548,7 @@ void MGDoFHandler<dim>::make_sparsity_pattern (const unsigned int  level,
 
   const unsigned int total_dofs = selected_fe->total_dofs;
   vector<int> dofs_on_this_cell(total_dofs);
-  cell_iterator cell = begin_active(level),
+  cell_iterator cell = begin(level),
                endc = end(level);
   for (; cell!=endc; ++cell) 
     {
index e94d47c4f3ec8b662576645dce68ebf88b8686e0..d4043020434d9ad6bb73955578165615c4b277f8 100644 (file)
@@ -45,8 +45,7 @@ Assembler<dim>::Assembler (Triangulation<dim>  *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());
index 679bbb0819a096f7eb268d1f4bf054112f0e02c0..7e3acd6b1394e24d7fde0d985f3af44e7a287369 100644 (file)
@@ -594,8 +594,7 @@ void DataOut<dim>::write_gnuplot (ostream &out, unsigned int accuracy) const
 
   QIteratedTrapez<dim> points(accuracy);
   
-  FEValues<dim> fe(dofs->get_fe(), points, UpdateFlags(update_q_points),
-                  dofs->get_tria().get_boundary());
+  FEValues<dim> fe(dofs->get_fe(), points, UpdateFlags(update_q_points));
   vector< vector <Vector<double> > >
     values (dof_data.size(),
            vector< Vector<double> >(points.n_quadrature_points,
index ff5989b1d6cc3875adf25d182f7224460be5a7b0..5faacc3ec2be8cf3ad3be07952d415b0cba27c38 100644 (file)
@@ -88,12 +88,9 @@ void KellyErrorEstimator<dim>::estimate (const DoFHandler<dim>    &dof,
                                                     ((!neumann_bc.empty() ||
                                                       (coefficient != 0))  ?
                                                      update_q_points : 0) |
-                                                    update_normal_vectors),
-                                        dof.get_tria().get_boundary()); 
-  FEFaceValues<dim> fe_face_values_neighbor (dof.get_fe(), quadrature, update_gradients,
-                                            dof.get_tria().get_boundary());
-  FESubfaceValues<dim> fe_subface_values (dof.get_fe(), quadrature, update_gradients,
-                                         dof.get_tria().get_boundary());
+                                                    update_normal_vectors)); 
+  FEFaceValues<dim> fe_face_values_neighbor (dof.get_fe(), quadrature, update_gradients);
+  FESubfaceValues<dim> fe_subface_values (dof.get_fe(), quadrature, update_gradients);
   
                                   // loop over all cells
   const active_cell_iterator endc = dof.end();
index 8700e1fda60176bca17db8b0b50b5e45bbbe1730..9ae672f09eef8d13ac7e64158ef720c1baa7c52b 100644 (file)
@@ -146,7 +146,7 @@ void MatrixCreator<dim>::create_boundary_mass_matrix (const DoFHandler<dim>    &
   
   
   UpdateFlags update_flags = UpdateFlags (update_JxW_values | update_q_points);
-  FEFaceValues<dim> fe_values (fe, q, update_flags, dof.get_tria().get_boundary());
+  FEFaceValues<dim> fe_values (fe, q, update_flags);
   
   DoFHandler<dim>::active_cell_iterator cell = dof.begin_active (),
                                        endc = dof.end ();
index 283957f62ccf02261a737635ca645f136c0870d3..691d7e3d66d70488cb2e2f2a8f0079d685697461 100644 (file)
@@ -453,7 +453,7 @@ void VectorTools<dim>::integrate_difference (const DoFHandler<dim>    &dof,
                                          update_JxW_values);
   if ((norm==H1_seminorm) || (norm==H1_norm))
     update_flags = UpdateFlags (update_flags | update_gradients);
-  FEValues<dim> fe_values(fe, q, update_flags, dof.get_tria().get_boundary());
+  FEValues<dim> fe_values(fe, q, update_flags);
   
                                   // loop over all cells
   DoFHandler<dim>::active_cell_iterator cell = dof.begin_active(),
@@ -643,7 +643,7 @@ VectorTools<dim>::integrate_difference (const DoFHandler<dim>    &dof,
                                          update_JxW_values);
   if ((norm==H1_seminorm) || (norm==H1_norm))
     update_flags = UpdateFlags (update_flags | update_gradients);
-  FEValues<dim> fe_values(fe, q, update_flags, dof.get_tria().get_boundary());
+  FEValues<dim> fe_values(fe, q, update_flags);
   
                                   // loop over all cells
   DoFHandler<dim>::active_cell_iterator cell = dof.begin_active(),

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.