Tpetra parallel linear algebra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Tpetra_Details_MpiTypeTraits.hpp File Reference

Add specializations of Teuchos::Details::MpiTypeTraits for Kokkos::complex<float> and Kokkos::complex<double>, and import Teuchos::Details::MpiTypeTraits into the Tpetra::Details namespace. More...

#include "TpetraCore_config.h"

Go to the source code of this file.

Detailed Description

Add specializations of Teuchos::Details::MpiTypeTraits for Kokkos::complex<float> and Kokkos::complex<double>, and import Teuchos::Details::MpiTypeTraits into the Tpetra::Details namespace.

Warning
This file, and its contents are implementation details of Tpetra. DO NOT DEPEND ON THEM!
This file's contents only exist if building with MPI.

This file exists mainly to let Tpetra developers add specializations to Teuchos::Details::MpiTypeTraits. Tpetra in particular needs specializations for the Kokkos versions of std::complex, since std::complex does not work with Kokkos::View.

If you want to add a new Scalar type to Tpetra, and Kokkos already supports that type, you should add a specialization of MpiTypeTraits for your Scalar types. If you want to add a new Scalar type to Tpetra, and Kokkos does not support that type, first begin by adding a specialization of Kokkos::ArithTraits for your type, that maps it to a type that Kokkos does support. Then, add a specialization of MpiTypeTraits for your Scalar types.

Definition in file Tpetra_Details_MpiTypeTraits.hpp.