From 70b91b7957cc7232c5f37d6b85fba1277fff4fa5 Mon Sep 17 00:00:00 2001 From: Matthias Maier Date: Sat, 16 May 2020 13:03:04 -0500 Subject: [PATCH] add a test --- tests/tensors/tensor_31.cc | 144 +++++++++++++++++++++++++++++++++ tests/tensors/tensor_31.output | 2 + 2 files changed, 146 insertions(+) create mode 100644 tests/tensors/tensor_31.cc create mode 100644 tests/tensors/tensor_31.output diff --git a/tests/tensors/tensor_31.cc b/tests/tensors/tensor_31.cc new file mode 100644 index 0000000000..044333517d --- /dev/null +++ b/tests/tensors/tensor_31.cc @@ -0,0 +1,144 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2017 - 2020 by the deal.II authors +// +// This file is part of the deal.II library. +// +// The deal.II library is free software; you can use it, redistribute +// it, and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// The full text of the license can be found in the file LICENSE.md at +// the top level directory of deal.II. +// +// --------------------------------------------------------------------- + + +// Test that we can form unusual mixed complex-complex / complex-real +// tensor products: + +#include + +#include "../tests.h" + +template +void +test() +{ + typedef std::complex rank0_complex; + dealii::Tensor<1, dim == 2 ? 1 : dim, rank0_complex> curl_complex; + dealii::Tensor permeability_complex; + + typedef std::complex rank0_complex_float; + dealii::Tensor<1, dim == 2 ? 1 : dim, rank0_complex_float> curl_complex_float; + dealii::Tensor + permeability_complex_float; + + typedef double rank0; + dealii::Tensor<1, dim == 2 ? 1 : dim, rank0_real> curl; + dealii::Tensor permeability; + + typedef double rank0_float; + dealii::Tensor<1, dim == 2 ? 1 : dim, rank0_float> curl_float; + dealii::Tensor 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; +} + +int +main(int argc, char *argv[]) +{ + initlog(); + + test<2>(); + test<3>(); + + deallog << "OK" << std::endl; + + return 0; +} diff --git a/tests/tensors/tensor_31.output b/tests/tensors/tensor_31.output new file mode 100644 index 0000000000..0fd8fc12f0 --- /dev/null +++ b/tests/tensors/tensor_31.output @@ -0,0 +1,2 @@ + +DEAL::OK -- 2.39.5