16 #ifndef dealii_cuda_vector_h 17 #define dealii_cuda_vector_h 19 #include <deal.II/base/config.h> 21 #include <deal.II/base/exceptions.h> 22 #include <deal.II/base/index_set.h> 24 #include <deal.II/lac/vector_operation.h> 25 #include <deal.II/lac/vector_space_vector.h> 27 #ifdef DEAL_II_WITH_CUDA 29 DEAL_II_NAMESPACE_OPEN
31 class CommunicationPatternBase;
32 template <
typename Number>
33 class ReadWriteVector;
52 template <
typename Number>
56 using value_type =
typename VectorSpaceVector<Number>::value_type;
57 using size_type =
typename VectorSpaceVector<Number>::size_type;
58 using real_type =
typename VectorSpaceVector<Number>::real_type;
80 explicit Vector(
const size_type n);
93 reinit(
const size_type n,
const bool omit_zeroing_entries =
false);
101 const bool omit_zeroing_entries =
false)
override;
115 std::shared_ptr<const CommunicationPatternBase> communication_pattern =
116 std::shared_ptr<const CommunicationPatternBase>())
override;
159 add(
const Number a)
override;
266 size()
const override;
279 print(std::ostream & out,
280 const unsigned int precision = 2,
281 const bool scientific =
true,
282 const bool across =
true)
const override;
312 template <
typename Number>
321 template <
typename Number>
322 inline typename Vector<Number>::size_type
329 template <
typename Number>
338 DEAL_II_NAMESPACE_CLOSE
virtual Number add_and_dot(const Number a, const VectorSpaceVector< Number > &V, const VectorSpaceVector< Number > &W) override
virtual void equ(const Number a, const VectorSpaceVector< Number > &V) override
void reinit(const size_type n, const bool omit_zeroing_entries=false)
virtual Vector< Number > & operator-=(const VectorSpaceVector< Number > &V) override
virtual real_type l1_norm() const override
virtual value_type mean_value() const override
virtual ::IndexSet locally_owned_elements() const override
virtual void add(const Number a) override
#define DeclException0(Exception0)
static::ExceptionBase & ExcVectorTypeNotCompatible()
virtual Vector< Number > & operator*=(const Number factor) override
virtual bool all_zero() const override
virtual Number operator*(const VectorSpaceVector< Number > &V) const override
virtual Vector< Number > & operator/=(const Number factor) override
virtual std::size_t memory_consumption() const override
virtual real_type l2_norm() const override
Number * get_values() const
virtual Vector< Number > & operator+=(const VectorSpaceVector< Number > &V) override
virtual void scale(const VectorSpaceVector< Number > &scaling_factors) override
virtual Vector< Number > & operator=(const Number s) override
virtual void sadd(const Number s, const Number a, const VectorSpaceVector< Number > &V) override
virtual void print(std::ostream &out, const unsigned int precision=2, const bool scientific=true, const bool across=true) const override
virtual size_type size() const override
virtual real_type linfty_norm() const override