41 #ifndef DTK_SPLINEINTERPOLATIONOPERATOR_HPP 42 #define DTK_SPLINEINTERPOLATIONOPERATOR_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_Map.hpp> 54 #include <Thyra_LinearOpBase.hpp> 68 template <
class Basis,
int DIM>
73 typedef MapOperator
Base;
75 typedef typename Base::Root Root;
76 typedef typename Root::scalar_type Scalar;
77 typedef typename Root::local_ordinal_type LO;
78 typedef typename Root::global_ordinal_type GO;
79 typedef typename Base::TpetraMultiVector TpetraMultiVector;
80 typedef typename Base::TpetraMap TpetraMap;
94 const Teuchos::RCP<const TpetraMap> &domain_map,
95 const Teuchos::RCP<const TpetraMap> &range_map,
96 const Teuchos::ParameterList ¶meters );
113 void setupImpl(
const Teuchos::RCP<FunctionSpace> &domain_space,
114 const Teuchos::RCP<FunctionSpace> &range_space )
override;
120 const TpetraMultiVector &X, TpetraMultiVector &Y,
121 Teuchos::ETransp mode = Teuchos::NO_TRANS,
122 double alpha = Teuchos::ScalarTraits<double>::one(),
123 double beta = Teuchos::ScalarTraits<double>::zero() )
const override;
128 bool hasTransposeApplyImpl()
const override;
132 void buildConcreteOperators(
133 const Teuchos::RCP<FunctionSpace> &domain_space,
134 const Teuchos::RCP<FunctionSpace> &range_space,
135 Teuchos::RCP<const Root> &S, Teuchos::RCP<const Root> &P,
136 Teuchos::RCP<const Root> &M, Teuchos::RCP<const Root> &Q,
137 Teuchos::RCP<const Root> &N )
const;
141 void getNodeCoordsAndIds(
const Teuchos::RCP<FunctionSpace> &space,
142 const int entity_dim,
143 Teuchos::ArrayRCP<double> ¢ers,
144 Teuchos::ArrayRCP<GO> &support_ids )
const;
157 int d_domain_entity_dim;
160 int d_range_entity_dim;
163 Teuchos::RCP<Teuchos::ParameterList> d_stratimikos_list;
166 Teuchos::RCP<const Thyra::LinearOpBase<double>> d_coupling_matrix;
175 #endif // end DTK_SPLINEINTERPOLATIONOPERATOR_HPP 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.
Parallel spline interpolator.
Policy class for spline interpolation basis functions.
MapOperator Base
Typedefs.