10 #ifndef TPETRA_FEMULTIVECTOR_DECL_HPP
11 #define TPETRA_FEMULTIVECTOR_DECL_HPP
21 template <
class Scalar,
25 class FEMultiVector :
public MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node> {
41 using scalar_type = Scalar;
45 using global_ordinal_type = GlobalOrdinal;
54 using node_type = Node;
76 FEMultiVector() =
delete;
105 FEMultiVector(
const Teuchos::RCP<const map_type>& map,
106 const Teuchos::RCP<
const Import<local_ordinal_type, global_ordinal_type, node_type>>& importer,
107 const size_t numVecs,
108 const bool zeroOut =
true);
111 FEMultiVector(
const FEMultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>&) =
delete;
114 FEMultiVector(FEMultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>&&) =
delete;
118 operator=(
const FEMultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>&) =
delete;
122 operator=(FEMultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>&&) =
delete;
133 virtual ~FEMultiVector() =
default;
140 void beginAssembly();
150 void globalAssemble();
166 void switchActiveMultiVector();
173 void replaceMap(
const Teuchos::RCP<const map_type>& map);
175 Teuchos::RCP<FE::FillState> fillState_;
178 Teuchos::RCP<base_type> inactiveMultiVector_;
185 Teuchos::RCP<FE::WhichActive> activeMultiVector_;
188 Teuchos::RCP<const Import<local_ordinal_type, global_ordinal_type, node_type>> importer_;
193 #endif // TPETRA_FEMULTIVECTOR_DECL_HPP
typename device_type::execution_space execution_space
Type of the (new) Kokkos execution space.
typename Kokkos::ArithTraits< impl_scalar_type >::mag_type mag_type
Type of a norm result.
void replaceMap(const Teuchos::RCP< const map_type > &map)
Replace the underlying Map in place.
typename map_type::device_type device_type
This class' preferred Kokkos device type.
int local_ordinal_type
Default value of Scalar template parameter.
MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > & operator=(const MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &)=default
Copy assigment (shallow copy).
typename Kokkos::ArithTraits< Scalar >::val_type impl_scalar_type
The type used internally in place of Scalar.
Declaration of the Tpetra::MultiVector class.
CombineMode
Rule for combining data in an Import or Export.
Kokkos::DualView< impl_scalar_type **, Kokkos::LayoutLeft, device_type > dual_view_type
Kokkos::DualView specialization used by this class.
Map< LocalOrdinal, GlobalOrdinal, Node > map_type
The type of the Map specialization used by this class.
Forward declaration of Tpetra::FEMultiVector.
typename Kokkos::Details::InnerProductSpaceTraits< impl_scalar_type >::dot_type dot_type
Type of an inner ("dot") product result.