41 #ifndef DTK_MOVINGLEASTSQUARERECONSTRUCTIONOPERATOR_HPP 42 #define DTK_MOVINGLEASTSQUARERECONSTRUCTIONOPERATOR_HPP 44 #include "DTK_MapOperator.hpp" 47 #include <Teuchos_Array.hpp> 48 #include <Teuchos_ArrayView.hpp> 49 #include <Teuchos_Comm.hpp> 50 #include <Teuchos_RCP.hpp> 52 #include <Tpetra_CrsMatrix.hpp> 63 template <
class Basis,
int DIM>
68 typedef MapOperator
Base;
70 typedef typename Base::Root Root;
71 typedef typename Root::scalar_type Scalar;
72 typedef typename Root::local_ordinal_type LO;
73 typedef typename Root::global_ordinal_type GO;
74 typedef typename Base::TpetraMultiVector TpetraMultiVector;
75 typedef typename Base::TpetraMap TpetraMap;
89 const Teuchos::RCP<const TpetraMap> &domain_map,
90 const Teuchos::RCP<const TpetraMap> &range_map,
91 const Teuchos::ParameterList ¶meters );
108 void setupImpl(
const Teuchos::RCP<FunctionSpace> &domain_space,
109 const Teuchos::RCP<FunctionSpace> &range_space )
override;
115 const TpetraMultiVector &X, TpetraMultiVector &Y,
116 Teuchos::ETransp mode = Teuchos::NO_TRANS,
117 double alpha = Teuchos::ScalarTraits<double>::one(),
118 double beta = Teuchos::ScalarTraits<double>::zero() )
const override;
123 bool hasTransposeApplyImpl()
const override;
127 void getNodeCoordsAndIds(
const Teuchos::RCP<FunctionSpace> &space,
128 const int entity_dim,
129 Teuchos::ArrayRCP<double> ¢ers,
130 Teuchos::ArrayRCP<GO> &support_ids )
const;
143 int d_domain_entity_dim;
146 int d_range_entity_dim;
149 Teuchos::RCP<Tpetra::CrsMatrix<Scalar, LO, GO>> d_coupling_matrix;
158 #endif // end DTK_MOVINGLEASTSQUARERECONSTRUCTIONOPERATOR_HPP MovingLeastSquareReconstructionOperator(const Teuchos::RCP< const TpetraMap > &domain_map, const Teuchos::RCP< const TpetraMap > &range_map, const Teuchos::ParameterList ¶meters)
Constructor.
Parallel moving least square interpolator MapOperator implementation.
void applyImpl(const TpetraMultiVector &X, TpetraMultiVector &Y, Teuchos::ETransp mode=Teuchos::NO_TRANS, double alpha=Teuchos::ScalarTraits< double >::one(), double beta=Teuchos::ScalarTraits< double >::zero()) const override
Apply the operator.
MapOperator Base
Typedefs.
Policy class for spline interpolation basis functions.