From af1c2870f5e1bb93b9f0ba96b781c6cdd0804afa Mon Sep 17 00:00:00 2001 From: wolf Date: Mon, 9 Apr 2001 09:42:32 +0000 Subject: [PATCH] Dont assume that Neumann boundary functions have vector_value overloaded in the scalar case. git-svn-id: https://svn.dealii.org/trunk@4403 0785d39b-7218-0410-832d-ea1e28bc413d --- .../source/numerics/error_estimator.cc | 46 +++++++++++++------ 1 file changed, 33 insertions(+), 13 deletions(-) diff --git a/deal.II/deal.II/source/numerics/error_estimator.cc b/deal.II/deal.II/source/numerics/error_estimator.cc index 13c1f0b3d9..29e9295241 100644 --- a/deal.II/deal.II/source/numerics/error_estimator.cc +++ b/deal.II/deal.II/source/numerics/error_estimator.cc @@ -322,9 +322,17 @@ void KellyErrorEstimator<1>::estimate (const Mapping<1> &mapp // if Neumann b.c., then fill // the gradients field which // will be used later on. - for (unsigned int s=0; ssecond->vector_value(cell->vertex(0), - grad_neighbor[s]); + { +//TODO: [WB] Only ask once, then copy + if (n_components==1) + for (unsigned int s=0; ssecond->value(cell->vertex(0), + grad_neighbor[s](0)); + else + for (unsigned int s=0; ssecond->vector_value(cell->vertex(0), + grad_neighbor[s]); + } else // fill with zeroes. for (unsigned int s=0; s > g(n_q_points, Vector(n_components)); - data.neumann_bc.find(boundary_indicator)->second - ->vector_value_list (fe_face_values_cell.get_quadrature_points(), - g); - - for (unsigned int n=0; n g(n_q_points); + data.neumann_bc.find(boundary_indicator)->second + ->value_list (fe_face_values_cell.get_quadrature_points(), g); + + for (unsigned int n=0; n > g(n_q_points, Vector(n_components)); + data.neumann_bc.find(boundary_indicator)->second + ->vector_value_list (fe_face_values_cell.get_quadrature_points(), + g); + + for (unsigned int n=0; n