10#ifndef TPETRA_TRANSFORM_HPP 
   11#define TPETRA_TRANSFORM_HPP 
   16#include <Teuchos_RCP.hpp> 
   17#include <Teuchos_GlobalMPISession.hpp> 
   29template <
typename T, 
typename U>
 
   35  using OriginalType      = Teuchos::RCP<T>;
 
   36  using OriginalConstType = Teuchos::RCP<const T>;
 
   37  using NewType           = Teuchos::RCP<U>;
 
   38  using NewConstType      = Teuchos::RCP<const U>;
 
   59  virtual void fwd() = 0;
 
   66  virtual void rvs() = 0;
 
  106    : origObj_(Teuchos::
null)
 
  107    , newObj_(Teuchos::
null) {}
 
 
  109  OriginalType origObj_;
 
  114    : origObj_(src.origObj_)
 
  115    , newObj_(src.newObj_) {}
 
  117  Transform<T, U>& operator=(
const Transform<T, U>& src) {
 
  119    Teuchos::GlobalMPISession::abort();
 
  125template <
typename T, 
typename U>
 
  129  newObj_  = Teuchos::rcp_dynamic_cast<U>(origObj_);
 
 
  133template <
typename T, 
typename U>
 
  134typename Transform<T, U>::NewType
 
  140template <
typename T, 
typename U>
 
  143  return (newObj_ != Teuchos::null);
 
 
 
  146template <
typename T, 
typename U>
 
  147class StructuralTransform : 
public Transform<T, U> {
 
  149  void fwd() { 
return; }
 
  150  void rvs() { 
return; }
 
  152  virtual ~StructuralTransform() = 
default;
 
  156class SameTypeTransform : 
public Transform<T, T> {
 
  158  using TransformType = Teuchos::RCP<T>;
 
  160  virtual ~SameTypeTransform() = 
default;
 
  164class StructuralSameTypeTransform : 
public SameTypeTransform<T> {
 
  166  void fwd() { 
return; }
 
  167  void rvs() { 
return; }
 
  169  virtual ~StructuralSameTypeTransform() = 
default;
 
  188class ViewTransform : 
public SameTypeTransform<T> {
 
  190  void fwd() { 
return; }
 
  191  void rvs() { 
return; }
 
  193  virtual ~ViewTransform() = 
default;
 
 
 
 
Struct that holds views of the contents of a CrsMatrix.
 
Namespace Tpetra contains the class and methods constituting the Tpetra library.