mumpsoverlap.hh

Go to the documentation of this file.
1 
8 #ifndef mumpsoverlap_hh_
9 #define mumpsoverlap_hh_
10 
11 #include "compositions.hh"
12 #include "basics/typedefs.hh"
13 #ifdef HAS_MPI
14 #include <mpi.h>
15 #endif
16 
17 #include "mumps_flags.hh"
18 
19 // Define MUMPS internal constants and functions
20 #define JOB_INIT -1
21 #define JOB_END -2
22 #define ICNTL(I) icntl[(I)-1]
23 
24 
25 namespace concepts {
26 
27  // **************************************************************** MUMPS **
28 
72  template<class F>
73  class MumpsOverlap : public VecOperator<F> {
74  public:
84  MumpsOverlap(const int NGlob, const Operator<F>& A, const int* LocToGLob, const int rank, const int comm=-987654, const bool CConvention = true);
85 
94  MumpsOverlap(const Operator<F>& A, const int rank, const int comm=-987654, const bool CConvention = true);
95 
98  virtual ~MumpsOverlap();
99 
102  virtual void show_messages();
103 
106  virtual void hide_messages();
107 
110  virtual void apply_(const Vector<F>& fncY, Vector<F>& fncX);
111 
114  virtual void apply_();
115  protected:
116  virtual std::ostream & info(std::ostream &) const;
117  private:
119  void* A_loc_;
121  int* irn_loc_;
123  int* jcn_loc_;
125  uint n_;
127  uint nz_loc_;
129  int rank_;
131  int comm_;
133  void* id_mumps;
134  };
135 
136 }
137 
138 #endif // mumpsoverlap_hh
139 
int * jcn_loc_
Array of column indexes in a special sparse notation (local).
virtual ~MumpsOverlap()
Destructor.
MumpsOverlap(const Operator< F > &A, const int rank, const int comm=-987654, const bool CConvention=true)
Constructor.
int * irn_loc_
Array of row indexes in a special sparse notation (local).
virtual std::ostream & info(std::ostream &) const
void * id_mumps
Mumps internal state (used for the solver)
virtual void show_messages()
Function to show solver messages.
MUMPS : MUltifrontal Massively Parallel sparse direct Solver.
Definition: mumpsoverlap.hh:73
uint n_
Dimension of the matrix (global)
int comm_
Get solver communicator (global)
MumpsOverlap(const int NGlob, const Operator< F > &A, const int *LocToGLob, const int rank, const int comm=-987654, const bool CConvention=true)
Constructor.
virtual void hide_messages()
Function to hide solver messages.
void * A_loc_
The matrix of the operator in a special sparse notation (local).
int rank_
Get processor rank (local)
uint nz_loc_
Number of non-zero elements (local)
Abstract class for an operator.
Definition: ARPACK.hh:16
Abstract class for an operator acting on vectors only, not arbitrary functions.
virtual void apply_(const Vector< F > &fncY, Vector< F > &fncX)
Solver (call this solver on thread rank=0 (master))
virtual void apply_()
Solver (call this solver on all other threads)
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