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

Namespaces

namespace  pseudoUtils
 wrapper to convert pseudopotential file from upf to dftfe format and returns the nonlinear core correction flag
namespace  AtomicCenteredNonLocalOperatorKernelsDevice
namespace  linearAlgebra
namespace  utils
namespace  dftUtils
 Contains repeatedly used functions in the KSDFT calculations.
namespace  dataTypes
namespace  internalEnergy
namespace  eshelbyTensor
 The functions in this namespace contain the expressions for the various terms of the configurational force (https://link.aps.org/doi/10.1103/PhysRevB.97.165132) for both periodic (see Eq. 38) and non-periodic (see Eqs. 28-29) case.
namespace  eshelbyTensorSP
 The functions in this namespace contain the expressions for the various terms of the configurational force (https://link.aps.org/doi/10.1103/PhysRevB.97.165132) for both periodic and non-periodic case.
namespace  internal
namespace  basis
namespace  force
namespace  types
namespace  LAPACKSupport
namespace  linearAlgebraOperations
 Contains linear algebra functions used in the implementation of an eigen solver.
namespace  linearAlgebraOperationsDevice
namespace  meshGenUtils
namespace  poissonDevice
namespace  sphericalHarmonicUtils
namespace  vectorTools
 Contains generic utils functions related to custom partitioned flattened dealii vector.

Classes

class  atomCenteredOrbitalsPostProcessing
class  AtomCenteredPseudoWavefunctionSpline
class  AtomCenteredSphericalFunctionBase
class  AtomCenteredSphericalFunctionBessel
class  AtomCenteredSphericalFunctionContainer
class  AtomCenteredSphericalFunctionCoreDensitySpline
class  AtomCenteredSphericalFunctionGaussian
class  AtomCenteredSphericalFunctionLocalPotentialSpline
class  AtomCenteredSphericalFunctionProjectorSpline
class  AtomCenteredSphericalFunctionSinc
class  AtomCenteredSphericalFunctionSpline
class  AtomCenteredSphericalFunctionValenceDensitySpline
class  AtomCenteredSphericalFunctionZOverR
class  AtomicBasis
class  AtomicBasisData
class  AtomicCenteredNonLocalOperator
class  AtomPseudoWavefunctions
class  AuxDensityMatrix
class  AuxDensityMatrixFE
class  BFGSNonLinearSolver
 Class implementing a modified BFGS optimization scheme. More...
class  cgPRPNonLinearSolver
 Concrete class implementing Polak-Ribiere-Polyak Conjugate Gradient non-linear algebraic solver. More...
class  chebyshevOrthogonalizedSubspaceIterationSolver
 Concrete class implementing Chebyshev filtered orthogonalized subspace iteration solver. More...
class  configurationalForceClass
class  dealiiLinearSolver
 dealii linear solver class wrapper More...
class  dealiiLinearSolverProblem
 Abstract class for linear solve problems to be used with the dealiiLinearSolver interface. More...
class  dftClass
 This class is the primary interface location of all other parts of the DFT-FE code for all steps involved in obtaining the Kohn-Sham DFT ground-state solution. More...
class  dftBase
 abstract base class for dft More...
class  dispersionCorrection
 Calculates dispersion correction to energy, force and stress. More...
class  dftfeWrapper
 wrapper class for dftfe More...
class  dftParameters
 Namespace which declares the input parameters and the functions to parse them from the input parameter file. More...
class  eigenSolverClass
 Base class for non-linear algebraic solver. More...
class  elpaScalaManager
 Manager class for ELPA and ScaLAPACK. More...
class  energyCalculator
 Calculates the ksdft problem total energy and its components. More...
class  excDensityGGAClass
class  excDensityLDAClass
class  excDensityLLMGGAClass
class  ExcDFTPlusU
class  excManager
class  ExcSSDFunctionalBaseClass
 This class provides the structure for all Exc functionals that can be written as a combination of functional of Single Slater determinant that results in a non-multiplicative potential plus a remainder functional dependent on density and Tau. More...
class  excTauMGGAClass
class  expConfiningPotential
struct  FEEvalTrait
struct  FEEvalTrait< 3 >
class  FEEvaluationWrapperClass
struct  ContractedGaussian
struct  GaussianBasisInfo
class  GaussianBasis
class  geometryOptimizationClass
class  geoOptCell
 problem class for cell stress relaxation solver. More...
class  geoOptIon
 problem class for atomic force relaxation solver. More...
class  groupSymmetryClass
 density symmetrization based on irreducible Brillouin zone calculation, only relevant for calculations using point group symmetries More...
struct  hubbardSpecies
 This structure provides the relevant information pertaining to hubbard correction such as U value, orbital Ids and so on for each hubbard species. More...
class  hubbard
 This class provides the Hubbard correction. This class is an object of ExcDFTPluU Class. More...
class  InterpolateCellWiseDataToPoints
 This class forms the interface for interpolating data to an arbitrary set of points. This class is compatible with MPI, where the partitioning of cells and the points need not be compatible. As in the points need not lie within the cells assigned to the processor. More...
class  InterpolateFromCellToLocalPoints
class  kerkerSolverProblem
 poisson solver problem class template. template parameter FEOrderElectro is the finite element polynomial order for electrostatics More...
class  kerkerSolverProblemWrapperClass
class  KohnShamDFTBaseOperator
class  KohnShamDFTStandardEigenOperator
class  LBFGSNonLinearSolver
 Class implementing LBFGS optimzation method. More...
class  linearSolver
 Abstract linear solver base class. More...
class  MatrixFree
 MatrixFree class template. template parameter nDofsPerDim is the finite element polynomial order. nQuadPointsPerDim is the order of the Gauss quadrature rule. batchSize is the size of batch tuned to hardware. More...
struct  MatrixFreeDevice
 MatrixFreeDevice class template. template parameter nDofsPerDim is the finite element polynomial order. nQuadPointsPerDim is the order of the Gauss quadrature rule. batchSize is the size of batch tuned to hardware. More...
class  MatrixFreeWrapperClass
 MatrixFreeWrapper class. More...
class  meshMovementClass
 Base class to move triangulation vertices. More...
class  meshMovementAffineTransform
 Class to update triangulation under affine transformation. More...
class  meshMovementGaussianClass
 Class to move triangulation nodes using Gaussian functions attached to control points. More...
class  MixingScheme
 This class performs the anderson mixing in a variable agnostic way This class takes can take different input variables as input in a std::vector format and computes the mixing coefficients These coefficients can then be used to compute the new variable at the start of the SCF. More...
class  molecularDynamicsClass
class  MultiVectorCGSolver
class  MultiVectorLinearSolverProblem
class  MultiVectorMinResSolver
class  MultiVectorPoissonLinearSolverProblem
class  nonLinearSolver
 Base class for non-linear algebraic solver. More...
class  nonlinearSolverFunction
class  nonlinearSolverProblem
 Abstract class for solver functions. More...
class  nudgedElasticBandClass
class  oncvClass
class  operatorDFTClass
 Base class for building the DFT operator and the action of operator on a vector. More...
class  poissonSolverProblem
 poisson solver problem class template. template parameter FEOrderElectro is the finite element polynomial order. More...
class  poissonSolverProblemWrapperClass
class  ScaLAPACKMatrix
 Scalapack wrapper adapted from dealii library and extended implementation to complex datatype. More...
class  ProcessGrid
class  pseudopotentialBaseClass
class  runParameters
 Namespace which declares the input outer run parameters. More...
struct  SlaterPrimitive
struct  SlaterBasisInfo
class  SlaterBasis
class  TransferDataBetweenMeshesIncompatiblePartitioning
 This class provides the interface for the transfer between the meshes. More...
class  triangulationManager
 This class generates and stores adaptive finite element meshes for the real-space dft problem. More...
class  vselfBinsManager
 Categorizes atoms into bins for efficient solution of nuclear electrostatic self-potential. More...

Typedefs

template<dftfe::Int components>
using FEEvaluationObject = typename FEEvalTrait<components>::type
template<typename elem_type>
using distributedCPUVec
template<typename NumberType>
using distributedCPUMultiVec
using kerkerSolverProblemObject
using MatrixFreeObject
 Datastructure to hold different MatrixFree class objects.
using poissonSolverProblemObject
using uInt = std::uint32_t
using Int = std::int32_t

Enumerations

enum class  CouplingStructure { diagonal , dense , blockDiagonal }
 Enum class that lists used in the non-local Operator. More...
enum class  nonLocalContractionVectorType { CconjTransX , CRconjTransX , DconjTransX , DDyadicRconjTransX }
enum class  DensityDescriptorDataAttributes {
  valuesTotal , valuesSpinUp , valuesSpinDown , gradValuesSpinUp ,
  gradValuesSpinDown , hessianSpinUp , hessianSpinDown , laplacianSpinUp ,
  laplacianSpinDown , magAxisValues
}
enum class  WfcDescriptorDataAttributes { tauTotal , tauSpinUp , tauSpinDown }
enum class  excDensityPositivityCheckTypes { NO_CHECK , EXCEPTION_POSITIVE , MAKE_POSITIVE }
enum class  ExcFamilyType {
  LDA , GGA , LLMGGA , HYBRID ,
  DFTPlusU , MGGA , TauMGGA
}
enum class  densityFamilyType { LDA , GGA , LLMGGA }
enum class  xcRemainderOutputDataAttributes {
  e , vSpinUp , vSpinDown , pdeDensitySpinUp ,
  pdeDensitySpinDown , pdeSigma , pdeLaplacianSpinUp , pdeLaplacianSpinDown ,
  pdeTauSpinUp , pdeTauSpinDown
}
enum class  HubbardOccFieldType { In , Out , Residual }
 This enum class provides the tags for the occupation matrices. This will be relevant during mixing. More...
enum  operatorList {
  Laplace = 0 , Helmholtz = 1 , LDA = 2 , GGA = 3 ,
  Count = 4
}
enum class  mixingVariable {
  rho , gradRho , magZ , gradMagZ ,
  magY , gradMagY , magX , gradMagX ,
  gradPhi , hubbardOccupation , tau , tauMagZ ,
  tauMagY , tauMagX
}
 Enum class that stores he list of variables that will can be used in the mixing scheme. More...
enum class  CouplingType { HamiltonianEntries , OverlapEntries , inverseOverlapEntries }

Functions

template<typename NumberType, dftfe::utils::MemorySpace memorySpace>
void computeAuxProjectedDensityMatrixFromPSI (const dftfe::utils::MemoryStorage< NumberType, memorySpace > &X, const dftfe::uInt totalNumWaveFunctions, const std::vector< std::vector< double > > &partialOccupancies, std::shared_ptr< dftfe::basis::FEBasisOperations< NumberType, double, memorySpace > > &basisOperationsPtr, std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > &BLASWrapperPtr, const dftfe::uInt matrixFreeDofhandlerIndex, const dftfe::uInt quadratureIndex, const std::vector< double > &kPointWeights, AuxDensityMatrix< memorySpace > &auxDensityMatrixRepresentation, const MPI_Comm &mpiCommParent, const MPI_Comm &domainComm, const MPI_Comm &interpoolcomm, const MPI_Comm &interBandGroupComm, const dftParameters &dftParams)
void computeWavefuncEshelbyContributionLocal (std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > &BLASWrapperPtr, const std::pair< dftfe::uInt, dftfe::uInt > cellRange, const std::pair< dftfe::uInt, dftfe::uInt > vecRange, const dftfe::uInt nQuadsPerCell, const double kcoordx, const double kcoordy, const double kcoordz, double *partialOccupVec, double *eigenValuesVec, dataTypes::number *wfcQuadPointData, dataTypes::number *gradWfcQuadPointData, double *eshelbyContributions, double *eshelbyTensor, const bool floatingNuclearCharges, const bool isTauMGGA, double *pdexTauLocallyOwnedCellsBlock, double *pdecTauLocallyOwnedCellsBlock, const bool computeForce, const bool computeStress)
void nlpWfcContractionContribution (std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > &BLASWrapperPtr, const dftfe::uInt wfcBlockSize, const dftfe::uInt blockSizeNlp, const dftfe::uInt numQuadsNLP, const dftfe::uInt startingIdNlp, const dataTypes::number *projectorKetTimesVectorPar, const dataTypes::number *gradPsiOrPsiQuadValuesNLP, const dftfe::uInt *nonTrivialIdToElemIdMap, const dftfe::uInt *projecterKetTimesFlattenedVectorLocalIds, dataTypes::number *nlpContractionContribution)
dftfe::uInt C_num1DQuad (dftfe::uInt FEOrder)
 1d quadrature rule order
constexpr dftfe::uInt C_num1DQuadSmearedCharge ()
 1d quad rule smeared nuclear charge
constexpr dftfe::uInt C_numCopies1DQuadSmearedCharge ()
 number of copies 1d quad rule smeared nuclear charge
constexpr dftfe::uInt C_num1DQuadSmearedChargeHigh ()
constexpr dftfe::uInt C_numCopies1DQuadSmearedChargeHigh ()
constexpr dftfe::uInt C_num1DQuadSmearedChargeStress ()
 1d quad rule smeared nuclear charge if cell stress calculation is on
constexpr dftfe::uInt C_numCopies1DQuadSmearedChargeStress ()
dftfe::uInt C_num1DQuadNLPSP (dftfe::uInt FEOrder)
 1d quadrature rule order for non-local part of pseudopotential
constexpr dftfe::uInt C_numCopies1DQuadNLPSP ()
 number of copies 1d quad rule non-local PSP
dftfe::uInt C_num1DQuadLPSP (dftfe::uInt FEOrder)
 1d quadrature rule order for local part of pseudopotential
constexpr dftfe::uInt C_numCopies1DQuadLPSP ()
 number of copies 1d quad rule local PSP
template<typename NumberType, dftfe::utils::MemorySpace memorySpace>
void computeRhoFromPSI (const dftfe::utils::MemoryStorage< NumberType, memorySpace > *X, const dftfe::uInt totalNumWaveFunctions, const std::vector< std::vector< double > > &partialOccupancies, std::shared_ptr< dftfe::basis::FEBasisOperations< NumberType, double, memorySpace > > &basisOperationsPtr, std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > &BLASWrapperPtr, const dftfe::uInt matrixFreeDofhandlerIndex, const dftfe::uInt quadratureIndex, const std::vector< double > &kPointCoords, const std::vector< double > &kPointWeights, std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &densityValues, std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &gradDensityValues, std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &tauValues, const bool isEvaluateGradRho, const bool isEvaluateTau, const MPI_Comm &mpiCommParent, const MPI_Comm &interpoolcomm, const MPI_Comm &interBandGroupComm, const dftParameters &dftParams)
template<typename NumberType>
void computeRhoGradRhoFromInterpolatedValues (std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > &BLASWrapperPtr, const std::pair< dftfe::uInt, dftfe::uInt > cellRange, const std::pair< dftfe::uInt, dftfe::uInt > vecRange, const dftfe::uInt nQuadsPerCell, const dftfe::uInt nCells, double *partialOccupVec, NumberType *wfcQuadPointData, NumberType *gradWfcQuadPointData, double *rhoCellsWfcContributions, double *gradRhoCellsWfcContributions, double *rho, double *gradRho, const bool isEvaluateGradRho, const bool isNonCollin, const bool hasSOC)
template<typename NumberType>
void computeTauFromInterpolatedValues (std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > &BLASWrapperPtr, const std::pair< dftfe::uInt, dftfe::uInt > cellRange, const std::pair< dftfe::uInt, dftfe::uInt > vecRange, const dftfe::uInt nQuadsPerCell, double *partialOccupVec, double *kCoord, NumberType *wfcQuadPointData, NumberType *gradWfcQuadPointData, double *kineticEnergyDensityCellsWfcContributions, double *tau, const bool isNonCollin, const bool hasSOC)
template<typename NumberType, dftfe::utils::MemorySpace memorySpace>
void computeRhoFirstOrderResponse (const dftfe::utils::MemoryStorage< NumberType, memorySpace > &X, const dftfe::utils::MemoryStorage< NumberType, memorySpace > &XPrime, const dftfe::uInt totalNumWaveFunctions, const std::vector< std::vector< double > > &densityMatDerFermiEnergy, std::shared_ptr< dftfe::basis::FEBasisOperations< NumberType, double, memorySpace > > &basisOperationsPtr, std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > &BLASWrapperPtr, const dftfe::uInt matrixFreeDofhandlerIndex, const dftfe::uInt quadratureIndex, const std::vector< double > &kPointWeights, std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &rhoResponseValuesHam, std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &rhoResponseValuesFermiEnergy, const MPI_Comm &mpiCommParent, const MPI_Comm &interpoolcomm, const MPI_Comm &interBandGroupComm, const dftParameters &dftParams)
template<typename NumberType>
void computeRhoResponseFromInterpolatedValues (std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > &BLASWrapperPtr, const std::pair< dftfe::uInt, dftfe::uInt > cellRange, const std::pair< dftfe::uInt, dftfe::uInt > vecRange, const dftfe::uInt nQuadsPerCell, double *onesVec, double *partialOccupPrimeVec, NumberType *wfcQuadPointData, NumberType *wfcPrimeQuadPointData, double *rhoResponseHamCellsWfcContributions, double *rhoResponseFermiEnergyCellsWfcContributions, double *rhoResponseHam, double *rhoResponseFermiEnergy)
constexpr dftfe::Int encodeFEEvaluation (dftfe::Int a, dftfe::Int b)
template<dftfe::Int components, class... Args>
FEEvaluationObject< components > createFEEvaluationObject (dftfe::Int feOrder, dftfe::Int quadrature, Args &&...args)
template<class... Args>
kerkerSolverProblemObject createKerkerSolverProblemObject (dftfe::Int feOrder, Args &&...args)
void applyPreconditionAndComputeDotProductDevice (double *d_dvec, double *d_devSum, const double *d_rvec, const double *d_jacobi, const dftfe::Int N)
 Combines precondition and dot product.
void applyPreconditionComputeDotProductAndSaddDevice (double *d_qvec, double *d_devSum, const double *d_rvec, const double *d_jacobi, const dftfe::Int N)
 Combines precondition, sadd and dot product.
void scaleXRandComputeNormDevice (double *x, double *d_rvec, double *d_devSum, const double *d_qvec, const double *d_dvec, const double alpha, const dftfe::Int N)
 Combines scaling and norm.
void sadd (double *y, double *x, const double beta, const dftfe::uInt size)
template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, class... Args>
MatrixFreeObject createMatrixFreeObject (std::uint32_t nDofsPerDim, Args &&...args)
 Factory function to create MatrixFree object.
template<class... Args>
poissonSolverProblemObject createPoissonSolverProblemObject (dftfe::Int feOrderElectro, Args &&...args)
void Cblacs_pinfo (int *rank, int *nprocs)
void Cblacs_get (int icontxt, int what, int *val)
void Cblacs_gridinit (int *context, const char *order, int grid_height, int grid_width)
void Cblacs_gridinfo (int context, int *grid_height, int *grid_width, int *grid_row, int *grid_col)
void Cblacs_pcoord (int ictxt, int pnum, int *prow, int *pcol)
void Cblacs_gridexit (int context)
void Cblacs_barrier (int, const char *)
void Cblacs_exit (int error_code)
void Cdgerv2d (int context, int M, int N, double *A, int lda, int rsrc, int csrc)
void Csgerv2d (int context, int M, int N, float *A, int lda, int rsrc, int csrc)
void Cdgesd2d (int context, int M, int N, double *A, int lda, int rdest, int cdest)
void Csgesd2d (int context, int M, int N, float *A, int lda, int rdest, int cdest)
int Csys2blacs_handle (MPI_Comm comm)
int numroc_ (const int *n, const int *nb, const int *iproc, const int *isproc, const int *nprocs)
void pzlacgv_ (const int *N, std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, const int *INCX)
void pdpotrf_ (const char *UPLO, const int *N, double *A, const int *IA, const int *JA, const int *DESCA, int *INFO)
void pspotrf_ (const char *UPLO, const int *N, float *A, const int *IA, const int *JA, const int *DESCA, int *INFO)
void pzpotrf_ (const char *UPLO, const int *N, std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, int *INFO)
void pdgetrf_ (const int *m, const int *n, double *A, const int *IA, const int *JA, const int *DESCA, int *ipiv, int *INFO)
void psgetrf_ (const int *m, const int *n, float *A, const int *IA, const int *JA, const int *DESCA, int *ipiv, int *INFO)
void pzgetrf_ (const int *m, const int *n, std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, int *ipiv, int *INFO)
void pdpotri_ (const char *UPLO, const int *N, double *A, const int *IA, const int *JA, const int *DESCA, int *INFO)
void pspotri_ (const char *UPLO, const int *N, float *A, const int *IA, const int *JA, const int *DESCA, int *INFO)
void pzpotri_ (const char *UPLO, const int *N, std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, int *INFO)
void pdgetri_ (const int *N, double *A, const int *IA, const int *JA, const int *DESCA, const int *ipiv, double *work, int *lwork, int *iwork, int *liwork, int *info)
void psgetri_ (const int *N, float *A, const int *IA, const int *JA, const int *DESCA, const int *ipiv, float *work, int *lwork, int *iwork, int *liwork, int *info)
void pzgetri_ (const int *N, std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, const int *ipiv, std::complex< double > *work, int *lwork, int *iwork, int *liwork, int *info)
void pdtrtri_ (const char *UPLO, const char *DIAG, const int *N, double *A, const int *IA, const int *JA, const int *DESCA, int *INFO)
void pstrtri_ (const char *UPLO, const char *DIAG, const int *N, float *A, const int *IA, const int *JA, const int *DESCA, int *INFO)
void pztrtri_ (const char *UPLO, const char *DIAG, const int *N, std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, int *INFO)
void pdpocon_ (const char *uplo, const int *N, const double *A, const int *IA, const int *JA, const int *DESCA, const double *ANORM, double *RCOND, double *WORK, const int *LWORK, int *IWORK, const int *LIWORK, int *INFO)
void pspocon_ (const char *uplo, const int *N, const float *A, const int *IA, const int *JA, const int *DESCA, const float *ANORM, float *RCOND, float *WORK, const int *LWORK, int *IWORK, const int *LIWORK, int *INFO)
double pdlansy_ (const char *norm, const char *uplo, const int *N, const double *A, const int *IA, const int *JA, const int *DESCA, double *work)
float pslansy_ (const char *norm, const char *uplo, const int *N, const float *A, const int *IA, const int *JA, const int *DESCA, float *work)
int ilcm_ (const int *M, const int *N)
int iceil_ (const int *i1, const int *i2)
void descinit_ (int *desc, const int *m, const int *n, const int *mb, const int *nb, const int *irsrc, const int *icsrc, const int *ictxt, const int *lld, int *info)
int indxl2g_ (const int *indxloc, const int *nb, const int *iproc, const int *isrcproc, const int *nprocs)
void pdgesv_ (const int *n, const int *nrhs, double *A, const int *ia, const int *ja, const int *desca, int *ipiv, double *B, const int *ib, const int *jb, const int *descb, int *info)
void psgesv_ (const int *n, const int *nrhs, float *A, const int *ia, const int *ja, const int *desca, int *ipiv, float *B, const int *ib, const int *jb, const int *descb, int *info)
void pdgemm_ (const char *transa, const char *transb, const int *m, const int *n, const int *k, const double *alpha, const double *A, const int *IA, const int *JA, const int *DESCA, const double *B, const int *IB, const int *JB, const int *DESCB, const double *beta, double *C, const int *IC, const int *JC, const int *DESCC)
void psgemm_ (const char *transa, const char *transb, const int *m, const int *n, const int *k, const float *alpha, const float *A, const int *IA, const int *JA, const int *DESCA, const float *B, const int *IB, const int *JB, const int *DESCB, const float *beta, float *C, const int *IC, const int *JC, const int *DESCC)
void pzgemm_ (const char *transa, const char *transb, const int *m, const int *n, const int *k, const std::complex< double > *alpha, const std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, const std::complex< double > *B, const int *IB, const int *JB, const int *DESCB, const std::complex< double > *beta, std::complex< double > *C, const int *IC, const int *JC, const int *DESCC)
double pdlange_ (char const *norm, const int *m, const int *n, const double *A, const int *ia, const int *ja, const int *desca, double *work)
float pslange_ (const char *norm, const int *m, const int *n, const float *A, const int *ia, const int *ja, const int *desca, float *work)
int indxg2p_ (const int *glob, const int *nb, const int *iproc, const int *isproc, const int *nprocs)
void pdsyev_ (const char *jobz, const char *uplo, const int *m, double *A, const int *ia, const int *ja, int *desca, double *w, double *z, const int *iz, const int *jz, int *descz, double *work, const int *lwork, int *info)
void pssyev_ (const char *jobz, const char *uplo, const int *m, float *A, const int *ia, const int *ja, int *desca, float *w, float *z, const int *iz, const int *jz, int *descz, float *work, const int *lwork, int *info)
void pzheev_ (const char *jobz, const char *uplo, const int *m, std::complex< double > *A, const int *ia, const int *ja, int *desca, double *w, std::complex< double > *z, const int *iz, const int *jz, int *descz, std::complex< double > *work, const int *lwork, int *info)
void pdlacpy_ (const char *uplo, const int *m, const int *n, const double *A, const int *ia, const int *ja, const int *desca, double *B, const int *ib, const int *jb, const int *descb)
void pslacpy_ (const char *uplo, const int *m, const int *n, const float *A, const int *ia, const int *ja, const int *desca, float *B, const int *ib, const int *jb, const int *descb)
void pdgemr2d_ (const int *m, const int *n, const double *A, const int *ia, const int *ja, const int *desca, double *B, const int *ib, const int *jb, const int *descb, const int *ictxt)
void psgemr2d_ (const int *m, const int *n, const float *A, const int *ia, const int *ja, const int *desca, float *B, const int *ib, const int *jb, const int *descb, const int *ictxt)
double pdlamch_ (const int *ictxt, const char *cmach)
float pslamch_ (const int *ictxt, const char *cmach)
void pdsyevx_ (const char *jobz, const char *range, const char *uplo, const int *n, double *A, const int *ia, const int *ja, const int *desca, const double *VL, const double *VU, const int *il, const int *iu, const double *abstol, const int *m, const int *nz, double *w, double *orfac, double *Z, const int *iz, const int *jz, const int *descz, double *work, int *lwork, int *iwork, int *liwork, int *ifail, int *iclustr, double *gap, int *info)
void pssyevx_ (const char *jobz, const char *range, const char *uplo, const int *n, float *A, const int *ia, const int *ja, const int *desca, const float *VL, const float *VU, const int *il, const int *iu, const float *abstol, const int *m, const int *nz, float *w, float *orfac, float *Z, const int *iz, const int *jz, const int *descz, float *work, int *lwork, int *iwork, int *liwork, int *ifail, int *iclustr, float *gap, int *info)
void pzheevx_ (const char *jobz, const char *range, const char *uplo, const int *n, std::complex< double > *A, const int *ia, const int *ja, const int *desca, const double *VL, const double *VU, const int *il, const int *iu, const double *abstol, const int *m, const int *nz, double *w, double *orfac, std::complex< double > *Z, const int *iz, const int *jz, const int *descz, std::complex< double > *work, int *lwork, int *iwork, int *liwork, int *ifail, int *iclustr, double *gap, int *info)
void pdgesvd_ (const char *jobu, const char *jobvt, const int *m, const int *n, double *A, const int *ia, const int *ja, const int *desca, double *S, double *U, const int *iu, const int *ju, const int *descu, double *VT, const int *ivt, const int *jvt, const int *descvt, double *work, int *lwork, int *info)
void psgesvd_ (const char *jobu, const char *jobvt, const int *m, const int *n, float *A, const int *ia, const int *ja, const int *desca, float *S, float *U, const int *iu, const int *ju, const int *descu, float *VT, const int *ivt, const int *jvt, const int *descvt, float *work, int *lwork, int *info)
void pdgels_ (const char *trans, const int *m, const int *n, const int *nrhs, double *A, const int *ia, const int *ja, const int *desca, double *B, const int *ib, const int *jb, const int *descb, double *work, int *lwork, int *info)
void psgels_ (const char *trans, const int *m, const int *n, const int *nrhs, float *A, const int *ia, const int *ja, const int *desca, float *B, const int *ib, const int *jb, const int *descb, float *work, int *lwork, int *info)
void pdgeadd_ (const char *transa, const int *m, const int *n, const double *alpha, const double *A, const int *IA, const int *JA, const int *DESCA, const double *beta, double *C, const int *IC, const int *JC, const int *DESCC)
void psgeadd_ (const char *transa, const int *m, const int *n, const float *alpha, const float *A, const int *IA, const int *JA, const int *DESCA, const float *beta, float *C, const int *IC, const int *JC, const int *DESCC)
void pzgeadd_ (const char *transa, const int *m, const int *n, const std::complex< double > *alpha, const std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, const std::complex< double > *beta, std::complex< double > *C, const int *IC, const int *JC, const int *DESCC)
void pdtran_ (const int *m, const int *n, const double *alpha, const double *A, const int *IA, const int *JA, const int *DESCA, const double *beta, double *C, const int *IC, const int *JC, const int *DESCC)
void pstran_ (const int *m, const int *n, const float *alpha, const float *A, const int *IA, const int *JA, const int *DESCA, const float *beta, float *C, const int *IC, const int *JC, const int *DESCC)
void pdsyevr_ (const char *jobz, const char *range, const char *uplo, const int *n, double *A, const int *IA, const int *JA, const int *DESCA, const double *VL, const double *VU, const int *IL, const int *IU, int *m, int *nz, double *w, double *Z, const int *IZ, const int *JZ, const int *DESCZ, double *work, int *lwork, int *iwork, int *liwork, int *info)
void pssyevr_ (const char *jobz, const char *range, const char *uplo, const int *n, float *A, const int *IA, const int *JA, const int *DESCA, const float *VL, const float *VU, const int *IL, const int *IU, int *m, int *nz, float *w, float *Z, const int *IZ, const int *JZ, const int *DESCZ, float *work, int *lwork, int *iwork, int *liwork, int *info)
void pzheevr_ (const char *jobz, const char *range, const char *uplo, const int *n, std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, const double *VL, const double *VU, const int *IL, const int *IU, int *m, int *nz, double *w, std::complex< double > *Z, const int *IZ, const int *JZ, const int *DESCZ, std::complex< double > *work, int *lwork, double *rwork, int *lrwork, int *iwork, int *liwork, int *info)
template<typename number>
void Cgerv2d (int, int, int, number *, int, int, int)
void Cgerv2d (int context, int M, int N, double *A, int lda, int rsrc, int csrc)
void Cgerv2d (int context, int M, int N, float *A, int lda, int rsrc, int csrc)
template<typename number>
void Cgesd2d (int, int, int, number *, int, int, int)
void Cgesd2d (int context, int M, int N, double *A, int lda, int rdest, int cdest)
void Cgesd2d (int context, int M, int N, float *A, int lda, int rdest, int cdest)
void pplacgv (const int *N, double *A, const int *IA, const int *JA, const int *DESCA, const int *INCX)
void pplacgv (const int *N, std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, const int *INCX)
template<typename number>
void ppotrf (const char *, const int *, number *, const int *, const int *, const int *, int *)
void ppotrf (const char *UPLO, const int *N, double *A, const int *IA, const int *JA, const int *DESCA, int *INFO)
void ppotrf (const char *UPLO, const int *N, float *A, const int *IA, const int *JA, const int *DESCA, int *INFO)
void ppotrf (const char *UPLO, const int *N, std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, int *INFO)
template<typename number>
void pgetrf (const int *, const int *, number *, const int *, const int *, const int *, int *, int *)
void pgetrf (const int *m, const int *n, double *A, const int *IA, const int *JA, const int *DESCA, int *ipiv, int *INFO)
void pgetrf (const int *m, const int *n, float *A, const int *IA, const int *JA, const int *DESCA, int *ipiv, int *INFO)
void pgetrf (const int *m, const int *n, std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, int *ipiv, int *INFO)
template<typename number>
void ppotri (const char *, const int *, number *, const int *, const int *, const int *, int *)
void ppotri (const char *UPLO, const int *N, double *A, const int *IA, const int *JA, const int *DESCA, int *INFO)
void ppotri (const char *UPLO, const int *N, float *A, const int *IA, const int *JA, const int *DESCA, int *INFO)
void ppotri (const char *UPLO, const int *N, std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, int *INFO)
template<typename number>
void pgetri (const int *, number *, const int *, const int *, const int *, const int *, number *, int *, int *, int *, int *)
void pgetri (const int *N, double *A, const int *IA, const int *JA, const int *DESCA, const int *ipiv, double *work, int *lwork, int *iwork, int *liwork, int *info)
void pgetri (const int *N, float *A, const int *IA, const int *JA, const int *DESCA, const int *ipiv, float *work, int *lwork, int *iwork, int *liwork, int *info)
void pgetri (const int *N, std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, const int *ipiv, std::complex< double > *work, int *lwork, int *iwork, int *liwork, int *info)
template<typename number>
void ptrtri (const char *, const char *, const int *, number *, const int *, const int *, const int *, int *)
void ptrtri (const char *UPLO, const char *DIAG, const int *N, double *A, const int *IA, const int *JA, const int *DESCA, int *INFO)
void ptrtri (const char *UPLO, const char *DIAG, const int *N, float *A, const int *IA, const int *JA, const int *DESCA, int *INFO)
void ptrtri (const char *UPLO, const char *DIAG, const int *N, std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, int *INFO)
template<typename number>
void ppocon (const char *, const int *, const number *, const int *, const int *, const int *, const number *, number *, number *, const int *, int *, const int *, int *)
void ppocon (const char *uplo, const int *N, const double *A, const int *IA, const int *JA, const int *DESCA, const double *ANORM, double *RCOND, double *WORK, const int *LWORK, int *IWORK, const int *LIWORK, int *INFO)
void ppocon (const char *uplo, const int *N, const float *A, const int *IA, const int *JA, const int *DESCA, const float *ANORM, float *RCOND, float *WORK, const int *LWORK, int *IWORK, const int *LIWORK, int *INFO)
template<typename number>
number plansy (const char *, const char *, const int *, const number *, const int *, const int *, const int *, number *)
double plansy (const char *norm, const char *uplo, const int *N, const double *A, const int *IA, const int *JA, const int *DESCA, double *work)
float plansy (const char *norm, const char *uplo, const int *N, const float *A, const int *IA, const int *JA, const int *DESCA, float *work)
template<typename number>
void pgesv (const int *, const int *, number *, const int *, const int *, const int *, int *, number *, const int *, const int *, const int *, int *)
void pgesv (const int *n, const int *nrhs, double *A, const int *ia, const int *ja, const int *desca, int *ipiv, double *B, const int *ib, const int *jb, const int *descb, int *info)
void pgesv (const int *n, const int *nrhs, float *A, const int *ia, const int *ja, const int *desca, int *ipiv, float *B, const int *ib, const int *jb, const int *descb, int *info)
template<typename number>
void pgemm (const char *, const char *, const int *, const int *, const int *, const number *, const number *, const int *, const int *, const int *, const number *, const int *, const int *, const int *, const number *, number *, const int *, const int *, const int *)
void pgemm (const char *transa, const char *transb, const int *m, const int *n, const int *k, const double *alpha, const double *A, const int *IA, const int *JA, const int *DESCA, const double *B, const int *IB, const int *JB, const int *DESCB, const double *beta, double *C, const int *IC, const int *JC, const int *DESCC)
void pgemm (const char *transa, const char *transb, const int *m, const int *n, const int *k, const float *alpha, const float *A, const int *IA, const int *JA, const int *DESCA, const float *B, const int *IB, const int *JB, const int *DESCB, const float *beta, float *C, const int *IC, const int *JC, const int *DESCC)
void pgemm (const char *transa, const char *transb, const int *m, const int *n, const int *k, const std::complex< double > *alpha, const std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, const std::complex< double > *B, const int *IB, const int *JB, const int *DESCB, const std::complex< double > *beta, std::complex< double > *C, const int *IC, const int *JC, const int *DESCC)
template<typename number>
number plange (const char *, const int *, const int *, const number *, const int *, const int *, const int *, number *)
double plange (const char *norm, const int *m, const int *n, const double *A, const int *ia, const int *ja, const int *desca, double *work)
float plange (const char *norm, const int *m, const int *n, const float *A, const int *ia, const int *ja, const int *desca, float *work)
template<typename number>
void psyev (const char *, const char *, const int *, number *, const int *, const int *, int *, number *, number *, const int *, const int *, int *, number *, const int *, int *)
void psyev (const char *jobz, const char *uplo, const int *m, double *A, const int *ia, const int *ja, int *desca, double *w, double *z, const int *iz, const int *jz, int *descz, double *work, const int *lwork, int *info)
void psyev (const char *jobz, const char *uplo, const int *m, float *A, const int *ia, const int *ja, int *desca, float *w, float *z, const int *iz, const int *jz, int *descz, float *work, const int *lwork, int *info)
void psyev (const char *jobz, const char *uplo, const int *m, std::complex< double > *A, const int *ia, const int *ja, int *desca, double *w, std::complex< double > *z, const int *iz, const int *jz, int *descz, std::complex< double > *work, const int *lwork, int *info)
template<typename number>
void placpy (const char *, const int *, const int *, const number *, const int *, const int *, const int *, number *, const int *, const int *, const int *)
void placpy (const char *uplo, const int *m, const int *n, const double *A, const int *ia, const int *ja, const int *desca, double *B, const int *ib, const int *jb, const int *descb)
void placpy (const char *uplo, const int *m, const int *n, const float *A, const int *ia, const int *ja, const int *desca, float *B, const int *ib, const int *jb, const int *descb)
template<typename number>
void pgemr2d (const int *, const int *, const number *, const int *, const int *, const int *, number *, const int *, const int *, const int *, const int *)
void pgemr2d (const int *m, const int *n, const double *A, const int *ia, const int *ja, const int *desca, double *B, const int *ib, const int *jb, const int *descb, const int *ictxt)
void pgemr2d (const int *m, const int *n, const float *A, const int *ia, const int *ja, const int *desca, float *B, const int *ib, const int *jb, const int *descb, const int *ictxt)
template<typename number>
void plamch (const int *, const char *, number &)
void plamch (const int *ictxt, const char *cmach, double &val)
void plamch (const int *ictxt, const char *cmach, float &val)
template<typename number>
void psyevx (const char *, const char *, const char *, const int *, number *, const int *, const int *, const int *, number *, number *, const int *, const int *, number *, const int *, const int *, number *, number *, number *, const int *, const int *, const int *, number *, int *, int *, int *, int *, int *, number *, int *)
void psyevx (const char *jobz, const char *range, const char *uplo, const int *n, double *A, const int *ia, const int *ja, const int *desca, double *VL, double *VU, const int *il, const int *iu, double *abstol, const int *m, const int *nz, double *w, double *orfac, double *Z, const int *iz, const int *jz, const int *descz, double *work, int *lwork, int *iwork, int *liwork, int *ifail, int *iclustr, double *gap, int *info)
void psyevx (const char *jobz, const char *range, const char *uplo, const int *n, float *A, const int *ia, const int *ja, const int *desca, float *VL, float *VU, const int *il, const int *iu, float *abstol, const int *m, const int *nz, float *w, float *orfac, float *Z, const int *iz, const int *jz, const int *descz, float *work, int *lwork, int *iwork, int *liwork, int *ifail, int *iclustr, float *gap, int *info)
void psyevx (const char *jobz, const char *range, const char *uplo, const int *n, std::complex< double > *A, const int *ia, const int *ja, const int *desca, double *VL, double *VU, const int *il, const int *iu, double *abstol, const int *m, const int *nz, double *w, double *orfac, std::complex< double > *Z, const int *iz, const int *jz, const int *descz, std::complex< double > *work, int *lwork, int *iwork, int *liwork, int *ifail, int *iclustr, double *gap, int *info)
template<typename number>
void pgesvd (const char *, const char *, const int *, const int *, number *, const int *, const int *, const int *, number *, number *, const int *, const int *, const int *, number *, const int *, const int *, const int *, number *, int *, int *)
void pgesvd (const char *jobu, const char *jobvt, const int *m, const int *n, double *A, const int *ia, const int *ja, const int *desca, double *S, double *U, const int *iu, const int *ju, const int *descu, double *VT, const int *ivt, const int *jvt, const int *descvt, double *work, int *lwork, int *info)
void pgesvd (const char *jobu, const char *jobvt, const int *m, const int *n, float *A, const int *ia, const int *ja, const int *desca, float *S, float *U, const int *iu, const int *ju, const int *descu, float *VT, const int *ivt, const int *jvt, const int *descvt, float *work, int *lwork, int *info)
template<typename number>
void pgels (const char *, const int *, const int *, const int *, number *, const int *, const int *, const int *, number *, const int *, const int *, const int *, number *, int *, int *)
void pgels (const char *trans, const int *m, const int *n, const int *nrhs, double *A, const int *ia, const int *ja, const int *desca, double *B, const int *ib, const int *jb, const int *descb, double *work, int *lwork, int *info)
void pgels (const char *trans, const int *m, const int *n, const int *nrhs, float *A, const int *ia, const int *ja, const int *desca, float *B, const int *ib, const int *jb, const int *descb, float *work, int *lwork, int *info)
template<typename number>
void pgeadd (const char *, const int *, const int *, const number *, const number *, const int *, const int *, const int *, const number *, number *, const int *, const int *, const int *)
void pgeadd (const char *transa, const int *m, const int *n, const double *alpha, const double *A, const int *IA, const int *JA, const int *DESCA, const double *beta, double *C, const int *IC, const int *JC, const int *DESCC)
void pgeadd (const char *transa, const int *m, const int *n, const float *alpha, const float *A, const int *IA, const int *JA, const int *DESCA, const float *beta, float *C, const int *IC, const int *JC, const int *DESCC)
void pgeadd (const char *transa, const int *m, const int *n, const std::complex< double > *alpha, const std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, const std::complex< double > *beta, std::complex< double > *C, const int *IC, const int *JC, const int *DESCC)
template<typename number>
void ptran (const int *, const int *, const number *, const number *, const int *, const int *, const int *, const number *, number *, const int *, const int *, const int *)
void ptran (const int *m, const int *n, const double *alpha, const double *A, const int *IA, const int *JA, const int *DESCA, const double *beta, double *C, const int *IC, const int *JC, const int *DESCC)
void ptran (const int *m, const int *n, const float *alpha, const float *A, const int *IA, const int *JA, const int *DESCA, const float *beta, float *C, const int *IC, const int *JC, const int *DESCC)
void psyevr (const char *jobz, const char *range, const char *uplo, const int *n, double *A, const int *IA, const int *JA, const int *DESCA, const double *VL, const double *VU, const int *IL, const int *IU, int *m, int *nz, double *w, double *Z, const int *IZ, const int *JZ, const int *DESCZ, double *work, int *lwork, int *iwork, int *liwork, int *info)
void psyevr (const char *jobz, const char *range, const char *uplo, const int *n, float *A, const int *IA, const int *JA, const int *DESCA, const float *VL, const float *VU, const int *IL, const int *IU, int *m, int *nz, float *w, float *Z, const int *IZ, const int *JZ, const int *DESCZ, float *work, int *lwork, int *iwork, int *liwork, int *info)
void psyevr (const char *jobz, const char *range, const char *uplo, const int *n, std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, const double *VL, const double *VU, const int *IL, const int *IU, int *m, int *nz, double *w, std::complex< double > *Z, const int *IZ, const int *JZ, const int *DESCZ, std::complex< double > *work, int *lwork, double *rwork, int *lrwork, int *iwork, int *liwork, int *info)
int lworkFromWork (std::vector< double > &work)
int lworkFromWork (std::vector< float > &work)
int lworkFromWork (std::vector< std::complex< double > > &work)

Variables

const double C_kb = 3.166811429e-06
 Boltzmann constant.
const double C_haPerBohrToeVPerAng = 27.211386245988 / 0.529177210903
const double C_haToeV = 27.211386245988
const double C_bohrToAng = 0.529177210903
const double C_pi = 3.14159265359
const double C_AngToBohr = 1.0 / 0.529177210903

Detailed Description

Author
Gourab Panigrahi

Typedef Documentation

◆ distributedCPUMultiVec

template<typename NumberType>
using dftfe::distributedCPUMultiVec
Initial value:
An class template to encapsulate a MultiVector. A MultiVector is a collection of vectors belonging t...
Definition MultiVector.h:127
@ HOST
Definition MemorySpaceType.h:34

◆ distributedCPUVec

template<typename elem_type>
using dftfe::distributedCPUVec
Initial value:
dealii::LinearAlgebra::distributed::Vector<elem_type,
dealii::MemorySpace::Host>

◆ FEEvaluationObject

template<dftfe::Int components>
using dftfe::FEEvaluationObject = typename FEEvalTrait<components>::type

◆ Int

using dftfe::Int = std::int32_t

◆ kerkerSolverProblemObject

◆ MatrixFreeObject

Datastructure to hold different MatrixFree class objects.

Author
Gourab Panigrahi

◆ poissonSolverProblemObject

Initial value:
std::variant<
#define poissonSolverProblemWrapperTemplates(T1) \
#define poissonSolverProblemWrapperTemplatesL(T1) \
# 1 "/github/workspace/include/poissonSolverProblemWrapper.def" 1
# 35 "/github/workspace/include/poissonSolverProblemWrapper.h" 2
>
#define poissonSolverProblemWrapperTemplatesL(T1)
#define poissonSolverProblemWrapperTemplates(T1)

◆ uInt

using dftfe::uInt = std::uint32_t

Enumeration Type Documentation

◆ CouplingStructure

enum class dftfe::CouplingStructure
strong

Enum class that lists used in the non-local Operator.

Enumerator
diagonal 
dense 
blockDiagonal 

◆ CouplingType

enum class dftfe::CouplingType
strong
Enumerator
HamiltonianEntries 
OverlapEntries 
inverseOverlapEntries 

◆ DensityDescriptorDataAttributes

Enumerator
valuesTotal 
valuesSpinUp 
valuesSpinDown 
gradValuesSpinUp 
gradValuesSpinDown 
hessianSpinUp 
hessianSpinDown 
laplacianSpinUp 
laplacianSpinDown 
magAxisValues 

◆ densityFamilyType

enum class dftfe::densityFamilyType
strong
Enumerator
LDA 
GGA 
LLMGGA 

◆ excDensityPositivityCheckTypes

Enumerator
NO_CHECK 
EXCEPTION_POSITIVE 
MAKE_POSITIVE 

◆ ExcFamilyType

enum class dftfe::ExcFamilyType
strong
Enumerator
LDA 
GGA 
LLMGGA 
HYBRID 
DFTPlusU 
MGGA 
TauMGGA 

◆ HubbardOccFieldType

enum class dftfe::HubbardOccFieldType
strong

This enum class provides the tags for the occupation matrices. This will be relevant during mixing.

Enumerator
In 
Out 
Residual 

◆ mixingVariable

enum class dftfe::mixingVariable
strong

Enum class that stores he list of variables that will can be used in the mixing scheme.

Enumerator
rho 
gradRho 
magZ 
gradMagZ 
magY 
gradMagY 
magX 
gradMagX 
gradPhi 
hubbardOccupation 
tau 
tauMagZ 
tauMagY 
tauMagX 

◆ nonLocalContractionVectorType

Enumerator
CconjTransX 
CRconjTransX 
DconjTransX 
DDyadicRconjTransX 

◆ operatorList

Enumerator
Laplace 
Helmholtz 
LDA 
GGA 
Count 

◆ WfcDescriptorDataAttributes

Enumerator
tauTotal 
tauSpinUp 
tauSpinDown 

◆ xcRemainderOutputDataAttributes

Enumerator
vSpinUp 
vSpinDown 
pdeDensitySpinUp 
pdeDensitySpinDown 
pdeSigma 
pdeLaplacianSpinUp 
pdeLaplacianSpinDown 
pdeTauSpinUp 
pdeTauSpinDown 

Function Documentation

◆ applyPreconditionAndComputeDotProductDevice()

void dftfe::applyPreconditionAndComputeDotProductDevice ( double * d_dvec,
double * d_devSum,
const double * d_rvec,
const double * d_jacobi,
const dftfe::Int N )

Combines precondition and dot product.

◆ applyPreconditionComputeDotProductAndSaddDevice()

void dftfe::applyPreconditionComputeDotProductAndSaddDevice ( double * d_qvec,
double * d_devSum,
const double * d_rvec,
const double * d_jacobi,
const dftfe::Int N )

Combines precondition, sadd and dot product.

◆ C_num1DQuad()

dftfe::uInt dftfe::C_num1DQuad ( dftfe::uInt FEOrder)
inline

1d quadrature rule order

◆ C_num1DQuadLPSP()

dftfe::uInt dftfe::C_num1DQuadLPSP ( dftfe::uInt FEOrder)
inline

1d quadrature rule order for local part of pseudopotential

◆ C_num1DQuadNLPSP()

dftfe::uInt dftfe::C_num1DQuadNLPSP ( dftfe::uInt FEOrder)
inline

1d quadrature rule order for non-local part of pseudopotential

◆ C_num1DQuadSmearedCharge()

dftfe::uInt dftfe::C_num1DQuadSmearedCharge ( )
constexpr

1d quad rule smeared nuclear charge

◆ C_num1DQuadSmearedChargeHigh()

dftfe::uInt dftfe::C_num1DQuadSmearedChargeHigh ( )
constexpr

1d quad rule smeared nuclear charge if a very coarse FE mesh is used (e.g. softer pseudopotentials)

◆ C_num1DQuadSmearedChargeStress()

dftfe::uInt dftfe::C_num1DQuadSmearedChargeStress ( )
constexpr

1d quad rule smeared nuclear charge if cell stress calculation is on

◆ C_numCopies1DQuadLPSP()

dftfe::uInt dftfe::C_numCopies1DQuadLPSP ( )
constexpr

number of copies 1d quad rule local PSP

◆ C_numCopies1DQuadNLPSP()

dftfe::uInt dftfe::C_numCopies1DQuadNLPSP ( )
constexpr

number of copies 1d quad rule non-local PSP

◆ C_numCopies1DQuadSmearedCharge()

dftfe::uInt dftfe::C_numCopies1DQuadSmearedCharge ( )
constexpr

number of copies 1d quad rule smeared nuclear charge

◆ C_numCopies1DQuadSmearedChargeHigh()

dftfe::uInt dftfe::C_numCopies1DQuadSmearedChargeHigh ( )
constexpr

number of copies 1d quad rule smeared nuclear charge if a very coarse FE mesh is used (e.g. softer pseudpotentials)

◆ C_numCopies1DQuadSmearedChargeStress()

dftfe::uInt dftfe::C_numCopies1DQuadSmearedChargeStress ( )
constexpr

number of copies 1d quad rule smeared nuclear charge if cell stress calculation is on

◆ Cblacs_barrier()

void dftfe::Cblacs_barrier ( int ,
const char *  )

This routines holds up execution of all processes within the indicated scope until they have all called the routine.

◆ Cblacs_exit()

void dftfe::Cblacs_exit ( int error_code)

Free all BLACS contexts and releases all allocated memory.

◆ Cblacs_get()

void dftfe::Cblacs_get ( int icontxt,
int what,
int * val )

Return internal BLACS value in val based on the input what and icontxt. The most common use is in retrieving a default system context (what = 0, icontxt is ignored) to be used in BLACS_GRIDINIT or BLACS_GRIDMAP.

https://www.ibm.com/support/knowledgecenter/en/SSNR5K_4.2.0/com.ibm.cluster.pessl.v4r2.pssl100.doc/am6gr_dbget.htm

◆ Cblacs_gridexit()

void dftfe::Cblacs_gridexit ( int context)

Release a BLACS context.

◆ Cblacs_gridinfo()

void dftfe::Cblacs_gridinfo ( int context,
int * grid_height,
int * grid_width,
int * grid_row,
int * grid_col )

◆ Cblacs_gridinit()

void dftfe::Cblacs_gridinit ( int * context,
const char * order,
int grid_height,
int grid_width )

Map the processes sequentially in row-major or column-major order into the process grid. Input arguments must be the same on every process.

On return, context is the integer handle to the BLACS context, whereas on entry it is a system context to be used in creating the BLACS context.

https://www.ibm.com/support/knowledgecenter/en/SSNR5K_4.2.0/com.ibm.cluster.pessl.v4r2.pssl100.doc/am6gr_dbint.htm

◆ Cblacs_pcoord()

void dftfe::Cblacs_pcoord ( int ictxt,
int pnum,
int * prow,
int * pcol )

Given the system process number, return the row and column coordinates in the BLACS' process grid.

◆ Cblacs_pinfo()

void dftfe::Cblacs_pinfo ( int * rank,
int * nprocs )

◆ Cdgerv2d()

void dftfe::Cdgerv2d ( int context,
int M,
int N,
double * A,
int lda,
int rsrc,
int csrc )

Receives a message from a process @prsrc, csrc into a general rectangular matrix.

https://software.intel.com/en-us/mkl-developer-reference-c-gerv2d

◆ Cdgesd2d()

void dftfe::Cdgesd2d ( int context,
int M,
int N,
double * A,
int lda,
int rdest,
int cdest )

Sends the general rectangular matrix A to the destination process rdest cdest in the process grid.

https://software.intel.com/en-us/mkl-developer-reference-c-2018-beta-gesd2d

◆ Cgerv2d() [1/3]

void dftfe::Cgerv2d ( int context,
int M,
int N,
double * A,
int lda,
int rsrc,
int csrc )
inline

◆ Cgerv2d() [2/3]

void dftfe::Cgerv2d ( int context,
int M,
int N,
float * A,
int lda,
int rsrc,
int csrc )
inline

◆ Cgerv2d() [3/3]

template<typename number>
void dftfe::Cgerv2d ( int ,
int ,
int ,
number * ,
int ,
int ,
int  )
inline

◆ Cgesd2d() [1/3]

void dftfe::Cgesd2d ( int context,
int M,
int N,
double * A,
int lda,
int rdest,
int cdest )
inline

◆ Cgesd2d() [2/3]

void dftfe::Cgesd2d ( int context,
int M,
int N,
float * A,
int lda,
int rdest,
int cdest )
inline

◆ Cgesd2d() [3/3]

template<typename number>
void dftfe::Cgesd2d ( int ,
int ,
int ,
number * ,
int ,
int ,
int  )
inline

◆ computeAuxProjectedDensityMatrixFromPSI()

template<typename NumberType, dftfe::utils::MemorySpace memorySpace>
void dftfe::computeAuxProjectedDensityMatrixFromPSI ( const dftfe::utils::MemoryStorage< NumberType, memorySpace > & X,
const dftfe::uInt totalNumWaveFunctions,
const std::vector< std::vector< double > > & partialOccupancies,
std::shared_ptr< dftfe::basis::FEBasisOperations< NumberType, double, memorySpace > > & basisOperationsPtr,
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > & BLASWrapperPtr,
const dftfe::uInt matrixFreeDofhandlerIndex,
const dftfe::uInt quadratureIndex,
const std::vector< double > & kPointWeights,
AuxDensityMatrix< memorySpace > & auxDensityMatrixRepresentation,
const MPI_Comm & mpiCommParent,
const MPI_Comm & domainComm,
const MPI_Comm & interpoolcomm,
const MPI_Comm & interBandGroupComm,
const dftParameters & dftParams )

◆ computeRhoFirstOrderResponse()

template<typename NumberType, dftfe::utils::MemorySpace memorySpace>
void dftfe::computeRhoFirstOrderResponse ( const dftfe::utils::MemoryStorage< NumberType, memorySpace > & X,
const dftfe::utils::MemoryStorage< NumberType, memorySpace > & XPrime,
const dftfe::uInt totalNumWaveFunctions,
const std::vector< std::vector< double > > & densityMatDerFermiEnergy,
std::shared_ptr< dftfe::basis::FEBasisOperations< NumberType, double, memorySpace > > & basisOperationsPtr,
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > & BLASWrapperPtr,
const dftfe::uInt matrixFreeDofhandlerIndex,
const dftfe::uInt quadratureIndex,
const std::vector< double > & kPointWeights,
std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > & rhoResponseValuesHam,
std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > & rhoResponseValuesFermiEnergy,
const MPI_Comm & mpiCommParent,
const MPI_Comm & interpoolcomm,
const MPI_Comm & interBandGroupComm,
const dftParameters & dftParams )

◆ computeRhoFromPSI()

template<typename NumberType, dftfe::utils::MemorySpace memorySpace>
void dftfe::computeRhoFromPSI ( const dftfe::utils::MemoryStorage< NumberType, memorySpace > * X,
const dftfe::uInt totalNumWaveFunctions,
const std::vector< std::vector< double > > & partialOccupancies,
std::shared_ptr< dftfe::basis::FEBasisOperations< NumberType, double, memorySpace > > & basisOperationsPtr,
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > & BLASWrapperPtr,
const dftfe::uInt matrixFreeDofhandlerIndex,
const dftfe::uInt quadratureIndex,
const std::vector< double > & kPointCoords,
const std::vector< double > & kPointWeights,
std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > & densityValues,
std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > & gradDensityValues,
std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > & tauValues,
const bool isEvaluateGradRho,
const bool isEvaluateTau,
const MPI_Comm & mpiCommParent,
const MPI_Comm & interpoolcomm,
const MPI_Comm & interBandGroupComm,
const dftParameters & dftParams )

◆ computeRhoGradRhoFromInterpolatedValues()

template<typename NumberType>
void dftfe::computeRhoGradRhoFromInterpolatedValues ( std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > & BLASWrapperPtr,
const std::pair< dftfe::uInt, dftfe::uInt > cellRange,
const std::pair< dftfe::uInt, dftfe::uInt > vecRange,
const dftfe::uInt nQuadsPerCell,
const dftfe::uInt nCells,
double * partialOccupVec,
NumberType * wfcQuadPointData,
NumberType * gradWfcQuadPointData,
double * rhoCellsWfcContributions,
double * gradRhoCellsWfcContributions,
double * rho,
double * gradRho,
const bool isEvaluateGradRho,
const bool isNonCollin,
const bool hasSOC )

◆ computeRhoResponseFromInterpolatedValues()

template<typename NumberType>
void dftfe::computeRhoResponseFromInterpolatedValues ( std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > & BLASWrapperPtr,
const std::pair< dftfe::uInt, dftfe::uInt > cellRange,
const std::pair< dftfe::uInt, dftfe::uInt > vecRange,
const dftfe::uInt nQuadsPerCell,
double * onesVec,
double * partialOccupPrimeVec,
NumberType * wfcQuadPointData,
NumberType * wfcPrimeQuadPointData,
double * rhoResponseHamCellsWfcContributions,
double * rhoResponseFermiEnergyCellsWfcContributions,
double * rhoResponseHam,
double * rhoResponseFermiEnergy )

◆ computeTauFromInterpolatedValues()

template<typename NumberType>
void dftfe::computeTauFromInterpolatedValues ( std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > & BLASWrapperPtr,
const std::pair< dftfe::uInt, dftfe::uInt > cellRange,
const std::pair< dftfe::uInt, dftfe::uInt > vecRange,
const dftfe::uInt nQuadsPerCell,
double * partialOccupVec,
double * kCoord,
NumberType * wfcQuadPointData,
NumberType * gradWfcQuadPointData,
double * kineticEnergyDensityCellsWfcContributions,
double * tau,
const bool isNonCollin,
const bool hasSOC )

◆ computeWavefuncEshelbyContributionLocal()

void dftfe::computeWavefuncEshelbyContributionLocal ( std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > & BLASWrapperPtr,
const std::pair< dftfe::uInt, dftfe::uInt > cellRange,
const std::pair< dftfe::uInt, dftfe::uInt > vecRange,
const dftfe::uInt nQuadsPerCell,
const double kcoordx,
const double kcoordy,
const double kcoordz,
double * partialOccupVec,
double * eigenValuesVec,
dataTypes::number * wfcQuadPointData,
dataTypes::number * gradWfcQuadPointData,
double * eshelbyContributions,
double * eshelbyTensor,
const bool floatingNuclearCharges,
const bool isTauMGGA,
double * pdexTauLocallyOwnedCellsBlock,
double * pdecTauLocallyOwnedCellsBlock,
const bool computeForce,
const bool computeStress )

◆ createFEEvaluationObject()

template<dftfe::Int components, class... Args>
FEEvaluationObject< components > dftfe::createFEEvaluationObject ( dftfe::Int feOrder,
dftfe::Int quadrature,
Args &&... args )
inline

◆ createKerkerSolverProblemObject()

template<class... Args>
kerkerSolverProblemObject dftfe::createKerkerSolverProblemObject ( dftfe::Int feOrder,
Args &&... args )
inline

◆ createMatrixFreeObject()

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, class... Args>
MatrixFreeObject dftfe::createMatrixFreeObject ( std::uint32_t nDofsPerDim,
Args &&... args )
inline

Factory function to create MatrixFree object.

◆ createPoissonSolverProblemObject()

template<class... Args>
poissonSolverProblemObject dftfe::createPoissonSolverProblemObject ( dftfe::Int feOrderElectro,
Args &&... args )
inline

◆ Csgerv2d()

void dftfe::Csgerv2d ( int context,
int M,
int N,
float * A,
int lda,
int rsrc,
int csrc )

◆ Csgesd2d()

void dftfe::Csgesd2d ( int context,
int M,
int N,
float * A,
int lda,
int rdest,
int cdest )

◆ Csys2blacs_handle()

int dftfe::Csys2blacs_handle ( MPI_Comm comm)

Get BLACS context from MPI comm.

◆ descinit_()

void dftfe::descinit_ ( int * desc,
const int * m,
const int * n,
const int * mb,
const int * nb,
const int * irsrc,
const int * icsrc,
const int * ictxt,
const int * lld,
int * info )

Initialize the descriptor vector with the 8 input arguments

◆ encodeFEEvaluation()

dftfe::Int dftfe::encodeFEEvaluation ( dftfe::Int a,
dftfe::Int b )
constexpr

◆ iceil_()

int dftfe::iceil_ ( const int * i1,
const int * i2 )

Return the ceiling of the division of two integers.

http://www.netlib.org/scalapack/explore-html/df/d07/iceil_8f_source.html

◆ ilcm_()

int dftfe::ilcm_ ( const int * M,
const int * N )

Compute the Least Common Multiple (LCM) of two positive integers M and N. In fact the routine Compute the greatest common divisor (GCD) and use the fact that M*N = GCD*LCM.

http://www.netlib.org/scalapack/explore-html/d0/d9b/ilcm_8f_source.html

◆ indxg2p_()

int dftfe::indxg2p_ ( const int * glob,
const int * nb,
const int * iproc,
const int * isproc,
const int * nprocs )

Compute the process coordinate which possesses the entry of a distributed matrix specified by a global index

◆ indxl2g_()

int dftfe::indxl2g_ ( const int * indxloc,
const int * nb,
const int * iproc,
const int * isrcproc,
const int * nprocs )

Compute the global index of a distributed matrix entry pointed to by the local index indxloc of the process indicated by iproc.

Parameters
indxlocThe local index of the distributed matrix entry.
nbBlock size, size of the blocks the distributed matrix is split into.
iprocThe coordinate of the process whose local array row or column is to be determined
isrcprocThe coordinate of the process that possesses the first row/column of the distributed matrix
nprocsThe total number processes over which the distributed matrix is distributed

◆ lworkFromWork() [1/3]

int dftfe::lworkFromWork ( std::vector< double > & work)
inline

◆ lworkFromWork() [2/3]

int dftfe::lworkFromWork ( std::vector< float > & work)
inline

◆ lworkFromWork() [3/3]

int dftfe::lworkFromWork ( std::vector< std::complex< double > > & work)
inline

◆ nlpWfcContractionContribution()

void dftfe::nlpWfcContractionContribution ( std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > & BLASWrapperPtr,
const dftfe::uInt wfcBlockSize,
const dftfe::uInt blockSizeNlp,
const dftfe::uInt numQuadsNLP,
const dftfe::uInt startingIdNlp,
const dataTypes::number * projectorKetTimesVectorPar,
const dataTypes::number * gradPsiOrPsiQuadValuesNLP,
const dftfe::uInt * nonTrivialIdToElemIdMap,
const dftfe::uInt * projecterKetTimesFlattenedVectorLocalIds,
dataTypes::number * nlpContractionContribution )

◆ numroc_()

int dftfe::numroc_ ( const int * n,
const int * nb,
const int * iproc,
const int * isproc,
const int * nprocs )

Compute how many rows and columns each process owns (NUMber of Rows Or Columns).

https://www.ibm.com/support/knowledgecenter/SSNR5K_4.2.0/com.ibm.cluster.pessl.v4r2.pssl100.doc/am6gr_dnumy.htm

◆ pdgeadd_()

void dftfe::pdgeadd_ ( const char * transa,
const int * m,
const int * n,
const double * alpha,
const double * A,
const int * IA,
const int * JA,
const int * DESCA,
const double * beta,
double * C,
const int * IC,
const int * JC,
const int * DESCC )

◆ pdgels_()

void dftfe::pdgels_ ( const char * trans,
const int * m,
const int * n,
const int * nrhs,
double * A,
const int * ia,
const int * ja,
const int * desca,
double * B,
const int * ib,
const int * jb,
const int * descb,
double * work,
int * lwork,
int * info )

◆ pdgemm_()

void dftfe::pdgemm_ ( const char * transa,
const char * transb,
const int * m,
const int * n,
const int * k,
const double * alpha,
const double * A,
const int * IA,
const int * JA,
const int * DESCA,
const double * B,
const int * IB,
const int * JB,
const int * DESCB,
const double * beta,
double * C,
const int * IC,
const int * JC,
const int * DESCC )

Perform one of the matrix-matrix operations:

\begin{align*}\mathrm{sub}(C) &\dealcoloneq \alpha
op(\mathrm{sub}(A))op(\mathrm{sub}(B))
                           + \beta \mathrm{sub}(C), \\
\mathrm{sub}(C) &\dealcoloneq \alpha
op(\mathrm{sub}(A))op(\mathrm{sub}(B))
                           + beta sub(C),
\end{align*}

where $\mathrm{sub}(C)$ denotes C(IC:IC+M-1,JC:JC+N-1), and, $op(X)$ is one of $op(X) = X$ or $op(X) = X^T$.

◆ pdgemr2d_()

void dftfe::pdgemr2d_ ( const int * m,
const int * n,
const double * A,
const int * ia,
const int * ja,
const int * desca,
double * B,
const int * ib,
const int * jb,
const int * descb,
const int * ictxt )

Copies the content of a general rectangular distributed matrix A to another distributed matrix B It is not required that the matrices A and B have the same process grid or block size, e.g. copying a matrix from a one-dimensional to a two-dimensional process grid ictxt is a context which is at least a union of all processes in context A and B

◆ pdgesv_()

void dftfe::pdgesv_ ( const int * n,
const int * nrhs,
double * A,
const int * ia,
const int * ja,
const int * desca,
int * ipiv,
double * B,
const int * ib,
const int * jb,
const int * descb,
int * info )

Compute the solution to a real system of linear equations

◆ pdgesvd_()

void dftfe::pdgesvd_ ( const char * jobu,
const char * jobvt,
const int * m,
const int * n,
double * A,
const int * ia,
const int * ja,
const int * desca,
double * S,
double * U,
const int * iu,
const int * ju,
const int * descu,
double * VT,
const int * ivt,
const int * jvt,
const int * descvt,
double * work,
int * lwork,
int * info )

◆ pdgetrf_()

void dftfe::pdgetrf_ ( const int * m,
const int * n,
double * A,
const int * IA,
const int * JA,
const int * DESCA,
int * ipiv,
int * INFO )

◆ pdgetri_()

void dftfe::pdgetri_ ( const int * N,
double * A,
const int * IA,
const int * JA,
const int * DESCA,
const int * ipiv,
double * work,
int * lwork,
int * iwork,
int * liwork,
int * info )

PDGETRI computes the inverse of a distributed matrix using the LU factorization computed by PDGETRF. This method inverts U and then computes the inverse of sub( A ) = A(IA:IA+N-1,JA:JA+N-1) denoted InvA by solving the system InvA*L = inv(U) for InvA.

http://www.netlib.org/scalapack/explore-html/d3/df3/pdgetri_8f_source.html https://www.ibm.com/support/knowledgecenter/SSNR5K_4.2.0/com.ibm.cluster.pessl.v4r2.pssl100.doc/am6gr_lgetri.htm

◆ pdlacpy_()

void dftfe::pdlacpy_ ( const char * uplo,
const int * m,
const int * n,
const double * A,
const int * ia,
const int * ja,
const int * desca,
double * B,
const int * ib,
const int * jb,
const int * descb )

Copy all or a part of a distributed matrix A to another distributed matrix B. No communication is performed, pdlacpy performs a local copy $\mathrm{sub}(A) \dealcoloneq \mathrm{sub}(B)$, where $\mathrm{sub}(A)$ denotes $A(ia:ia+m-1, ja:ja+n-1)$ and $\mathrm{sub}(B)$ denotes $B(ib:ib+m-1, jb:jb+n-1)$.

◆ pdlamch_()

double dftfe::pdlamch_ ( const int * ictxt,
const char * cmach )

helper routines determining machine precision

◆ pdlange_()

double dftfe::pdlange_ ( char const * norm,
const int * m,
const int * n,
const double * A,
const int * ia,
const int * ja,
const int * desca,
double * work )

Return the value of the one norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a distributed matrix

◆ pdlansy_()

double dftfe::pdlansy_ ( const char * norm,
const char * uplo,
const int * N,
const double * A,
const int * IA,
const int * JA,
const int * DESCA,
double * work )

◆ pdpocon_()

void dftfe::pdpocon_ ( const char * uplo,
const int * N,
const double * A,
const int * IA,
const int * JA,
const int * DESCA,
const double * ANORM,
double * RCOND,
double * WORK,
const int * LWORK,
int * IWORK,
const int * LIWORK,
int * INFO )

◆ pdpotrf_()

void dftfe::pdpotrf_ ( const char * UPLO,
const int * N,
double * A,
const int * IA,
const int * JA,
const int * DESCA,
int * INFO )

Compute the Cholesky factorization of an N-by-N real symmetric positive definite distributed matrix sub( A ) denoting A(IA:IA+N-1, JA:JA+N-1).

http://www.netlib.org/scalapack/explore-html/d5/d9e/pdpotrf_8f_source.html https://www.ibm.com/support/knowledgecenter/SSNR5K_4.2.0/com.ibm.cluster.pessl.v4r2.pssl100.doc/am6gr_lpotrf.htm

◆ pdpotri_()

void dftfe::pdpotri_ ( const char * UPLO,
const int * N,
double * A,
const int * IA,
const int * JA,
const int * DESCA,
int * INFO )

Compute the inverse of a real symmetric positive definite distributed matrix sub( A ) = A(IA:IA+N-1,JA:JA+N-1) using the Cholesky factorization sub( A ) = U**T*U or L*L**T computed by PDPOTRF.

http://www.netlib.org/scalapack/explore-html/d2/d44/pdpotri_8f_source.html https://www.ibm.com/support/knowledgecenter/SSNR5K_4.2.0/com.ibm.cluster.pessl.v4r2.pssl100.doc/am6gr_lpotri.htm https://software.intel.com/en-us/mkl-developer-reference-c-p-potri

◆ pdsyev_()

void dftfe::pdsyev_ ( const char * jobz,
const char * uplo,
const int * m,
double * A,
const int * ia,
const int * ja,
int * desca,
double * w,
double * z,
const int * iz,
const int * jz,
int * descz,
double * work,
const int * lwork,
int * info )

Compute all eigenvalues and, optionally, eigenvectors of a real symmetric matrix A by calling the recommended sequence of ScaLAPACK routines. In its present form, the routine assumes a homogeneous system and makes no checks for consistency of the eigenvalues or eigenvectors across the different processes. Because of this, it is possible that a heterogeneous system may return incorrect results without any error messages.

http://www.netlib.org/scalapack/explore-html/d0/d1a/pdsyev_8f.html https://www.ibm.com/support/knowledgecenter/SSNR5K_4.2.0/com.ibm.cluster.pessl.v4r2.pssl100.doc/am6gr_lsyev.htm#lsyev

◆ pdsyevr_()

void dftfe::pdsyevr_ ( const char * jobz,
const char * range,
const char * uplo,
const int * n,
double * A,
const int * IA,
const int * JA,
const int * DESCA,
const double * VL,
const double * VU,
const int * IL,
const int * IU,
int * m,
int * nz,
double * w,
double * Z,
const int * IZ,
const int * JZ,
const int * DESCZ,
double * work,
int * lwork,
int * iwork,
int * liwork,
int * info )

psyevr computes selected eigenvalues and, optionally, eigenvectors of a real symmetric matrix A using a parallel implementation of the MRR algorithm. Eigenvalues/vectors can be selected by specifying a range of values or a range of indices for the desired eigenvalues.

◆ pdsyevx_()

void dftfe::pdsyevx_ ( const char * jobz,
const char * range,
const char * uplo,
const int * n,
double * A,
const int * ia,
const int * ja,
const int * desca,
const double * VL,
const double * VU,
const int * il,
const int * iu,
const double * abstol,
const int * m,
const int * nz,
double * w,
double * orfac,
double * Z,
const int * iz,
const int * jz,
const int * descz,
double * work,
int * lwork,
int * iwork,
int * liwork,
int * ifail,
int * iclustr,
double * gap,
int * info )

psyevx computes selected eigenvalues and, optionally, eigenvectors of a real symmetric matrix A. Eigenvalues/vectors can be selected by specifying a range of values or a range of indices for the desired eigenvalues.

◆ pdtran_()

void dftfe::pdtran_ ( const int * m,
const int * n,
const double * alpha,
const double * A,
const int * IA,
const int * JA,
const int * DESCA,
const double * beta,
double * C,
const int * IC,
const int * JC,
const int * DESCC )

Routine to transpose a matrix: C = beta C + alpha A^T

◆ pdtrtri_()

void dftfe::pdtrtri_ ( const char * UPLO,
const char * DIAG,
const int * N,
double * A,
const int * IA,
const int * JA,
const int * DESCA,
int * INFO )

◆ pgeadd() [1/4]

template<typename number>
void dftfe::pgeadd ( const char * ,
const int * ,
const int * ,
const number * ,
const number * ,
const int * ,
const int * ,
const int * ,
const number * ,
number * ,
const int * ,
const int * ,
const int *  )
inline

◆ pgeadd() [2/4]

void dftfe::pgeadd ( const char * transa,
const int * m,
const int * n,
const double * alpha,
const double * A,
const int * IA,
const int * JA,
const int * DESCA,
const double * beta,
double * C,
const int * IC,
const int * JC,
const int * DESCC )
inline

◆ pgeadd() [3/4]

void dftfe::pgeadd ( const char * transa,
const int * m,
const int * n,
const float * alpha,
const float * A,
const int * IA,
const int * JA,
const int * DESCA,
const float * beta,
float * C,
const int * IC,
const int * JC,
const int * DESCC )
inline

◆ pgeadd() [4/4]

void dftfe::pgeadd ( const char * transa,
const int * m,
const int * n,
const std::complex< double > * alpha,
const std::complex< double > * A,
const int * IA,
const int * JA,
const int * DESCA,
const std::complex< double > * beta,
std::complex< double > * C,
const int * IC,
const int * JC,
const int * DESCC )
inline

◆ pgels() [1/3]

template<typename number>
void dftfe::pgels ( const char * ,
const int * ,
const int * ,
const int * ,
number * ,
const int * ,
const int * ,
const int * ,
number * ,
const int * ,
const int * ,
const int * ,
number * ,
int * ,
int *  )
inline

◆ pgels() [2/3]

void dftfe::pgels ( const char * trans,
const int * m,
const int * n,
const int * nrhs,
double * A,
const int * ia,
const int * ja,
const int * desca,
double * B,
const int * ib,
const int * jb,
const int * descb,
double * work,
int * lwork,
int * info )
inline

◆ pgels() [3/3]

void dftfe::pgels ( const char * trans,
const int * m,
const int * n,
const int * nrhs,
float * A,
const int * ia,
const int * ja,
const int * desca,
float * B,
const int * ib,
const int * jb,
const int * descb,
float * work,
int * lwork,
int * info )
inline

◆ pgemm() [1/4]

template<typename number>
void dftfe::pgemm ( const char * ,
const char * ,
const int * ,
const int * ,
const int * ,
const number * ,
const number * ,
const int * ,
const int * ,
const int * ,
const number * ,
const int * ,
const int * ,
const int * ,
const number * ,
number * ,
const int * ,
const int * ,
const int *  )
inline

◆ pgemm() [2/4]

void dftfe::pgemm ( const char * transa,
const char * transb,
const int * m,
const int * n,
const int * k,
const double * alpha,
const double * A,
const int * IA,
const int * JA,
const int * DESCA,
const double * B,
const int * IB,
const int * JB,
const int * DESCB,
const double * beta,
double * C,
const int * IC,
const int * JC,
const int * DESCC )
inline

◆ pgemm() [3/4]

void dftfe::pgemm ( const char * transa,
const char * transb,
const int * m,
const int * n,
const int * k,
const float * alpha,
const float * A,
const int * IA,
const int * JA,
const int * DESCA,
const float * B,
const int * IB,
const int * JB,
const int * DESCB,
const float * beta,
float * C,
const int * IC,
const int * JC,
const int * DESCC )
inline

◆ pgemm() [4/4]

void dftfe::pgemm ( const char * transa,
const char * transb,
const int * m,
const int * n,
const int * k,
const std::complex< double > * alpha,
const std::complex< double > * A,
const int * IA,
const int * JA,
const int * DESCA,
const std::complex< double > * B,
const int * IB,
const int * JB,
const int * DESCB,
const std::complex< double > * beta,
std::complex< double > * C,
const int * IC,
const int * JC,
const int * DESCC )
inline

◆ pgemr2d() [1/3]

template<typename number>
void dftfe::pgemr2d ( const int * ,
const int * ,
const number * ,
const int * ,
const int * ,
const int * ,
number * ,
const int * ,
const int * ,
const int * ,
const int *  )
inline

◆ pgemr2d() [2/3]

void dftfe::pgemr2d ( const int * m,
const int * n,
const double * A,
const int * ia,
const int * ja,
const int * desca,
double * B,
const int * ib,
const int * jb,
const int * descb,
const int * ictxt )
inline

◆ pgemr2d() [3/3]

void dftfe::pgemr2d ( const int * m,
const int * n,
const float * A,
const int * ia,
const int * ja,
const int * desca,
float * B,
const int * ib,
const int * jb,
const int * descb,
const int * ictxt )
inline

◆ pgesv() [1/3]

template<typename number>
void dftfe::pgesv ( const int * ,
const int * ,
number * ,
const int * ,
const int * ,
const int * ,
int * ,
number * ,
const int * ,
const int * ,
const int * ,
int *  )
inline

◆ pgesv() [2/3]

void dftfe::pgesv ( const int * n,
const int * nrhs,
double * A,
const int * ia,
const int * ja,
const int * desca,
int * ipiv,
double * B,
const int * ib,
const int * jb,
const int * descb,
int * info )
inline

◆ pgesv() [3/3]

void dftfe::pgesv ( const int * n,
const int * nrhs,
float * A,
const int * ia,
const int * ja,
const int * desca,
int * ipiv,
float * B,
const int * ib,
const int * jb,
const int * descb,
int * info )
inline

◆ pgesvd() [1/3]

template<typename number>
void dftfe::pgesvd ( const char * ,
const char * ,
const int * ,
const int * ,
number * ,
const int * ,
const int * ,
const int * ,
number * ,
number * ,
const int * ,
const int * ,
const int * ,
number * ,
const int * ,
const int * ,
const int * ,
number * ,
int * ,
int *  )
inline

◆ pgesvd() [2/3]

void dftfe::pgesvd ( const char * jobu,
const char * jobvt,
const int * m,
const int * n,
double * A,
const int * ia,
const int * ja,
const int * desca,
double * S,
double * U,
const int * iu,
const int * ju,
const int * descu,
double * VT,
const int * ivt,
const int * jvt,
const int * descvt,
double * work,
int * lwork,
int * info )
inline

◆ pgesvd() [3/3]

void dftfe::pgesvd ( const char * jobu,
const char * jobvt,
const int * m,
const int * n,
float * A,
const int * ia,
const int * ja,
const int * desca,
float * S,
float * U,
const int * iu,
const int * ju,
const int * descu,
float * VT,
const int * ivt,
const int * jvt,
const int * descvt,
float * work,
int * lwork,
int * info )
inline

◆ pgetrf() [1/4]

template<typename number>
void dftfe::pgetrf ( const int * ,
const int * ,
number * ,
const int * ,
const int * ,
const int * ,
int * ,
int *  )
inline

◆ pgetrf() [2/4]

void dftfe::pgetrf ( const int * m,
const int * n,
double * A,
const int * IA,
const int * JA,
const int * DESCA,
int * ipiv,
int * INFO )
inline

◆ pgetrf() [3/4]

void dftfe::pgetrf ( const int * m,
const int * n,
float * A,
const int * IA,
const int * JA,
const int * DESCA,
int * ipiv,
int * INFO )
inline

◆ pgetrf() [4/4]

void dftfe::pgetrf ( const int * m,
const int * n,
std::complex< double > * A,
const int * IA,
const int * JA,
const int * DESCA,
int * ipiv,
int * INFO )
inline

◆ pgetri() [1/4]

template<typename number>
void dftfe::pgetri ( const int * ,
number * ,
const int * ,
const int * ,
const int * ,
const int * ,
number * ,
int * ,
int * ,
int * ,
int *  )
inline

◆ pgetri() [2/4]

void dftfe::pgetri ( const int * N,
double * A,
const int * IA,
const int * JA,
const int * DESCA,
const int * ipiv,
double * work,
int * lwork,
int * iwork,
int * liwork,
int * info )
inline

◆ pgetri() [3/4]

void dftfe::pgetri ( const int * N,
float * A,
const int * IA,
const int * JA,
const int * DESCA,
const int * ipiv,
float * work,
int * lwork,
int * iwork,
int * liwork,
int * info )
inline

◆ pgetri() [4/4]

void dftfe::pgetri ( const int * N,
std::complex< double > * A,
const int * IA,
const int * JA,
const int * DESCA,
const int * ipiv,
std::complex< double > * work,
int * lwork,
int * iwork,
int * liwork,
int * info )
inline

◆ placpy() [1/3]

template<typename number>
void dftfe::placpy ( const char * ,
const int * ,
const int * ,
const number * ,
const int * ,
const int * ,
const int * ,
number * ,
const int * ,
const int * ,
const int *  )
inline

◆ placpy() [2/3]

void dftfe::placpy ( const char * uplo,
const int * m,
const int * n,
const double * A,
const int * ia,
const int * ja,
const int * desca,
double * B,
const int * ib,
const int * jb,
const int * descb )
inline

◆ placpy() [3/3]

void dftfe::placpy ( const char * uplo,
const int * m,
const int * n,
const float * A,
const int * ia,
const int * ja,
const int * desca,
float * B,
const int * ib,
const int * jb,
const int * descb )
inline

◆ plamch() [1/3]

template<typename number>
void dftfe::plamch ( const int * ,
const char * ,
number &  )
inline

◆ plamch() [2/3]

void dftfe::plamch ( const int * ictxt,
const char * cmach,
double & val )
inline

◆ plamch() [3/3]

void dftfe::plamch ( const int * ictxt,
const char * cmach,
float & val )
inline

◆ plange() [1/3]

template<typename number>
number dftfe::plange ( const char * ,
const int * ,
const int * ,
const number * ,
const int * ,
const int * ,
const int * ,
number *  )
inline

◆ plange() [2/3]

double dftfe::plange ( const char * norm,
const int * m,
const int * n,
const double * A,
const int * ia,
const int * ja,
const int * desca,
double * work )
inline

◆ plange() [3/3]

float dftfe::plange ( const char * norm,
const int * m,
const int * n,
const float * A,
const int * ia,
const int * ja,
const int * desca,
float * work )
inline

◆ plansy() [1/3]

template<typename number>
number dftfe::plansy ( const char * ,
const char * ,
const int * ,
const number * ,
const int * ,
const int * ,
const int * ,
number *  )
inline

◆ plansy() [2/3]

double dftfe::plansy ( const char * norm,
const char * uplo,
const int * N,
const double * A,
const int * IA,
const int * JA,
const int * DESCA,
double * work )
inline

◆ plansy() [3/3]

float dftfe::plansy ( const char * norm,
const char * uplo,
const int * N,
const float * A,
const int * IA,
const int * JA,
const int * DESCA,
float * work )
inline

◆ pplacgv() [1/2]

void dftfe::pplacgv ( const int * N,
double * A,
const int * IA,
const int * JA,
const int * DESCA,
const int * INCX )
inline

◆ pplacgv() [2/2]

void dftfe::pplacgv ( const int * N,
std::complex< double > * A,
const int * IA,
const int * JA,
const int * DESCA,
const int * INCX )
inline

◆ ppocon() [1/3]

template<typename number>
void dftfe::ppocon ( const char * ,
const int * ,
const number * ,
const int * ,
const int * ,
const int * ,
const number * ,
number * ,
number * ,
const int * ,
int * ,
const int * ,
int *  )
inline

◆ ppocon() [2/3]

void dftfe::ppocon ( const char * uplo,
const int * N,
const double * A,
const int * IA,
const int * JA,
const int * DESCA,
const double * ANORM,
double * RCOND,
double * WORK,
const int * LWORK,
int * IWORK,
const int * LIWORK,
int * INFO )
inline

◆ ppocon() [3/3]

void dftfe::ppocon ( const char * uplo,
const int * N,
const float * A,
const int * IA,
const int * JA,
const int * DESCA,
const float * ANORM,
float * RCOND,
float * WORK,
const int * LWORK,
int * IWORK,
const int * LIWORK,
int * INFO )
inline

◆ ppotrf() [1/4]

template<typename number>
void dftfe::ppotrf ( const char * ,
const int * ,
number * ,
const int * ,
const int * ,
const int * ,
int *  )
inline

◆ ppotrf() [2/4]

void dftfe::ppotrf ( const char * UPLO,
const int * N,
double * A,
const int * IA,
const int * JA,
const int * DESCA,
int * INFO )
inline

◆ ppotrf() [3/4]

void dftfe::ppotrf ( const char * UPLO,
const int * N,
float * A,
const int * IA,
const int * JA,
const int * DESCA,
int * INFO )
inline

◆ ppotrf() [4/4]

void dftfe::ppotrf ( const char * UPLO,
const int * N,
std::complex< double > * A,
const int * IA,
const int * JA,
const int * DESCA,
int * INFO )
inline

◆ ppotri() [1/4]

template<typename number>
void dftfe::ppotri ( const char * ,
const int * ,
number * ,
const int * ,
const int * ,
const int * ,
int *  )
inline

◆ ppotri() [2/4]

void dftfe::ppotri ( const char * UPLO,
const int * N,
double * A,
const int * IA,
const int * JA,
const int * DESCA,
int * INFO )
inline

◆ ppotri() [3/4]

void dftfe::ppotri ( const char * UPLO,
const int * N,
float * A,
const int * IA,
const int * JA,
const int * DESCA,
int * INFO )
inline

◆ ppotri() [4/4]

void dftfe::ppotri ( const char * UPLO,
const int * N,
std::complex< double > * A,
const int * IA,
const int * JA,
const int * DESCA,
int * INFO )
inline

◆ psgeadd_()

void dftfe::psgeadd_ ( const char * transa,
const int * m,
const int * n,
const float * alpha,
const float * A,
const int * IA,
const int * JA,
const int * DESCA,
const float * beta,
float * C,
const int * IC,
const int * JC,
const int * DESCC )

◆ psgels_()

void dftfe::psgels_ ( const char * trans,
const int * m,
const int * n,
const int * nrhs,
float * A,
const int * ia,
const int * ja,
const int * desca,
float * B,
const int * ib,
const int * jb,
const int * descb,
float * work,
int * lwork,
int * info )

◆ psgemm_()

void dftfe::psgemm_ ( const char * transa,
const char * transb,
const int * m,
const int * n,
const int * k,
const float * alpha,
const float * A,
const int * IA,
const int * JA,
const int * DESCA,
const float * B,
const int * IB,
const int * JB,
const int * DESCB,
const float * beta,
float * C,
const int * IC,
const int * JC,
const int * DESCC )

◆ psgemr2d_()

void dftfe::psgemr2d_ ( const int * m,
const int * n,
const float * A,
const int * ia,
const int * ja,
const int * desca,
float * B,
const int * ib,
const int * jb,
const int * descb,
const int * ictxt )

◆ psgesv_()

void dftfe::psgesv_ ( const int * n,
const int * nrhs,
float * A,
const int * ia,
const int * ja,
const int * desca,
int * ipiv,
float * B,
const int * ib,
const int * jb,
const int * descb,
int * info )

◆ psgesvd_()

void dftfe::psgesvd_ ( const char * jobu,
const char * jobvt,
const int * m,
const int * n,
float * A,
const int * ia,
const int * ja,
const int * desca,
float * S,
float * U,
const int * iu,
const int * ju,
const int * descu,
float * VT,
const int * ivt,
const int * jvt,
const int * descvt,
float * work,
int * lwork,
int * info )

◆ psgetrf_()

void dftfe::psgetrf_ ( const int * m,
const int * n,
float * A,
const int * IA,
const int * JA,
const int * DESCA,
int * ipiv,
int * INFO )

◆ psgetri_()

void dftfe::psgetri_ ( const int * N,
float * A,
const int * IA,
const int * JA,
const int * DESCA,
const int * ipiv,
float * work,
int * lwork,
int * iwork,
int * liwork,
int * info )

◆ pslacpy_()

void dftfe::pslacpy_ ( const char * uplo,
const int * m,
const int * n,
const float * A,
const int * ia,
const int * ja,
const int * desca,
float * B,
const int * ib,
const int * jb,
const int * descb )

◆ pslamch_()

float dftfe::pslamch_ ( const int * ictxt,
const char * cmach )

◆ pslange_()

float dftfe::pslange_ ( const char * norm,
const int * m,
const int * n,
const float * A,
const int * ia,
const int * ja,
const int * desca,
float * work )

◆ pslansy_()

float dftfe::pslansy_ ( const char * norm,
const char * uplo,
const int * N,
const float * A,
const int * IA,
const int * JA,
const int * DESCA,
float * work )

◆ pspocon_()

void dftfe::pspocon_ ( const char * uplo,
const int * N,
const float * A,
const int * IA,
const int * JA,
const int * DESCA,
const float * ANORM,
float * RCOND,
float * WORK,
const int * LWORK,
int * IWORK,
const int * LIWORK,
int * INFO )

◆ pspotrf_()

void dftfe::pspotrf_ ( const char * UPLO,
const int * N,
float * A,
const int * IA,
const int * JA,
const int * DESCA,
int * INFO )

◆ pspotri_()

void dftfe::pspotri_ ( const char * UPLO,
const int * N,
float * A,
const int * IA,
const int * JA,
const int * DESCA,
int * INFO )

◆ pssyev_()

void dftfe::pssyev_ ( const char * jobz,
const char * uplo,
const int * m,
float * A,
const int * ia,
const int * ja,
int * desca,
float * w,
float * z,
const int * iz,
const int * jz,
int * descz,
float * work,
const int * lwork,
int * info )

◆ pssyevr_()

void dftfe::pssyevr_ ( const char * jobz,
const char * range,
const char * uplo,
const int * n,
float * A,
const int * IA,
const int * JA,
const int * DESCA,
const float * VL,
const float * VU,
const int * IL,
const int * IU,
int * m,
int * nz,
float * w,
float * Z,
const int * IZ,
const int * JZ,
const int * DESCZ,
float * work,
int * lwork,
int * iwork,
int * liwork,
int * info )

◆ pssyevx_()

void dftfe::pssyevx_ ( const char * jobz,
const char * range,
const char * uplo,
const int * n,
float * A,
const int * ia,
const int * ja,
const int * desca,
const float * VL,
const float * VU,
const int * il,
const int * iu,
const float * abstol,
const int * m,
const int * nz,
float * w,
float * orfac,
float * Z,
const int * iz,
const int * jz,
const int * descz,
float * work,
int * lwork,
int * iwork,
int * liwork,
int * ifail,
int * iclustr,
float * gap,
int * info )

◆ pstran_()

void dftfe::pstran_ ( const int * m,
const int * n,
const float * alpha,
const float * A,
const int * IA,
const int * JA,
const int * DESCA,
const float * beta,
float * C,
const int * IC,
const int * JC,
const int * DESCC )

◆ pstrtri_()

void dftfe::pstrtri_ ( const char * UPLO,
const char * DIAG,
const int * N,
float * A,
const int * IA,
const int * JA,
const int * DESCA,
int * INFO )

◆ psyev() [1/4]

template<typename number>
void dftfe::psyev ( const char * ,
const char * ,
const int * ,
number * ,
const int * ,
const int * ,
int * ,
number * ,
number * ,
const int * ,
const int * ,
int * ,
number * ,
const int * ,
int *  )
inline

◆ psyev() [2/4]

void dftfe::psyev ( const char * jobz,
const char * uplo,
const int * m,
double * A,
const int * ia,
const int * ja,
int * desca,
double * w,
double * z,
const int * iz,
const int * jz,
int * descz,
double * work,
const int * lwork,
int * info )
inline

◆ psyev() [3/4]

void dftfe::psyev ( const char * jobz,
const char * uplo,
const int * m,
float * A,
const int * ia,
const int * ja,
int * desca,
float * w,
float * z,
const int * iz,
const int * jz,
int * descz,
float * work,
const int * lwork,
int * info )
inline

◆ psyev() [4/4]

void dftfe::psyev ( const char * jobz,
const char * uplo,
const int * m,
std::complex< double > * A,
const int * ia,
const int * ja,
int * desca,
double * w,
std::complex< double > * z,
const int * iz,
const int * jz,
int * descz,
std::complex< double > * work,
const int * lwork,
int * info )
inline

◆ psyevr() [1/3]

void dftfe::psyevr ( const char * jobz,
const char * range,
const char * uplo,
const int * n,
double * A,
const int * IA,
const int * JA,
const int * DESCA,
const double * VL,
const double * VU,
const int * IL,
const int * IU,
int * m,
int * nz,
double * w,
double * Z,
const int * IZ,
const int * JZ,
const int * DESCZ,
double * work,
int * lwork,
int * iwork,
int * liwork,
int * info )
inline

◆ psyevr() [2/3]

void dftfe::psyevr ( const char * jobz,
const char * range,
const char * uplo,
const int * n,
float * A,
const int * IA,
const int * JA,
const int * DESCA,
const float * VL,
const float * VU,
const int * IL,
const int * IU,
int * m,
int * nz,
float * w,
float * Z,
const int * IZ,
const int * JZ,
const int * DESCZ,
float * work,
int * lwork,
int * iwork,
int * liwork,
int * info )
inline

◆ psyevr() [3/3]

void dftfe::psyevr ( const char * jobz,
const char * range,
const char * uplo,
const int * n,
std::complex< double > * A,
const int * IA,
const int * JA,
const int * DESCA,
const double * VL,
const double * VU,
const int * IL,
const int * IU,
int * m,
int * nz,
double * w,
std::complex< double > * Z,
const int * IZ,
const int * JZ,
const int * DESCZ,
std::complex< double > * work,
int * lwork,
double * rwork,
int * lrwork,
int * iwork,
int * liwork,
int * info )
inline

◆ psyevx() [1/4]

template<typename number>
void dftfe::psyevx ( const char * ,
const char * ,
const char * ,
const int * ,
number * ,
const int * ,
const int * ,
const int * ,
number * ,
number * ,
const int * ,
const int * ,
number * ,
const int * ,
const int * ,
number * ,
number * ,
number * ,
const int * ,
const int * ,
const int * ,
number * ,
int * ,
int * ,
int * ,
int * ,
int * ,
number * ,
int *  )
inline

◆ psyevx() [2/4]

void dftfe::psyevx ( const char * jobz,
const char * range,
const char * uplo,
const int * n,
double * A,
const int * ia,
const int * ja,
const int * desca,
double * VL,
double * VU,
const int * il,
const int * iu,
double * abstol,
const int * m,
const int * nz,
double * w,
double * orfac,
double * Z,
const int * iz,
const int * jz,
const int * descz,
double * work,
int * lwork,
int * iwork,
int * liwork,
int * ifail,
int * iclustr,
double * gap,
int * info )
inline

◆ psyevx() [3/4]

void dftfe::psyevx ( const char * jobz,
const char * range,
const char * uplo,
const int * n,
float * A,
const int * ia,
const int * ja,
const int * desca,
float * VL,
float * VU,
const int * il,
const int * iu,
float * abstol,
const int * m,
const int * nz,
float * w,
float * orfac,
float * Z,
const int * iz,
const int * jz,
const int * descz,
float * work,
int * lwork,
int * iwork,
int * liwork,
int * ifail,
int * iclustr,
float * gap,
int * info )
inline

◆ psyevx() [4/4]

void dftfe::psyevx ( const char * jobz,
const char * range,
const char * uplo,
const int * n,
std::complex< double > * A,
const int * ia,
const int * ja,
const int * desca,
double * VL,
double * VU,
const int * il,
const int * iu,
double * abstol,
const int * m,
const int * nz,
double * w,
double * orfac,
std::complex< double > * Z,
const int * iz,
const int * jz,
const int * descz,
std::complex< double > * work,
int * lwork,
int * iwork,
int * liwork,
int * ifail,
int * iclustr,
double * gap,
int * info )
inline

◆ ptran() [1/3]

template<typename number>
void dftfe::ptran ( const int * ,
const int * ,
const number * ,
const number * ,
const int * ,
const int * ,
const int * ,
const number * ,
number * ,
const int * ,
const int * ,
const int *  )
inline

◆ ptran() [2/3]

void dftfe::ptran ( const int * m,
const int * n,
const double * alpha,
const double * A,
const int * IA,
const int * JA,
const int * DESCA,
const double * beta,
double * C,
const int * IC,
const int * JC,
const int * DESCC )
inline

◆ ptran() [3/3]

void dftfe::ptran ( const int * m,
const int * n,
const float * alpha,
const float * A,
const int * IA,
const int * JA,
const int * DESCA,
const float * beta,
float * C,
const int * IC,
const int * JC,
const int * DESCC )
inline

◆ ptrtri() [1/4]

template<typename number>
void dftfe::ptrtri ( const char * ,
const char * ,
const int * ,
number * ,
const int * ,
const int * ,
const int * ,
int *  )
inline

◆ ptrtri() [2/4]

void dftfe::ptrtri ( const char * UPLO,
const char * DIAG,
const int * N,
double * A,
const int * IA,
const int * JA,
const int * DESCA,
int * INFO )
inline

◆ ptrtri() [3/4]

void dftfe::ptrtri ( const char * UPLO,
const char * DIAG,
const int * N,
float * A,
const int * IA,
const int * JA,
const int * DESCA,
int * INFO )
inline

◆ ptrtri() [4/4]

void dftfe::ptrtri ( const char * UPLO,
const char * DIAG,
const int * N,
std::complex< double > * A,
const int * IA,
const int * JA,
const int * DESCA,
int * INFO )
inline

◆ pzgeadd_()

void dftfe::pzgeadd_ ( const char * transa,
const int * m,
const int * n,
const std::complex< double > * alpha,
const std::complex< double > * A,
const int * IA,
const int * JA,
const int * DESCA,
const std::complex< double > * beta,
std::complex< double > * C,
const int * IC,
const int * JC,
const int * DESCC )

◆ pzgemm_()

void dftfe::pzgemm_ ( const char * transa,
const char * transb,
const int * m,
const int * n,
const int * k,
const std::complex< double > * alpha,
const std::complex< double > * A,
const int * IA,
const int * JA,
const int * DESCA,
const std::complex< double > * B,
const int * IB,
const int * JB,
const int * DESCB,
const std::complex< double > * beta,
std::complex< double > * C,
const int * IC,
const int * JC,
const int * DESCC )

◆ pzgetrf_()

void dftfe::pzgetrf_ ( const int * m,
const int * n,
std::complex< double > * A,
const int * IA,
const int * JA,
const int * DESCA,
int * ipiv,
int * INFO )

◆ pzgetri_()

void dftfe::pzgetri_ ( const int * N,
std::complex< double > * A,
const int * IA,
const int * JA,
const int * DESCA,
const int * ipiv,
std::complex< double > * work,
int * lwork,
int * iwork,
int * liwork,
int * info )

◆ pzheev_()

void dftfe::pzheev_ ( const char * jobz,
const char * uplo,
const int * m,
std::complex< double > * A,
const int * ia,
const int * ja,
int * desca,
double * w,
std::complex< double > * z,
const int * iz,
const int * jz,
int * descz,
std::complex< double > * work,
const int * lwork,
int * info )

◆ pzheevr_()

void dftfe::pzheevr_ ( const char * jobz,
const char * range,
const char * uplo,
const int * n,
std::complex< double > * A,
const int * IA,
const int * JA,
const int * DESCA,
const double * VL,
const double * VU,
const int * IL,
const int * IU,
int * m,
int * nz,
double * w,
std::complex< double > * Z,
const int * IZ,
const int * JZ,
const int * DESCZ,
std::complex< double > * work,
int * lwork,
double * rwork,
int * lrwork,
int * iwork,
int * liwork,
int * info )

◆ pzheevx_()

void dftfe::pzheevx_ ( const char * jobz,
const char * range,
const char * uplo,
const int * n,
std::complex< double > * A,
const int * ia,
const int * ja,
const int * desca,
const double * VL,
const double * VU,
const int * il,
const int * iu,
const double * abstol,
const int * m,
const int * nz,
double * w,
double * orfac,
std::complex< double > * Z,
const int * iz,
const int * jz,
const int * descz,
std::complex< double > * work,
int * lwork,
int * iwork,
int * liwork,
int * ifail,
int * iclustr,
double * gap,
int * info )

◆ pzlacgv_()

void dftfe::pzlacgv_ ( const int * N,
std::complex< double > * A,
const int * IA,
const int * JA,
const int * DESCA,
const int * INCX )

Compute complex conjugate

◆ pzpotrf_()

void dftfe::pzpotrf_ ( const char * UPLO,
const int * N,
std::complex< double > * A,
const int * IA,
const int * JA,
const int * DESCA,
int * INFO )

◆ pzpotri_()

void dftfe::pzpotri_ ( const char * UPLO,
const int * N,
std::complex< double > * A,
const int * IA,
const int * JA,
const int * DESCA,
int * INFO )

◆ pztrtri_()

void dftfe::pztrtri_ ( const char * UPLO,
const char * DIAG,
const int * N,
std::complex< double > * A,
const int * IA,
const int * JA,
const int * DESCA,
int * INFO )

◆ sadd()

void dftfe::sadd ( double * y,
double * x,
const double beta,
const dftfe::uInt size )

◆ scaleXRandComputeNormDevice()

void dftfe::scaleXRandComputeNormDevice ( double * x,
double * d_rvec,
double * d_devSum,
const double * d_qvec,
const double * d_dvec,
const double alpha,
const dftfe::Int N )

Combines scaling and norm.

Variable Documentation

◆ C_AngToBohr

const double dftfe::C_AngToBohr = 1.0 / 0.529177210903

◆ C_bohrToAng

const double dftfe::C_bohrToAng = 0.529177210903

◆ C_haPerBohrToeVPerAng

const double dftfe::C_haPerBohrToeVPerAng = 27.211386245988 / 0.529177210903

◆ C_haToeV

const double dftfe::C_haToeV = 27.211386245988

◆ C_kb

const double dftfe::C_kb = 3.166811429e-06

Boltzmann constant.

◆ C_pi

const double dftfe::C_pi = 3.14159265359