HermesCommon
3.0
|
Matrix used with MUMPS solver. More...
#include <mumps_solver.h>
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) |
![]() | |
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) |
![]() | |
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) |
![]() | |
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 |
![]() | |
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) |
![]() | |
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;. | |
![]() | |
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). | |
![]() | |
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]). | |
![]() | |
Page * | pages |
array of pages with indices array. Each field of arra contains pages for one column | |
Page ** | next_pages |
![]() | |
unsigned int | size |
matrix size | |
Friends | |
class | Solvers::MumpsSolver< Scalar > |
template<typename T > | |
SparseMatrix< T > * | create_matrix () |
Additional Inherited Members | |
![]() | |
static int | find_position (int *Ai, int Alen, unsigned int idx) |
Finds the correct position to insert / retrieve elements. | |
![]() | |
static void | set_static_logFile_name (const char *filename) |
static void | set_static_logFile_name (std::string filename) |
![]() | |
char * | logFileName |
Logfile name. | |
![]() | |
static char * | staticLogFileName = nullptr |
![]() | |
int | sort_and_store_indices (Page *page, int *buffer, int *max) |
int | get_num_indices () |
![]() | |
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 const int | PAGE_SIZE = 100 |
Matrix used with MUMPS solver.
Important: MUMPS is indexing from 1
Definition at line 77 of file mumps_solver.h.
|
virtual |
Main addition method. Virtual - the method body is 1:1 for CSCMatrix, inverted for CSR.
Reimplemented from Hermes::Algebra::CSCMatrix< Scalar >.
|
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.
|
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.
|
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.