DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
linearAlgebraOperations.h File Reference
#include <elpaScalaManager.h>
#include <headers.h>
#include <operator.h>
#include "process_grid.h"
#include "scalapackWrapper.h"
#include "dftParameters.h"
#include <BLASWrapper.h>

Go to the source code of this file.

Namespaces

namespace  dftfe
 
namespace  dftfe::linearAlgebraOperations
 Contains linear algebra functions used in the implementation of an eigen solver.
 

Functions

void dftfe::linearAlgebraOperations::inverse (double *A, int N)
 Compute inverse of serial matrix using LAPACK LU factorization.
 
void dftfe::linearAlgebraOperations::inverse (std::complex< double > *A, int N)
 Compute inverse of serial matrix using LAPACK LU factorization.
 
template<typename T, dftfe::utils::MemorySpace memorySpace>
std::pair< double, double > dftfe::linearAlgebraOperations::generalisedLanczosLowerUpperBoundEigenSpectrum (const std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > &BLASWrapperPtr, operatorDFTClass< memorySpace > &operatorMatrix, dftfe::linearAlgebra::MultiVector< T, memorySpace > &X, dftfe::linearAlgebra::MultiVector< T, memorySpace > &Y, dftfe::linearAlgebra::MultiVector< T, memorySpace > &Z, dftfe::linearAlgebra::MultiVector< T, memorySpace > &tempVec, const dftParameters &dftParams)
 Calculates an estimate of lower and upper bounds of a matrix using k-step Generalised Lanczos method. Algo is present in PAW PRB paper.
 
template<typename T, dftfe::utils::MemorySpace memorySpace>
void dftfe::linearAlgebraOperations::chebyshevFilter (operatorDFTClass< memorySpace > &operatorMatrix, dftfe::linearAlgebra::MultiVector< T, memorySpace > &X, dftfe::linearAlgebra::MultiVector< T, memorySpace > &Y, const unsigned int m, const double a, const double b, const double a0)
 Apply Chebyshev filter to a given subspace.
 
template<typename T1, typename T2, dftfe::utils::MemorySpace memorySpace>
void dftfe::linearAlgebraOperations::reformulatedChebyshevFilter (const std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > &BLASWrapperPtr, operatorDFTClass< memorySpace > &operatorMatrix, dftfe::linearAlgebra::MultiVector< T1, memorySpace > &X, dftfe::linearAlgebra::MultiVector< T1, memorySpace > &Y, dftfe::linearAlgebra::MultiVector< T2, memorySpace > &Residual, dftfe::linearAlgebra::MultiVector< T2, memorySpace > &ResidualNew, std::vector< double > eigenvalues, const unsigned int m, const double a, const double b, const double a0, const bool approxOverlapMatrix)
 Apply Residual based Chebyshev filter to a given subspace.