superLU.hh

Go to the documentation of this file.
1 
6 #ifndef SuperLU_hh
7 #define SuperLU_hh
8 
9 #include "compositions.hh"
10 #include "basics/typedefs.hh"
11 
12 namespace concepts {
13 
14  // *************************************************************** SuperLU **
15 
69  template<class F>
70  class SuperLU : public VecOperator<F> {
71  public:
73  enum order { NATURAL = 0, MMD_PROD = 1, MMD_SUM = 2, COLAMD = 3 };
87  SuperLU(const Operator<F>& A, enum order ispec = COLAMD);
88  virtual ~SuperLU();
89 
90  uint iterations() const { return 0; }
91  protected:
92  virtual std::ostream& info(std::ostream& os) const;
93  private:
95  void* A_;
96 
98  uint n_;
99 
103  enum order ispec_;
104 
106  void* L_, * U_;
108  int *perm_r_, *perm_c_;
109 
110  virtual void apply_(const Vector<F>& fncY, Vector<F>& fncX);
111  virtual void apply_();
112  };
113 
114 } // namespace concepts
115 
116 #endif // SuperLU_hh
virtual void apply_()
Intrinsic application method without argument.
bool factorized_
Flag if the matrix is factorized.
Definition: superLU.hh:101
Direct sparse solver for unsymmetric matrices.
Definition: superLU.hh:70
uint iterations() const
Definition: superLU.hh:90
virtual ~SuperLU()
virtual void apply_(const Vector< F > &fncY, Vector< F > &fncX)
Intrinsic application method, i.e.
int * perm_r_
Row and column permutation vectors.
Definition: superLU.hh:108
virtual std::ostream & info(std::ostream &os) const
enum order ispec_
Ordering option for the call to get_perm_c of SuperLU.
Definition: superLU.hh:103
uint n_
Dimension of the matrix.
Definition: superLU.hh:98
Abstract class for an operator.
Definition: ARPACK.hh:16
void * A_
The matrix of the operator in a special sparse notation.
Definition: superLU.hh:95
Abstract class for an operator acting on vectors only, not arbitrary functions.
order
Column ordering options for call to get_perm_c of SuperLU.
Definition: superLU.hh:73
void * L_
L and U matrices of the factorization.
Definition: superLU.hh:106
SuperLU(const Operator< F > &A, enum order ispec=COLAMD)
Constructor.
Basic namespace for Concepts-2.
Definition: pml_formula.h:16
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich