From 132136a0f6899df89977c48369e6b6fca965c82f Mon Sep 17 00:00:00 2001 From: guido Date: Wed, 5 Jul 2000 21:50:14 +0000 Subject: [PATCH] Compute second derivatives only when needed git-svn-id: https://svn.dealii.org/trunk@3137 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/deal.II/source/fe/fe_values.cc | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/deal.II/deal.II/source/fe/fe_values.cc b/deal.II/deal.II/source/fe/fe_values.cc index 95763dcce3..3a8e631891 100644 --- a/deal.II/deal.II/source/fe/fe_values.cc +++ b/deal.II/deal.II/source/fe/fe_values.cc @@ -346,8 +346,9 @@ FEValues::FEValues (const FiniteElement &fe, shape_values[0](i,j) = fe.shape_value(i, unit_quadrature_points[j]); unit_shape_gradients[i][j] = fe.shape_grad(i, unit_quadrature_points[j]); - unit_shape_2nd_derivatives[i][j] - = fe.shape_grad_grad(i, unit_quadrature_points[j]); + if (update_flags & update_second_derivatives) + unit_shape_2nd_derivatives[i][j] + = fe.shape_grad_grad(i, unit_quadrature_points[j]); }; for (unsigned int i=0; i::FEFaceValues (const FiniteElement &fe, = fe.shape_value(i, unit_quadrature_points[face][j]); unit_shape_gradients[face][i][j] = fe.shape_grad(i, unit_quadrature_points[face][j]); - unit_shape_2nd_derivatives[face][i][j] - = fe.shape_grad_grad(i, unit_quadrature_points[face][j]); + if (update_flags & update_second_derivatives) + unit_shape_2nd_derivatives[face][i][j] + = fe.shape_grad_grad(i, unit_quadrature_points[face][j]); }; for (unsigned int i=0; i::FESubfaceValues (const FiniteElement &fe, = fe.shape_grad(i, unit_quadrature_points[face * GeometryInfo:: subfaces_per_face+subface][j]); - unit_shape_2nd_derivatives[face*GeometryInfo::subfaces_per_face+subface][i][j] - = fe.shape_grad_grad(i, unit_quadrature_points[face * + if (update_flags & update_second_derivatives) + unit_shape_2nd_derivatives[face*GeometryInfo::subfaces_per_face+subface][i][j] + = fe.shape_grad_grad(i, unit_quadrature_points[face * GeometryInfo:: subfaces_per_face+subface][j]); }; -- 2.39.5