iterative-solver 0.0
 
Loading...
Searching...
No Matches
molpro::linalg::itsolv::subspace Namespace Reference

Namespaces

namespace  qspace
 
namespace  util
 
namespace  xspace
 

Classes

struct  Dimensions
 
class  DSpace
 D space stores complement of P+Q+R subspace that is necessary to reproduce the previous solutions. More...
 
struct  ISubspaceSolver
 Manages solution of the subspace problem and storage of those solutions. More...
 
class  IXSpace
 Full subspace. More...
 
class  Matrix
 Matrix container that allows simple data access, slicing, copying and resizing without loosing data. More...
 
class  PSpace
 
struct  QSpace
 Container storing the Q space parameters. More...
 
class  SubspaceSolverDIIS
 Solves non-linear equations using DIIS. More...
 
class  SubspaceSolverLinEig
 Solves subspace problem for linear eigenvalues and system of linear equations. More...
 
class  SubspaceSolverOptBFGS
 Solves subspace problem for minimisation using the Steepest Descent algorithm. More...
 
class  SubspaceSolverOptSD
 Solves subspace problem for minimisation using the Steepest Descent algorithm. More...
 
class  SubspaceSolverRSPT
 
class  XSpace
 

Typedefs

template<typename T = double>
using SubspaceData = std::map< EqnData, Matrix< T > >
 Equation data blocks of the subspace, in the scalar type of the problem.
 

Enumerations

enum class  EqnData {
  H ,
  S ,
  rhs ,
  value ,
  M
}
 Kinds of equation data in the subspace. More...
 

Functions

template<class ML , class MR >
void transpose_copy (ML &&ml, const MR &mr)
 
template<class ML , class MR >
void conjugate_transpose_copy (ML &&ml, const MR &mr)
 Copies the conjugate transpose of mr into ml.
 
template<class Mat >
std::string as_string (const Mat &m, int precision=6)
 
template<typename T >
std::vector< EqnData > square_blocks (const SubspaceData< T > &data)
 The square matrices, H, S and, if present, M, among the equation data.
 
template<typename T = double, EqnData... DataTypes>
auto null_data ()
 

Typedef Documentation

◆ SubspaceData

Equation data blocks of the subspace, in the scalar type of the problem.

Enumeration Type Documentation

◆ EqnData

Kinds of equation data in the subspace.

H is the kernel matrix and S the overlap of the subspace vectors. For a generalised eigenproblem, M is the metric matrix, which then replaces S in the subspace eigenproblem; S remains the overlap used for managing the subspace.

Enumerator
H 
S 
rhs 
value 
M 

Function Documentation

◆ as_string()

template<class Mat >
std::string molpro::linalg::itsolv::subspace::as_string ( const Mat &  m,
int  precision = 6 
)

◆ conjugate_transpose_copy()

template<class ML , class MR >
void molpro::linalg::itsolv::subspace::conjugate_transpose_copy ( ML &&  ml,
const MR &  mr 
)

Copies the conjugate transpose of mr into ml.

This is what relates the two off-diagonal blocks of a hermitian matrix; for a real element type it is the same as transpose_copy().

◆ null_data()

template<typename T = double, EqnData... DataTypes>
auto molpro::linalg::itsolv::subspace::null_data ( )

◆ square_blocks()

template<typename T >
std::vector< EqnData > molpro::linalg::itsolv::subspace::square_blocks ( const SubspaceData< T > &  data)

The square matrices, H, S and, if present, M, among the equation data.

◆ transpose_copy()

template<class ML , class MR >
void molpro::linalg::itsolv::subspace::transpose_copy ( ML &&  ml,
const MR &  mr 
)