From de2c47a0dfbf4a431cbc92a0edce68078b96e5c1 Mon Sep 17 00:00:00 2001 From: wolf Date: Sun, 1 Nov 1998 22:26:17 +0000 Subject: [PATCH] Change the order of some loops to allow for better optimization by the compiler. git-svn-id: https://svn.dealii.org/trunk@621 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/deal.II/source/fe/fe_lib.quadratic.cc | 12 ++--- deal.II/deal.II/source/fe/fe_values.cc | 52 ++++++++++++------- 2 files changed, 38 insertions(+), 26 deletions(-) diff --git a/deal.II/deal.II/source/fe/fe_lib.quadratic.cc b/deal.II/deal.II/source/fe/fe_lib.quadratic.cc index 3604b23016..793f36d5b8 100644 --- a/deal.II/deal.II/source/fe/fe_lib.quadratic.cc +++ b/deal.II/deal.II/source/fe/fe_lib.quadratic.cc @@ -885,8 +885,8 @@ void FEQuadraticSub<2>::get_unit_support_points (vector > &unit_points) template <> void FEQuadraticSub<2>::get_support_points (const typename DoFHandler<2>::cell_iterator &cell, - const Boundary<2>&, - vector > &support_points) const { + const Boundary<2>&, + vector > &support_points) const { Assert (support_points.size() == total_dofs, ExcWrongFieldDimension (support_points.size(), total_dofs)); @@ -898,16 +898,16 @@ void FEQuadraticSub<2>::get_support_points (const typename DoFHandler<2>::cell_i // to the mean coordinates of the vertices for (unsigned int line=0; line<4; ++line) support_points[4+line] = (cell->line(line)->vertex(0) + - cell->line(line)->vertex(1)) / 2; + cell->line(line)->vertex(1)) / 2; // same for the center of the square: // since all four linear basis functions // take on the value 1/4 at the center, // the center is mapped to the mean // coordinates of the four vertices support_points[8] = (support_points[0] + - support_points[1] + - support_points[2] + - support_points[3]) / 4; + support_points[1] + + support_points[2] + + support_points[3]) / 4; }; diff --git a/deal.II/deal.II/source/fe/fe_values.cc b/deal.II/deal.II/source/fe/fe_values.cc index 44e66ed773..89a9141fae 100644 --- a/deal.II/deal.II/source/fe/fe_values.cc +++ b/deal.II/deal.II/source/fe/fe_values.cc @@ -332,9 +332,9 @@ FEFaceValues::FEFaceValues (const FiniteElement &fe, for (unsigned int face=0; face::faces_per_cell; ++face) QProjector::project_to_face (quadrature, face, unit_quadrature_points[face]); - for (unsigned int face=0; face::faces_per_cell; ++face) - for (unsigned int i=0; i::faces_per_cell; ++face) { shape_values[face](i,j) = fe.shape_value(i, unit_quadrature_points[face][j]); @@ -342,15 +342,15 @@ FEFaceValues::FEFaceValues (const FiniteElement &fe, = fe.shape_grad(i, unit_quadrature_points[face][j]); }; - for (unsigned int face=0; face::faces_per_cell; ++face) - for (unsigned int i=0; i::faces_per_cell; ++face) { shape_values_transform[face] (i,j) = fe.shape_value_transform (i, unit_quadrature_points[face][j]); unit_shape_gradients_transform[face][i][j] = fe.shape_grad_transform(i, unit_quadrature_points[face][j]); - }; + }; }; @@ -456,25 +456,37 @@ FESubfaceValues::FESubfaceValues (const FiniteElement &fe, face, subface, unit_quadrature_points[face*(1<<(dim-1))+subface]); - for (unsigned int face=0; face::faces_per_cell; ++face) - for (unsigned int subface=0; subface::subfaces_per_face; ++subface) - for (unsigned int i=0; i::faces_per_cell; ++face) + for (unsigned int subface=0; subface::subfaces_per_face; ++subface) { shape_values[face*GeometryInfo::subfaces_per_face+subface](i,j) - = fe.shape_value(i, unit_quadrature_points[face*GeometryInfo::subfaces_per_face+subface][j]); + = fe.shape_value(i, unit_quadrature_points[face * + GeometryInfo:: + subfaces_per_face+subface][j]); unit_shape_gradients[face*GeometryInfo::subfaces_per_face+subface][i][j] - = fe.shape_grad(i, unit_quadrature_points[face*GeometryInfo::subfaces_per_face+subface][j]); + = fe.shape_grad(i, unit_quadrature_points[face * + GeometryInfo:: + subfaces_per_face+subface][j]); }; - for (unsigned int face=0; face::faces_per_cell; ++face) - for (unsigned int subface=0; subface::subfaces_per_face; ++subface) - for (unsigned int i=0; i::faces_per_cell; ++face) + for (unsigned int subface=0; subface::subfaces_per_face; ++subface) { shape_values_transform[face*GeometryInfo::subfaces_per_face+subface] (i,j) - = fe.shape_value_transform (i, unit_quadrature_points[face*GeometryInfo::subfaces_per_face+subface][j]); - unit_shape_gradients_transform[face*GeometryInfo::subfaces_per_face+subface][i][j] - = fe.shape_grad_transform(i, unit_quadrature_points[face*GeometryInfo::subfaces_per_face+subface][j]); + = fe.shape_value_transform (i, unit_quadrature_points[face * + GeometryInfo:: + subfaces_per_face + + subface][j]); + unit_shape_gradients_transform[face * + GeometryInfo::subfaces_per_face + + subface][i][j] + = fe.shape_grad_transform(i, unit_quadrature_points[face * + GeometryInfo:: + subfaces_per_face + + subface][j]); }; }; -- 2.39.5