From: Matthias Maier Date: Sat, 16 May 2020 18:06:28 +0000 (-0500) Subject: improve test and add symmetric variant as well X-Git-Tag: v9.2.0-rc3~7^2~1 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5f87a247a389611a78e529414bd4b16f71323ee1;p=dealii.git improve test and add symmetric variant as well --- diff --git a/tests/tensors/tensor_31.cc b/tests/tensors/tensor_31.cc index 044333517d..620c16598b 100644 --- a/tests/tensors/tensor_31.cc +++ b/tests/tensors/tensor_31.cc @@ -17,10 +17,120 @@ // Test that we can form unusual mixed complex-complex / complex-real // tensor products: +#include #include #include "../tests.h" +void +test_symmetric() +{ + constexpr int dim = 3; + + typedef std::complex rank0_complex; + dealii::Tensor<1, dim, rank0_complex> curl_complex; + dealii::SymmetricTensor<2, dim, rank0_complex> permeability_complex; + + typedef std::complex rank0_complex_float; + dealii::Tensor<1, dim, rank0_complex_float> curl_complex_float; + dealii::Tensor<2, dim, rank0_complex_float> permeability_complex_float; + + typedef double rank0; + dealii::Tensor<1, dim, rank0> curl; + dealii::Tensor<2, dim, rank0> permeability; + + typedef double rank0_float; + dealii::Tensor<1, dim, rank0_float> curl_float; + dealii::Tensor<2, dim, rank0_float> permeability_float; + + curl_complex * curl; + curl_complex * curl_complex; + curl_complex * curl_complex_float; + curl_complex * curl_float; + curl_complex_float *curl; + curl_complex_float *curl_complex; + curl_complex_float *curl_complex_float; + curl_complex_float *curl_float; + curl_complex_float *permeability_complex *curl; + curl_complex_float *permeability_complex *curl_complex; + curl_complex_float *permeability_complex *curl_complex_float; + curl_complex_float *permeability_complex *curl_float; + curl_complex_float *permeability_complex_float *curl; + curl_complex_float *permeability_complex_float *curl_complex; + curl_complex_float *permeability_complex_float *curl_complex_float; + curl_complex_float *permeability_complex_float *curl_float; + curl_complex_float *permeability *curl; + curl_complex_float *permeability *curl_complex; + curl_complex_float *permeability *curl_complex_float; + curl_complex_float *permeability *curl_float; + curl_complex_float *permeability_float *curl; + curl_complex_float *permeability_float *curl_complex; + curl_complex *permeability_complex *curl; + curl_complex *permeability_complex *curl_complex; + curl_complex *permeability_complex *curl_complex_float; + curl_complex *permeability_complex *curl_float; + curl_complex *permeability_complex_float *curl; + curl_complex *permeability_complex_float *curl_complex; + curl_complex *permeability_complex_float *curl_complex_float; + curl_complex *permeability_complex_float *curl_float; + curl_complex *permeability *curl; + curl_complex *permeability *curl_complex; + curl_complex *permeability *curl_complex_float; + curl_complex *permeability *curl_float; + curl_complex *permeability_float *curl; + curl_complex *permeability_float *curl_complex; + curl * curl; + curl * curl_complex; + curl * curl_complex_float; + curl * curl_float; + curl_float * curl; + curl_float * curl_complex; + curl_float * curl_complex_float; + curl_float * curl_float; + curl_float *permeability_complex *curl; + curl_float *permeability_complex *curl_complex; + curl_float *permeability_complex *curl_complex_float; + curl_float *permeability_complex *curl_float; + curl_float *permeability_complex_float *curl; + curl_float *permeability_complex_float *curl_complex; + curl_float *permeability_complex_float *curl_complex_float; + curl_float *permeability_complex_float *curl_float; + curl_float *permeability *curl; + curl_float *permeability *curl_complex; + curl_float *permeability *curl_complex_float; + curl_float *permeability *curl_float; + curl_float *permeability_float *curl; + curl_float *permeability_float *curl_complex; + curl *permeability_complex *curl; + curl *permeability_complex *curl_complex; + curl *permeability_complex *curl_complex_float; + curl *permeability_complex *curl_float; + curl *permeability_complex_float *curl; + curl *permeability_complex_float *curl_complex; + curl *permeability_complex_float *curl_complex_float; + curl *permeability_complex_float *curl_float; + curl *permeability *curl; + curl *permeability *curl_complex; + curl *permeability *curl_complex_float; + curl *permeability *curl_float; + curl *permeability_float *curl; + curl *permeability_float * curl_complex; + permeability_complex * curl; + permeability_complex * curl_complex; + permeability_complex * curl_complex_float; + permeability_complex * curl_float; + permeability_complex_float *curl; + permeability_complex_float *curl_complex; + permeability_complex_float *curl_complex_float; + permeability_complex_float *curl_float; + permeability * curl; + permeability * curl_complex; + permeability * curl_complex_float; + permeability * curl_float; + permeability_float * curl; + permeability_float * curl_complex; +} + template void test() @@ -34,9 +144,9 @@ test() dealii::Tensor permeability_complex_float; - typedef double rank0; - dealii::Tensor<1, dim == 2 ? 1 : dim, rank0_real> curl; - dealii::Tensor permeability; + typedef double rank0; + dealii::Tensor<1, dim == 2 ? 1 : dim, rank0> curl; + dealii::Tensor permeability; typedef double rank0_float; dealii::Tensor<1, dim == 2 ? 1 : dim, rank0_float> curl_float; @@ -137,6 +247,7 @@ main(int argc, char *argv[]) test<2>(); test<3>(); + test_symmetric(); deallog << "OK" << std::endl;