From d04a212169251bcfb46656cf00cacba3d31f5f03 Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Sun, 25 Apr 2021 15:42:46 -0600 Subject: [PATCH] Bring back the OutputTypes structures. --- include/deal.II/fe/fe_values.h | 186 +++++++++++++++++++++++++++++++++ 1 file changed, 186 insertions(+) diff --git a/include/deal.II/fe/fe_values.h b/include/deal.II/fe/fe_values.h index 910717389a..04ebe43006 100644 --- a/include/deal.II/fe/fe_values.h +++ b/include/deal.II/fe/fe_values.h @@ -223,6 +223,56 @@ namespace FEValuesViews using solution_third_derivative_type = typename ProductType::type; + /** + * A struct that provides the output type for the product of the value + * and derivatives of basis functions of the Scalar view and any @p Number type. + * + * @deprecated Use the types defined in the surrounding class instead. + */ + template + struct DEAL_II_DEPRECATED_EARLY OutputType + { + /** + * An alias for the data type of the product of a @p Number and the + * values of the view the Scalar class. + */ + using value_type = + typename ProductType::value_type>::type; + + /** + * An alias for the data type of the product of a @p Number and the + * gradients of the view the Scalar class. + */ + using gradient_type = typename ProductType< + Number, + typename Scalar::gradient_type>::type; + + /** + * An alias for the data type of the product of a @p Number and the + * laplacians of the view the Scalar class. + */ + using laplacian_type = + typename ProductType::value_type>::type; + + /** + * An alias for the data type of the product of a @p Number and the + * hessians of the view the Scalar class. + */ + using hessian_type = typename ProductType< + Number, + typename Scalar::hessian_type>::type; + + /** + * An alias for the data type of the product of a @p Number and the + * third derivatives of the view the Scalar class. + */ + using third_derivative_type = typename ProductType< + Number, + typename Scalar::third_derivative_type>::type; + }; + /** * A structure where for each shape function we pre-compute a bunch of * data that will make later accesses much cheaper. @@ -737,6 +787,80 @@ namespace FEValuesViews using solution_third_derivative_type = typename ProductType::type; + /** + * A struct that provides the output type for the product of the value + * and derivatives of basis functions of the Vector view and any @p Number type. + * + * @deprecated Use the types defined in the surrounding class instead. + */ + template + struct DEAL_II_DEPRECATED_EARLY OutputType + { + /** + * An alias for the data type of the product of a @p Number and the + * values of the view the Vector class. + */ + using value_type = + typename ProductType::value_type>::type; + + /** + * An alias for the data type of the product of a @p Number and the + * gradients of the view the Vector class. + */ + using gradient_type = typename ProductType< + Number, + typename Vector::gradient_type>::type; + + /** + * An alias for the data type of the product of a @p Number and the + * symmetric gradients of the view the Vector class. + */ + using symmetric_gradient_type = typename ProductType< + Number, + typename Vector::symmetric_gradient_type>::type; + + /** + * An alias for the data type of the product of a @p Number and the + * divergences of the view the Vector class. + */ + using divergence_type = typename ProductType< + Number, + typename Vector::divergence_type>::type; + + /** + * An alias for the data type of the product of a @p Number and the + * laplacians of the view the Vector class. + */ + using laplacian_type = + typename ProductType::value_type>::type; + + /** + * An alias for the data type of the product of a @p Number and the + * curls of the view the Vector class. + */ + using curl_type = + typename ProductType::curl_type>::type; + + /** + * An alias for the data type of the product of a @p Number and the + * hessians of the view the Vector class. + */ + using hessian_type = typename ProductType< + Number, + typename Vector::hessian_type>::type; + + /** + * An alias for the data type of the product of a @p Number and the + * third derivatives of the view the Vector class. + */ + using third_derivative_type = typename ProductType< + Number, + typename Vector::third_derivative_type>::type; + }; + /** * A structure where for each shape function we pre-compute a bunch of * data that will make later accesses much cheaper. @@ -1343,6 +1467,33 @@ namespace FEValuesViews using solution_divergence_type = typename ProductType::type; + + /** + * A struct that provides the output type for the product of the value + * and derivatives of basis functions of the SymmetricTensor view and any @p Number type. + * + * @deprecated Use the types defined in the surrounding class instead. + */ + template + struct DEAL_II_DEPRECATED_EARLY OutputType + { + /** + * An alias for the data type of the product of a @p Number and the + * values of the view the SymmetricTensor class. + */ + using value_type = typename ProductType< + Number, + typename SymmetricTensor<2, dim, spacedim>::value_type>::type; + + /** + * An alias for the data type of the product of a @p Number and the + * divergences of the view the SymmetricTensor class. + */ + using divergence_type = typename ProductType< + Number, + typename SymmetricTensor<2, dim, spacedim>::divergence_type>::type; + }; + /** * A structure where for each shape function we pre-compute a bunch of * data that will make later accesses much cheaper. @@ -1644,6 +1795,41 @@ namespace FEValuesViews using solution_gradient_type = typename ProductType::type; + + /** + * A struct that provides the output type for the product of the value + * and derivatives of basis functions of the Tensor view and any @p Number type. + * + * @deprecated Use the types defined in the surrounding class instead. + */ + template + struct DEAL_II_DEPRECATED_EARLY OutputType + { + /** + * An alias for the data type of the product of a @p Number and the + * values of the view the Tensor class. + */ + using value_type = typename ProductType< + Number, + typename Tensor<2, dim, spacedim>::value_type>::type; + + /** + * An alias for the data type of the product of a @p Number and the + * divergences of the view the Tensor class. + */ + using divergence_type = typename ProductType< + Number, + typename Tensor<2, dim, spacedim>::divergence_type>::type; + + /** + * An alias for the data type of the product of a @p Number and the + * gradient of the view the Tensor class. + */ + using gradient_type = typename ProductType< + Number, + typename Tensor<2, dim, spacedim>::gradient_type>::type; + }; + /** * A structure where for each shape function we pre-compute a bunch of * data that will make later accesses much cheaper. -- 2.39.5