G+Smo  24.08.0
Geometry + Simulation Modules
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Vector.h
Go to the documentation of this file.
1 
14 #pragma once
15 
17 #include <gsCore/gsLinearAlgebra.h>
18 
20 
21 namespace gismo
22 {
23 
24 namespace trilinos
25 {
26 
27 
28 class VectorPrivate;
29 
30 class GISMO_EXPORT Vector
31 {
32 public:
33 
34  Vector();
35 
36  explicit Vector(const SparseMatrix & _map);
37 
38  Vector(const gsVector<real_t> & gsVec, const SparseMatrix & _map, const int rank = 0);
39 
40  explicit Vector(Epetra_Vector * v_ptr);
41 
42  ~Vector();
43 
44  size_t size() const;
45 
46  size_t mySize() const;
47 
48  void setConstant(const double val);
49 
50  void setFrom(const SparseMatrix & _map);
51 
52  void copyTo(gsVector<real_t> & gsVec, const int rank = 0) const;
53 
54  void copyTo(gsMatrix<real_t> & gsVec, const int = 0) const
55  {
56  gsVector<real_t> tmp;
57  copyTo(tmp);
58  tmp.swap(gsVec);
59  }
60 
61  Epetra_MultiVector * get() const;
62 
63  Teuchos::RCP<Epetra_MultiVector> getRCP() const;
64 
65  void print() const;
66 
67 private:
68  Vector(const Vector& other);
69  Vector& operator=(const Vector& other);
70 
71 private:
72 
73  VectorPrivate * my;
74 };
75 
76 
77 }//namespace trilinos
78 
79 }// namespace gismo
Wrapper for Trilinos/Epetra operators.
Provides forward declarations of types and structs.
This is the main header file that collects wrappers of Eigen for linear algebra.