]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Add a number of assertions for the transform_co* function calls. One of these trigger...
authorwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Wed, 24 Jul 2002 13:38:11 +0000 (13:38 +0000)
committerwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Wed, 24 Jul 2002 13:38:11 +0000 (13:38 +0000)
git-svn-id: https://svn.dealii.org/trunk@6272 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/deal.II/source/fe/fe.cc
deal.II/deal.II/source/fe/fe_dgp.cc
deal.II/deal.II/source/fe/fe_dgq.cc
deal.II/deal.II/source/fe/fe_nedelec.cc
deal.II/deal.II/source/fe/fe_q.cc
deal.II/deal.II/source/fe/mapping_q1.cc

index f07b5738669cbb353d42eed0a9b226bf9352c4ce..07c679d31f57828439f9c6fadbd378afc0e43991 100644 (file)
@@ -469,6 +469,9 @@ compute_2nd (const Mapping<dim>                   &mapping,
                                       // cell
       for (unsigned int d=0; d<dim; ++d)
        {
+         Assert (diff_quot2.size() + offset <=
+                 diff_quot[d].size(),
+                 ExcInternalError());
          mapping.transform_covariant (&*diff_quot2.begin(), &*diff_quot2.end(),
                                       diff_quot[d].begin()+offset,
                                       mapping_internal);
index 1842b8868673001361c35f74954d107563b0a2b1..94f9b9de693a4150220b31be1f3347de16df8968 100644 (file)
@@ -288,10 +288,15 @@ FE_DGP<dim>::fill_fe_values (const Mapping<dim>                   &mapping,
          data.shape_values(k,i) = fe_data.shape_values[k][i];
       
       if (flags & update_gradients)
-       mapping.transform_covariant(data.shape_gradients[k].begin(),
-                                   data.shape_gradients[k].end(),
-                                   fe_data.shape_gradients[k].begin(),
-                                   mapping_data);
+       {
+         Assert (data.shape_gradients[k].size() <=
+                 fe_data.shape_gradients[k].size(),
+                 ExcInternalError());
+         mapping.transform_covariant(data.shape_gradients[k].begin(),
+                                     data.shape_gradients[k].end(),
+                                     fe_data.shape_gradients[k].begin(),
+                                     mapping_data);
+       }
     }
   
   if (flags & update_second_derivatives)
@@ -332,10 +337,15 @@ FE_DGP<dim>::fill_fe_face_values (const Mapping<dim>                   &mapping,
          data.shape_values(k,i) = fe_data.shape_values[k][i+offset];
       
       if (flags & update_gradients)
-       mapping.transform_covariant(data.shape_gradients[k].begin(),
-                                   data.shape_gradients[k].end(),
-                                   fe_data.shape_gradients[k].begin()+offset,
-                                   mapping_data);
+       {
+         Assert (data.shape_gradients[k].size() + offset <=
+                 fe_data.shape_gradients[k].size(),
+                 ExcInternalError());    
+         mapping.transform_covariant(data.shape_gradients[k].begin(),
+                                     data.shape_gradients[k].end(),
+                                     fe_data.shape_gradients[k].begin()+offset,
+                                     mapping_data);
+       };
     }
 
   if (flags & update_second_derivatives)
@@ -378,10 +388,15 @@ FE_DGP<dim>::fill_fe_subface_values (const Mapping<dim>                   &mappi
          data.shape_values(k,i) = fe_data.shape_values[k][i+offset];
       
       if (flags & update_gradients)
-       mapping.transform_covariant(data.shape_gradients[k].begin(),
-                                   data.shape_gradients[k].end(),
-                                   fe_data.shape_gradients[k].begin()+offset,
-                                   mapping_data);
+       {
+         Assert (data.shape_gradients[k].size() + offset <=
+                 fe_data.shape_gradients[k].size(),
+                 ExcInternalError());    
+         mapping.transform_covariant(data.shape_gradients[k].begin(),
+                                     data.shape_gradients[k].end(),
+                                     fe_data.shape_gradients[k].begin()+offset,
+                                     mapping_data);
+       };
     }
   
   if (flags & update_second_derivatives)
index a64269356eea3e8b17c35b1a34b689d058a6e06f..a15d65a7536197c475e186e4c7d97674a513a412 100644 (file)
@@ -491,10 +491,15 @@ FE_DGQ<dim>::fill_fe_values (const Mapping<dim>                   &mapping,
          data.shape_values(k,i) = fe_data.shape_values[k][i];
       
       if (flags & update_gradients)
-       mapping.transform_covariant(data.shape_gradients[k].begin(),
-                                   data.shape_gradients[k].end(),
-                                   fe_data.shape_gradients[k].begin(),
-                                   mapping_data);
+       {
+         Assert (data.shape_gradients[k].size() <=
+                 fe_data.shape_gradients[k].size(),
+                 ExcInternalError());
+         mapping.transform_covariant(data.shape_gradients[k].begin(),
+                                     data.shape_gradients[k].end(),
+                                     fe_data.shape_gradients[k].begin(),
+                                     mapping_data);
+       };
     }
   
   if (flags & update_second_derivatives)
@@ -535,10 +540,15 @@ FE_DGQ<dim>::fill_fe_face_values (const Mapping<dim>                   &mapping,
          data.shape_values(k,i) = fe_data.shape_values[k][i+offset];
       
       if (flags & update_gradients)
-       mapping.transform_covariant(data.shape_gradients[k].begin(),
-                                   data.shape_gradients[k].end(),
-                                   fe_data.shape_gradients[k].begin()+offset,
-                                   mapping_data);
+       {
+         Assert (data.shape_gradients[k].size() + offset <=
+                 fe_data.shape_gradients[k].size(),
+                 ExcInternalError());    
+         mapping.transform_covariant(data.shape_gradients[k].begin(),
+                                     data.shape_gradients[k].end(),
+                                     fe_data.shape_gradients[k].begin()+offset,
+                                     mapping_data);
+       };
     }
 
   if (flags & update_second_derivatives)
@@ -581,10 +591,15 @@ FE_DGQ<dim>::fill_fe_subface_values (const Mapping<dim>                   &mappi
          data.shape_values(k,i) = fe_data.shape_values[k][i+offset];
       
       if (flags & update_gradients)
-       mapping.transform_covariant(data.shape_gradients[k].begin(),
-                                   data.shape_gradients[k].end(),
-                                   fe_data.shape_gradients[k].begin()+offset,
-                                   mapping_data);
+       {
+         Assert (data.shape_gradients[k].size() + offset <=
+                 fe_data.shape_gradients[k].size(),
+                 ExcInternalError());
+         mapping.transform_covariant(data.shape_gradients[k].begin(),
+                                     data.shape_gradients[k].end(),
+                                     fe_data.shape_gradients[k].begin()+offset,
+                                     mapping_data);
+       };
     }
   
   if (flags & update_second_derivatives)
index c8c61150121e81c9277dbe3b093dc3c128d3e8d7..dbed0f00ed7e62f9ccaee406f768e24763b1d607 100644 (file)
@@ -695,11 +695,18 @@ FE_Nedelec<dim>::fill_fe_values (const Mapping<dim>                   &/*mapping
 //     for (unsigned int i=0; i<quadrature.n_quadrature_points; ++i)
 //       data.shape_values(k,i) = fe_data.shape_values[k][i];
       
-//        if (flags & update_gradients)
+//    if (flags & update_gradients)
+//      {
+//       Assert (data.shape_gradients[k].size() <=
+//               fe_data.shape_gradients[k].size(),
+//               ExcInternalError());
+      
 //     mapping.transform_covariant(data.shape_gradients[k],
 //                                 fe_data.shape_gradients[k],
 //                                 mapping_data, 0);
-//      }
+//      };
+  
+//    }
 
 //    if (flags & update_second_derivatives)
 //      compute_2nd (mapping, cell, 0, mapping_data, fe_data, data);
@@ -740,9 +747,14 @@ FE_Nedelec<dim>::fill_fe_face_values (const Mapping<dim>                   &/*ma
 //       data.shape_values(k,i) = fe_data.shape_values[k][i+offset];
       
 //        if (flags & update_gradients)
+//    {
+//       Assert (data.shape_gradients[k].size() + offset <=
+//               fe_data.shape_gradients[k].size(),
+//               ExcInternalError());    
 //     mapping.transform_covariant(data.shape_gradients[k],
 //                                 fe_data.shape_gradients[k],
 //                                 mapping_data, offset);
+// }  
 //      }
 
 //    if (flags & update_second_derivatives)
@@ -786,9 +798,14 @@ FE_Nedelec<dim>::fill_fe_subface_values (const Mapping<dim>                   &/
 //       data.shape_values(k,i) = fe_data.shape_values[k][i+offset];
       
 //        if (flags & update_gradients)
+//  {
+//    Assert (data.shape_gradients[k].size() + offset<=
+//               fe_data.shape_gradients[k].size(),
+//               ExcInternalError());
 //     mapping.transform_covariant(data.shape_gradients[k],
 //                                 fe_data.shape_gradients[k],
 //                                 mapping_data, offset);
+// };  
 //      }
   
 //    if (flags & update_second_derivatives)
index c8079215ec3c45220cd881668c5d5542a06e190a..192fc8f0ed3930962544902e4bddfc9e9e43c9ae 100644 (file)
@@ -1183,10 +1183,15 @@ FE_Q<dim>::fill_fe_values (const Mapping<dim>                   &mapping,
          data.shape_values(k,i) = fe_data.shape_values[k][i];
       
       if (flags & update_gradients)
-       mapping.transform_covariant(data.shape_gradients[k].begin(),
-                                   data.shape_gradients[k].end(),
-                                   fe_data.shape_gradients[k].begin(),
-                                   mapping_data);
+       {
+         Assert (data.shape_gradients[k].size() <=
+                 fe_data.shape_gradients[k].size(),
+                 ExcInternalError());    
+         mapping.transform_covariant(data.shape_gradients[k].begin(),
+                                     data.shape_gradients[k].end(),
+                                     fe_data.shape_gradients[k].begin(),
+                                     mapping_data);
+       };
     }
 
   if (flags & update_second_derivatives)
@@ -1227,10 +1232,15 @@ FE_Q<dim>::fill_fe_face_values (const Mapping<dim>                   &mapping,
          data.shape_values(k,i) = fe_data.shape_values[k][i+offset];
       
       if (flags & update_gradients)
-       mapping.transform_covariant(data.shape_gradients[k].begin(),
-                                   data.shape_gradients[k].end(),
-                                   fe_data.shape_gradients[k].begin()+offset,
-                                   mapping_data);
+       {
+         Assert (data.shape_gradients[k].size() + offset <=
+                 fe_data.shape_gradients[k].size(),
+                 ExcInternalError());
+         mapping.transform_covariant(data.shape_gradients[k].begin(),
+                                     data.shape_gradients[k].end(),
+                                     fe_data.shape_gradients[k].begin()+offset,
+                                     mapping_data);
+       };
     }
 
   if (flags & update_second_derivatives)
@@ -1273,10 +1283,15 @@ FE_Q<dim>::fill_fe_subface_values (const Mapping<dim>                   &mapping
          data.shape_values(k,i) = fe_data.shape_values[k][i+offset];
       
       if (flags & update_gradients)
-       mapping.transform_covariant(data.shape_gradients[k].begin(),
-                                   data.shape_gradients[k].end(),
-                                   fe_data.shape_gradients[k].begin()+offset,
-                                   mapping_data);
+       {
+         Assert (data.shape_gradients[k].size() + offset <=
+                 fe_data.shape_gradients[k].size(),
+                 ExcInternalError());
+         mapping.transform_covariant(data.shape_gradients[k].begin(),
+                                     data.shape_gradients[k].end(),
+                                     fe_data.shape_gradients[k].begin()+offset,
+                                     mapping_data);
+       };
     }
   
   if (flags & update_second_derivatives)
index 3a730fe226edfe393de90314bc382509f9f68526..bc31b613961eae82e9b689e03d4e3be2c3372fd5 100644 (file)
@@ -598,6 +598,8 @@ MappingQ1<dim>::compute_fill_face (const typename DoFHandler<dim>::cell_iterator
                ExcDimensionMismatch(JxW_values.size(), npts));
       
       
+      Assert (data.aux[0].size() <= data.unit_tangentials[face_no].size(),
+             ExcInternalError());
       transform_contravariant(data.aux[0].begin(),
                              data.aux[0].end(),
                              data.unit_tangentials[face_no].begin(),
@@ -621,6 +623,12 @@ MappingQ1<dim>::compute_fill_face (const typename DoFHandler<dim>::cell_iterator
 
          case 3:
        {
+         Assert (face_no+GeometryInfo<dim>::faces_per_cell <
+                 data.unit_tangentials.n_rows(),
+                 ExcInternalError());
+         Assert (data.aux[1].size() <=
+                 data.unit_tangentials[face_no+GeometryInfo<dim>::faces_per_cell].size(),
+                 ExcInternalError());
          transform_contravariant(data.aux[1].begin(),
                                  data.aux[1].end(),
                                  data.unit_tangentials[

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.