From: Denis Davydov Date: Wed, 4 Feb 2015 10:14:29 +0000 (+0100) Subject: patched fe_field_funciton.templates.h X-Git-Tag: v8.3.0-rc1~184^2~20 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=867014dd59c93339720962516549ef2910899279;p=dealii.git patched fe_field_funciton.templates.h --- diff --git a/include/deal.II/numerics/fe_field_function.templates.h b/include/deal.II/numerics/fe_field_function.templates.h index 00d26cb42a..6b85b89271 100644 --- a/include/deal.II/numerics/fe_field_function.templates.h +++ b/include/deal.II/numerics/fe_field_function.templates.h @@ -87,7 +87,8 @@ namespace Functions FEValues fe_v(mapping, cell->get_fe(), quad, update_values); fe_v.reinit(cell); - std::vector< Vector > vvalues (1, values); + std::vector< Vector > vvalues (1); + vvalues[0].reinit(values.size()); fe_v.get_function_values(data_vector, vvalues); values = vvalues[0]; } @@ -138,10 +139,13 @@ namespace Functions FEValues fe_v(mapping, cell->get_fe(), quad, update_gradients); fe_v.reinit(cell); - std::vector< std::vector > > vgrads - (1, std::vector >(n_components) ); + std::vector< std::vector > > vgrads + (1, std::vector >(n_components) ); fe_v.get_function_gradients(data_vector, vgrads); - gradients = vgrads[0]; + const unsigned int s = vgrads[0].size(); + gradients.resize(s); + for (unsigned int i = 0; i < s; i++) + gradients[i] = vgrads[0][i]; } @@ -191,7 +195,8 @@ namespace Functions FEValues fe_v(mapping, cell->get_fe(), quad, update_hessians); fe_v.reinit(cell); - std::vector< Vector > vvalues (1, values); + std::vector< Vector > vvalues (1); + vvalues[0].reinit(values.size()); fe_v.get_function_laplacians(data_vector, vvalues); values = vvalues[0]; } @@ -246,7 +251,7 @@ namespace Functions { fe_v.reinit(cells[i], i, 0); const unsigned int nq = qpoints[i].size(); - std::vector< Vector > vvalues (nq, Vector(n_components)); + std::vector< Vector > vvalues (nq, Vector(n_components)); fe_v.get_present_fe_values ().get_function_values(data_vector, vvalues); for (unsigned int q=0; q > > - vgrads (nq, std::vector >(n_components)); + std::vector< std::vector > > + vgrads (nq, std::vector >(n_components)); fe_v.get_present_fe_values ().get_function_gradients(data_vector, vgrads); for (unsigned int q=0; q > &viq = values[maps[i][q]]; + const unsigned int s = vgrads[q].size(); + viq.resize(s); + for (unsigned int l=0;l > vvalues (nq, Vector(n_components)); + std::vector< Vector > vvalues (nq, Vector(n_components)); fe_v.get_present_fe_values ().get_function_laplacians(data_vector, vvalues); for (unsigned int q=0; q