Xpetra Version of the Day
Loading...
Searching...
No Matches
Xpetra::TpetraHalfPrecisionOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node > Class Template Reference

Wraps an existing halfer precision Xpetra::Operator as a Xpetra::Operator. More...

#include <Xpetra_TpetraHalfPrecisionOperator.hpp>

Inheritance diagram for Xpetra::TpetraHalfPrecisionOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node >:
Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > Teuchos::Describable Teuchos::LabeledObject

Public Types

typedef Teuchos::ScalarTraits< Scalar >::halfPrecision HalfScalar
 
- Public Types inherited from Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >
typedef Scalar scalar_type
 The type of the entries of the input and output multivectors.
 
typedef LocalOrdinal local_ordinal_type
 The local index type.
 
typedef GlobalOrdinal global_ordinal_type
 The global index type.
 
typedef Node node_type
 The Kokkos Node type.
 

Xpetra specific

RCP< Xpetra::Operator< HalfScalar, LocalOrdinal, GlobalOrdinal, Node > > Op_
 
RCP< Xpetra::MultiVector< HalfScalar, LocalOrdinal, GlobalOrdinal, Node > > X_
 
RCP< Xpetra::MultiVector< HalfScalar, LocalOrdinal, GlobalOrdinal, Node > > Y_
 
RCP< Xpetra::Operator< HalfScalar, LocalOrdinal, GlobalOrdinal, Node > > GetHalfPrecisionOperator () const
 Direct access to the underlying TpetraOperator.
 
void SetHalfPrecisionOperator (const RCP< Xpetra::Operator< HalfScalar, LocalOrdinal, GlobalOrdinal, Node > > &op)
 

Constructor/Destructor

 TpetraHalfPrecisionOperator (const RCP< Xpetra::Operator< HalfScalar, LocalOrdinal, GlobalOrdinal, Node > > &op)
 Constructor.
 
void Allocate (int numVecs)
 
virtual ~TpetraHalfPrecisionOperator ()
 Destructor.
 
Teuchos::RCP< const Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > getDomainMap () const
 Returns the Tpetra::Map object associated with the domain of this TpetraOperator.
 
Teuchos::RCP< const Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > getRangeMap () const
 Returns the Tpetra::Map object associated with the range of this TpetraOperator.
 
void apply (const Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &X, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Y, Teuchos::ETransp mode=Teuchos::NO_TRANS, Scalar alpha=Teuchos::ScalarTraits< Scalar >::one(), Scalar beta=Teuchos::ScalarTraits< Scalar >::one()) const
 Returns in Y the result of a Xpetra::TpetraOperator applied to a Xpetra::MultiVector X.
 
bool hasTransposeApply () const
 Indicates whether this TpetraOperator supports applying the adjoint TpetraOperator.
 
void residual (const Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &X, const Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &B, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &R) const
 Compute a residual R = B - (*this) * X.
 

Additional Inherited Members

- Public Member Functions inherited from Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >
virtual ~Operator ()
 
virtual void removeEmptyProcessesInPlace (const RCP< const Map > &)
 
- Public Member Functions inherited from Teuchos::Describable
virtual std::string description () const
 
virtual void describe (FancyOStream &out, const EVerbosityLevel verbLevel=verbLevel_default) const
 
void describe (std::ostream &out, const EVerbosityLevel verbLevel=verbLevel_default) const
 
virtual ~Describable ()
 
DescribableStreamManipulatorState describe (const Describable &describable, const EVerbosityLevel verbLevel=Describable::verbLevel_default)
 
std::ostream & operator<< (std::ostream &os, const DescribableStreamManipulatorState &d)
 
virtual std::string description () const
 
virtual void describe (FancyOStream &out, const EVerbosityLevel verbLevel=verbLevel_default) const
 
void describe (std::ostream &out, const EVerbosityLevel verbLevel=verbLevel_default) const
 
virtual ~Describable ()
 
- Public Member Functions inherited from Teuchos::LabeledObject
 LabeledObject ()
 
virtual ~LabeledObject ()
 
virtual void setObjectLabel (const std::string &objectLabel)
 
virtual std::string getObjectLabel () const
 
- Static Public Attributes inherited from Teuchos::Describable
static const EVerbosityLevel verbLevel_default
 

Detailed Description

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
class Xpetra::TpetraHalfPrecisionOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node >

Wraps an existing halfer precision Xpetra::Operator as a Xpetra::Operator.

Definition at line 106 of file Xpetra_TpetraHalfPrecisionOperator.hpp.

Member Typedef Documentation

◆ HalfScalar

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node = KokkosClassic::DefaultNode::DefaultNodeType>
typedef Teuchos::ScalarTraits<Scalar>::halfPrecision Xpetra::TpetraHalfPrecisionOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node >::HalfScalar

Definition at line 108 of file Xpetra_TpetraHalfPrecisionOperator.hpp.

Constructor & Destructor Documentation

◆ TpetraHalfPrecisionOperator()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node = KokkosClassic::DefaultNode::DefaultNodeType>
Xpetra::TpetraHalfPrecisionOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node >::TpetraHalfPrecisionOperator ( const RCP< Xpetra::Operator< HalfScalar, LocalOrdinal, GlobalOrdinal, Node > > &  op)
inline

Constructor.

Definition at line 114 of file Xpetra_TpetraHalfPrecisionOperator.hpp.

◆ ~TpetraHalfPrecisionOperator()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node = KokkosClassic::DefaultNode::DefaultNodeType>
virtual Xpetra::TpetraHalfPrecisionOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node >::~TpetraHalfPrecisionOperator ( )
inlinevirtual

Destructor.

Definition at line 124 of file Xpetra_TpetraHalfPrecisionOperator.hpp.

Member Function Documentation

◆ Allocate()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node = KokkosClassic::DefaultNode::DefaultNodeType>
void Xpetra::TpetraHalfPrecisionOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Allocate ( int  numVecs)
inline

Definition at line 118 of file Xpetra_TpetraHalfPrecisionOperator.hpp.

◆ getDomainMap()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node = KokkosClassic::DefaultNode::DefaultNodeType>
Teuchos::RCP< const Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > Xpetra::TpetraHalfPrecisionOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getDomainMap ( ) const
inlinevirtual

Returns the Tpetra::Map object associated with the domain of this TpetraOperator.

Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 129 of file Xpetra_TpetraHalfPrecisionOperator.hpp.

◆ getRangeMap()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node = KokkosClassic::DefaultNode::DefaultNodeType>
Teuchos::RCP< const Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > Xpetra::TpetraHalfPrecisionOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getRangeMap ( ) const
inlinevirtual

Returns the Tpetra::Map object associated with the range of this TpetraOperator.

Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 134 of file Xpetra_TpetraHalfPrecisionOperator.hpp.

◆ apply()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node = KokkosClassic::DefaultNode::DefaultNodeType>
void Xpetra::TpetraHalfPrecisionOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node >::apply ( const Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  X,
Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  Y,
Teuchos::ETransp  mode = Teuchos::NO_TRANS,
Scalar  alpha = Teuchos::ScalarTraits<Scalar>::one(),
Scalar  beta = Teuchos::ScalarTraits<Scalar>::one() 
) const
inlinevirtual

Returns in Y the result of a Xpetra::TpetraOperator applied to a Xpetra::MultiVector X.

Parameters
[in]X- Xpetra::MultiVector of dimension NumVectors to multiply with matrix.
[out]Y- Xpetra::MultiVector of dimension NumVectors containing result.

Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 143 of file Xpetra_TpetraHalfPrecisionOperator.hpp.

◆ hasTransposeApply()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node = KokkosClassic::DefaultNode::DefaultNodeType>
bool Xpetra::TpetraHalfPrecisionOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node >::hasTransposeApply ( ) const
inlinevirtual

Indicates whether this TpetraOperator supports applying the adjoint TpetraOperator.

Reimplemented from Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 157 of file Xpetra_TpetraHalfPrecisionOperator.hpp.

◆ residual()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node = KokkosClassic::DefaultNode::DefaultNodeType>
void Xpetra::TpetraHalfPrecisionOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node >::residual ( const Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  X,
const Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  B,
Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  R 
) const
inlinevirtual

Compute a residual R = B - (*this) * X.

Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 160 of file Xpetra_TpetraHalfPrecisionOperator.hpp.

◆ GetHalfPrecisionOperator()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node = KokkosClassic::DefaultNode::DefaultNodeType>
RCP< Xpetra::Operator< HalfScalar, LocalOrdinal, GlobalOrdinal, Node > > Xpetra::TpetraHalfPrecisionOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node >::GetHalfPrecisionOperator ( ) const
inline

Direct access to the underlying TpetraOperator.

Definition at line 172 of file Xpetra_TpetraHalfPrecisionOperator.hpp.

◆ SetHalfPrecisionOperator()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node = KokkosClassic::DefaultNode::DefaultNodeType>
void Xpetra::TpetraHalfPrecisionOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node >::SetHalfPrecisionOperator ( const RCP< Xpetra::Operator< HalfScalar, LocalOrdinal, GlobalOrdinal, Node > > &  op)
inline

Definition at line 174 of file Xpetra_TpetraHalfPrecisionOperator.hpp.

Member Data Documentation

◆ Op_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node = KokkosClassic::DefaultNode::DefaultNodeType>
RCP<Xpetra::Operator<HalfScalar, LocalOrdinal, GlobalOrdinal, Node> > Xpetra::TpetraHalfPrecisionOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Op_
private

Definition at line 179 of file Xpetra_TpetraHalfPrecisionOperator.hpp.

◆ X_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node = KokkosClassic::DefaultNode::DefaultNodeType>
RCP<Xpetra::MultiVector<HalfScalar, LocalOrdinal, GlobalOrdinal, Node> > Xpetra::TpetraHalfPrecisionOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node >::X_
private

Definition at line 180 of file Xpetra_TpetraHalfPrecisionOperator.hpp.

◆ Y_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node = KokkosClassic::DefaultNode::DefaultNodeType>
RCP<Xpetra::MultiVector<HalfScalar, LocalOrdinal, GlobalOrdinal, Node> > Xpetra::TpetraHalfPrecisionOperator< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Y_
private

Definition at line 180 of file Xpetra_TpetraHalfPrecisionOperator.hpp.


The documentation for this class was generated from the following file: