Greens-code
A modular quantum transport code
|
This Base-Class offers Matrix-Vector multiplication and scaling. More...
#include <matrix.hpp>
Public Types | |
typedef STD_TR1::shared_ptr< calculation_Matrix > | ref |
typedef STD_TR1::shared_ptr< const calculation_Matrix > | const_ref |
Public Member Functions | |
void | Apply (const complex *phi, complex *result) const |
Apply a vector (stored in a pointer, for legacy code only!) to the matrix. | |
void | Apply (const Vector &phi, Vector &result) const |
Apply a vector to the matrix. | |
void | Apply (complex *phi) const |
Overload of Apply to directly overwrite the input vector. | |
void | Apply (Vector &phi) const |
Overload of Apply to directly overwrite the input vector. | |
void | Scale (complex v) |
Scale the entire matrix by a complex constant. | |
![]() | |
void | assert_size (row r, column c) |
assert that the Matrix has a minimum number of rows and columns, if not try to resize | |
void | assert_size (row r, column c) const |
assert that the Matrix has a minimum number of rows and columns, if not throw an exception | |
void | Insert (row r, column c, complex v) |
Insert an element at a given position (overwritten if already there) | |
void | Add (row r, column c, complex v) |
Add an element at a given position. | |
complex | Get (row r, column c) const |
Obtain an element at a given position. | |
row | nrows () const |
Number of rows. | |
size_t | num_of_rows () const |
column | ncols () const |
Number of Columns. | |
size_t | num_of_cols () const |
void | add_diagonal (complex e) |
Add a number to the entire diagonal of the Matrix. | |
void | insert_diagonal (complex e) |
Insert a number to the entire diagonal of the Matrix. | |
void | multiply_by_number (complex v) |
multiply whole Matrix by a complex number | |
void | print (std::ostream &) const |
Output matrix to the stream. | |
void | formatted_print (std::ostream &) const |
bool | check_hermitian () const |
bool | check_realsymmetric () const |
Matrix & | operator+= (Matrix const &rhs) |
This Base-Class offers Matrix-Vector multiplication and scaling.
Matrices that can be used to apply vectors, or be scaled should derive from this abstract base class that offers additional functionality