DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
|
Namespaces | |
namespace | AtomicCenteredNonLocalOperatorKernelsDevice |
namespace | basis |
namespace | dataTypes |
namespace | dftUtils |
Contains repeatedly used functions in the KSDFT calculations. | |
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 | force |
namespace | internalEnergy |
namespace | LAPACKSupport |
namespace | linearAlgebra |
namespace | linearAlgebraOperations |
Contains linear algebra functions used in the implementation of an eigen solver. | |
namespace | linearAlgebraOperationsDevice |
namespace | meshGenUtils |
namespace | poissonDevice |
namespace | pseudoUtils |
wrapper to convert pseudopotential file from upf to dftfe format and returns the nonlinear core correction flag | |
namespace | sphericalHarmonicUtils |
namespace | types |
namespace | utils |
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 | AuxDensityMatrixAtomicBasis |
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... | |
struct | ContractedGaussian |
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 | dftBase |
abstract base class for dft 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 | 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 | dispersionCorrection |
Calculates dispersion correction to energy, force and stress. 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 | expConfiningPotential |
class | forceClass |
computes configurational forces in KSDFT More... | |
class | GaussianBasis |
struct | GaussianBasisInfo |
class | geometryOptimizationClass |
class | geoOptCell |
problem class for cell stress relaxation solver. More... | |
class | geoOptIon |
problem class for atomic force relaxation solver. More... | |
class | hubbard |
This class provides the Hubbard correction. This class is an object of ExcDFTPluU Class. 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 | 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 | KohnShamHamiltonianOperator |
class | LBFGSNonLinearSolver |
Class implementing LBFGS optimzation method. More... | |
class | linearSolver |
Abstract linear solver base class. More... | |
struct | matrixFreeDeviceKernels |
class | meshMovementAffineTransform |
Class to update triangulation under affine transformation. More... | |
class | meshMovementClass |
Base class to move triangulation vertices. 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. FEOrder template parameter is used in conjunction with FEOrderElectro to determine the order of the Gauss quadrature rule More... | |
class | ProcessGrid |
class | runParameters |
Namespace which declares the input outer run parameters. More... | |
class | ScaLAPACKMatrix |
Scalapack wrapper adapted from dealii library and extended implementation to complex datatype. More... | |
class | SlaterBasis |
struct | SlaterBasisInfo |
struct | SlaterPrimitive |
class | symmetryClass |
density symmetrization based on irreducible Brillouin zone calculation, only relevant for calculations using point group symmetries More... | |
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. template parameter FEOrderElectro is the finite element polynomial order. More... | |
Typedefs | |
template<typename elem_type> | |
using | distributedCPUVec |
template<typename NumberType> | |
using | distributedCPUMultiVec |
using | size_type = unsigned int |
using | global_size_type = unsigned long int |
Functions | |
template<typename NumberType, dftfe::utils::MemorySpace memorySpace> | |
void | computeAuxProjectedDensityMatrixFromPSI (const dftfe::utils::MemoryStorage< NumberType, memorySpace > &X, const unsigned int 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 unsigned int matrixFreeDofhandlerIndex, const unsigned int 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) |
template<unsigned int FEOrder> | |
constexpr unsigned int | C_num1DQuad () |
1d quadrature rule order | |
constexpr unsigned int | C_num1DQuadSmearedCharge () |
1d quad rule smeared nuclear charge | |
constexpr unsigned int | C_numCopies1DQuadSmearedCharge () |
number of copies 1d quad rule smeared nuclear charge | |
constexpr unsigned int | C_num1DQuadSmearedChargeHigh () |
constexpr unsigned int | C_numCopies1DQuadSmearedChargeHigh () |
constexpr unsigned int | C_num1DQuadSmearedChargeStress () |
1d quad rule smeared nuclear charge if cell stress calculation is on | |
constexpr unsigned int | C_numCopies1DQuadSmearedChargeStress () |
template<unsigned int FEOrder, unsigned int FEOrderElectro> | |
constexpr unsigned int | C_rhoNodalPolyOrder () |
rho nodal polynomial order | |
template<unsigned int FEOrder> | |
constexpr unsigned int | C_num1DQuadNLPSP () |
1d quadrature rule order for non-local part of pseudopotential | |
constexpr unsigned int | C_numCopies1DQuadNLPSP () |
number of copies 1d quad rule non-local PSP | |
template<unsigned int FEOrder> | |
constexpr unsigned int | C_num1DQuadLPSP () |
1d quadrature rule order for local part of pseudopotential | |
constexpr unsigned int | 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 unsigned int 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 unsigned int matrixFreeDofhandlerIndex, const unsigned int quadratureIndex, 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, const bool isEvaluateGradRho, 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< unsigned int, unsigned int > cellRange, const std::pair< unsigned int, unsigned int > vecRange, const unsigned int nQuadsPerCell, double *partialOccupVec, NumberType *wfcQuadPointData, NumberType *gradWfcQuadPointData, double *rhoCellsWfcContributions, double *gradRhoCellsWfcContributions, double *rho, double *gradRho, const bool isEvaluateGradRho) |
template<typename NumberType, dftfe::utils::MemorySpace memorySpace> | |
void | computeRhoFirstOrderResponse (const dftfe::utils::MemoryStorage< NumberType, memorySpace > &X, const dftfe::utils::MemoryStorage< NumberType, memorySpace > &XPrime, const unsigned int 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 unsigned int matrixFreeDofhandlerIndex, const unsigned int 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< unsigned int, unsigned int > cellRange, const std::pair< unsigned int, unsigned int > vecRange, const unsigned int nQuadsPerCell, double *onesVec, double *partialOccupPrimeVec, NumberType *wfcQuadPointData, NumberType *wfcPrimeQuadPointData, double *rhoResponseHamCellsWfcContributions, double *rhoResponseFermiEnergyCellsWfcContributions, double *rhoResponseHam, double *rhoResponseFermiEnergy) |
template<typename NumberType, dftfe::utils::MemorySpace memorySpace> | |
void | computeKineticEnergyDensity (const dftfe::linearAlgebra::BLASWrapper< memorySpace > &BLASWrapperPtr, const dftfe::utils::MemoryStorage< NumberType, memorySpace > *X, const unsigned int totalNumWaveFunctions, const std::vector< std::vector< double > > &partialOccupancies, std::shared_ptr< dftfe::basis::FEBasisOperations< NumberType, double, memorySpace > > &basisOperationsPtr, const unsigned int quadratureIndex, const std::vector< double > &kPointCoords, const std::vector< double > &kPointWeights, dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &kineticEnergyDensityValues, const MPI_Comm &mpiCommParent, const MPI_Comm &interpoolcomm, const MPI_Comm &interBandGroupComm, const MPI_Comm &mpiCommDomain, const dftParameters &dftParams) |
template<typename NumberType> | |
void | computeKineticEnergyDensityFromInterpolatedValues (const dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > &BLASWrapperPtr, const std::pair< unsigned int, unsigned int > cellRange, const std::pair< unsigned int, unsigned int > vecRange, const unsigned int nQuadsPerCell, double *partialOccupVec, double *kcoord, NumberType *wfcQuadPointData, NumberType *gradWfcQuadPointData, double *kineticCellsWfcContributions, double *kineticEnergyDensity, const MPI_Comm &mpiCommDomain) |
void | applyPreconditionAndComputeDotProductDevice (double *d_dvec, double *d_devSum, const double *d_rvec, const double *d_jacobi, const int N) |
Combines precondition and dot product. | |
void | applyPreconditionComputeDotProductAndSaddDevice (double *d_qvec, double *d_devSum, const double *d_rvec, const double *d_jacobi, const 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 int N) |
Combines scaling and norm. | |
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, 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) |
template<typename number> | |
void | psyevr (const char *, const char *, const char *, const int *, number *, const int *, const int *, const int *, const number *, const number *, const int *, const int *, int *, int *, number *, number *, const int *, const int *, const int *, number *, int *, int *, int *, int *) |
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, 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 |
using dftfe::distributedCPUMultiVec |
using dftfe::distributedCPUVec |
using dftfe::global_size_type = unsigned long int |
using dftfe::size_type = unsigned int |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
void dftfe::applyPreconditionAndComputeDotProductDevice | ( | double * | d_dvec, |
double * | d_devSum, | ||
const double * | d_rvec, | ||
const double * | d_jacobi, | ||
const int | N ) |
Combines precondition and dot product.
void dftfe::applyPreconditionComputeDotProductAndSaddDevice | ( | double * | d_qvec, |
double * | d_devSum, | ||
const double * | d_rvec, | ||
const double * | d_jacobi, | ||
const int | N ) |
Combines precondition, sadd and dot product.
|
constexpr |
1d quadrature rule order
|
constexpr |
1d quadrature rule order for local part of pseudopotential
|
constexpr |
1d quadrature rule order for non-local part of pseudopotential
|
constexpr |
1d quad rule smeared nuclear charge
|
constexpr |
1d quad rule smeared nuclear charge if a very coarse FE mesh is used (e.g. softer pseudopotentials)
|
constexpr |
1d quad rule smeared nuclear charge if cell stress calculation is on
|
constexpr |
number of copies 1d quad rule local PSP
|
constexpr |
number of copies 1d quad rule non-local PSP
|
constexpr |
number of copies 1d quad rule smeared nuclear charge
|
constexpr |
number of copies 1d quad rule smeared nuclear charge if a very coarse FE mesh is used (e.g. softer pseudpotentials)
|
constexpr |
number of copies 1d quad rule smeared nuclear charge if cell stress calculation is on
|
constexpr |
rho nodal polynomial order
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.
void dftfe::Cblacs_exit | ( | int | error_code | ) |
Free all BLACS contexts and releases all allocated memory.
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.
void dftfe::Cblacs_gridexit | ( | int | context | ) |
Release a BLACS context.
void dftfe::Cblacs_gridinfo | ( | int | context, |
int * | grid_height, | ||
int * | grid_width, | ||
int * | grid_row, | ||
int * | grid_col ) |
Return the process row and column index.
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.
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.
void dftfe::Cblacs_pinfo | ( | int * | rank, |
int * | nprocs ) |
Determine how many processes are available and the current process rank.
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
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
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
void dftfe::computeAuxProjectedDensityMatrixFromPSI | ( | const dftfe::utils::MemoryStorage< NumberType, memorySpace > & | X, |
const unsigned int | 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 unsigned int | matrixFreeDofhandlerIndex, | ||
const unsigned int | 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 dftfe::computeKineticEnergyDensity | ( | const dftfe::linearAlgebra::BLASWrapper< memorySpace > & | BLASWrapperPtr, |
const dftfe::utils::MemoryStorage< NumberType, memorySpace > * | X, | ||
const unsigned int | totalNumWaveFunctions, | ||
const std::vector< std::vector< double > > & | partialOccupancies, | ||
std::shared_ptr< dftfe::basis::FEBasisOperations< NumberType, double, memorySpace > > & | basisOperationsPtr, | ||
const unsigned int | quadratureIndex, | ||
const std::vector< double > & | kPointCoords, | ||
const std::vector< double > & | kPointWeights, | ||
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & | kineticEnergyDensityValues, | ||
const MPI_Comm & | mpiCommParent, | ||
const MPI_Comm & | interpoolcomm, | ||
const MPI_Comm & | interBandGroupComm, | ||
const MPI_Comm & | mpiCommDomain, | ||
const dftParameters & | dftParams ) |
void dftfe::computeKineticEnergyDensityFromInterpolatedValues | ( | const dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > & | BLASWrapperPtr, |
const std::pair< unsigned int, unsigned int > | cellRange, | ||
const std::pair< unsigned int, unsigned int > | vecRange, | ||
const unsigned int | nQuadsPerCell, | ||
double * | partialOccupVec, | ||
double * | kcoord, | ||
NumberType * | wfcQuadPointData, | ||
NumberType * | gradWfcQuadPointData, | ||
double * | kineticCellsWfcContributions, | ||
double * | kineticEnergyDensity, | ||
const MPI_Comm & | mpiCommDomain ) |
void dftfe::computeRhoFirstOrderResponse | ( | const dftfe::utils::MemoryStorage< NumberType, memorySpace > & | X, |
const dftfe::utils::MemoryStorage< NumberType, memorySpace > & | XPrime, | ||
const unsigned int | 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 unsigned int | matrixFreeDofhandlerIndex, | ||
const unsigned int | 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 ) |
void dftfe::computeRhoFromPSI | ( | const dftfe::utils::MemoryStorage< NumberType, memorySpace > * | X, |
const unsigned int | 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 unsigned int | matrixFreeDofhandlerIndex, | ||
const unsigned int | quadratureIndex, | ||
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, | ||
const bool | isEvaluateGradRho, | ||
const MPI_Comm & | mpiCommParent, | ||
const MPI_Comm & | interpoolcomm, | ||
const MPI_Comm & | interBandGroupComm, | ||
const dftParameters & | dftParams ) |
void dftfe::computeRhoGradRhoFromInterpolatedValues | ( | std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > & | BLASWrapperPtr, |
const std::pair< unsigned int, unsigned int > | cellRange, | ||
const std::pair< unsigned int, unsigned int > | vecRange, | ||
const unsigned int | nQuadsPerCell, | ||
double * | partialOccupVec, | ||
NumberType * | wfcQuadPointData, | ||
NumberType * | gradWfcQuadPointData, | ||
double * | rhoCellsWfcContributions, | ||
double * | gradRhoCellsWfcContributions, | ||
double * | rho, | ||
double * | gradRho, | ||
const bool | isEvaluateGradRho ) |
void dftfe::computeRhoResponseFromInterpolatedValues | ( | std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > & | BLASWrapperPtr, |
const std::pair< unsigned int, unsigned int > | cellRange, | ||
const std::pair< unsigned int, unsigned int > | vecRange, | ||
const unsigned int | nQuadsPerCell, | ||
double * | onesVec, | ||
double * | partialOccupPrimeVec, | ||
NumberType * | wfcQuadPointData, | ||
NumberType * | wfcPrimeQuadPointData, | ||
double * | rhoResponseHamCellsWfcContributions, | ||
double * | rhoResponseFermiEnergyCellsWfcContributions, | ||
double * | rhoResponseHam, | ||
double * | rhoResponseFermiEnergy ) |
void dftfe::Csgerv2d | ( | int | context, |
int | M, | ||
int | N, | ||
float * | A, | ||
int | lda, | ||
int | rsrc, | ||
int | csrc ) |
void dftfe::Csgesd2d | ( | int | context, |
int | M, | ||
int | N, | ||
float * | A, | ||
int | lda, | ||
int | rdest, | ||
int | cdest ) |
int dftfe::Csys2blacs_handle | ( | MPI_Comm | comm | ) |
Get BLACS context from MPI comm
.
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
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
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
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
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
.
indxloc | The local index of the distributed matrix entry. |
nb | Block size, size of the blocks the distributed matrix is split into. |
iproc | The coordinate of the process whose local array row or column is to be determined |
isrcproc | The coordinate of the process that possesses the first row/column of the distributed matrix |
nprocs | The total number processes over which the distributed matrix is distributed |
|
inline |
|
inline |
|
inline |
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).
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 ) |
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 ) |
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:
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$.
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
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
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 ) |
void dftfe::pdgetrf_ | ( | const int * | m, |
const int * | n, | ||
double * | A, | ||
const int * | IA, | ||
const int * | JA, | ||
const int * | DESCA, | ||
int * | ipiv, | ||
int * | INFO ) |
Computes an LU factorization of a general distributed matrix sub( A ) using partial pivoting with row interchanges.
http://www.netlib.org/scalapack/explore-html/df/dfe/pdgetrf_8f_source.html https://www.ibm.com/support/knowledgecenter/en/SSNR5K_4.2.0/com.ibm.cluster.pessl.v4r2.pssl100.doc/am6gr_lgetrf.htm
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
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)$.
double dftfe::pdlamch_ | ( | const int * | ictxt, |
const char * | cmach ) |
helper routines determining machine precision
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
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 ) |
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 ) |
Estimate the reciprocal of the condition number (in the l1-norm) of a real symmetric positive definite distributed matrix using the Cholesky factorization.
https://www.ibm.com/support/knowledgecenter/SSNR5K_4.2.0/com.ibm.cluster.pessl.v4r2.pssl100.doc/am6gr_lpocon.htm#lpocon http://www.netlib.org/scalapack/explore-html/d4/df7/pdpocon_8f.html https://software.intel.com/en-us/mkl-developer-reference-fortran-pocon
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
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
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
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.
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.
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
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 ) |
PDTRTRI computes the inverse of a upper or lower triangular distributed matrix sub( A ) = A(IA:IA+N-1,JA:JA+N-1).
http://www.netlib.org/scalapack/explore-html/d9/dc0/pdtrtri_8f_source.html https://www.ibm.com/support/knowledgecenter/SSNR5K_4.2.0/com.ibm.cluster.pessl.v4r2.pssl100.doc/am6gr_lpdtri.htm https://software.intel.com/en-us/mkl-developer-reference-c-p-trtri
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
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 ) |
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 ) |
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 ) |
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 ) |
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 ) |
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 ) |
void dftfe::psgetrf_ | ( | const int * | m, |
const int * | n, | ||
float * | A, | ||
const int * | IA, | ||
const int * | JA, | ||
const int * | DESCA, | ||
int * | ipiv, | ||
int * | INFO ) |
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 ) |
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 ) |
float dftfe::pslamch_ | ( | const int * | ictxt, |
const char * | cmach ) |
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 ) |
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 ) |
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 ) |
void dftfe::pspotrf_ | ( | const char * | UPLO, |
const int * | N, | ||
float * | A, | ||
const int * | IA, | ||
const int * | JA, | ||
const int * | DESCA, | ||
int * | INFO ) |
void dftfe::pspotri_ | ( | const char * | UPLO, |
const int * | N, | ||
float * | A, | ||
const int * | IA, | ||
const int * | JA, | ||
const int * | DESCA, | ||
int * | INFO ) |
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 ) |
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 ) |
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 ) |
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 ) |
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 ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
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 ) |
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 ) |
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 ) |
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 ) |
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 ) |
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, | ||
int * | iwork, | ||
int * | liwork, | ||
int * | info ) |
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 ) |
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
void dftfe::pzpotrf_ | ( | const char * | UPLO, |
const int * | N, | ||
std::complex< double > * | A, | ||
const int * | IA, | ||
const int * | JA, | ||
const int * | DESCA, | ||
int * | INFO ) |
void dftfe::pzpotri_ | ( | const char * | UPLO, |
const int * | N, | ||
std::complex< double > * | A, | ||
const int * | IA, | ||
const int * | JA, | ||
const int * | DESCA, | ||
int * | INFO ) |
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 ) |
void dftfe::scaleXRandComputeNormDevice | ( | double * | x, |
double * | d_rvec, | ||
double * | d_devSum, | ||
const double * | d_qvec, | ||
const double * | d_dvec, | ||
const double | alpha, | ||
const int | N ) |
Combines scaling and norm.
const double dftfe::C_AngToBohr = 1.0 / 0.529177210903 |
const double dftfe::C_bohrToAng = 0.529177210903 |
const double dftfe::C_haPerBohrToeVPerAng = 27.211386245988 / 0.529177210903 |
const double dftfe::C_haToeV = 27.211386245988 |
const double dftfe::C_kb = 3.166811429e-06 |
Boltzmann constant.
const double dftfe::C_pi = 3.14159265359 |