Greens-code
A modular quantum transport code
Public Types | Public Member Functions | List of all members
calculation_Matrix Class Referenceabstract

This Base-Class offers Matrix-Vector multiplication and scaling. More...

#include <matrix.hpp>

Inheritance diagram for calculation_Matrix:
Inheritance graph
[legend]
Collaboration diagram for calculation_Matrix:
Collaboration graph
[legend]

Public Types

typedef STD_TR1::shared_ptr< calculation_Matrixref
 
typedef STD_TR1::shared_ptr< const calculation_Matrixconst_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.
 
- Public Member Functions inherited from Matrix
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
 
Matrixoperator+= (Matrix const &rhs)
 

Detailed Description

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


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