HermesCommon  3.0
Hermes::Algebra::MumpsMatrix< Scalar > Class Template Reference

Matrix used with MUMPS solver. More...

#include <mumps_solver.h>

+ Inheritance diagram for Hermes::Algebra::MumpsMatrix< Scalar >:

Public Member Functions

void alloc_data ()
 
void free ()
 Utility method.
 
Scalar get (unsigned int m, unsigned int n) const
 
void zero ()
 Utility method.
 
void add (unsigned int m, unsigned int n, Scalar v)
 
void export_to_file (const char *filename, const char *var_name, MatrixExportFormat fmt, char *number_format="%lf")
 
void import_from_file (const char *filename, const char *var_name, MatrixExportFormat fmt)
 
void multiply_with_Scalar (Scalar value)
 Multiplies matrix with a Scalar.
 
void multiply_with_vector (Scalar *vector_in, Scalar *&vector_out, bool vector_out_initialized=false) const
 Applies the matrix to vector_in and saves result to vector_out.
 
void create (unsigned int size, unsigned int nnz, int *ap, int *ai, Scalar *ax)
 Creates matrix using size, nnz, and the three arrays.
 
CSMatrix< Scalar > * duplicate () const
 Duplicates a matrix (including allocation).
 
template<>
void add (unsigned int m, unsigned int n, double v)
 
template<>
void add (unsigned int m, unsigned int n, std::complex< double > v)
 
- Public Member Functions inherited from Hermes::Algebra::CSCMatrix< Scalar >
 CSCMatrix ()
 Default constructor.
 
 CSCMatrix (unsigned int size)
 Constructor with specific size Calls alloc. More...
 
template<>
void add (unsigned int m, unsigned int n, double v)
 
template<>
void add (unsigned int m, unsigned int n, std::complex< double > v)
 
- Public Member Functions inherited from Hermes::Algebra::CSMatrix< Scalar >
void create (unsigned int size, unsigned int nnz, int *ap, int *ai, Scalar *ax)
 
 CSMatrix ()
 Default constructor.
 
 CSMatrix (unsigned int size)
 Constructor with specific size Calls alloc. More...
 
void switch_orientation ()
 Switches CSR / CSC arrays.
 
virtual void alloc ()
 Allocate utility storage (row, column indices, etc.).
 
virtual void set_row_zero (unsigned int n)
 Utility method.
 
void export_to_file (const char *filename, const char *var_name, MatrixExportFormat fmt, char *number_format="%lf", bool invert_storage=false)
 
void import_from_file (const char *filename, const char *var_name, MatrixExportFormat fmt, bool invert_storage=false)
 
virtual unsigned int get_nnz () const
 Utility method.
 
virtual double get_fill_in () const
 Utility method.
 
int * get_Ap () const
 
int * get_Ai () const
 
Scalar * get_Ax () const
 
virtual void add_as_block (unsigned int i, unsigned int j, SparseMatrix< Scalar > *mat)
 
template<>
void add (unsigned int m, unsigned int n, double v)
 
template<>
void add (unsigned int m, unsigned int n, std::complex< double > v)
 
- Public Member Functions inherited from Hermes::Algebra::SparseMatrix< Scalar >
 SparseMatrix (unsigned int size)
 
virtual void prealloc (unsigned int n)
 
virtual void pre_add_ij (unsigned int row, unsigned int col)
 
virtual void finish ()
 Finish manipulation with matrix (called before solving)
 
virtual void add_sparse_matrix (SparseMatrix< Scalar > *mat)
 
virtual void add_sparse_to_diagonal_blocks (int num_stages, SparseMatrix< Scalar > *mat)
 
virtual int get_num_row_entries (unsigned int row) const
 
virtual void extract_row_copy (unsigned int row, unsigned int len, unsigned int &n_entries, double *vals, unsigned int *idxs) const
 
virtual int get_num_col_entries (unsigned int col) const
 
virtual void extract_col_copy (unsigned int col, unsigned int len, unsigned int &n_entries, double *vals, unsigned int *idxs) const
 
- Public Member Functions inherited from Hermes::Algebra::Matrix< Scalar >
 Matrix (unsigned int size=0)
 
virtual void add (unsigned int m, unsigned int n, Scalar *mat, int *rows, int *cols, const int size)
 
virtual void add_to_diagonal (Scalar v)
 Add a number to each diagonal entry.
 
virtual unsigned int get_size () const
 
template<>
void add (unsigned int m, unsigned int n, double *mat, int *rows, int *cols, const int size)
 
template<>
void add (unsigned int m, unsigned int n, std::complex< double > *mat, int *rows, int *cols, const int size)
 
- Public Member Functions inherited from Hermes::Mixins::Loggable
 Loggable (bool verbose_output=false, callbackFn verbose_callback=NULL, bool add_newline=true)
 
void set_file_output_only (bool onOff)
 
void set_timestamps (bool onOff)
 Sets the addition of a time stamp on each line in the log file. By default it is on.
 
void set_erase_on_beginning (bool onOff)
 Sets the logFile being always erased before logging.
 
void set_logFile_name (const char *filename)
 
void set_logFile_name (std::string filename)
 
void info (const char *msg,...) const
 
void info_if (bool cond, const char *msg,...) const
 
void warn (const char *msg,...) const
 
void warn_if (bool cond, const char *msg,...) const
 
void error (const char *msg,...) const
 
void error_if (bool cond, const char *msg,...) const
 
virtual void set_verbose_output (bool to_set)
 
bool get_verbose_output () const
 Returns the current value of verbose_output;.
 
virtual void set_verbose_callback (callbackFn callback)
 
callbackFn get_verbose_callback () const
 Returns the current value of verbose_callback;.
 
- Public Member Functions inherited from Hermes::Algebra::Mixins::MatrixRhsImportExport< Scalar >
void export_to_file (std::string filename, const char *var_name, Algebra::MatrixExportFormat fmt, char *number_format="%lf")
 
void export_to_file (std::string filename, std::string var_name, Algebra::MatrixExportFormat fmt, char *number_format="%lf")
 
void import_from_file (std::string filename, const char *var_name, Algebra::MatrixExportFormat fmt)
 
void import_from_file (std::string filename, std::string var_name, Algebra::MatrixExportFormat fmt)
 

Protected Attributes

int * irn
 Row indices.
 
int * jcn
 Column indices.
 
mumps_type< Scalar >
::mumps_Scalar * 
Ax
 Matrix entries (column-wise).
 
- Protected Attributes inherited from Hermes::Algebra::CSMatrix< Scalar >
Scalar * Ax
 
int * Ai
 Row / Column indices of values in Ax.
 
int * Ap
 Index to Ax/Ai, where each column / row starts.
 
unsigned int nnz
 Number of non-zero entries ( = Ap[size]).
 
- Protected Attributes inherited from Hermes::Algebra::SparseMatrix< Scalar >
Pagepages
 array of pages with indices array. Each field of arra contains pages for one column
 
Page ** next_pages
 
- Protected Attributes inherited from Hermes::Algebra::Matrix< Scalar >
unsigned int size
 matrix size
 

Friends

class Solvers::MumpsSolver< Scalar >
 
template<typename T >
SparseMatrix< T > * create_matrix ()
 

Additional Inherited Members

- Static Public Member Functions inherited from Hermes::Algebra::CSMatrix< Scalar >
static int find_position (int *Ai, int Alen, unsigned int idx)
 Finds the correct position to insert / retrieve elements.
 
- Static Public Member Functions inherited from Hermes::Mixins::Loggable
static void set_static_logFile_name (const char *filename)
 
static void set_static_logFile_name (std::string filename)
 
- Public Attributes inherited from Hermes::Mixins::Loggable
char * logFileName
 Logfile name.
 
- Static Public Attributes inherited from Hermes::Mixins::Loggable
static char * staticLogFileName = nullptr
 
- Protected Member Functions inherited from Hermes::Algebra::SparseMatrix< Scalar >
int sort_and_store_indices (Page *page, int *buffer, int *max)
 
int get_num_indices ()
 
- Protected Member Functions inherited from Hermes::Mixins::Loggable
void hermes_fwrite (const void *ptr, size_t size, size_t nitems, FILE *stream) const
 
void hermes_fread (void *ptr, size_t size, size_t nitems, FILE *stream) const
 
- Static Protected Attributes inherited from Hermes::Algebra::SparseMatrix< Scalar >
static const int PAGE_SIZE = 100
 

Detailed Description

template<typename Scalar>
class Hermes::Algebra::MumpsMatrix< Scalar >

Matrix used with MUMPS solver.

Important: MUMPS is indexing from 1

Definition at line 77 of file mumps_solver.h.

Member Function Documentation

template<typename Scalar>
void Hermes::Algebra::MumpsMatrix< Scalar >::add ( unsigned int  Ai_data_index,
unsigned int  Ai_index,
Scalar  v 
)
virtual

Main addition method. Virtual - the method body is 1:1 for CSCMatrix, inverted for CSR.

Reimplemented from Hermes::Algebra::CSCMatrix< Scalar >.

template<typename Scalar >
void Hermes::Algebra::MumpsMatrix< Scalar >::export_to_file ( const char *  filename,
const char *  var_name,
MatrixExportFormat  fmt,
char *  number_format = "%lf" 
)
virtual

Matrix export method. Utility version MatrixRhsImportExport<Scalar>::export_to_file.

Reimplemented from Hermes::Algebra::CSCMatrix< Scalar >.

Definition at line 201 of file mumps_solver.cpp.

template<typename Scalar >
Scalar Hermes::Algebra::MumpsMatrix< Scalar >::get ( unsigned int  Ai_data_index,
unsigned int  Ai_index 
) const
virtual

Main get method. Virtual - the method body is 1:1 for CSCMatrix, inverted for CSR.

Reimplemented from Hermes::Algebra::CSCMatrix< Scalar >.

Definition at line 147 of file mumps_solver.cpp.

template<typename Scalar >
void Hermes::Algebra::MumpsMatrix< Scalar >::import_from_file ( const char *  filename,
const char *  var_name,
MatrixExportFormat  fmt 
)
virtual

Reading matrix Utility version Matrix<Scalar>::import_from_file.

Reimplemented from Hermes::Algebra::CSCMatrix< Scalar >.

Definition at line 383 of file mumps_solver.cpp.


The documentation for this class was generated from the following files: