OGS
UnifiedMatrixSetters.h
Go to the documentation of this file.
1 
11 // TODO merge that with MatrixVectorTraits?
12 
13 #pragma once
14 
15 #include <initializer_list>
16 #include <Eigen/Core>
17 #include "MatrixVectorTraits.h"
18 
19 #ifdef USE_PETSC
20 
21 // Global PETScMatrix/PETScVector //////////////////////////////////////////
22 namespace MathLib
23 {
24 
25 class PETScVector;
26 class PETScMatrix;
27 
28 void setVector(PETScVector& v,
29  std::initializer_list<double> values);
30 
31 void setVector(PETScVector& v, MatrixVectorTraits<PETScVector>::Index const index,
32  double const value);
33 
34 void setMatrix(PETScMatrix& m, Eigen::MatrixXd const& tmp);
35 
36 void addToMatrix(PETScMatrix& m,
37  std::initializer_list<double> values);
38 
39 void setMatrix(PETScMatrix& m,
40  std::initializer_list<double> values);
41 
42 } // namespace MathLib
43 
44 
45 #else
46 
47 // Sparse global EigenMatrix/EigenVector //////////////////////////////////////////
48 
49 namespace MathLib
50 {
51 
52 class EigenVector;
53 class EigenMatrix;
54 
55 void setVector(EigenVector& v,
56  std::initializer_list<double> values);
57 
58 void setVector(EigenVector& v, MatrixVectorTraits<EigenVector>::Index const index,
59  double const value);
60 
61 void setMatrix(EigenMatrix& m,
62  std::initializer_list<double> values);
63 
64 void setMatrix(EigenMatrix& m, Eigen::MatrixXd const& tmp);
65 
66 void addToMatrix(EigenMatrix& m,
67  std::initializer_list<double> values);
68 
69 } // namespace MathLib
70 
71 #endif
void addToMatrix(PETScMatrix &m, std::initializer_list< double > values)
void setVector(PETScVector &v, std::initializer_list< double > values)
void setMatrix(PETScMatrix &m, std::initializer_list< double > values)