42 #ifndef TPETRA_FEMULTIVECTOR_DECL_HPP 43 #define TPETRA_FEMULTIVECTOR_DECL_HPP 60 template <
class Scalar = ::Tpetra::Details::DefaultTypes::scalar_type,
62 class GlobalOrdinal = ::Tpetra::Details::DefaultTypes::global_ordinal_type,
65 public MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
68 friend ::Tpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>;
74 typedef Scalar scalar_type;
78 typedef GlobalOrdinal global_ordinal_type;
104 typedef MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node> base_type;
119 FEMultiVector(
const Teuchos::RCP<
const Map<LocalOrdinal,GlobalOrdinal,Node> > & map,
120 const Teuchos::RCP<
const Import<LocalOrdinal,GlobalOrdinal,Node> >& importer,
121 const size_t numVecs,
122 const bool zeroOut =
true);
132 void globalAssemble() {endFill();}
137 if(*activeMultiVector_ == FE_ACTIVE_TARGET) {
139 switchActiveMultiVector();
142 throw std::runtime_error(
"FEMultiVector: Source MultiVector already active. Cannot endFill()");
150 if(*activeMultiVector_ == FE_ACTIVE_SOURCE) {
151 switchActiveMultiVector();
167 void switchActiveMultiVector();
181 void replaceMap (
const Teuchos::RCP<const map_type>& map);
192 Teuchos::RCP< MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node> > inactiveMultiVector_;
194 Teuchos::RCP<FEWhichActive> activeMultiVector_;
197 Teuchos::RCP<const Import<LocalOrdinal,GlobalOrdinal,Node> > importer_;
205 #endif // TPETRA_FEMULTIVECTOR_DECL_HPP Namespace Tpetra contains the class and methods constituting the Tpetra library.
Kokkos::Details::ArithTraits< Scalar >::val_type impl_scalar_type
The type used internally in place of Scalar.
Classes::FEMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > FEMultiVector
Alias for Tpetra::Classes::FEMultiVector.
Node::device_type device_type
The Kokkos device type.
int local_ordinal_type
Default value of Scalar template parameter.
Kokkos::DualView< impl_scalar_type **, Kokkos::LayoutLeft, typename execution_space::execution_space > dual_view_type
Kokkos::DualView specialization used by this class.
Declaration of the Tpetra::MultiVector class.
Node::execution_space execution_space
Type of the (new) Kokkos execution space.
CombineMode
Rule for combining data in an Import or Export.
Sum new values into existing values.
Kokkos::Details::InnerProductSpaceTraits< impl_scalar_type >::dot_type dot_type
Type of an inner ("dot") product result.
::Kokkos::Compat::KokkosDeviceWrapperNode< execution_space > node_type
Default value of Node template parameter.
Forward declaration of Tpetra::FEMultiVector.
Classes::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > MultiVector
Alias for Tpetra::Classes::MultiVector.
Kokkos::Details::ArithTraits< impl_scalar_type >::mag_type mag_type
Type of a norm result.
Map< LocalOrdinal, GlobalOrdinal, Node > map_type
The type of the Map specialization used by this class.