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

Namespaces

namespace  mpi
 
namespace  sphUtils
 
namespace  stringOps
 

Classes

class  Cell
 This class provides the interface that will be required while interpolating a nodal data to arbitrary set of points. More...
 
class  FECell
 This class provides the specialisation for Finite element cell. This class provides the function defintions for shape function calculation at an arbitrary point inside the cell, checks if a point lies within a cell by computing its parametric points. More...
 
class  FiniteDifference
 
class  MapPointsToCells
 This class takes in a bunch of points and finds the cell (provided as input) it lies in. In case the points dont lie in any of the cells, it sends the points to other processors. Similarly it receives points from other processors and then checks if any of them lies within its cell. It provides the real coordinates of points in each cell. More...
 
class  MemoryManager
 
class  MemoryManager< ValueType, MemorySpace::HOST >
 
class  MemoryStorage
 
class  MemoryTransfer
 
class  MemoryTransfer< MemorySpace::HOST, MemorySpace::HOST >
 
class  MPICommunicatorP2PKernels
 
class  OptimizedIndexSet
 
class  RTreeBox
 A class template to perform RTreeBox based searching on overlap of boxes. More...
 
class  RTreePoint
 A class template to perform RTreePoint based searching on overlap of boxes. More...
 

Typedefs

typedef cudaError_t deviceError_t
 
typedef cudaStream_t deviceStream_t
 
typedef cudaEvent_t deviceEvent_t
 
typedef cuDoubleComplex deviceDoubleComplex
 
typedef cuFloatComplex deviceFloatComplex
 
typedef cublasHandle_t deviceBlasHandle_t
 
typedef cublasOperation_t deviceBlasOperation_t
 
typedef cublasStatus_t deviceBlasStatus_t
 
typedef cublasMath_t deviceBlasMath_t
 
typedef std::logic_error LogicError
 
typedef std::invalid_argument InvalidArgument
 
typedef std::domain_error DomainError
 
typedef std::length_error LengthError
 
typedef std::out_of_range OutOfRangeError
 
typedef std::runtime_error RuntimeError
 
typedef std::overflow_error OverflowError
 
typedef std::underflow_error UnderflowError
 

Enumerations

enum class  MemorySpace { HOST , HOST_PINNED , DEVICE }
 

Functions

double realPart (const double x)
 
float realPart (const float x)
 
double realPart (const std::complex< double > x)
 
float realPart (const std::complex< float > x)
 
double imagPart (const double x)
 
float imagPart (const float x)
 
double imagPart (const std::complex< double > x)
 
float imagPart (const std::complex< float > x)
 
double complexConj (const double x)
 
float complexConj (const float x)
 
std::complex< double > complexConj (const std::complex< double > x)
 
std::complex< float > complexConj (const std::complex< float > x)
 
__forceinline__ __device__ cuDoubleComplex makeComplex (double realPart, double imagPart)
 
__forceinline__ __device__ cuFloatComplex makeComplex (float realPart, float imagPart)
 
__forceinline__ __device__ void copyValue (double *a, const double b)
 
__forceinline__ __device__ void copyValue (float *a, const float b)
 
__forceinline__ __device__ void copyValue (cuDoubleComplex *a, const cuDoubleComplex b)
 
__forceinline__ __device__ void copyValue (cuFloatComplex *a, const cuFloatComplex b)
 
__forceinline__ __device__ void copyValue (float *a, const double b)
 
__forceinline__ __device__ void copyValue (double *a, const float b)
 
__forceinline__ __device__ void copyValue (cuDoubleComplex *a, const cuFloatComplex b)
 
__forceinline__ __device__ void copyValue (cuFloatComplex *a, const cuDoubleComplex b)
 
__forceinline__ __device__ void copyValue (cuDoubleComplex *a, const double b)
 
__forceinline__ __device__ void copyValue (cuFloatComplex *a, const float b)
 
__forceinline__ __device__ void copyValue (cuDoubleComplex *a, const float b)
 
__forceinline__ __device__ void copyValue (cuFloatComplex *a, const double b)
 
__forceinline__ __device__ double realPartDevice (double a)
 
__forceinline__ __device__ float realPartDevice (float a)
 
__forceinline__ __device__ double realPartDevice (cuDoubleComplex a)
 
__forceinline__ __device__ float realPartDevice (cuFloatComplex a)
 
__forceinline__ __device__ double imagPartDevice (double a)
 
__forceinline__ __device__ float imagPartDevice (float a)
 
__forceinline__ __device__ double imagPartDevice (cuDoubleComplex a)
 
__forceinline__ __device__ float imagPartDevice (cuFloatComplex a)
 
__forceinline__ __device__ double abs (double a)
 
__forceinline__ __device__ float abs (float a)
 
__forceinline__ __device__ double abs (cuDoubleComplex a)
 
__forceinline__ __device__ float abs (cuFloatComplex a)
 
__forceinline__ __device__ unsigned int conj (unsigned int a)
 
__forceinline__ __device__ unsigned long int conj (unsigned long int a)
 
__forceinline__ __device__ int conj (int a)
 
__forceinline__ __device__ float conj (float a)
 
__forceinline__ __device__ double conj (double a)
 
__forceinline__ __device__ cuDoubleComplex conj (cuDoubleComplex a)
 
__forceinline__ __device__ cuFloatComplex conj (cuFloatComplex a)
 
__forceinline__ __device__ unsigned int mult (unsigned int a, unsigned int b)
 
__forceinline__ __device__ unsigned long int mult (unsigned long int a, unsigned long int b)
 
__forceinline__ __device__ int mult (int a, int b)
 
__forceinline__ __device__ double mult (double a, double b)
 
__forceinline__ __device__ float mult (float a, float b)
 
__forceinline__ __device__ double mult (float a, double b)
 
__forceinline__ __device__ double mult (double a, float b)
 
__forceinline__ __device__ cuDoubleComplex mult (cuDoubleComplex a, cuDoubleComplex b)
 
__forceinline__ __device__ cuFloatComplex mult (cuFloatComplex a, cuFloatComplex b)
 
__forceinline__ __device__ cuDoubleComplex mult (cuFloatComplex a, cuDoubleComplex b)
 
__forceinline__ __device__ cuDoubleComplex mult (cuDoubleComplex a, cuFloatComplex b)
 
__forceinline__ __device__ cuDoubleComplex mult (double a, cuDoubleComplex b)
 
__forceinline__ __device__ cuDoubleComplex mult (cuDoubleComplex a, double b)
 
__forceinline__ __device__ cuFloatComplex mult (float a, cuFloatComplex b)
 
__forceinline__ __device__ cuFloatComplex mult (cuFloatComplex a, float b)
 
__forceinline__ __device__ cuDoubleComplex mult (double a, cuFloatComplex b)
 
__forceinline__ __device__ cuDoubleComplex mult (cuFloatComplex a, double b)
 
__forceinline__ __device__ unsigned int add (unsigned int a, unsigned int b)
 
__forceinline__ __device__ unsigned long int add (unsigned long int a, unsigned long int b)
 
__forceinline__ __device__ int add (int a, int b)
 
__forceinline__ __device__ double add (double a, double b)
 
__forceinline__ __device__ float add (float a, float b)
 
__forceinline__ __device__ cuDoubleComplex add (cuDoubleComplex a, cuDoubleComplex b)
 
__forceinline__ __device__ cuFloatComplex add (cuFloatComplex a, cuFloatComplex b)
 
__forceinline__ __device__ double add (double a, float b)
 
__forceinline__ __device__ double add (float a, double b)
 
__forceinline__ __device__ cuDoubleComplex add (cuDoubleComplex a, cuFloatComplex b)
 
__forceinline__ __device__ cuDoubleComplex add (cuFloatComplex a, cuDoubleComplex b)
 
__forceinline__ __device__ unsigned int sub (unsigned int a, unsigned int b)
 
__forceinline__ __device__ unsigned long int sub (unsigned long int a, unsigned long int b)
 
__forceinline__ __device__ int sub (int a, int b)
 
__forceinline__ __device__ double sub (double a, double b)
 
__forceinline__ __device__ float sub (float a, float b)
 
__forceinline__ __device__ cuDoubleComplex sub (cuDoubleComplex a, cuDoubleComplex b)
 
__forceinline__ __device__ cuFloatComplex sub (cuFloatComplex a, cuFloatComplex b)
 
__forceinline__ __device__ unsigned int div (unsigned int a, unsigned int b)
 
__forceinline__ __device__ unsigned long int div (unsigned long int a, unsigned long int b)
 
__forceinline__ __device__ int div (int a, int b)
 
__forceinline__ __device__ double div (double a, double b)
 
__forceinline__ __device__ float div (float a, float b)
 
__forceinline__ __device__ cuDoubleComplex div (cuDoubleComplex a, cuDoubleComplex b)
 
__forceinline__ __device__ cuFloatComplex div (cuFloatComplex a, cuFloatComplex b)
 
__forceinline__ __device__ cuDoubleComplex div (cuFloatComplex a, cuDoubleComplex b)
 
__forceinline__ __device__ cuDoubleComplex div (cuDoubleComplex a, cuFloatComplex b)
 
__forceinline__ __device__ cuDoubleComplex div (double a, cuDoubleComplex b)
 
__forceinline__ __device__ cuDoubleComplex div (cuDoubleComplex a, double b)
 
__forceinline__ __device__ cuFloatComplex div (float a, cuFloatComplex b)
 
__forceinline__ __device__ cuFloatComplex div (cuFloatComplex a, float b)
 
__forceinline__ __device__ cuDoubleComplex div (double a, cuFloatComplex b)
 
__forceinline__ __device__ cuDoubleComplex div (cuFloatComplex a, double b)
 
int * makeDataTypeDeviceCompatible (int *a)
 
const int * makeDataTypeDeviceCompatible (const int *a)
 
long int * makeDataTypeDeviceCompatible (long int *a)
 
const long int * makeDataTypeDeviceCompatible (const long int *a)
 
unsigned int * makeDataTypeDeviceCompatible (unsigned int *a)
 
const unsigned int * makeDataTypeDeviceCompatible (const unsigned int *a)
 
unsigned long int * makeDataTypeDeviceCompatible (unsigned long int *a)
 
const unsigned long int * makeDataTypeDeviceCompatible (const unsigned long int *a)
 
double * makeDataTypeDeviceCompatible (double *a)
 
const double * makeDataTypeDeviceCompatible (const double *a)
 
float * makeDataTypeDeviceCompatible (float *a)
 
const float * makeDataTypeDeviceCompatible (const float *a)
 
cuDoubleComplex * makeDataTypeDeviceCompatible (std::complex< double > *a)
 
const cuDoubleComplex * makeDataTypeDeviceCompatible (const std::complex< double > *a)
 
cuFloatComplex * makeDataTypeDeviceCompatible (std::complex< float > *a)
 
const cuFloatComplex * makeDataTypeDeviceCompatible (const std::complex< float > *a)
 
int makeDataTypeDeviceCompatible (int a)
 
long int makeDataTypeDeviceCompatible (long int a)
 
unsigned int makeDataTypeDeviceCompatible (unsigned int a)
 
unsigned long int makeDataTypeDeviceCompatible (unsigned long int a)
 
double makeDataTypeDeviceCompatible (double a)
 
float makeDataTypeDeviceCompatible (float a)
 
cuDoubleComplex makeDataTypeDeviceCompatible (std::complex< double > a)
 
cuFloatComplex makeDataTypeDeviceCompatible (std::complex< float > a)
 
bool makeDataTypeDeviceCompatible (bool a)
 
bool * makeDataTypeDeviceCompatible (bool *a)
 
__forceinline__ __device__ void copyValue (hipDoubleComplex *a, const hipDoubleComplex b)
 
__forceinline__ __device__ void copyValue (hipFloatComplex *a, const hipFloatComplex b)
 
__forceinline__ __device__ void copyValue (hipDoubleComplex *a, const hipFloatComplex b)
 
__forceinline__ __device__ void copyValue (hipFloatComplex *a, const hipDoubleComplex b)
 
__forceinline__ __device__ void copyValue (hipDoubleComplex *a, const double b)
 
__forceinline__ __device__ void copyValue (hipFloatComplex *a, const float b)
 
__forceinline__ __device__ void copyValue (hipDoubleComplex *a, const float b)
 
__forceinline__ __device__ void copyValue (hipFloatComplex *a, const double b)
 
__forceinline__ __device__ double realPartDevice (hipDoubleComplex a)
 
__forceinline__ __device__ float realPartDevice (hipFloatComplex a)
 
__forceinline__ __device__ double imagPartDevice (hipDoubleComplex a)
 
__forceinline__ __device__ float imagPartDevice (hipFloatComplex a)
 
__forceinline__ __device__ double abs (hipDoubleComplex a)
 
__forceinline__ __device__ float abs (hipFloatComplex a)
 
__forceinline__ __device__ hipDoubleComplex conj (hipDoubleComplex a)
 
__forceinline__ __device__ hipFloatComplex conj (hipFloatComplex a)
 
__forceinline__ __device__ hipDoubleComplex mult (hipDoubleComplex a, hipDoubleComplex b)
 
__forceinline__ __device__ hipFloatComplex mult (hipFloatComplex a, hipFloatComplex b)
 
__forceinline__ __device__ hipDoubleComplex mult (hipFloatComplex a, hipDoubleComplex b)
 
__forceinline__ __device__ hipDoubleComplex mult (hipDoubleComplex a, hipFloatComplex b)
 
__forceinline__ __device__ hipDoubleComplex mult (double a, hipDoubleComplex b)
 
__forceinline__ __device__ hipDoubleComplex mult (hipDoubleComplex a, double b)
 
__forceinline__ __device__ hipFloatComplex mult (float a, hipFloatComplex b)
 
__forceinline__ __device__ hipFloatComplex mult (hipFloatComplex a, float b)
 
__forceinline__ __device__ hipDoubleComplex mult (double a, hipFloatComplex b)
 
__forceinline__ __device__ hipDoubleComplex mult (hipFloatComplex a, double b)
 
__forceinline__ __device__ hipDoubleComplex add (hipDoubleComplex a, hipDoubleComplex b)
 
__forceinline__ __device__ hipFloatComplex add (hipFloatComplex a, hipFloatComplex b)
 
__forceinline__ __device__ hipDoubleComplex add (hipDoubleComplex a, hipFloatComplex b)
 
__forceinline__ __device__ hipDoubleComplex add (hipFloatComplex a, hipDoubleComplex b)
 
__forceinline__ __device__ hipDoubleComplex sub (hipDoubleComplex a, hipDoubleComplex b)
 
__forceinline__ __device__ hipFloatComplex sub (hipFloatComplex a, hipFloatComplex b)
 
__forceinline__ __device__ hipDoubleComplex div (hipDoubleComplex a, hipDoubleComplex b)
 
__forceinline__ __device__ hipFloatComplex div (hipFloatComplex a, hipFloatComplex b)
 
__forceinline__ __device__ hipDoubleComplex div (hipFloatComplex a, hipDoubleComplex b)
 
__forceinline__ __device__ hipDoubleComplex div (hipDoubleComplex a, hipFloatComplex b)
 
__forceinline__ __device__ hipDoubleComplex div (double a, hipDoubleComplex b)
 
__forceinline__ __device__ hipDoubleComplex div (hipDoubleComplex a, double b)
 
__forceinline__ __device__ hipFloatComplex div (float a, hipFloatComplex b)
 
__forceinline__ __device__ hipFloatComplex div (hipFloatComplex a, float b)
 
__forceinline__ __device__ hipDoubleComplex div (double a, hipFloatComplex b)
 
__forceinline__ __device__ hipDoubleComplex div (hipFloatComplex a, double b)
 
void throwException (bool condition, std::string msg="")
 
template<class T>
void throwException (bool condition, std::string msg="")
 
template<typename ValueType, utils::MemorySpace memorySpaceDst>
MemoryStorage< ValueType, memorySpaceDst > memoryStorageFromSTL (const std::vector< ValueType > &src)
 Create a MemoryStorage object from an input C++ STL vector.
 

Variables

static const deviceError_t deviceSuccess = cudaSuccess
 
static const cublasOperation_t DEVICEBLAS_OP_N = CUBLAS_OP_N
 
static const cublasOperation_t DEVICEBLAS_OP_T = CUBLAS_OP_T
 
static const cublasOperation_t DEVICEBLAS_OP_C = CUBLAS_OP_C
 
static const cublasMath_t DEVICEBLAS_DEFAULT_MATH = CUBLAS_DEFAULT_MATH
 
static const cublasMath_t DEVICEBLAS_TF32_TENSOR_OP_MATH
 
static const deviceError_t deviceSuccess = hipSuccess
 
static const hipblasOperation_t DEVICEBLAS_OP_N = HIPBLAS_OP_N
 
static const hipblasOperation_t DEVICEBLAS_OP_T = HIPBLAS_OP_T
 
static const hipblasOperation_t DEVICEBLAS_OP_C = HIPBLAS_OP_C
 

Typedef Documentation

◆ deviceBlasHandle_t

typedef hipblasHandle_t dftfe::utils::deviceBlasHandle_t

◆ deviceBlasMath_t

typedef cublasMath_t dftfe::utils::deviceBlasMath_t

◆ deviceBlasOperation_t

typedef hipblasOperation_t dftfe::utils::deviceBlasOperation_t

◆ deviceBlasStatus_t

typedef hipblasStatus_t dftfe::utils::deviceBlasStatus_t

◆ deviceDoubleComplex

typedef hipDoubleComplex dftfe::utils::deviceDoubleComplex

◆ deviceError_t

typedef hipError_t dftfe::utils::deviceError_t

◆ deviceEvent_t

typedef hipEvent_t dftfe::utils::deviceEvent_t

◆ deviceFloatComplex

typedef hipFloatComplex dftfe::utils::deviceFloatComplex

◆ deviceStream_t

typedef hipStream_t dftfe::utils::deviceStream_t

◆ DomainError

typedef std::domain_error dftfe::utils::DomainError

◆ InvalidArgument

typedef std::invalid_argument dftfe::utils::InvalidArgument

◆ LengthError

typedef std::length_error dftfe::utils::LengthError

◆ LogicError

typedef std::logic_error dftfe::utils::LogicError

◆ OutOfRangeError

typedef std::out_of_range dftfe::utils::OutOfRangeError

◆ OverflowError

typedef std::overflow_error dftfe::utils::OverflowError

◆ RuntimeError

typedef std::runtime_error dftfe::utils::RuntimeError

◆ UnderflowError

typedef std::underflow_error dftfe::utils::UnderflowError

Enumeration Type Documentation

◆ MemorySpace

enum class dftfe::utils::MemorySpace
strong
Enumerator
HOST 
HOST_PINNED 
DEVICE 

Function Documentation

◆ abs() [1/6]

__forceinline__ __device__ double dftfe::utils::abs ( cuDoubleComplex a)

◆ abs() [2/6]

__forceinline__ __device__ float dftfe::utils::abs ( cuFloatComplex a)

◆ abs() [3/6]

__forceinline__ __device__ double dftfe::utils::abs ( double a)

◆ abs() [4/6]

__forceinline__ __device__ float dftfe::utils::abs ( float a)

◆ abs() [5/6]

__forceinline__ __device__ double dftfe::utils::abs ( hipDoubleComplex a)

◆ abs() [6/6]

__forceinline__ __device__ float dftfe::utils::abs ( hipFloatComplex a)

◆ add() [1/15]

__forceinline__ __device__ cuDoubleComplex dftfe::utils::add ( cuDoubleComplex a,
cuDoubleComplex b )

◆ add() [2/15]

__forceinline__ __device__ cuDoubleComplex dftfe::utils::add ( cuDoubleComplex a,
cuFloatComplex b )

◆ add() [3/15]

__forceinline__ __device__ cuDoubleComplex dftfe::utils::add ( cuFloatComplex a,
cuDoubleComplex b )

◆ add() [4/15]

__forceinline__ __device__ cuFloatComplex dftfe::utils::add ( cuFloatComplex a,
cuFloatComplex b )

◆ add() [5/15]

__forceinline__ __device__ double dftfe::utils::add ( double a,
double b )

◆ add() [6/15]

__forceinline__ __device__ double dftfe::utils::add ( double a,
float b )

◆ add() [7/15]

__forceinline__ __device__ double dftfe::utils::add ( float a,
double b )

◆ add() [8/15]

__forceinline__ __device__ float dftfe::utils::add ( float a,
float b )

◆ add() [9/15]

__forceinline__ __device__ hipDoubleComplex dftfe::utils::add ( hipDoubleComplex a,
hipDoubleComplex b )

◆ add() [10/15]

__forceinline__ __device__ hipDoubleComplex dftfe::utils::add ( hipDoubleComplex a,
hipFloatComplex b )

◆ add() [11/15]

__forceinline__ __device__ hipDoubleComplex dftfe::utils::add ( hipFloatComplex a,
hipDoubleComplex b )

◆ add() [12/15]

__forceinline__ __device__ hipFloatComplex dftfe::utils::add ( hipFloatComplex a,
hipFloatComplex b )

◆ add() [13/15]

__forceinline__ __device__ int dftfe::utils::add ( int a,
int b )

◆ add() [14/15]

__forceinline__ __device__ unsigned int dftfe::utils::add ( unsigned int a,
unsigned int b )

◆ add() [15/15]

__forceinline__ __device__ unsigned long int dftfe::utils::add ( unsigned long int a,
unsigned long int b )

◆ complexConj() [1/4]

double dftfe::utils::complexConj ( const double x)
inline

◆ complexConj() [2/4]

float dftfe::utils::complexConj ( const float x)
inline

◆ complexConj() [3/4]

std::complex< double > dftfe::utils::complexConj ( const std::complex< double > x)
inline

◆ complexConj() [4/4]

std::complex< float > dftfe::utils::complexConj ( const std::complex< float > x)
inline

◆ conj() [1/9]

__forceinline__ __device__ cuDoubleComplex dftfe::utils::conj ( cuDoubleComplex a)

◆ conj() [2/9]

__forceinline__ __device__ cuFloatComplex dftfe::utils::conj ( cuFloatComplex a)

◆ conj() [3/9]

__forceinline__ __device__ double dftfe::utils::conj ( double a)

◆ conj() [4/9]

__forceinline__ __device__ float dftfe::utils::conj ( float a)

◆ conj() [5/9]

__forceinline__ __device__ hipDoubleComplex dftfe::utils::conj ( hipDoubleComplex a)

◆ conj() [6/9]

__forceinline__ __device__ hipFloatComplex dftfe::utils::conj ( hipFloatComplex a)

◆ conj() [7/9]

__forceinline__ __device__ int dftfe::utils::conj ( int a)

◆ conj() [8/9]

__forceinline__ __device__ unsigned int dftfe::utils::conj ( unsigned int a)

◆ conj() [9/9]

__forceinline__ __device__ unsigned long int dftfe::utils::conj ( unsigned long int a)

◆ copyValue() [1/20]

__forceinline__ __device__ void dftfe::utils::copyValue ( cuDoubleComplex * a,
const cuDoubleComplex b )

◆ copyValue() [2/20]

__forceinline__ __device__ void dftfe::utils::copyValue ( cuDoubleComplex * a,
const cuFloatComplex b )

◆ copyValue() [3/20]

__forceinline__ __device__ void dftfe::utils::copyValue ( cuDoubleComplex * a,
const double b )

◆ copyValue() [4/20]

__forceinline__ __device__ void dftfe::utils::copyValue ( cuDoubleComplex * a,
const float b )

◆ copyValue() [5/20]

__forceinline__ __device__ void dftfe::utils::copyValue ( cuFloatComplex * a,
const cuDoubleComplex b )

◆ copyValue() [6/20]

__forceinline__ __device__ void dftfe::utils::copyValue ( cuFloatComplex * a,
const cuFloatComplex b )

◆ copyValue() [7/20]

__forceinline__ __device__ void dftfe::utils::copyValue ( cuFloatComplex * a,
const double b )

◆ copyValue() [8/20]

__forceinline__ __device__ void dftfe::utils::copyValue ( cuFloatComplex * a,
const float b )

◆ copyValue() [9/20]

__forceinline__ __device__ void dftfe::utils::copyValue ( double * a,
const double b )

◆ copyValue() [10/20]

__forceinline__ __device__ void dftfe::utils::copyValue ( double * a,
const float b )

◆ copyValue() [11/20]

__forceinline__ __device__ void dftfe::utils::copyValue ( float * a,
const double b )

◆ copyValue() [12/20]

__forceinline__ __device__ void dftfe::utils::copyValue ( float * a,
const float b )

◆ copyValue() [13/20]

__forceinline__ __device__ void dftfe::utils::copyValue ( hipDoubleComplex * a,
const double b )

◆ copyValue() [14/20]

__forceinline__ __device__ void dftfe::utils::copyValue ( hipDoubleComplex * a,
const float b )

◆ copyValue() [15/20]

__forceinline__ __device__ void dftfe::utils::copyValue ( hipDoubleComplex * a,
const hipDoubleComplex b )

◆ copyValue() [16/20]

__forceinline__ __device__ void dftfe::utils::copyValue ( hipDoubleComplex * a,
const hipFloatComplex b )

◆ copyValue() [17/20]

__forceinline__ __device__ void dftfe::utils::copyValue ( hipFloatComplex * a,
const double b )

◆ copyValue() [18/20]

__forceinline__ __device__ void dftfe::utils::copyValue ( hipFloatComplex * a,
const float b )

◆ copyValue() [19/20]

__forceinline__ __device__ void dftfe::utils::copyValue ( hipFloatComplex * a,
const hipDoubleComplex b )

◆ copyValue() [20/20]

__forceinline__ __device__ void dftfe::utils::copyValue ( hipFloatComplex * a,
const hipFloatComplex b )

◆ div() [1/25]

__forceinline__ __device__ cuDoubleComplex dftfe::utils::div ( cuDoubleComplex a,
cuDoubleComplex b )

◆ div() [2/25]

__forceinline__ __device__ cuDoubleComplex dftfe::utils::div ( cuDoubleComplex a,
cuFloatComplex b )

◆ div() [3/25]

__forceinline__ __device__ cuDoubleComplex dftfe::utils::div ( cuDoubleComplex a,
double b )

◆ div() [4/25]

__forceinline__ __device__ cuDoubleComplex dftfe::utils::div ( cuFloatComplex a,
cuDoubleComplex b )

◆ div() [5/25]

__forceinline__ __device__ cuFloatComplex dftfe::utils::div ( cuFloatComplex a,
cuFloatComplex b )

◆ div() [6/25]

__forceinline__ __device__ cuDoubleComplex dftfe::utils::div ( cuFloatComplex a,
double b )

◆ div() [7/25]

__forceinline__ __device__ cuFloatComplex dftfe::utils::div ( cuFloatComplex a,
float b )

◆ div() [8/25]

__forceinline__ __device__ cuDoubleComplex dftfe::utils::div ( double a,
cuDoubleComplex b )

◆ div() [9/25]

__forceinline__ __device__ cuDoubleComplex dftfe::utils::div ( double a,
cuFloatComplex b )

◆ div() [10/25]

__forceinline__ __device__ double dftfe::utils::div ( double a,
double b )

◆ div() [11/25]

__forceinline__ __device__ hipDoubleComplex dftfe::utils::div ( double a,
hipDoubleComplex b )

◆ div() [12/25]

__forceinline__ __device__ hipDoubleComplex dftfe::utils::div ( double a,
hipFloatComplex b )

◆ div() [13/25]

__forceinline__ __device__ cuFloatComplex dftfe::utils::div ( float a,
cuFloatComplex b )

◆ div() [14/25]

__forceinline__ __device__ float dftfe::utils::div ( float a,
float b )

◆ div() [15/25]

__forceinline__ __device__ hipFloatComplex dftfe::utils::div ( float a,
hipFloatComplex b )

◆ div() [16/25]

__forceinline__ __device__ hipDoubleComplex dftfe::utils::div ( hipDoubleComplex a,
double b )

◆ div() [17/25]

__forceinline__ __device__ hipDoubleComplex dftfe::utils::div ( hipDoubleComplex a,
hipDoubleComplex b )

◆ div() [18/25]

__forceinline__ __device__ hipDoubleComplex dftfe::utils::div ( hipDoubleComplex a,
hipFloatComplex b )

◆ div() [19/25]

__forceinline__ __device__ hipDoubleComplex dftfe::utils::div ( hipFloatComplex a,
double b )

◆ div() [20/25]

__forceinline__ __device__ hipFloatComplex dftfe::utils::div ( hipFloatComplex a,
float b )

◆ div() [21/25]

__forceinline__ __device__ hipDoubleComplex dftfe::utils::div ( hipFloatComplex a,
hipDoubleComplex b )

◆ div() [22/25]

__forceinline__ __device__ hipFloatComplex dftfe::utils::div ( hipFloatComplex a,
hipFloatComplex b )

◆ div() [23/25]

__forceinline__ __device__ int dftfe::utils::div ( int a,
int b )

◆ div() [24/25]

__forceinline__ __device__ unsigned int dftfe::utils::div ( unsigned int a,
unsigned int b )

◆ div() [25/25]

__forceinline__ __device__ unsigned long int dftfe::utils::div ( unsigned long int a,
unsigned long int b )

◆ imagPart() [1/4]

double dftfe::utils::imagPart ( const double x)
inline

◆ imagPart() [2/4]

float dftfe::utils::imagPart ( const float x)
inline

◆ imagPart() [3/4]

double dftfe::utils::imagPart ( const std::complex< double > x)
inline

◆ imagPart() [4/4]

float dftfe::utils::imagPart ( const std::complex< float > x)
inline

◆ imagPartDevice() [1/6]

__forceinline__ __device__ double dftfe::utils::imagPartDevice ( cuDoubleComplex a)

◆ imagPartDevice() [2/6]

__forceinline__ __device__ float dftfe::utils::imagPartDevice ( cuFloatComplex a)

◆ imagPartDevice() [3/6]

__forceinline__ __device__ double dftfe::utils::imagPartDevice ( double a)

◆ imagPartDevice() [4/6]

__forceinline__ __device__ float dftfe::utils::imagPartDevice ( float a)

◆ imagPartDevice() [5/6]

__forceinline__ __device__ double dftfe::utils::imagPartDevice ( hipDoubleComplex a)

◆ imagPartDevice() [6/6]

__forceinline__ __device__ float dftfe::utils::imagPartDevice ( hipFloatComplex a)

◆ makeComplex() [1/2]

__forceinline__ __device__ hipDoubleComplex dftfe::utils::makeComplex ( double realPart,
double imagPart )

◆ makeComplex() [2/2]

__forceinline__ __device__ hipFloatComplex dftfe::utils::makeComplex ( float realPart,
float imagPart )

◆ makeDataTypeDeviceCompatible() [1/26]

bool * dftfe::utils::makeDataTypeDeviceCompatible ( bool * a)
inline

◆ makeDataTypeDeviceCompatible() [2/26]

bool dftfe::utils::makeDataTypeDeviceCompatible ( bool a)
inline

◆ makeDataTypeDeviceCompatible() [3/26]

const double * dftfe::utils::makeDataTypeDeviceCompatible ( const double * a)
inline

◆ makeDataTypeDeviceCompatible() [4/26]

const float * dftfe::utils::makeDataTypeDeviceCompatible ( const float * a)
inline

◆ makeDataTypeDeviceCompatible() [5/26]

const int * dftfe::utils::makeDataTypeDeviceCompatible ( const int * a)
inline

◆ makeDataTypeDeviceCompatible() [6/26]

const long int * dftfe::utils::makeDataTypeDeviceCompatible ( const long int * a)
inline

◆ makeDataTypeDeviceCompatible() [7/26]

const hipDoubleComplex * dftfe::utils::makeDataTypeDeviceCompatible ( const std::complex< double > * a)
inline

◆ makeDataTypeDeviceCompatible() [8/26]

const hipFloatComplex * dftfe::utils::makeDataTypeDeviceCompatible ( const std::complex< float > * a)
inline

◆ makeDataTypeDeviceCompatible() [9/26]

const unsigned int * dftfe::utils::makeDataTypeDeviceCompatible ( const unsigned int * a)
inline

◆ makeDataTypeDeviceCompatible() [10/26]

const unsigned long int * dftfe::utils::makeDataTypeDeviceCompatible ( const unsigned long int * a)
inline

◆ makeDataTypeDeviceCompatible() [11/26]

double * dftfe::utils::makeDataTypeDeviceCompatible ( double * a)
inline

◆ makeDataTypeDeviceCompatible() [12/26]

double dftfe::utils::makeDataTypeDeviceCompatible ( double a)
inline

◆ makeDataTypeDeviceCompatible() [13/26]

float * dftfe::utils::makeDataTypeDeviceCompatible ( float * a)
inline

◆ makeDataTypeDeviceCompatible() [14/26]

float dftfe::utils::makeDataTypeDeviceCompatible ( float a)
inline

◆ makeDataTypeDeviceCompatible() [15/26]

int * dftfe::utils::makeDataTypeDeviceCompatible ( int * a)
inline

◆ makeDataTypeDeviceCompatible() [16/26]

int dftfe::utils::makeDataTypeDeviceCompatible ( int a)
inline

◆ makeDataTypeDeviceCompatible() [17/26]

long int * dftfe::utils::makeDataTypeDeviceCompatible ( long int * a)
inline

◆ makeDataTypeDeviceCompatible() [18/26]

long int dftfe::utils::makeDataTypeDeviceCompatible ( long int a)
inline

◆ makeDataTypeDeviceCompatible() [19/26]

hipDoubleComplex * dftfe::utils::makeDataTypeDeviceCompatible ( std::complex< double > * a)
inline

◆ makeDataTypeDeviceCompatible() [20/26]

hipDoubleComplex dftfe::utils::makeDataTypeDeviceCompatible ( std::complex< double > a)
inline

◆ makeDataTypeDeviceCompatible() [21/26]

hipFloatComplex * dftfe::utils::makeDataTypeDeviceCompatible ( std::complex< float > * a)
inline

◆ makeDataTypeDeviceCompatible() [22/26]

hipFloatComplex dftfe::utils::makeDataTypeDeviceCompatible ( std::complex< float > a)
inline

◆ makeDataTypeDeviceCompatible() [23/26]

unsigned int * dftfe::utils::makeDataTypeDeviceCompatible ( unsigned int * a)
inline

◆ makeDataTypeDeviceCompatible() [24/26]

unsigned int dftfe::utils::makeDataTypeDeviceCompatible ( unsigned int a)
inline

◆ makeDataTypeDeviceCompatible() [25/26]

unsigned long int * dftfe::utils::makeDataTypeDeviceCompatible ( unsigned long int * a)
inline

◆ makeDataTypeDeviceCompatible() [26/26]

unsigned long int dftfe::utils::makeDataTypeDeviceCompatible ( unsigned long int a)
inline

◆ memoryStorageFromSTL()

template<typename ValueType, utils::MemorySpace memorySpaceDst>
MemoryStorage< ValueType, memorySpaceDst > dftfe::utils::memoryStorageFromSTL ( const std::vector< ValueType > & src)

Create a MemoryStorage object from an input C++ STL vector.

Parameters
[in]srcInput C++ STL vector from which the MemoryStorage object is to be created
Returns
A MemoryStorage object containing the data in the input C++ STL vector
Template Parameters
ValueTypeDatatype of the underlying data in MemoryStorage as well as C++ STL vector (e.g., int, double, float, complex<double>, etc)
memorySpaceDstMemorySpace (e.g. HOST, DEVICE, HOST_PINNED, etc) where the output MemoryStorage object should reside

◆ mult() [1/27]

__forceinline__ __device__ cuDoubleComplex dftfe::utils::mult ( cuDoubleComplex a,
cuDoubleComplex b )

◆ mult() [2/27]

__forceinline__ __device__ cuDoubleComplex dftfe::utils::mult ( cuDoubleComplex a,
cuFloatComplex b )

◆ mult() [3/27]

__forceinline__ __device__ cuDoubleComplex dftfe::utils::mult ( cuDoubleComplex a,
double b )

◆ mult() [4/27]

__forceinline__ __device__ cuDoubleComplex dftfe::utils::mult ( cuFloatComplex a,
cuDoubleComplex b )

◆ mult() [5/27]

__forceinline__ __device__ cuFloatComplex dftfe::utils::mult ( cuFloatComplex a,
cuFloatComplex b )

◆ mult() [6/27]

__forceinline__ __device__ cuDoubleComplex dftfe::utils::mult ( cuFloatComplex a,
double b )

◆ mult() [7/27]

__forceinline__ __device__ cuFloatComplex dftfe::utils::mult ( cuFloatComplex a,
float b )

◆ mult() [8/27]

__forceinline__ __device__ cuDoubleComplex dftfe::utils::mult ( double a,
cuDoubleComplex b )

◆ mult() [9/27]

__forceinline__ __device__ cuDoubleComplex dftfe::utils::mult ( double a,
cuFloatComplex b )

◆ mult() [10/27]

__forceinline__ __device__ double dftfe::utils::mult ( double a,
double b )

◆ mult() [11/27]

__forceinline__ __device__ double dftfe::utils::mult ( double a,
float b )

◆ mult() [12/27]

__forceinline__ __device__ hipDoubleComplex dftfe::utils::mult ( double a,
hipDoubleComplex b )

◆ mult() [13/27]

__forceinline__ __device__ hipDoubleComplex dftfe::utils::mult ( double a,
hipFloatComplex b )

◆ mult() [14/27]

__forceinline__ __device__ cuFloatComplex dftfe::utils::mult ( float a,
cuFloatComplex b )

◆ mult() [15/27]

__forceinline__ __device__ double dftfe::utils::mult ( float a,
double b )

◆ mult() [16/27]

__forceinline__ __device__ float dftfe::utils::mult ( float a,
float b )

◆ mult() [17/27]

__forceinline__ __device__ hipFloatComplex dftfe::utils::mult ( float a,
hipFloatComplex b )

◆ mult() [18/27]

__forceinline__ __device__ hipDoubleComplex dftfe::utils::mult ( hipDoubleComplex a,
double b )

◆ mult() [19/27]

__forceinline__ __device__ hipDoubleComplex dftfe::utils::mult ( hipDoubleComplex a,
hipDoubleComplex b )

◆ mult() [20/27]

__forceinline__ __device__ hipDoubleComplex dftfe::utils::mult ( hipDoubleComplex a,
hipFloatComplex b )

◆ mult() [21/27]

__forceinline__ __device__ hipDoubleComplex dftfe::utils::mult ( hipFloatComplex a,
double b )

◆ mult() [22/27]

__forceinline__ __device__ hipFloatComplex dftfe::utils::mult ( hipFloatComplex a,
float b )

◆ mult() [23/27]

__forceinline__ __device__ hipDoubleComplex dftfe::utils::mult ( hipFloatComplex a,
hipDoubleComplex b )

◆ mult() [24/27]

__forceinline__ __device__ hipFloatComplex dftfe::utils::mult ( hipFloatComplex a,
hipFloatComplex b )

◆ mult() [25/27]

__forceinline__ __device__ int dftfe::utils::mult ( int a,
int b )

◆ mult() [26/27]

__forceinline__ __device__ unsigned int dftfe::utils::mult ( unsigned int a,
unsigned int b )

◆ mult() [27/27]

__forceinline__ __device__ unsigned long int dftfe::utils::mult ( unsigned long int a,
unsigned long int b )

◆ realPart() [1/4]

double dftfe::utils::realPart ( const double x)
inline

◆ realPart() [2/4]

float dftfe::utils::realPart ( const float x)
inline

◆ realPart() [3/4]

double dftfe::utils::realPart ( const std::complex< double > x)
inline

◆ realPart() [4/4]

float dftfe::utils::realPart ( const std::complex< float > x)
inline

◆ realPartDevice() [1/6]

__forceinline__ __device__ double dftfe::utils::realPartDevice ( cuDoubleComplex a)

◆ realPartDevice() [2/6]

__forceinline__ __device__ float dftfe::utils::realPartDevice ( cuFloatComplex a)

◆ realPartDevice() [3/6]

__forceinline__ __device__ double dftfe::utils::realPartDevice ( double a)

◆ realPartDevice() [4/6]

__forceinline__ __device__ float dftfe::utils::realPartDevice ( float a)

◆ realPartDevice() [5/6]

__forceinline__ __device__ double dftfe::utils::realPartDevice ( hipDoubleComplex a)

◆ realPartDevice() [6/6]

__forceinline__ __device__ float dftfe::utils::realPartDevice ( hipFloatComplex a)

◆ sub() [1/9]

__forceinline__ __device__ cuDoubleComplex dftfe::utils::sub ( cuDoubleComplex a,
cuDoubleComplex b )

◆ sub() [2/9]

__forceinline__ __device__ cuFloatComplex dftfe::utils::sub ( cuFloatComplex a,
cuFloatComplex b )

◆ sub() [3/9]

__forceinline__ __device__ double dftfe::utils::sub ( double a,
double b )

◆ sub() [4/9]

__forceinline__ __device__ float dftfe::utils::sub ( float a,
float b )

◆ sub() [5/9]

__forceinline__ __device__ hipDoubleComplex dftfe::utils::sub ( hipDoubleComplex a,
hipDoubleComplex b )

◆ sub() [6/9]

__forceinline__ __device__ hipFloatComplex dftfe::utils::sub ( hipFloatComplex a,
hipFloatComplex b )

◆ sub() [7/9]

__forceinline__ __device__ int dftfe::utils::sub ( int a,
int b )

◆ sub() [8/9]

__forceinline__ __device__ unsigned int dftfe::utils::sub ( unsigned int a,
unsigned int b )

◆ sub() [9/9]

__forceinline__ __device__ unsigned long int dftfe::utils::sub ( unsigned long int a,
unsigned long int b )

◆ throwException() [1/2]

void dftfe::utils::throwException ( bool condition,
std::string msg = "" )

◆ throwException() [2/2]

template<class T>
void dftfe::utils::throwException ( bool condition,
std::string msg = "" )

Variable Documentation

◆ DEVICEBLAS_DEFAULT_MATH

const cublasMath_t dftfe::utils::DEVICEBLAS_DEFAULT_MATH = CUBLAS_DEFAULT_MATH
static

◆ DEVICEBLAS_OP_C [1/2]

const cublasOperation_t dftfe::utils::DEVICEBLAS_OP_C = CUBLAS_OP_C
static

◆ DEVICEBLAS_OP_C [2/2]

const hipblasOperation_t dftfe::utils::DEVICEBLAS_OP_C = HIPBLAS_OP_C
static

◆ DEVICEBLAS_OP_N [1/2]

const cublasOperation_t dftfe::utils::DEVICEBLAS_OP_N = CUBLAS_OP_N
static

◆ DEVICEBLAS_OP_N [2/2]

const hipblasOperation_t dftfe::utils::DEVICEBLAS_OP_N = HIPBLAS_OP_N
static

◆ DEVICEBLAS_OP_T [1/2]

const cublasOperation_t dftfe::utils::DEVICEBLAS_OP_T = CUBLAS_OP_T
static

◆ DEVICEBLAS_OP_T [2/2]

const hipblasOperation_t dftfe::utils::DEVICEBLAS_OP_T = HIPBLAS_OP_T
static

◆ DEVICEBLAS_TF32_TENSOR_OP_MATH

const cublasMath_t dftfe::utils::DEVICEBLAS_TF32_TENSOR_OP_MATH
static
Initial value:
=
CUBLAS_TF32_TENSOR_OP_MATH

◆ deviceSuccess [1/2]

const deviceError_t dftfe::utils::deviceSuccess = cudaSuccess
static

◆ deviceSuccess [2/2]

const deviceError_t dftfe::utils::deviceSuccess = hipSuccess
static