From: Daniel Arndt Date: Sun, 20 Aug 2017 15:50:46 +0000 (+0200) Subject: Improve documentation X-Git-Tag: v9.0.0-rc1~1180^2~1 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=46665112dad840196197abe0ab0e586fdb606ce0;p=dealii.git Improve documentation --- diff --git a/include/deal.II/matrix_free/evaluation_selector.h b/include/deal.II/matrix_free/evaluation_selector.h index 0c74cfa717..b6824ce492 100644 --- a/include/deal.II/matrix_free/evaluation_selector.h +++ b/include/deal.II/matrix_free/evaluation_selector.h @@ -291,11 +291,18 @@ namespace * pass these values to the respective template specializations. * Otherwise, we perform a runtime matching of the runtime parameters to find * the correct specialization. This matching currently supports - * $0\leq fe\_degree$ and $degree-1\leq n_q_points_1d\leq degree+1$. + * $0\leq fe\_degree \leq 9$ and $degree+1\leq n\_q\_points\_1d\leq fe\_degree+2$. */ template struct SelectEvaluator { + /** + * Chooses an appropriate evaluation strategy for the evaluate function, i.e. + * this calls internal::FEEvaluationImpl::evaluate(), + * internal::FEEvaluationImplCollocation::evaluate() or + * internal::FEEvaluationImplTransformToCollocation::evaluate() with appropriate + * template parameters. + */ static void evaluate(const internal::MatrixFreeFunctions::ShapeInfo > &shape_info, VectorizedArray *values_dofs_actual[], VectorizedArray *values_quad[], @@ -306,6 +313,13 @@ struct SelectEvaluator const bool evaluate_gradients, const bool evaluate_hessians); + /** + * Chooses an appropriate evaluation strategy for the integrate function, i.e. + * this calls internal::FEEvaluationImpl::integrate(), + * internal::FEEvaluationImplCollocation::integrate() or + * internal::FEEvaluationImplTransformToCollocation::integrate() with appropriate + * template parameters. + */ static void integrate(const internal::MatrixFreeFunctions::ShapeInfo > &shape_info, VectorizedArray *values_dofs_actual[], VectorizedArray *values_quad[], @@ -316,11 +330,26 @@ struct SelectEvaluator }; /** - * Specialization for invalid template parameters, i.e. fe_degree==-1. + * This specialization chooses an appropriate evaluation strategy if we + * don't know the correct template parameters at compile time. Instead + * the selection is done based on the shape_info variable which contains + * the relevant runtime parameters. + * In case these parameters do not satisfy + * $0\leq fe\_degree \leq 9$ and + * $degree+1\leq n\_q\_points\_1d\leq fe\_degree+2$, a non-optimized fallback + * is used. */ template struct SelectEvaluator { + /** + * Based on the the run time parameters stored in @shape_info this function + * chooses an appropriate evaluation strategy for the integrate function, i.e. + * this calls internal::FEEvaluationImpl::evaluate(), + * internal::FEEvaluationImplCollocation::evaluate() or + * internal::FEEvaluationImplTransformToCollocation::evaluate() with appropriate + * template parameters. + */ static void evaluate(const internal::MatrixFreeFunctions::ShapeInfo > &shape_info, VectorizedArray *values_dofs_actual[], VectorizedArray *values_quad[], @@ -331,6 +360,14 @@ struct SelectEvaluator const bool evaluate_gradients, const bool evaluate_hessians); + /** + * Based on the the run time parameters stored in @shape_info this function + * chooses an appropriate evaluation strategy for the integrate function, i.e. + * this calls internal::FEEvaluationImpl::integrate(), + * internal::FEEvaluationImplCollocation::integrate() or + * internal::FEEvaluationImplTransformToCollocation::integrate() with appropriate + * template parameters. + */ static void integrate(const internal::MatrixFreeFunctions::ShapeInfo > &shape_info, VectorizedArray *values_dofs_actual[], VectorizedArray *values_quad[],