16 #ifndef dealii_trilinos_tpetra_vector_h
17 #define dealii_trilinos_tpetra_vector_h
22 #ifdef DEAL_II_TRILINOS_WITH_TPETRA
33 # include <Teuchos_Comm.hpp>
34 # include <Teuchos_OrdinalTraits.hpp>
35 # include <Tpetra_Core.hpp>
36 # include <Tpetra_Vector.hpp>
37 # include <Tpetra_Version.hpp>
48 template <
typename Number>
52 # ifdef HAVE_TPETRA_INST_FLOAT
58 # ifdef HAVE_TPETRA_INST_DOUBLE
64 # ifdef DEAL_II_WITH_COMPLEX_VALUES
65 # ifdef HAVE_TPETRA_INST_COMPLEX_FLOAT
71 # ifdef HAVE_TPETRA_INST_COMPLEX_DOUBLE
82 template <
typename Number>
83 class ReadWriteVector;
93 namespace TpetraWrappers
117 template <
typename Number>
143 const MPI_Comm &communicator);
153 const MPI_Comm &communicator,
154 const bool omit_zeroing_entries =
false);
162 const bool omit_zeroing_entries =
false)
override;
190 std::shared_ptr<const Utilities::MPI::CommunicationPatternBase>
191 communication_pattern = {})
override;
228 add(
const Number a)
override;
375 const Tpetra::Vector<Number, int, types::signed_global_dof_index> &
382 Tpetra::Vector<Number, int, types::signed_global_dof_index> &
390 const unsigned int precision = 3,
391 const bool scientific =
true,
392 const bool across =
true)
const override;
420 <<
"An error with error number " << arg1
421 <<
" occurred while calling a Trilinos function");
431 const MPI_Comm &mpi_comm);
437 Tpetra::Vector<Number, int, types::signed_global_dof_index>>
449 std::shared_ptr<const TpetraWrappers::CommunicationPattern>
454 template <
typename Number>
467 template <
typename Number>
virtual LinearAlgebra::VectorSpaceVector< Number >::real_type l2_norm() const override
bool has_ghost_elements() const
Vector & operator=(const Vector &V)
virtual void add(const Number a) override
virtual size_type size() const override
virtual LinearAlgebra::VectorSpaceVector< Number >::real_type l1_norm() const override
virtual Number operator*(const VectorSpaceVector< Number > &V) const override
std::shared_ptr< const TpetraWrappers::CommunicationPattern > tpetra_comm_pattern
virtual Vector & operator-=(const VectorSpaceVector< Number > &V) override
MPI_Comm get_mpi_communicator() const
typename VectorSpaceVector< Number >::size_type size_type
virtual void print(std::ostream &out, const unsigned int precision=3, const bool scientific=true, const bool across=true) const override
Tpetra::Vector< Number, int, types::signed_global_dof_index > & trilinos_vector()
virtual void add(const Number a, const VectorSpaceVector< Number > &V, const Number b, const VectorSpaceVector< Number > &W) override
virtual void add(const Number a, const VectorSpaceVector< Number > &V) override
virtual Number mean_value() const override
size_type locally_owned_size() const
virtual Vector & operator*=(const Number factor) override
virtual void sadd(const Number s, const Number a, const VectorSpaceVector< Number > &V) override
virtual LinearAlgebra::VectorSpaceVector< Number >::real_type linfty_norm() const override
virtual Vector & operator+=(const VectorSpaceVector< Number > &V) override
void create_tpetra_comm_pattern(const IndexSet &source_index_set, const MPI_Comm &mpi_comm)
virtual ::IndexSet locally_owned_elements() const override
void reinit(const IndexSet ¶llel_partitioner, const MPI_Comm &communicator, const bool omit_zeroing_entries=false)
virtual void reinit(const VectorSpaceVector< Number > &V, const bool omit_zeroing_entries=false) override
virtual void scale(const VectorSpaceVector< Number > &scaling_factors) override
virtual void equ(const Number a, const VectorSpaceVector< Number > &V) override
const Tpetra::Vector< Number, int, types::signed_global_dof_index > & trilinos_vector() const
std::unique_ptr< Tpetra::Vector< Number, int, types::signed_global_dof_index > > vector
virtual Number add_and_dot(const Number a, const VectorSpaceVector< Number > &V, const VectorSpaceVector< Number > &W) override
virtual Vector & operator=(const Number s) override
virtual Vector & operator/=(const Number factor) override
virtual std::size_t memory_consumption() const override
::IndexSet source_stored_elements
virtual bool all_zero() const override
Vector(const IndexSet ¶llel_partitioner, const MPI_Comm &communicator)
types::global_dof_index size_type
typename numbers::NumberTraits< Number >::real_type real_type
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
#define DeclException0(Exception0)
static ::ExceptionBase & ExcDifferentParallelPartitioning()
static ::ExceptionBase & ExcTrilinosError(int arg1)
#define DeclException1(Exception1, type1, outsequence)
static ::ExceptionBase & ExcVectorTypeNotCompatible()
SymmetricTensor< 2, dim, Number > b(const Tensor< 2, dim, Number > &F)