Panzer Version of the Day
Loading...
Searching...
No Matches
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 Tpetra::Operator< Tpetra::Operator<>::scalar_type, typename Tpetra::Operator< Tpetra::Operator<>::scalar_type >::local_ordinal_type, typename Tpetra::Operator< Tpetra::Operator<>::scalar_type, typename Tpetra::Operator< Tpetra::Operator<>::scalar_type >::local_ordinal_type >::global_ordinal_type, typename Tpetra::Operator< Tpetra::Operator<>::scalar_type, typename Tpetra::Operator< Tpetra::Operator<>::scalar_type >::local_ordinal_type, typename Tpetra::Operator< Tpetra::Operator<>::scalar_type, typename Tpetra::Operator< Tpetra::Operator<>::scalar_type >::local_ordinal_type >::global_ordinal_type >::node_type >.

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.
 
Teuchos::RCP< const Tpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > getRangeMap () const
 Returns the Tpetra::Map object associated with the range of this operator.
 
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 *, DeviceSpaceowner_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

◆ DeviceSpace

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

◆ MatrixFreeInterpolationOp()

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 617 of file Panzer_Interpolation.cpp.

Member Function Documentation

◆ allocateColumnMapVector()

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

Definition at line 673 of file Panzer_Interpolation.cpp.

◆ precomputeOwnersAndOrientations()

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 681 of file Panzer_Interpolation.cpp.

◆ getDomainMap()

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.

◆ getRangeMap()

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.

◆ apply()

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 742 of file Panzer_Interpolation.cpp.

◆ applyNonTransposed()

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 761 of file Panzer_Interpolation.cpp.

◆ applyTransposed()

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 975 of file Panzer_Interpolation.cpp.

◆ hasTransposeApply()

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.

◆ setName()

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

◆ name

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 111 of file Panzer_Interpolation.hpp.

◆ domainMap_

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.

◆ rangeMap_

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.

◆ columnMap_

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.

◆ import_

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.

◆ colmapMV_

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.

◆ domain_basis_name

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.

◆ range_basis_name

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.

◆ op

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.

◆ worksetSize

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.

◆ domain_ugi

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.

◆ range_ugi

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.

◆ owner_d_

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.

◆ orientations_

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: