Panzer  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Private Attributes | List of all members
panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node > Class Template Reference

#include <Panzer_Interpolation.hpp>

Inherits Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Public Types

typedef PHX::Device DeviceSpace
 

Public Member Functions

 MatrixFreeInterpolationOp (const Teuchos::RCP< const panzer::ConnManager > &conn, const Teuchos::RCP< panzer::DOFManager > &_domain_ugi, const Teuchos::RCP< panzer::DOFManager > &_range_ugi, const std::string &_domain_basis_name, const std::string &_range_basis_name, Intrepid2::EOperator _op=Intrepid2::OPERATOR_VALUE, size_t _worksetSize=1000)
 
void allocateColumnMapVector (size_t numVectors)
 
void precomputeOwnersAndOrientations (const Teuchos::RCP< const panzer::ConnManager > &conn)
 
Teuchos::RCP< const
Tpetra::Map< LocalOrdinal,
GlobalOrdinal, Node > > 
getDomainMap () const
 Returns the Tpetra::Map object associated with the domain of this operator. More...
 
Teuchos::RCP< const
Tpetra::Map< LocalOrdinal,
GlobalOrdinal, Node > > 
getRangeMap () const
 Returns the Tpetra::Map object associated with the range of this operator. More...
 
void apply (const Tpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &X, Tpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Y, Teuchos::ETransp mode=Teuchos::NO_TRANS, Scalar alpha=Teuchos::ScalarTraits< Scalar >::one(), Scalar beta=Teuchos::ScalarTraits< Scalar >::zero()) const
 
void applyNonTransposed (const Tpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &X, Tpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Y, Scalar alpha=Teuchos::ScalarTraits< Scalar >::one(), Scalar beta=Teuchos::ScalarTraits< Scalar >::zero()) const
 
void applyTransposed (const Tpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &X, Tpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Y, Scalar alpha=Teuchos::ScalarTraits< Scalar >::one(), Scalar beta=Teuchos::ScalarTraits< Scalar >::zero()) const
 
bool hasTransposeApply () const
 
void setName (std::string &_name)
 

Private Attributes

std::string name
 
Teuchos::RCP< const
Tpetra::Map< LocalOrdinal,
GlobalOrdinal, Node > > 
domainMap_
 
Teuchos::RCP< const
Tpetra::Map< LocalOrdinal,
GlobalOrdinal, Node > > 
rangeMap_
 
Teuchos::RCP< const
Tpetra::Map< LocalOrdinal,
GlobalOrdinal, Node > > 
columnMap_
 
Teuchos::RCP< const
Tpetra::Import< LocalOrdinal,
GlobalOrdinal, Node > > 
import_
 
Teuchos::RCP
< Tpetra::MultiVector< Scalar,
LocalOrdinal, GlobalOrdinal,
Node > > 
colmapMV_
 
std::string domain_basis_name
 
std::string range_basis_name
 
Intrepid2::EOperator op
 
size_t worksetSize
 
Teuchos::RCP< panzer::DOFManagerdomain_ugi
 
Teuchos::RCP< panzer::DOFManagerrange_ugi
 
Kokkos::View< LocalOrdinal
*, DeviceSpace
owner_d_
 
std::map< std::string,
Kokkos::DynRankView
< Intrepid2::Orientation,
DeviceSpace > > 
orientations_
 

Detailed Description

template<class Scalar = Tpetra::Operator<>::scalar_type, class LocalOrdinal = typename Tpetra::Operator<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::Operator<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::Operator<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
class panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node >

Definition at line 50 of file Panzer_Interpolation.hpp.

Member Typedef Documentation

template<class Scalar = Tpetra::Operator<>::scalar_type, class LocalOrdinal = typename Tpetra::Operator<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::Operator<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::Operator<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
typedef PHX::Device panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node >::DeviceSpace

Definition at line 54 of file Panzer_Interpolation.hpp.

Constructor & Destructor Documentation

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node >::MatrixFreeInterpolationOp ( const Teuchos::RCP< const panzer::ConnManager > &  conn,
const Teuchos::RCP< panzer::DOFManager > &  _domain_ugi,
const Teuchos::RCP< panzer::DOFManager > &  _range_ugi,
const std::string &  _domain_basis_name,
const std::string &  _range_basis_name,
Intrepid2::EOperator  _op = Intrepid2::OPERATOR_VALUE,
size_t  _worksetSize = 1000 
)

Definition at line 607 of file Panzer_Interpolation.cpp.

Member Function Documentation

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
void panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node >::allocateColumnMapVector ( size_t  numVectors)

Definition at line 663 of file Panzer_Interpolation.cpp.

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
void panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node >::precomputeOwnersAndOrientations ( const Teuchos::RCP< const panzer::ConnManager > &  conn)

Definition at line 671 of file Panzer_Interpolation.cpp.

template<class Scalar = Tpetra::Operator<>::scalar_type, class LocalOrdinal = typename Tpetra::Operator<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::Operator<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::Operator<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
Teuchos::RCP<const Tpetra::Map<LocalOrdinal,GlobalOrdinal,Node> > panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getDomainMap ( ) const
inline

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

Definition at line 71 of file Panzer_Interpolation.hpp.

template<class Scalar = Tpetra::Operator<>::scalar_type, class LocalOrdinal = typename Tpetra::Operator<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::Operator<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::Operator<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
Teuchos::RCP<const Tpetra::Map<LocalOrdinal,GlobalOrdinal,Node> > panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getRangeMap ( ) const
inline

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

Definition at line 77 of file Panzer_Interpolation.hpp.

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
void panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node >::apply ( const Tpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  X,
Tpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  Y,
Teuchos::ETransp  mode = Teuchos::NO_TRANS,
Scalar  alpha = Teuchos::ScalarTraits<Scalar>::one(),
Scalar  beta = Teuchos::ScalarTraits<Scalar>::zero() 
) const

Definition at line 732 of file Panzer_Interpolation.cpp.

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
void panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node >::applyNonTransposed ( const Tpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  X,
Tpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  Y,
Scalar  alpha = Teuchos::ScalarTraits<Scalar>::one(),
Scalar  beta = Teuchos::ScalarTraits<Scalar>::zero() 
) const

Definition at line 751 of file Panzer_Interpolation.cpp.

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
void panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node >::applyTransposed ( const Tpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  X,
Tpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  Y,
Scalar  alpha = Teuchos::ScalarTraits<Scalar>::one(),
Scalar  beta = Teuchos::ScalarTraits<Scalar>::zero() 
) const

Definition at line 965 of file Panzer_Interpolation.cpp.

template<class Scalar = Tpetra::Operator<>::scalar_type, class LocalOrdinal = typename Tpetra::Operator<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::Operator<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::Operator<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
bool panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node >::hasTransposeApply ( ) const
inline

Definition at line 101 of file Panzer_Interpolation.hpp.

template<class Scalar = Tpetra::Operator<>::scalar_type, class LocalOrdinal = typename Tpetra::Operator<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::Operator<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::Operator<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
void panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node >::setName ( std::string &  _name)
inline

Definition at line 105 of file Panzer_Interpolation.hpp.

Member Data Documentation

template<class Scalar = Tpetra::Operator<>::scalar_type, class LocalOrdinal = typename Tpetra::Operator<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::Operator<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::Operator<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
std::string panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node >::name
private

Definition at line 107 of file Panzer_Interpolation.hpp.

template<class Scalar = Tpetra::Operator<>::scalar_type, class LocalOrdinal = typename Tpetra::Operator<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::Operator<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::Operator<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
Teuchos::RCP<const Tpetra::Map<LocalOrdinal,GlobalOrdinal,Node> > panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node >::domainMap_
private

Definition at line 113 of file Panzer_Interpolation.hpp.

template<class Scalar = Tpetra::Operator<>::scalar_type, class LocalOrdinal = typename Tpetra::Operator<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::Operator<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::Operator<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
Teuchos::RCP<const Tpetra::Map<LocalOrdinal,GlobalOrdinal,Node> > panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node >::rangeMap_
private

Definition at line 114 of file Panzer_Interpolation.hpp.

template<class Scalar = Tpetra::Operator<>::scalar_type, class LocalOrdinal = typename Tpetra::Operator<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::Operator<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::Operator<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
Teuchos::RCP<const Tpetra::Map<LocalOrdinal,GlobalOrdinal,Node> > panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node >::columnMap_
private

Definition at line 115 of file Panzer_Interpolation.hpp.

template<class Scalar = Tpetra::Operator<>::scalar_type, class LocalOrdinal = typename Tpetra::Operator<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::Operator<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::Operator<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
Teuchos::RCP<const Tpetra::Import<LocalOrdinal,GlobalOrdinal,Node> > panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node >::import_
private

Definition at line 116 of file Panzer_Interpolation.hpp.

template<class Scalar = Tpetra::Operator<>::scalar_type, class LocalOrdinal = typename Tpetra::Operator<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::Operator<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::Operator<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
Teuchos::RCP<Tpetra::MultiVector<Scalar,LocalOrdinal,GlobalOrdinal,Node> > panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node >::colmapMV_
private

Definition at line 117 of file Panzer_Interpolation.hpp.

template<class Scalar = Tpetra::Operator<>::scalar_type, class LocalOrdinal = typename Tpetra::Operator<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::Operator<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::Operator<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
std::string panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node >::domain_basis_name
private

Definition at line 119 of file Panzer_Interpolation.hpp.

template<class Scalar = Tpetra::Operator<>::scalar_type, class LocalOrdinal = typename Tpetra::Operator<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::Operator<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::Operator<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
std::string panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node >::range_basis_name
private

Definition at line 120 of file Panzer_Interpolation.hpp.

template<class Scalar = Tpetra::Operator<>::scalar_type, class LocalOrdinal = typename Tpetra::Operator<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::Operator<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::Operator<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
Intrepid2::EOperator panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node >::op
private

Definition at line 121 of file Panzer_Interpolation.hpp.

template<class Scalar = Tpetra::Operator<>::scalar_type, class LocalOrdinal = typename Tpetra::Operator<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::Operator<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::Operator<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
size_t panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node >::worksetSize
private

Definition at line 122 of file Panzer_Interpolation.hpp.

template<class Scalar = Tpetra::Operator<>::scalar_type, class LocalOrdinal = typename Tpetra::Operator<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::Operator<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::Operator<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
Teuchos::RCP<panzer::DOFManager> panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node >::domain_ugi
private

Definition at line 124 of file Panzer_Interpolation.hpp.

template<class Scalar = Tpetra::Operator<>::scalar_type, class LocalOrdinal = typename Tpetra::Operator<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::Operator<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::Operator<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
Teuchos::RCP<panzer::DOFManager> panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node >::range_ugi
private

Definition at line 125 of file Panzer_Interpolation.hpp.

template<class Scalar = Tpetra::Operator<>::scalar_type, class LocalOrdinal = typename Tpetra::Operator<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::Operator<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::Operator<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
Kokkos::View<LocalOrdinal*,DeviceSpace> panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node >::owner_d_
private

Definition at line 127 of file Panzer_Interpolation.hpp.

template<class Scalar = Tpetra::Operator<>::scalar_type, class LocalOrdinal = typename Tpetra::Operator<Scalar>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::Operator<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::Operator<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
std::map<std::string, Kokkos::DynRankView<Intrepid2::Orientation,DeviceSpace> > panzer::MatrixFreeInterpolationOp< Scalar, LocalOrdinal, GlobalOrdinal, Node >::orientations_
private

Definition at line 128 of file Panzer_Interpolation.hpp.


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