DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
dftfe::LAPACKSupport Namespace Reference

Enumerations

enum  State {
  matrix , inverse_matrix , lu , cholesky ,
  eigenvalues , svd , inverse_svd , unusable = 0x8000
}
 
enum  Property {
  general = 0 , hermitian = 1 , upper_triangular = 2 , lower_triangular = 4 ,
  diagonal = 6 , hessenberg = 8
}
 

Functions

const char * state_name (State s)
 
const char * property_name (const Property s)
 
 DeclException2 (ExcErrorCode, std::string, types::blas_int,<< "The function "<< arg1<< " returned with an error code "<< arg2)
 
 DeclException1 (ExcState, State,<< "The function cannot be called while the matrix is in state "<< state_name(arg1))
 
 DeclException1 (ExcProperty, Property,<< "The function cannot be called with a "<< property_name(arg1)<< " matrix.")
 
 DeclException1 (ExcMissing, std::string,<< "When you ran 'cmake' during installation of deal.II, "<< "no suitable installation of the BLAS or LAPACK library could "<< "be found. Consequently, the function <"<< arg1<< "> can not be called. Refer to the doc/readme.html "<< "file for information on how to ensure that deal.II "<< "picks up an existing BLAS and LAPACK installation at "<< "configuration time.")
 

Variables

static const char A = 'A'
 
static const char N = 'N'
 
static const char O = 'O'
 
static const char T = 'T'
 
static const char C = 'C'
 
static const char U = 'U'
 
static const char L = 'L'
 
static const char V = 'V'
 
static const types::blas_int zero = 0
 
static const types::blas_int one = 1
 

Detailed Description

A namespace containing constants, exceptions, enumerations, and other utilities used by the deal.II LAPACK bindings.

Enumeration Type Documentation

◆ Property

A matrix can have certain features allowing for optimization, but hard to test. These are listed here.

Enumerator
general 

No special properties.

hermitian 

Matrix is symmetric.

upper_triangular 

Matrix is upper triangular.

lower_triangular 

Matrix is lower triangular.

diagonal 

Matrix is diagonal.

hessenberg 

Matrix is in upper Hessenberg form.

◆ State

Most of the LAPACK functions one can apply to a matrix (e.g., by calling the member functions of this class) change its content in some ways. For example, they may invert the matrix, or may replace it by a matrix whose columns represent the eigenvectors of the original content of the matrix. The elements of this enumeration are therefore used to track what is currently being stored by this object.

Enumerator
matrix 

Contents is actually a matrix.

inverse_matrix 

Contents is the inverse of a matrix.

lu 

Contents is an LU decomposition.

cholesky 

Contents is a Cholesky decomposition.

eigenvalues 

Eigenvalue vector is filled.

svd 

Matrix contains singular value decomposition,.

inverse_svd 

Matrix is the inverse of a singular value decomposition.

unusable 

Contents is something useless.

Function Documentation

◆ DeclException1() [1/3]

dftfe::LAPACKSupport::DeclException1 ( ExcMissing ,
std::string ,
<< "When you ran 'cmake' during installation of deal. II,
"<< "no suitable installation of the BLAS or LAPACK library could "<< "be found. Consequently )

This exception is thrown if a certain LAPACK function is not available because no LAPACK installation was detected during configuration.

◆ DeclException1() [2/3]

dftfe::LAPACKSupport::DeclException1 ( ExcProperty ,
Property ,
<< "The function cannot be called with a "<< property_name(arg1)<< " matrix."  )

Exception thrown when a matrix does not have suitable properties for an operation.

◆ DeclException1() [3/3]

dftfe::LAPACKSupport::DeclException1 ( ExcState ,
State ,
<< "The function cannot be called while the matrix is in state "<< state_namearg1 )

Exception thrown when a matrix is not in a suitable state for an operation. For instance, a LAPACK routine may have left the matrix in an unusable state, then vmult does not make sense anymore.

◆ DeclException2()

dftfe::LAPACKSupport::DeclException2 ( ExcErrorCode ,
std::string ,
types::blas_int ,
<< "The function "<< arg1<< " returned with an error code "<< arg2 )

A LAPACK function returned an error code.

◆ property_name()

const char * dftfe::LAPACKSupport::property_name ( const Property s)
inline

Function printing the name of a Property.

◆ state_name()

const char * dftfe::LAPACKSupport::state_name ( State s)
inline

Function printing the name of a State.

Variable Documentation

◆ A

const char dftfe::LAPACKSupport::A = 'A'
static

Character constant.

◆ C

const char dftfe::LAPACKSupport::C = 'C'
static

Character constant for conjugate transpose.

◆ L

const char dftfe::LAPACKSupport::L = 'L'
static

Character constant.

◆ N

const char dftfe::LAPACKSupport::N = 'N'
static

Character constant.

◆ O

const char dftfe::LAPACKSupport::O = 'O'
static

Character constant.

◆ one

const types::blas_int dftfe::LAPACKSupport::one = 1
static

Integer constant.

◆ T

const char dftfe::LAPACKSupport::T = 'T'
static

Character constant.

◆ U

const char dftfe::LAPACKSupport::U = 'U'
static

Character constant.

◆ V

const char dftfe::LAPACKSupport::V = 'V'
static

Character constant.

◆ zero

const types::blas_int dftfe::LAPACKSupport::zero = 0
static

Integer constant.