From 466169d58825187deb09d68d12b4ef905075a322 Mon Sep 17 00:00:00 2001 From: Matthias Maier Date: Sat, 16 May 2020 13:06:28 -0500 Subject: [PATCH] improve test and add symmetric variant as well --- tests/tensors/tensor_31.cc | 117 ++++++++++++++++++++++++++++++++++++- 1 file changed, 114 insertions(+), 3 deletions(-) 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; -- 2.39.5