From: Guido Kanschat Date: Thu, 1 Oct 2009 23:04:07 +0000 (+0000) Subject: restore old functionality, after a reference did not automatically get converted... X-Git-Tag: v8.0.0~7007 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=40acfbace8c99e506cb90c200b88fab12f13b054;p=dealii.git restore old functionality, after a reference did not automatically get converted into another git-svn-id: https://svn.dealii.org/trunk@19653 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/deal.II/include/fe/fe_values.h b/deal.II/deal.II/include/fe/fe_values.h index 9f36e97c6c..f371c42fc7 100644 --- a/deal.II/deal.II/include/fe/fe_values.h +++ b/deal.II/deal.II/include/fe/fe_values.h @@ -1993,6 +1993,18 @@ class FEValuesBase : protected FEValuesData, * may not detect errors. */ template + void get_function_values (const InputVector& fe_function, + const VectorSlice >& indices, + std::vector >& values, + const bool quadrature_points_fastest) const; + + /** + * Like the previous function, + * but allows to only fill a + * slice of a vector instead of + * the whole one. + */ + template void get_function_values (const InputVector& fe_function, const VectorSlice >& indices, VectorSlice > >& values, @@ -2128,6 +2140,17 @@ class FEValuesBase : protected FEValuesData, * corresponding arguments. */ template + void get_function_gradients (const InputVector& fe_function, + const VectorSlice >& indices, + std::vector > >& gradients, + bool quadrature_points_fastest = false) const; + + /** + * Same as the previous function, + * but filling only a slice of + * the result vector. + */ + template void get_function_gradients (const InputVector& fe_function, const VectorSlice >& indices, VectorSlice > > >& gradients, @@ -2251,6 +2274,17 @@ class FEValuesBase : protected FEValuesData, * corresponding arguments. */ template + void get_function_hessians ( + const InputVector& fe_function, + const VectorSlice >& indices, + std::vector > >& hessians, + bool quadrature_points_fastest = false) const; + /** + * Same as the previous function, + * but filling only a slice of + * the result vector. + */ + template void get_function_hessians ( const InputVector& fe_function, const VectorSlice >& indices, @@ -4583,6 +4617,50 @@ FEValuesBase::inverse_jacobian (const unsigned int i) const } +template +template +inline void +FEValuesBase::get_function_values ( + const InputVector& fe_function, + const VectorSlice >& indices, + std::vector >& values, + const bool quadrature_points_fastest) const +{ + VectorSlice > > slice(values); + get_function_values(fe_function, indices, slice, quadrature_points_fastest); +} + + + +template +template +inline void +FEValuesBase::get_function_gradients ( + const InputVector& fe_function, + const VectorSlice >& indices, + std::vector > >& values, + const bool quadrature_points_fastest) const +{ + VectorSlice > > > slice(values); + get_function_gradients(fe_function, indices, slice, quadrature_points_fastest); +} + + + +template +template +inline void +FEValuesBase::get_function_hessians ( + const InputVector& fe_function, + const VectorSlice >& indices, + std::vector > >& values, + const bool quadrature_points_fastest) const +{ + VectorSlice > > > slice(values); + get_function_hessians(fe_function, indices, slice, quadrature_points_fastest); +} + + template template