DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace > Class Template Reference

#include <FEBasisOperations.h>

Public Member Functions

 FEBasisOperations (std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > BLASWrapperPtr)
 Constructor.
 
 ~FEBasisOperations ()=default
 Default Destructor.
 
void clear ()
 Clears the FEBasisOperations internal storage.
 
void init (dealii::MatrixFree< 3, ValueTypeBasisData > &matrixFreeData, std::vector< const dealii::AffineConstraints< ValueTypeBasisData > * > &constraintsVector, const unsigned int &dofHandlerID, const std::vector< unsigned int > &quadratureID, const std::vector< UpdateFlags > updateFlags)
 fills required data structures for the given dofHandlerID
 
template<dftfe::utils::MemorySpace memorySpaceSrc>
void init (const FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpaceSrc > &basisOperationsSrc)
 fills required data structures from another FEBasisOperations object
 
void reinit (const unsigned int &vecBlockSize, const unsigned int &cellBlockSize, const unsigned int &quadratureID, const bool isResizeTempStorageForInerpolation=true, const bool isResizeTempStorageForCellMatrices=false)
 sets internal variables and optionally resizes internal temp storage for interpolation operations
 
dftfe::utils::MemoryStorage< dftfe::global_size_type, dftfe::utils::MemorySpace::HOST > & getFlattenedMapsHost ()
 
void initializeIndexMaps ()
 Initializes indexset maps from process level indices to cell level indices for a single vector, also initializes cell index to cellid map.
 
void initializeFlattenedIndexMaps ()
 Initializes indexset maps from process level indices to cell level indices for multivectors.
 
void initializeConstraints ()
 Initializes the constraintMatrixInfo object.
 
void reinitializeConstraints (std::vector< const dealii::AffineConstraints< ValueTypeBasisData > * > &constraintsVector)
 Reinitializes the constraintMatrixInfo object.
 
void initializeMPIPattern ()
 Constructs the MPIPatternP2P object.
 
void initializeShapeFunctionAndJacobianData ()
 Fill the shape function data and jacobian data in the ValueTypeBasisCoeff datatype.
 
void initializeShapeFunctionAndJacobianBasisData ()
 Fill the shape function data and jacobian data in the ValueTypeBasisData datatype.
 
void computeCellStiffnessMatrix (const unsigned int quadratureID, const unsigned int cellsBlockSize, const bool basisType=false, const bool ceoffType=true)
 Computes the cell-level stiffness matrix.
 
void computeCellMassMatrix (const unsigned int quadratureID, const unsigned int cellsBlockSize, const bool basisType=false, const bool ceoffType=true)
 
void computeWeightedCellMassMatrix (const std::pair< unsigned int, unsigned int > cellRangeTotal, dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > &weights, dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > &weightedCellMassMatrix) const
 
void computeWeightedCellNjGradNiMatrix (const std::pair< unsigned int, unsigned int > cellRangeTotal, dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > &weights, dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > &weightedCellNjGradNiMatrix) const
 
void computeWeightedCellNjGradNiPlusNiGradNjMatrix (const std::pair< unsigned int, unsigned int > cellRangeTotal, dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > &weights, dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > &weightedCellNjGradNiPlusNiGradNjMatrix) const
 
void computeInverseSqrtMassVector (const bool basisType=true, const bool ceoffType=false)
 
void computeStiffnessVector (const bool basisType=true, const bool ceoffType=false)
 Computes the stiffness matrix \grad Ni . \grad Ni.
 
void resizeTempStorage (const bool isResizeTempStorageForInerpolation, const bool isResizeTempStorageForCellMatrices)
 Resizes the internal temp storage to be sufficient for the vector and cell block sizes provided in reinit.
 
unsigned int nQuadsPerCell () const
 Number of quadrature points per cell for the quadratureID set in reinit.
 
unsigned int nVectors () const
 Number of vectors set in reinit.
 
unsigned int nDofsPerCell () const
 Number of DoFs per cell for the dofHandlerID set in init.
 
unsigned int nCells () const
 Number of locally owned cells on the current processor.
 
unsigned int nRelaventDofs () const
 Number of DoFs on the current processor, locally owned + ghosts.
 
unsigned int nOwnedDofs () const
 Number of locally owned DoFs on the current processor.
 
const dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > & shapeFunctionData (bool transpose=false) const
 Shape function values at quadrature points.
 
const dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > & shapeFunctionGradientData (bool transpose=false) const
 Shape function gradient values at quadrature points.
 
const dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > & inverseJacobians () const
 Inverse Jacobian matrices, for cartesian cells returns the diagonal elements of the inverse Jacobian matrices for each cell, for affine cells returns the 3x3 inverse Jacobians for each cell otherwise returns the 3x3 inverse Jacobians at each quad point for each cell.
 
const dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > & JxW () const
 determinant of Jacobian times the quadrature weight at each quad point for each cell.
 
const dftfe::utils::MemoryStorage< ValueTypeBasisData, dftfe::utils::MemorySpace::HOST > & quadPoints () const
 quad point coordinates for each cell.
 
const auto & shapeFunctionBasisData (bool transpose=false) const
 Shape function values at quadrature points in ValueTypeBasisData.
 
const auto & shapeFunctionGradientBasisData (bool transpose=false) const
 Shape function gradient values at quadrature points in ValueTypeBasisData.
 
const auto & inverseJacobiansBasisData () const
 Inverse Jacobian matrices in ValueTypeBasisData, for cartesian cells returns the diagonal elements of the inverse Jacobian matrices for each cell, for affine cells returns the 3x3 inverse Jacobians for each cell otherwise returns the 3x3 inverse Jacobians at each quad point for each cell.
 
const auto & JxWBasisData () const
 determinant of Jacobian times the quadrature weight in ValueTypeBasisData at each quad point for each cell.
 
const auto & cellStiffnessMatrix () const
 Cell level stiffness matrix in ValueTypeBasisCoeff.
 
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & cellStiffnessMatrixBasisData () const
 Cell level stiffness matrix in ValueTypeBasisData.
 
const auto & cellMassMatrix () const
 Cell level mass matrix in ValueTypeBasisCoeff.
 
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & cellMassMatrixBasisData () const
 Cell level mass matrix in ValueTypeBasisData.
 
const auto & cellInverseSqrtMassVector () const
 Cell level inverse sqrt diagonal mass matrix in ValueTypeBasisCoeff.
 
const auto & cellInverseMassVector () const
 Cell level inverse diagonal mass matrix in ValueTypeBasisCoeff.
 
const auto & cellSqrtMassVector () const
 Cell level sqrt diagonal mass matrix in ValueTypeBasisCoeff.
 
const auto & cellMassVector () const
 Cell level diagonal mass matrix in ValueTypeBasisCoeff.
 
const auto & inverseSqrtMassVector () const
 Inverse sqrt diagonal mass matrix in ValueTypeBasisCoeff.
 
const auto & inverseMassVector () const
 Inverse sqrt diagonal mass matrix in ValueTypeBasisCoeff.
 
const auto & sqrtMassVector () const
 sqrt diagonal mass matrix in ValueTypeBasisCoeff
 
const auto & massVector () const
 diagonal mass matrix in ValueTypeBasisCoeff
 
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & cellInverseSqrtMassVectorBasisData () const
 Cell level inverse sqrt diagonal mass matrix in ValueTypeBasisData.
 
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & cellInverseMassVectorBasisData () const
 Cell level inverse diagonal mass matrix in ValueTypeBasisData.
 
const dftfe::utils::MemoryStorage< typename dftfe::dataTypes::singlePrecType< ValueTypeBasisData >::type, memorySpace > & cellInverseMassVectorBasisDataSinglePrec () const
 Cell level inverse diagonal mass matrix in ValueTypeBasisData.
 
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & cellSqrtMassVectorBasisData () const
 Cell level sqrt diagonal mass matrix in ValueTypeBasisData.
 
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & cellMassVectorBasisData () const
 Cell level diagonal mass matrix in ValueTypeBasisData.
 
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & inverseSqrtMassVectorBasisData () const
 Inverse sqrt diagonal mass matrix in ValueTypeBasisData.
 
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & inverseMassVectorBasisData () const
 Inverse diagonal mass matrix in ValueTypeBasisData.
 
const dftfe::utils::MemoryStorage< typename dftfe::dataTypes::singlePrecType< ValueTypeBasisData >::type, memorySpace > & inverseMassVectorBasisDataSinglePrec () const
 Inverse diagonal mass matrix in ValueTypeBasisData.
 
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & sqrtMassVectorBasisData () const
 sqrt diagonal mass matrix in ValueTypeBasisData
 
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & massVectorBasisData () const
 diagonal mass matrix in ValueTypeBasisData
 
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & stiffnessVectorBasisData () const
 diagonal stiffness matrix in ValueTypeBasisData
 
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & inverseStiffnessVectorBasisData () const
 diagonal inverse stiffness matrix in ValueTypeBasisData
 
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & inverseSqrtStiffnessVectorBasisData () const
 diagonal inverse sqrt stiffness matrix in ValueTypeBasisData
 
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & sqrtStiffnessVectorBasisData () const
 diagonal sqrt stiffness matrix in ValueTypeBasisData
 
unsigned int cellsTypeFlag () const
 returns 2 if all cells on current processor are Cartesian, 1 if all cells on current processor are affine and 0 otherwise.
 
dealii::CellId cellID (const unsigned int iElem) const
 returns the deal.ii cellID corresponing to given cell Index.
 
dealii::DoFHandler< 3 >::active_cell_iterator getCellIterator (const unsigned int iElem) const
 returns the deal.ii cell_iterator corresponing to given cell Index.
 
unsigned int cellIndex (const dealii::CellId cellid) const
 returns the cell index corresponding to given deal.ii cellID.
 
void createMultiVector (const unsigned int blocksize, dftfe::linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &multiVector) const
 Creates a multivector.
 
void createMultiVectorSinglePrec (const unsigned int blocksize, dftfe::linearAlgebra::MultiVector< typename dftfe::dataTypes::singlePrecType< ValueTypeBasisCoeff >::type, memorySpace > &multiVector) const
 Creates a multivector.
 
void createScratchMultiVectors (const unsigned int vecBlockSize, const unsigned int numMultiVecs=1) const
 Creates scratch multivectors.
 
void createScratchMultiVectorsSinglePrec (const unsigned int vecBlockSize, const unsigned int numMultiVecs=1) const
 Creates single precision scratch multivectors.
 
void clearScratchMultiVectors () const
 Clears scratch multivectors.
 
dftfe::linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > & getMultiVector (const unsigned int vecBlockSize, const unsigned int index=0) const
 Gets scratch multivectors.
 
dftfe::linearAlgebra::MultiVector< typename dftfe::dataTypes::singlePrecType< ValueTypeBasisCoeff >::type, memorySpace > & getMultiVectorSinglePrec (const unsigned int vecBlockSize, const unsigned int index=0) const
 Gets single precision scratch multivectors.
 
void distribute (dftfe::linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &multiVector, unsigned int constraintIndex=std::numeric_limits< unsigned int >::max()) const
 Apply constraints on given multivector.
 
const dealii::MatrixFree< 3, ValueTypeBasisData > & matrixFreeData () const
 Return the underlying deal.II matrixfree object.
 
const dealii::DoFHandler< 3 > & getDofHandler () const
 Return the underlying deal.II dofhandler object.
 
void interpolate (dftfe::linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &nodalData, ValueTypeBasisCoeff *quadratureValues, ValueTypeBasisCoeff *quadratureGradients=NULL) const
 Interpolate process level nodal data to cell level quadrature data.
 
void integrateWithBasis (ValueTypeBasisCoeff *quadratureValues, ValueTypeBasisCoeff *quadratureGradients, dftfe::linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &nodalData, dftfe::utils::MemoryStorage< dftfe::global_size_type, memorySpace > &mapQuadIdToProcId) const
 Integrate cell level quadrature data times shape functions to process level nodal data.
 
void extractToCellNodalData (dftfe::linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &nodalData, ValueTypeBasisCoeff *cellNodalDataPtr) const
 Get cell level nodal data from process level nodal data.
 
void accumulateFromCellNodalData (const ValueTypeBasisCoeff *cellNodalDataPtr, dftfe::linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &nodalData) const
 Accumulate cell level nodal data into process level nodal data.
 
void interpolateKernel (const dftfe::linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &nodalData, ValueTypeBasisCoeff *quadratureValues, ValueTypeBasisCoeff *quadratureGradients, const std::pair< unsigned int, unsigned int > cellRange) const
 Interpolate process level nodal data to cell level quadrature data.
 
void interpolateKernel (const ValueTypeBasisCoeff *nodalData, ValueTypeBasisCoeff *quadratureValues, ValueTypeBasisCoeff *quadratureGradients, const std::pair< unsigned int, unsigned int > cellRange) const
 Interpolate cell level nodal data to cell level quadrature data.
 
void integrateWithBasisKernel (const ValueTypeBasisCoeff *quadratureValues, const ValueTypeBasisCoeff *quadratureGradients, dftfe::linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &nodalData, dftfe::utils::MemoryStorage< dftfe::global_size_type, memorySpace > &mapQuadIdToProcId, const std::pair< unsigned int, unsigned int > cellRange) const
 Integrate cell level quadrature data times shape functions to process level nodal data.
 
void extractToCellNodalDataKernel (const dftfe::linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &nodalData, ValueTypeBasisCoeff *cellNodalDataPtr, const std::pair< unsigned int, unsigned int > cellRange) const
 Get cell level nodal data from process level nodal data.
 
void accumulateFromCellNodalDataKernel (const ValueTypeBasisCoeff *cellNodalDataPtr, dftfe::linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &nodalData, const std::pair< unsigned int, unsigned int > cellRange) const
 Accumulate cell level nodal data into process level nodal data.
 

Public Attributes

std::vector< dftUtils::constraintMatrixInfo< memorySpace > > d_constraintInfo
 
unsigned int d_nOMPThreads
 
std::vector< const dealii::AffineConstraints< ValueTypeBasisData > * > * d_constraintsVector
 
const dealii::MatrixFree< 3, ValueTypeBasisData > * d_matrixFreeDataPtr
 
dftfe::utils::MemoryStorage< dftfe::global_size_type, dftfe::utils::MemorySpace::HOSTd_cellDofIndexToProcessDofIndexMap
 
std::map< unsigned int, dftfe::utils::MemoryStorage< ValueTypeBasisData, dftfe::utils::MemorySpace::HOST > > d_quadPoints
 
dftfe::utils::MemoryStorage< dftfe::global_size_type, memorySpace > d_flattenedCellDofIndexToProcessDofIndexMap
 
std::vector< dealii::CellId > d_cellIndexToCellIdMap
 
std::vector< dealii::DoFHandler< 3 >::active_cell_iterator > d_cellIndexToCellIteratorMap
 
std::map< dealii::CellId, unsigned int > d_cellIdToCellIndexMap
 
std::map< unsigned int, dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > > d_inverseJacobianData
 
std::map< unsigned int, dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > > d_JxWData
 
std::map< unsigned int, dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > > d_shapeFunctionData
 
std::map< unsigned int, dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > > d_shapeFunctionGradientDataInternalLayout
 
std::map< unsigned int, dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > > d_shapeFunctionGradientData
 
std::map< unsigned int, dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > > d_shapeFunctionDataTranspose
 
std::map< unsigned int, dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > > d_shapeFunctionGradientDataTranspose
 
std::map< unsigned int, dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > > d_inverseJacobianBasisData
 
std::map< unsigned int, dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > > d_JxWBasisData
 
std::map< unsigned int, dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > > d_shapeFunctionBasisData
 
std::map< unsigned int, dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > > d_shapeFunctionGradientBasisData
 
std::map< unsigned int, dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > > d_shapeFunctionBasisDataTranspose
 
std::map< unsigned int, dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > > d_shapeFunctionGradientBasisDataTranspose
 
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > d_cellStiffnessMatrixBasisType
 
dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > d_cellStiffnessMatrixCoeffType
 
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > d_cellMassMatrixBasisType
 
dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > d_cellMassMatrixCoeffType
 
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > d_cellInverseMassVectorBasisType
 
dftfe::utils::MemoryStorage< typename dftfe::dataTypes::singlePrecType< ValueTypeBasisData >::type, memorySpace > d_cellInverseMassVectorBasisTypeSinglePrec
 
dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > d_cellInverseMassVectorCoeffType
 
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > d_cellInverseSqrtMassVectorBasisType
 
dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > d_cellInverseSqrtMassVectorCoeffType
 
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > d_cellMassVectorBasisType
 
dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > d_cellMassVectorCoeffType
 
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > d_cellSqrtMassVectorBasisType
 
dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > d_cellSqrtMassVectorCoeffType
 
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > d_massVectorBasisType
 
dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > d_massVectorCoeffType
 
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > d_inverseMassVectorBasisType
 
dftfe::utils::MemoryStorage< typename dftfe::dataTypes::singlePrecType< ValueTypeBasisData >::type, memorySpace > d_inverseMassVectorBasisTypeSinglePrec
 
dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > d_inverseMassVectorCoeffType
 
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > d_inverseSqrtMassVectorBasisType
 
dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > d_inverseSqrtMassVectorCoeffType
 
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > d_sqrtMassVectorBasisType
 
dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > d_sqrtMassVectorCoeffType
 
std::map< unsigned int, std::vector< dftfe::linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > > > scratchMultiVectors
 
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > d_cellStiffnessVectorBasisType
 
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > d_cellInverseStiffnessVectorBasisType
 
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > d_cellSqrtStiffnessVectorBasisType
 
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > d_cellInverseSqrtStiffnessVectorBasisType
 
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > d_inverseSqrtStiffnessVectorBasisType
 
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > d_sqrtStiffnessVectorBasisType
 
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > d_inverseStiffnessVectorBasisType
 
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > d_stiffnessVectorBasisType
 
dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > d_cellInverseStiffnessVectorCoeffType
 
dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > d_cellInverseSqrtStiffnessVectorCoeffType
 
dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > d_cellStiffnessVectorCoeffType
 
dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > d_cellSqrtStiffnessVectorCoeffType
 
dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > d_inverseSqrtStiffnessVectorCoeffType
 
dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > d_sqrtStiffnessVectorCoeffType
 
dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > d_stiffnessVectorCoeffType
 
dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > d_inverseStiffnessVectorCoeffType
 
std::map< unsigned int, std::vector< dftfe::linearAlgebra::MultiVector< typename dftfe::dataTypes::singlePrecType< ValueTypeBasisCoeff >::type, memorySpace > > > scratchMultiVectorsSinglePrec
 
std::vector< unsigned int > d_quadratureIDsVector
 
unsigned int d_quadratureID
 
unsigned int d_quadratureIndex
 
std::vector< unsigned int > d_nQuadsPerCell
 
unsigned int d_dofHandlerID
 
unsigned int d_nVectors
 
unsigned int d_nCells
 
unsigned int d_cellsBlockSize
 
unsigned int d_nDofsPerCell
 
unsigned int d_localSize
 
unsigned int d_locallyOwnedSize
 
bool areAllCellsAffine
 
bool areAllCellsCartesian
 
std::vector< UpdateFlagsd_updateFlags
 
std::shared_ptr< const utils::mpi::MPIPatternP2P< memorySpace > > mpiPatternP2P
 

Protected Attributes

dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > tempCellNodalData
 
dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > tempQuadratureGradientsData
 
dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > tempQuadratureGradientsDataNonAffine
 
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > tempCellGradientsBlock
 
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > tempCellGradientsBlock2
 
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > tempCellValuesBlock
 
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > tempCellMatrixBlock
 
dftfe::utils::MemoryStorage< dftfe::global_size_type, memorySpace > zeroIndexVec
 
dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > tempCellValuesBlockCoeff
 
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > d_BLASWrapperPtr
 

Constructor & Destructor Documentation

◆ FEBasisOperations()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::FEBasisOperations ( std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > BLASWrapperPtr)

Constructor.

◆ ~FEBasisOperations()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::~FEBasisOperations ( )
default

Default Destructor.

Member Function Documentation

◆ accumulateFromCellNodalData()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::accumulateFromCellNodalData ( const ValueTypeBasisCoeff * cellNodalDataPtr,
dftfe::linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > & nodalData ) const

Accumulate cell level nodal data into process level nodal data.

Parameters
[in]cellNodalDataPtrCell level nodal values, indexed by [iCell * d_nDofsPerCell * d_nVectors + iDoF * d_nVectors + iVec].
[out]nodalDataprocess level nodal data.

◆ accumulateFromCellNodalDataKernel()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::accumulateFromCellNodalDataKernel ( const ValueTypeBasisCoeff * cellNodalDataPtr,
dftfe::linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > & nodalData,
const std::pair< unsigned int, unsigned int > cellRange ) const

Accumulate cell level nodal data into process level nodal data.

Parameters
[in]cellNodalDataPtrCell level nodal values, indexed by [iCell * d_nDofsPerCell * d_nVectors + iDoF * d_nVectors + iVec].
[out]nodalDataprocess level nodal data.
[in]cellRangethe range of cells for which extraction has to be done.

◆ cellID()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dealii::CellId dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::cellID ( const unsigned int iElem) const

returns the deal.ii cellID corresponing to given cell Index.

Parameters
[in]iElemcell Index

◆ cellIndex()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::cellIndex ( const dealii::CellId cellid) const

returns the cell index corresponding to given deal.ii cellID.

Parameters
[in]iElemcell Index

◆ cellInverseMassVector()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const auto & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::cellInverseMassVector ( ) const
inline

Cell level inverse diagonal mass matrix in ValueTypeBasisCoeff.

◆ cellInverseMassVectorBasisData()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::cellInverseMassVectorBasisData ( ) const

Cell level inverse diagonal mass matrix in ValueTypeBasisData.

◆ cellInverseMassVectorBasisDataSinglePrec()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const dftfe::utils::MemoryStorage< typename dftfe::dataTypes::singlePrecType< ValueTypeBasisData >::type, memorySpace > & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::cellInverseMassVectorBasisDataSinglePrec ( ) const

Cell level inverse diagonal mass matrix in ValueTypeBasisData.

◆ cellInverseSqrtMassVector()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const auto & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::cellInverseSqrtMassVector ( ) const
inline

Cell level inverse sqrt diagonal mass matrix in ValueTypeBasisCoeff.

◆ cellInverseSqrtMassVectorBasisData()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::cellInverseSqrtMassVectorBasisData ( ) const

Cell level inverse sqrt diagonal mass matrix in ValueTypeBasisData.

◆ cellMassMatrix()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const auto & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::cellMassMatrix ( ) const
inline

Cell level mass matrix in ValueTypeBasisCoeff.

◆ cellMassMatrixBasisData()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::cellMassMatrixBasisData ( ) const

Cell level mass matrix in ValueTypeBasisData.

◆ cellMassVector()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const auto & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::cellMassVector ( ) const
inline

Cell level diagonal mass matrix in ValueTypeBasisCoeff.

◆ cellMassVectorBasisData()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::cellMassVectorBasisData ( ) const

Cell level diagonal mass matrix in ValueTypeBasisData.

◆ cellSqrtMassVector()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const auto & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::cellSqrtMassVector ( ) const
inline

Cell level sqrt diagonal mass matrix in ValueTypeBasisCoeff.

◆ cellSqrtMassVectorBasisData()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::cellSqrtMassVectorBasisData ( ) const

Cell level sqrt diagonal mass matrix in ValueTypeBasisData.

◆ cellStiffnessMatrix()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const auto & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::cellStiffnessMatrix ( ) const
inline

Cell level stiffness matrix in ValueTypeBasisCoeff.

◆ cellStiffnessMatrixBasisData()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::cellStiffnessMatrixBasisData ( ) const

Cell level stiffness matrix in ValueTypeBasisData.

◆ cellsTypeFlag()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::cellsTypeFlag ( ) const

returns 2 if all cells on current processor are Cartesian, 1 if all cells on current processor are affine and 0 otherwise.

◆ clear()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::clear ( )

Clears the FEBasisOperations internal storage.

◆ clearScratchMultiVectors()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::clearScratchMultiVectors ( ) const

Clears scratch multivectors.

◆ computeCellMassMatrix()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::computeCellMassMatrix ( const unsigned int quadratureID,
const unsigned int cellsBlockSize,
const bool basisType = false,
const bool ceoffType = true )

◆ computeCellStiffnessMatrix()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::computeCellStiffnessMatrix ( const unsigned int quadratureID,
const unsigned int cellsBlockSize,
const bool basisType = false,
const bool ceoffType = true )

Computes the cell-level stiffness matrix.

◆ computeInverseSqrtMassVector()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::computeInverseSqrtMassVector ( const bool basisType = true,
const bool ceoffType = false )

◆ computeStiffnessVector()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::computeStiffnessVector ( const bool basisType = true,
const bool ceoffType = false )

Computes the stiffness matrix \grad Ni . \grad Ni.

◆ computeWeightedCellMassMatrix()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::computeWeightedCellMassMatrix ( const std::pair< unsigned int, unsigned int > cellRangeTotal,
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & weights,
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & weightedCellMassMatrix ) const

◆ computeWeightedCellNjGradNiMatrix()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::computeWeightedCellNjGradNiMatrix ( const std::pair< unsigned int, unsigned int > cellRangeTotal,
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & weights,
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & weightedCellNjGradNiMatrix ) const

◆ computeWeightedCellNjGradNiPlusNiGradNjMatrix()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::computeWeightedCellNjGradNiPlusNiGradNjMatrix ( const std::pair< unsigned int, unsigned int > cellRangeTotal,
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & weights,
dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & weightedCellNjGradNiPlusNiGradNjMatrix ) const

◆ createMultiVector()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::createMultiVector ( const unsigned int blocksize,
dftfe::linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > & multiVector ) const

Creates a multivector.

Parameters
[in]blocksizeNumber of vectors in the multivector.
[out]multiVectorthe created multivector.

◆ createMultiVectorSinglePrec()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::createMultiVectorSinglePrec ( const unsigned int blocksize,
dftfe::linearAlgebra::MultiVector< typename dftfe::dataTypes::singlePrecType< ValueTypeBasisCoeff >::type, memorySpace > & multiVector ) const

Creates a multivector.

Parameters
[in]blocksizeNumber of vectors in the multivector.
[out]multiVectorthe created multivector.

◆ createScratchMultiVectors()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::createScratchMultiVectors ( const unsigned int vecBlockSize,
const unsigned int numMultiVecs = 1 ) const

Creates scratch multivectors.

Parameters
[in]vecBlockSizeNumber of vectors in the multivector.
[out]numMultiVecsnumber of scratch multivectors needed with this vecBlockSize.

◆ createScratchMultiVectorsSinglePrec()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::createScratchMultiVectorsSinglePrec ( const unsigned int vecBlockSize,
const unsigned int numMultiVecs = 1 ) const

Creates single precision scratch multivectors.

Parameters
[in]vecBlockSizeNumber of vectors in the multivector.
[out]numMultiVecsnumber of scratch multivectors needed with this vecBlockSize.

◆ distribute()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::distribute ( dftfe::linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > & multiVector,
unsigned int constraintIndex = std::numeric_limits< unsigned int >::max() ) const

Apply constraints on given multivector.

Parameters
[in,out]multiVectorthe given multivector.

◆ extractToCellNodalData()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::extractToCellNodalData ( dftfe::linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > & nodalData,
ValueTypeBasisCoeff * cellNodalDataPtr ) const

Get cell level nodal data from process level nodal data.

Parameters
[in]nodalDataprocess level nodal data, the multivector should already have ghost data and constraints should have been applied.
[out]cellNodalDataPtrCell level nodal values, indexed by [iCell * d_nDofsPerCell * d_nVectors + iDoF * d_nVectors + iVec].

◆ extractToCellNodalDataKernel()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::extractToCellNodalDataKernel ( const dftfe::linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > & nodalData,
ValueTypeBasisCoeff * cellNodalDataPtr,
const std::pair< unsigned int, unsigned int > cellRange ) const

Get cell level nodal data from process level nodal data.

Parameters
[in]nodalDataprocess level nodal data, the multivector should already have ghost data and constraints should have been applied.
[out]cellNodalDataPtrCell level nodal values, indexed by [iCell * d_nDofsPerCell * d_nVectors + iDoF * d_nVectors + iVec].
[in]cellRangethe range of cells for which extraction has to be done.

◆ getCellIterator()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dealii::DoFHandler< 3 >::active_cell_iterator dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::getCellIterator ( const unsigned int iElem) const

returns the deal.ii cell_iterator corresponing to given cell Index.

Parameters
[in]iElemcell Index

◆ getDofHandler()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const dealii::DoFHandler< 3 > & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::getDofHandler ( ) const

Return the underlying deal.II dofhandler object.

◆ getFlattenedMapsHost()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage< dftfe::global_size_type, dftfe::utils::MemorySpace::HOST > & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::getFlattenedMapsHost ( )

◆ getMultiVector()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::getMultiVector ( const unsigned int vecBlockSize,
const unsigned int index = 0 ) const

Gets scratch multivectors.

Parameters
[in]vecBlockSizeNumber of vectors in the multivector.
[out]numMultiVecsindex of the multivector among those with the same vecBlockSize.

◆ getMultiVectorSinglePrec()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::linearAlgebra::MultiVector< typename dftfe::dataTypes::singlePrecType< ValueTypeBasisCoeff >::type, memorySpace > & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::getMultiVectorSinglePrec ( const unsigned int vecBlockSize,
const unsigned int index = 0 ) const

Gets single precision scratch multivectors.

Parameters
[in]vecBlockSizeNumber of vectors in the multivector.
[out]numMultiVecsindex of the multivector among those with the same vecBlockSize.

◆ init() [1/2]

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
template<dftfe::utils::MemorySpace memorySpaceSrc>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::init ( const FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpaceSrc > & basisOperationsSrc)

fills required data structures from another FEBasisOperations object

Parameters
[in]basisOperationsSrcSource FEBasisOperations object.

◆ init() [2/2]

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::init ( dealii::MatrixFree< 3, ValueTypeBasisData > & matrixFreeData,
std::vector< const dealii::AffineConstraints< ValueTypeBasisData > * > & constraintsVector,
const unsigned int & dofHandlerID,
const std::vector< unsigned int > & quadratureID,
const std::vector< UpdateFlags > updateFlags )

fills required data structures for the given dofHandlerID

Parameters
[in]matrixFreeDataMatrixFree object.
[in]constraintsVectorstd::vector of AffineConstraints, should be the same vector which was passed for the construction of the given MatrixFree object.
[in]dofHandlerIDdofHandler index to be used for getting data from the MatrixFree object.
[in]quadratureIDstd::vector of quadratureIDs to be used, should be the same IDs which were used during the construction of the given MatrixFree object.

◆ initializeConstraints()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::initializeConstraints ( )

Initializes the constraintMatrixInfo object.

◆ initializeFlattenedIndexMaps()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::initializeFlattenedIndexMaps ( )

Initializes indexset maps from process level indices to cell level indices for multivectors.

◆ initializeIndexMaps()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::initializeIndexMaps ( )

Initializes indexset maps from process level indices to cell level indices for a single vector, also initializes cell index to cellid map.

◆ initializeMPIPattern()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::initializeMPIPattern ( )

Constructs the MPIPatternP2P object.

◆ initializeShapeFunctionAndJacobianBasisData()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::initializeShapeFunctionAndJacobianBasisData ( )

Fill the shape function data and jacobian data in the ValueTypeBasisData datatype.

◆ initializeShapeFunctionAndJacobianData()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::initializeShapeFunctionAndJacobianData ( )

Fill the shape function data and jacobian data in the ValueTypeBasisCoeff datatype.

◆ integrateWithBasis()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::integrateWithBasis ( ValueTypeBasisCoeff * quadratureValues,
ValueTypeBasisCoeff * quadratureGradients,
dftfe::linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > & nodalData,
dftfe::utils::MemoryStorage< dftfe::global_size_type, memorySpace > & mapQuadIdToProcId ) const

Integrate cell level quadrature data times shape functions to process level nodal data.

Parameters
[in]quadratureValuesCell level quadrature values, indexed by [iCell * d_nQuadsPerCell * d_nVectors + iQuad * d_nVectors + iVec].
[in]quadratureGradientsCell level quadrature gradients, indexed by [iCell * 3 * d_nQuadsPerCell * d_nVectors + iDim * d_nQuadsPerCell * d_nVectors + iQuad * d_nVectors + iVec].
[out]nodalDataprocess level nodal data.

◆ integrateWithBasisKernel()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::integrateWithBasisKernel ( const ValueTypeBasisCoeff * quadratureValues,
const ValueTypeBasisCoeff * quadratureGradients,
dftfe::linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > & nodalData,
dftfe::utils::MemoryStorage< dftfe::global_size_type, memorySpace > & mapQuadIdToProcId,
const std::pair< unsigned int, unsigned int > cellRange ) const

Integrate cell level quadrature data times shape functions to process level nodal data.

Parameters
[in]quadratureValuesCell level quadrature values, indexed by [iCell * d_nQuadsPerCell * d_nVectors + iQuad * d_nVectors + iVec].
[in]quadratureGradientsCell level quadrature gradients, indexed by [iCell * 3 * d_nQuadsPerCell * d_nVectors + iDim * d_nQuadsPerCell * d_nVectors + iQuad * d_nVectors + iVec].
[out]nodalDataprocess level nodal data.
[in]cellRangethe range of cells for which integration has to be done.

◆ interpolate()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::interpolate ( dftfe::linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > & nodalData,
ValueTypeBasisCoeff * quadratureValues,
ValueTypeBasisCoeff * quadratureGradients = NULL ) const

Interpolate process level nodal data to cell level quadrature data.

Parameters
[in]nodalDataprocess level nodal data, the multivector should already have ghost data and constraints should have been applied.
[out]quadratureValuesCell level quadrature values, indexed by [iCell * d_nQuadsPerCell * d_nVectors + iQuad * d_nVectors + iVec].
[out]quadratureGradientsCell level quadrature gradients, indexed by [iCell * 3 * d_nQuadsPerCell * d_nVectors + iDim * d_nQuadsPerCell * d_nVectors + iQuad * d_nVectors + iVec].

◆ interpolateKernel() [1/2]

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::interpolateKernel ( const dftfe::linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > & nodalData,
ValueTypeBasisCoeff * quadratureValues,
ValueTypeBasisCoeff * quadratureGradients,
const std::pair< unsigned int, unsigned int > cellRange ) const

Interpolate process level nodal data to cell level quadrature data.

Parameters
[in]nodalDataprocess level nodal data, the multivector should already have ghost data and constraints should have been applied.
[out]quadratureValuesCell level quadrature values, indexed by [iCell * d_nQuadsPerCell * d_nVectors + iQuad * d_nVectors + iVec].
[out]quadratureGradientsCell level quadrature gradients, indexed by [iCell * 3 * d_nQuadsPerCell * d_nVectors + iDim * d_nQuadsPerCell * d_nVectors + iQuad * d_nVectors + iVec].
[in]cellRangethe range of cells for which interpolation has to be done.

◆ interpolateKernel() [2/2]

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::interpolateKernel ( const ValueTypeBasisCoeff * nodalData,
ValueTypeBasisCoeff * quadratureValues,
ValueTypeBasisCoeff * quadratureGradients,
const std::pair< unsigned int, unsigned int > cellRange ) const

Interpolate cell level nodal data to cell level quadrature data.

Parameters
[in]nodalDatacell level nodal data, the multivector should already have ghost data and constraints should have been applied.
[out]quadratureValuesCell level quadrature values, indexed by [iCell * d_nQuadsPerCell * d_nVectors + iQuad * d_nVectors + iVec].
[out]quadratureGradientsCell level quadrature gradients, indexed by [iCell * 3 * d_nQuadsPerCell * d_nVectors + iDim * d_nQuadsPerCell * d_nVectors + iQuad * d_nVectors + iVec].
[in]cellRangethe range of cells for which interpolation has to be done.

◆ inverseJacobians()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::inverseJacobians ( ) const

Inverse Jacobian matrices, for cartesian cells returns the diagonal elements of the inverse Jacobian matrices for each cell, for affine cells returns the 3x3 inverse Jacobians for each cell otherwise returns the 3x3 inverse Jacobians at each quad point for each cell.

◆ inverseJacobiansBasisData()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const auto & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::inverseJacobiansBasisData ( ) const
inline

Inverse Jacobian matrices in ValueTypeBasisData, for cartesian cells returns the diagonal elements of the inverse Jacobian matrices for each cell, for affine cells returns the 3x3 inverse Jacobians for each cell otherwise returns the 3x3 inverse Jacobians at each quad point for each cell.

◆ inverseMassVector()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const auto & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::inverseMassVector ( ) const
inline

Inverse sqrt diagonal mass matrix in ValueTypeBasisCoeff.

◆ inverseMassVectorBasisData()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::inverseMassVectorBasisData ( ) const

Inverse diagonal mass matrix in ValueTypeBasisData.

◆ inverseMassVectorBasisDataSinglePrec()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const dftfe::utils::MemoryStorage< typename dftfe::dataTypes::singlePrecType< ValueTypeBasisData >::type, memorySpace > & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::inverseMassVectorBasisDataSinglePrec ( ) const

Inverse diagonal mass matrix in ValueTypeBasisData.

◆ inverseSqrtMassVector()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const auto & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::inverseSqrtMassVector ( ) const
inline

Inverse sqrt diagonal mass matrix in ValueTypeBasisCoeff.

◆ inverseSqrtMassVectorBasisData()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::inverseSqrtMassVectorBasisData ( ) const

Inverse sqrt diagonal mass matrix in ValueTypeBasisData.

◆ inverseSqrtStiffnessVectorBasisData()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::inverseSqrtStiffnessVectorBasisData ( ) const

diagonal inverse sqrt stiffness matrix in ValueTypeBasisData

◆ inverseStiffnessVectorBasisData()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::inverseStiffnessVectorBasisData ( ) const

diagonal inverse stiffness matrix in ValueTypeBasisData

◆ JxW()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::JxW ( ) const

determinant of Jacobian times the quadrature weight at each quad point for each cell.

◆ JxWBasisData()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const auto & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::JxWBasisData ( ) const
inline

determinant of Jacobian times the quadrature weight in ValueTypeBasisData at each quad point for each cell.

◆ massVector()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const auto & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::massVector ( ) const
inline

diagonal mass matrix in ValueTypeBasisCoeff

◆ massVectorBasisData()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::massVectorBasisData ( ) const

diagonal mass matrix in ValueTypeBasisData

◆ matrixFreeData()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const dealii::MatrixFree< 3, ValueTypeBasisData > & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::matrixFreeData ( ) const

Return the underlying deal.II matrixfree object.

◆ nCells()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::nCells ( ) const

Number of locally owned cells on the current processor.

◆ nDofsPerCell()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::nDofsPerCell ( ) const

Number of DoFs per cell for the dofHandlerID set in init.

◆ nOwnedDofs()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::nOwnedDofs ( ) const

Number of locally owned DoFs on the current processor.

◆ nQuadsPerCell()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::nQuadsPerCell ( ) const

Number of quadrature points per cell for the quadratureID set in reinit.

◆ nRelaventDofs()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::nRelaventDofs ( ) const

Number of DoFs on the current processor, locally owned + ghosts.

◆ nVectors()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::nVectors ( ) const

Number of vectors set in reinit.

◆ quadPoints()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const dftfe::utils::MemoryStorage< ValueTypeBasisData, dftfe::utils::MemorySpace::HOST > & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::quadPoints ( ) const

quad point coordinates for each cell.

◆ reinit()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::reinit ( const unsigned int & vecBlockSize,
const unsigned int & cellBlockSize,
const unsigned int & quadratureID,
const bool isResizeTempStorageForInerpolation = true,
const bool isResizeTempStorageForCellMatrices = false )

sets internal variables and optionally resizes internal temp storage for interpolation operations

Parameters
[in]vecBlockSizeblock size to used for operations on vectors, this has to be set to the exact value before any such operations are called.
[in]cellBlockSizeblock size to used for cells, this has to be set to a value greater than or equal to the required value before any such operations are called
[in]quadratureIDQuadrature index to be used.
[in]isResizeTempStoragewhether to resize internal tempstorage.

◆ reinitializeConstraints()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::reinitializeConstraints ( std::vector< const dealii::AffineConstraints< ValueTypeBasisData > * > & constraintsVector)

Reinitializes the constraintMatrixInfo object.

◆ resizeTempStorage()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
void dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::resizeTempStorage ( const bool isResizeTempStorageForInerpolation,
const bool isResizeTempStorageForCellMatrices )

Resizes the internal temp storage to be sufficient for the vector and cell block sizes provided in reinit.

◆ shapeFunctionBasisData()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const auto & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::shapeFunctionBasisData ( bool transpose = false) const
inline

Shape function values at quadrature points in ValueTypeBasisData.

Parameters
[in]transposeif false the the data is indexed as [iQuad * d_nDofsPerCell + iNode] and if true it is indexed as [iNode * d_nQuadsPerCell + iQuad].

◆ shapeFunctionData()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::shapeFunctionData ( bool transpose = false) const

Shape function values at quadrature points.

Parameters
[in]transposeif false the the data is indexed as [iQuad * d_nDofsPerCell + iNode] and if true it is indexed as [iNode * d_nQuadsPerCell + iQuad].

◆ shapeFunctionGradientBasisData()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const auto & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::shapeFunctionGradientBasisData ( bool transpose = false) const
inline

Shape function gradient values at quadrature points in ValueTypeBasisData.

Parameters
[in]transposeif false the the data is indexed as [iDim * d_nQuadsPerCell * d_nDofsPerCell + iQuad * d_nDofsPerCell + iNode] and if true it is indexed as [iDim * d_nQuadsPerCell * d_nDofsPerCell + iNode * d_nQuadsPerCell + iQuad].

◆ shapeFunctionGradientData()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const dftfe::utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::shapeFunctionGradientData ( bool transpose = false) const

Shape function gradient values at quadrature points.

Parameters
[in]transposeif false the the data is indexed as [iDim * d_nQuadsPerCell * d_nDofsPerCell + iQuad * d_nDofsPerCell + iNode] and if true it is indexed as [iDim * d_nQuadsPerCell * d_nDofsPerCell + iNode * d_nQuadsPerCell + iQuad].

◆ sqrtMassVector()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const auto & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::sqrtMassVector ( ) const
inline

sqrt diagonal mass matrix in ValueTypeBasisCoeff

◆ sqrtMassVectorBasisData()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::sqrtMassVectorBasisData ( ) const

sqrt diagonal mass matrix in ValueTypeBasisData

◆ sqrtStiffnessVectorBasisData()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::sqrtStiffnessVectorBasisData ( ) const

diagonal sqrt stiffness matrix in ValueTypeBasisData

◆ stiffnessVectorBasisData()

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const dftfe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > & dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::stiffnessVectorBasisData ( ) const

diagonal stiffness matrix in ValueTypeBasisData

Member Data Documentation

◆ areAllCellsAffine

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
bool dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::areAllCellsAffine

◆ areAllCellsCartesian

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
bool dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::areAllCellsCartesian

◆ d_BLASWrapperPtr

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
std::shared_ptr<dftfe::linearAlgebra::BLASWrapper<memorySpace> > dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_BLASWrapperPtr
protected

◆ d_cellDofIndexToProcessDofIndexMap

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<dftfe::global_size_type, dftfe::utils::MemorySpace::HOST> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_cellDofIndexToProcessDofIndexMap

◆ d_cellIdToCellIndexMap

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
std::map<dealii::CellId, unsigned int> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_cellIdToCellIndexMap

◆ d_cellIndexToCellIdMap

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
std::vector<dealii::CellId> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_cellIndexToCellIdMap

◆ d_cellIndexToCellIteratorMap

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
std::vector<dealii::DoFHandler<3>::active_cell_iterator> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_cellIndexToCellIteratorMap

◆ d_cellInverseMassVectorBasisType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_cellInverseMassVectorBasisType

◆ d_cellInverseMassVectorBasisTypeSinglePrec

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage< typename dftfe::dataTypes::singlePrecType<ValueTypeBasisData>::type, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_cellInverseMassVectorBasisTypeSinglePrec

◆ d_cellInverseMassVectorCoeffType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_cellInverseMassVectorCoeffType

◆ d_cellInverseSqrtMassVectorBasisType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_cellInverseSqrtMassVectorBasisType

◆ d_cellInverseSqrtMassVectorCoeffType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_cellInverseSqrtMassVectorCoeffType

◆ d_cellInverseSqrtStiffnessVectorBasisType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_cellInverseSqrtStiffnessVectorBasisType

◆ d_cellInverseSqrtStiffnessVectorCoeffType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_cellInverseSqrtStiffnessVectorCoeffType

◆ d_cellInverseStiffnessVectorBasisType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_cellInverseStiffnessVectorBasisType

◆ d_cellInverseStiffnessVectorCoeffType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_cellInverseStiffnessVectorCoeffType

◆ d_cellMassMatrixBasisType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_cellMassMatrixBasisType

◆ d_cellMassMatrixCoeffType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_cellMassMatrixCoeffType

◆ d_cellMassVectorBasisType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_cellMassVectorBasisType

◆ d_cellMassVectorCoeffType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_cellMassVectorCoeffType

◆ d_cellsBlockSize

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_cellsBlockSize

◆ d_cellSqrtMassVectorBasisType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_cellSqrtMassVectorBasisType

◆ d_cellSqrtMassVectorCoeffType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_cellSqrtMassVectorCoeffType

◆ d_cellSqrtStiffnessVectorBasisType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_cellSqrtStiffnessVectorBasisType

◆ d_cellSqrtStiffnessVectorCoeffType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_cellSqrtStiffnessVectorCoeffType

◆ d_cellStiffnessMatrixBasisType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_cellStiffnessMatrixBasisType

◆ d_cellStiffnessMatrixCoeffType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_cellStiffnessMatrixCoeffType

◆ d_cellStiffnessVectorBasisType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_cellStiffnessVectorBasisType

◆ d_cellStiffnessVectorCoeffType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_cellStiffnessVectorCoeffType

◆ d_constraintInfo

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
std::vector<dftUtils::constraintMatrixInfo<memorySpace> > dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_constraintInfo

◆ d_constraintsVector

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
std::vector<const dealii::AffineConstraints<ValueTypeBasisData> *>* dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_constraintsVector

◆ d_dofHandlerID

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_dofHandlerID

◆ d_flattenedCellDofIndexToProcessDofIndexMap

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<dftfe::global_size_type, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_flattenedCellDofIndexToProcessDofIndexMap

◆ d_inverseJacobianBasisData

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
std::map<unsigned int, dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> > dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_inverseJacobianBasisData

◆ d_inverseJacobianData

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
std::map<unsigned int, dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> > dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_inverseJacobianData

◆ d_inverseMassVectorBasisType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_inverseMassVectorBasisType

◆ d_inverseMassVectorBasisTypeSinglePrec

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage< typename dftfe::dataTypes::singlePrecType<ValueTypeBasisData>::type, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_inverseMassVectorBasisTypeSinglePrec

◆ d_inverseMassVectorCoeffType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_inverseMassVectorCoeffType

◆ d_inverseSqrtMassVectorBasisType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_inverseSqrtMassVectorBasisType

◆ d_inverseSqrtMassVectorCoeffType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_inverseSqrtMassVectorCoeffType

◆ d_inverseSqrtStiffnessVectorBasisType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_inverseSqrtStiffnessVectorBasisType

◆ d_inverseSqrtStiffnessVectorCoeffType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_inverseSqrtStiffnessVectorCoeffType

◆ d_inverseStiffnessVectorBasisType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_inverseStiffnessVectorBasisType

◆ d_inverseStiffnessVectorCoeffType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_inverseStiffnessVectorCoeffType

◆ d_JxWBasisData

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
std::map<unsigned int, dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> > dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_JxWBasisData

◆ d_JxWData

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
std::map<unsigned int, dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> > dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_JxWData

◆ d_locallyOwnedSize

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_locallyOwnedSize

◆ d_localSize

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_localSize

◆ d_massVectorBasisType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_massVectorBasisType

◆ d_massVectorCoeffType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_massVectorCoeffType

◆ d_matrixFreeDataPtr

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
const dealii::MatrixFree<3, ValueTypeBasisData>* dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_matrixFreeDataPtr

◆ d_nCells

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_nCells

◆ d_nDofsPerCell

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_nDofsPerCell

◆ d_nOMPThreads

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_nOMPThreads

◆ d_nQuadsPerCell

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
std::vector<unsigned int> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_nQuadsPerCell

◆ d_nVectors

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_nVectors

◆ d_quadPoints

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
std::map<unsigned int, dftfe::utils::MemoryStorage<ValueTypeBasisData, dftfe::utils::MemorySpace::HOST> > dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_quadPoints

◆ d_quadratureID

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_quadratureID

◆ d_quadratureIDsVector

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
std::vector<unsigned int> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_quadratureIDsVector

◆ d_quadratureIndex

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_quadratureIndex

◆ d_shapeFunctionBasisData

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
std::map<unsigned int, dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> > dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_shapeFunctionBasisData

◆ d_shapeFunctionBasisDataTranspose

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
std::map<unsigned int, dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> > dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_shapeFunctionBasisDataTranspose

◆ d_shapeFunctionData

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
std::map<unsigned int, dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> > dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_shapeFunctionData

◆ d_shapeFunctionDataTranspose

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
std::map<unsigned int, dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> > dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_shapeFunctionDataTranspose

◆ d_shapeFunctionGradientBasisData

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
std::map<unsigned int, dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> > dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_shapeFunctionGradientBasisData

◆ d_shapeFunctionGradientBasisDataTranspose

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
std::map<unsigned int, dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> > dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_shapeFunctionGradientBasisDataTranspose

◆ d_shapeFunctionGradientData

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
std::map<unsigned int, dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> > dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_shapeFunctionGradientData

◆ d_shapeFunctionGradientDataInternalLayout

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
std::map<unsigned int, dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> > dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_shapeFunctionGradientDataInternalLayout

◆ d_shapeFunctionGradientDataTranspose

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
std::map<unsigned int, dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> > dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_shapeFunctionGradientDataTranspose

◆ d_sqrtMassVectorBasisType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_sqrtMassVectorBasisType

◆ d_sqrtMassVectorCoeffType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_sqrtMassVectorCoeffType

◆ d_sqrtStiffnessVectorBasisType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_sqrtStiffnessVectorBasisType

◆ d_sqrtStiffnessVectorCoeffType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_sqrtStiffnessVectorCoeffType

◆ d_stiffnessVectorBasisType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_stiffnessVectorBasisType

◆ d_stiffnessVectorCoeffType

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_stiffnessVectorCoeffType

◆ d_updateFlags

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
std::vector<UpdateFlags> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::d_updateFlags

◆ mpiPatternP2P

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
std::shared_ptr<const utils::mpi::MPIPatternP2P<memorySpace> > dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::mpiPatternP2P

◆ scratchMultiVectors

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
std::map< unsigned int, std::vector< dftfe::linearAlgebra::MultiVector<ValueTypeBasisCoeff, memorySpace> > > dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::scratchMultiVectors
mutable

◆ scratchMultiVectorsSinglePrec

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
std::map< unsigned int, std::vector<dftfe::linearAlgebra::MultiVector< typename dftfe::dataTypes::singlePrecType<ValueTypeBasisCoeff>::type, memorySpace> > > dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::scratchMultiVectorsSinglePrec
mutable

◆ tempCellGradientsBlock

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::tempCellGradientsBlock
mutableprotected

◆ tempCellGradientsBlock2

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::tempCellGradientsBlock2
protected

◆ tempCellMatrixBlock

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::tempCellMatrixBlock
protected

◆ tempCellNodalData

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::tempCellNodalData
mutableprotected

◆ tempCellValuesBlock

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisData, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::tempCellValuesBlock
protected

◆ tempCellValuesBlockCoeff

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::tempCellValuesBlockCoeff
mutableprotected

◆ tempQuadratureGradientsData

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::tempQuadratureGradientsData
protected

◆ tempQuadratureGradientsDataNonAffine

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::tempQuadratureGradientsDataNonAffine
protected

◆ zeroIndexVec

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<dftfe::global_size_type, memorySpace> dftfe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::zeroIndexVec
mutableprotected

The documentation for this class was generated from the following file: