DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace > Class Template Reference

This class is the primary interface location of all other parts of the DFT-FE code for all steps involved in obtaining the Kohn-Sham DFT ground-state solution. More...

#include <dft.h>

Inheritance diagram for dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >:
dftfe::dftBase

Public Member Functions

 dftClass (const MPI_Comm &mpiCommParent, const MPI_Comm &mpi_comm_domain, const MPI_Comm &interpoolcomm, const MPI_Comm &interBandGroupComm, const std::string &scratchFolderName, dftParameters &dftParams)
 dftClass constructor
 
 ~dftClass ()
 dftClass destructor
 
void set ()
 atomic system pre-processing steps.
 
void init ()
 Does KSDFT problem pre-processing steps including mesh generation calls.
 
void initNoRemesh (const bool updateImagesAndKPointsAndVselfBins=true, const bool checkSmearedChargeWidthsForOverlap=true, const bool useSingleAtomSolutionOverride=false, const bool isMeshDeformed=false)
 Does KSDFT problem pre-processing steps but without remeshing.
 
void run ()
 FIXME: legacy call, move to main.cc.
 
void runFunctionalTest ()
 
void writeMesh ()
 Writes inital density and mesh to file.
 
void solveNoSCF ()
 compute approximation to ground-state without solving the SCF iteration
 
std::tuple< bool, double > solve (const bool computeForces=true, const bool computestress=true, const bool restartGroundStateCalcFromChk=false)
 Kohn-Sham ground-state solve using SCF iteration.
 
void computeStress ()
 
void trivialSolveForStress ()
 
void computeOutputDensityDirectionalDerivative (const distributedCPUVec< double > &v, const distributedCPUVec< double > &vSpin0, const distributedCPUVec< double > &vSpin1, distributedCPUVec< double > &fv, distributedCPUVec< double > &fvSpin0, distributedCPUVec< double > &fvSpin1)
 
double computeResidualQuadData (const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &outValues, const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &inValues, dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &residualValues, const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &JxW, const bool computeNorm)
 Copies the residual residualValues=outValues-inValues.
 
double computeResidualNodalData (const distributedCPUVec< double > &outValues, const distributedCPUVec< double > &inValues, distributedCPUVec< double > &residualValues)
 
void computeRhoNodalMassVector (dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &massVec)
 Computes the diagonal mass matrix for rho nodal grid, used for nodal mixing.
 
void initializeKohnShamDFTOperator (const bool initializeCublas=true)
 
void reInitializeKohnShamDFTOperator ()
 
void finalizeKohnShamDFTOperator ()
 
double getInternalEnergy () const
 
double getEntropicEnergy () const
 
double getFreeEnergy () const
 
const distributedCPUVec< double > & getRhoNodalOut () const
 
const distributedCPUVec< double > & getRhoNodalSplitOut () const
 
double getTotalChargeforRhoSplit ()
 
void resetRhoNodalIn (distributedCPUVec< double > &OutDensity)
 
virtual void resetRhoNodalSplitIn (distributedCPUVec< double > &OutDensity)
 
void readkPointData ()
 
const std::vector< dealii::types::global_dof_index > & getLocalDofIndicesReal () const
 Get local dofs global indices real.
 
const std::vector< dealii::types::global_dof_index > & getLocalDofIndicesImag () const
 Get local dofs global indices imag.
 
const std::vector< dealii::types::global_dof_index > & getLocalProcDofIndicesReal () const
 Get local dofs local proc indices real.
 
const std::vector< dealii::types::global_dof_index > & getLocalProcDofIndicesImag () const
 Get local dofs local proc indices imag.
 
const dealii::MatrixFree< 3, double > & getMatrixFreeData () const
 Get matrix free data object.
 
void updateAtomPositionsAndMoveMesh (const std::vector< dealii::Tensor< 1, 3, double > > &globalAtomsDisplacements, const double maxJacobianRatioFactor=1.25, const bool useSingleAtomSolutionsOverride=false)
 Updates atom positions, remeshes/moves mesh and calls appropriate reinits.
 
void writeDomainAndAtomCoordinates ()
 writes the current domain bounding vectors and atom coordinates to files, which are required for geometry relaxation restart
 
void writeDomainAndAtomCoordinates (const std::string Path) const
 writes the current domain bounding vectors and atom coordinates to files for structural optimization and dynamics restarts. The coordinates are stored as: 1. fractional for semi-periodic/periodic 2. Cartesian for non-periodic.
 
void writeStructureEnergyForcesDataPostProcess (const std::string Path) const
 writes atomistics data for subsequent post-processing. Related to WRITE STRUCTURE ENERGY FORCES DATA POST PROCESS input parameter.
 
virtual void writeGSElectronDensity (const std::string Path) const
 writes quadrature grid information and associated spin-up and spin-down electron-density for post-processing
 
const std::vector< std::vector< double > > & getAtomLocationsCart () const
 Gets the current atom Locations in cartesian form (origin at center of domain) from dftClass.
 
const std::vector< double > & getNearestAtomDistance () const
 Gets the nearest atom distance for each atom.
 
const std::vector< std::vector< double > > & getImageAtomLocationsCart () const
 Gets the current image atom Locations in cartesian form (origin at center of domain) from dftClass.
 
const std::vector< int > & getImageAtomIDs () const
 Gets the current image atom ids from dftClass.
 
const std::vector< std::vector< double > > & getAtomLocationsFrac () const
 Gets the current atom Locations in fractional form from dftClass (only applicable for periodic and semi-periodic BCs)
 
const std::vector< std::vector< double > > & getCell () const
 Gets the current cell lattice vectors.
 
double getCellVolume () const
 Gets the current cell volume.
 
const std::set< unsigned int > & getAtomTypes () const
 Gets the current atom types from dftClass.
 
const std::vector< double > & getForceonAtoms () const
 Gets the current atomic forces from dftClass.
 
const dealii::Tensor< 2, 3, double > & getCellStress () const
 Gets the current cell stress from dftClass.
 
dftParametersgetParametersObject () const
 Get reference to dftParameters object.
 
const dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > & getEigenVectors () const
 Get reference the memorySpace templated eigen vectors.
 
const dftfe::utils::MemoryStorage< dataTypes::number, dftfe::utils::MemorySpace::HOST > & getEigenVectorsHost () const
 Get reference the host eigen vectors.
 
const std::vector< std::vector< double > > & getEigenValues () const
 Get reference to the eigen values.
 
double getFermiEnergy () const
 Get the value of fermi energy.
 
double getNumElectrons () const
 Get the number of electrons.
 
void setNumElectrons (unsigned int inputNumElectrons)
 
elpaScalaManagergetElpaScalaManager () const
 
chebyshevOrthogonalizedSubspaceIterationSolvergetSubspaceIterationSolverHost ()
 Get the Ptr to Chebyshev solver in host.
 
void kohnShamEigenSpaceCompute (const unsigned int s, const unsigned int kPointIndex, KohnShamHamiltonianOperator< dftfe::utils::MemorySpace::HOST > &kohnShamDFTEigenOperator, elpaScalaManager &elpaScala, chebyshevOrthogonalizedSubspaceIterationSolver &subspaceIterationSolver, std::vector< double > &residualNormWaveFunctions, const bool computeResidual, const bool useMixedPrec=false, const bool isFirstScf=false)
 Function that computes the Eigen space for the Kohn Sham operator.
 
void compute_fermienergy (const std::vector< std::vector< double > > &eigenValuesInput, const double numElectronsInput)
 Computes Fermi-energy obtained by imposing constraint on the number of electrons.
 
void compute_fermienergy_purestate (const std::vector< std::vector< double > > &eigenValuesInput, const double numElectronsInput)
 find HOMO eigenvalue for pure state
 
double computeAndPrintKE (dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &kineticEnergyDensityValues)
 Computes the kinetic energy.
 
KohnShamHamiltonianOperator< memorySpace > * getOperatorClass ()
 get the Ptr to the operator class ( Kohn Sham Operator)
 
unsigned int getDensityDofHandlerIndex ()
 get the index of the DoF Handler corresponding to
 
unsigned int getDensityQuadratureId ()
 
const std::vector< double > & getKPointWeights () const
 
unsigned int getNumEigenValues () const
 
triangulationManagergetTriangulationManager ()
 
const dealii::MatrixFree< 3, double > & getMatrixFreeDataElectro () const
 
dealii::AffineConstraints< double > * getDensityConstraint ()
 
unsigned int getElectroDofHandlerIndex () const
 
unsigned int getElectroQuadratureRhsId () const
 
unsigned int getElectroQuadratureAxId () const
 
std::shared_ptr< dftfe::basis::FEBasisOperations< dataTypes::number, double, dftfe::utils::MemorySpace::HOST > > getBasisOperationsHost ()
 
std::shared_ptr< dftfe::basis::FEBasisOperations< dataTypes::number, double, memorySpace > > getBasisOperationsMemSpace ()
 
std::shared_ptr< dftfe::basis::FEBasisOperations< double, double, dftfe::utils::MemorySpace::HOST > > getBasisOperationsElectroHost ()
 
std::shared_ptr< dftfe::basis::FEBasisOperations< double, double, memorySpace > > getBasisOperationsElectroMemSpace ()
 
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > getBLASWrapperMemSpace ()
 
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > getBLASWrapperHost ()
 
std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > & getDensityInValues ()
 
std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > & getDensityOutValues ()
 
void l2ProjectionQuadToNodal (const std::shared_ptr< dftfe::basis::FEBasisOperations< double, double, dftfe::utils::MemorySpace::HOST > > &basisOperationsPtr, const dealii::AffineConstraints< double > &constraintMatrix, const unsigned int dofHandlerId, const unsigned int quadratureId, const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &quadratureValueData, distributedCPUVec< double > &nodalField)
 l2 projection
 
void interpolateElectroNodalDataToQuadratureDataGeneral (const std::shared_ptr< dftfe::basis::FEBasisOperations< double, double, dftfe::utils::MemorySpace::HOST > > &basisOperationsPtr, const unsigned int dofHandlerId, const unsigned int quadratureId, const distributedCPUVec< double > &nodalField, dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &quadratureValueData, dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &quadratureGradValueData, const bool isEvaluateGradData=false)
 interpolate nodal data to quadrature data using FEEvaluation
 
std::map< dealii::types::global_dof_index, double > & getAtomNodeToChargeMap ()
 map of atom node number and atomic weight
 
std::map< dealii::CellId, std::vector< double > > & getBQuadValuesAllAtoms ()
 non-intersecting smeared charges of all atoms at quad points
 
unsigned int getSmearedChargeQuadratureIdElectro ()
 
const dealii::AffineConstraints< double > * getConstraintsVectorElectro ()
 
const std::vector< std::vector< double > > & getLocalVselfs () const
 
const MPI_Comm & getMPIDomain () const override
 
const MPI_Comm & getMPIParent () const override
 
const MPI_Comm & getMPIInterPool () const override
 
const MPI_Comm & getMPIInterBand () const override
 
const std::map< dealii::CellId, std::vector< unsigned int > > & getbCellNonTrivialAtomIds () const
 
void updatePRefinedConstraints ()
 
void computeMultipoleMoments (const std::shared_ptr< dftfe::basis::FEBasisOperations< double, double, dftfe::utils::MemorySpace::HOST > > &basisOperationsPtr, const unsigned int densityQuadratureId, const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &rhoQuadValues, const std::map< dealii::CellId, std::vector< double > > *bQuadValues)
 
const expConfiningPotentialgetConfiningPotential () const
 
std::shared_ptr< hubbard< dataTypes::number, memorySpace > > getHubbardClassPtr ()
 Returns the shared ptr to hubbard class.
 
bool isHubbardCorrectionsUsed ()
 Function to check if hubbard corrections is being used.
 
void outputWfc (const std::string outputFileName="wfcOutput")
 write wavefunction solution fields
 
const std::map< dealii::CellId, std::vector< double > > & getPseudoVLoc () const
 return the pseudo potential field
 
- Public Member Functions inherited from dftfe::dftBase
virtual ~dftBase ()
 This is required to correctly delete the derived class object through the base class ptr.
 

Public Attributes

unsigned int d_numEigenValues
 Number of Kohn-Sham eigen values to be computed.
 
unsigned int d_highestStateForResidualComputation
 
unsigned int d_nonAtomicWaveFunctions
 Number of random wavefunctions.
 

Private Member Functions

void initImageChargesUpdateKPoints (bool flag=true)
 generate image charges and update k point cartesian coordinates based on current lattice vectors
 
void initHubbardOperator ()
 Checks if the Exc functional requires Hubbard correction and sets up the Hubbard class if required.
 
void determineAtomsOfInterstPseudopotential (const std::vector< std::vector< double > > &atomCoordinates)
 
void projectPreviousGroundStateRho ()
 project ground state electron density from previous mesh into the new mesh to be used as initial guess for the new ground state solve
 
void saveTriaInfoAndRhoNodalData ()
 save triangulation information and rho quadrature data to checkpoint file for restarts
 
void loadTriaInfoAndRhoNodalData ()
 load triangulation information rho quadrature data from checkpoint file for restarted run
 
void generateMPGrid ()
 
void writeMesh (std::string meshFileName)
 
void generateImageCharges (const double pspCutOff, std::vector< int > &imageIds, std::vector< double > &imageCharges, std::vector< std::vector< double > > &imagePositions)
 creates datastructures related to periodic image charges
 
void createMasterChargeIdToImageIdMaps (const double pspCutOff, const std::vector< int > &imageIds, const std::vector< std::vector< double > > &imagePositions, std::vector< std::vector< int > > &globalChargeIdToImageIdMap)
 
void determineOrbitalFilling ()
 
void aposterioriMeshGenerate ()
 
dataTypes::number computeTraceXtHX (unsigned int numberWaveFunctionsEstimate)
 
double computeTraceXtKX (unsigned int numberWaveFunctionsEstimate)
 
void moveMeshToAtoms (dealii::Triangulation< 3, 3 > &triangulationMove, dealii::Triangulation< 3, 3 > &triangulationSerial, bool reuseFlag=false, bool moveSubdivided=false)
 moves the triangulation vertices using Gaussians such that the all atoms are on triangulation vertices
 
void calculateSmearedChargeWidths ()
 a
 
void calculateNearestAtomDistances ()
 a
 
void initUnmovedTriangulation (dealii::parallel::distributed::Triangulation< 3 > &triangulation)
 
void initBoundaryConditions (const bool recomputeBasisData=true, const bool meshOnlyDeformed=false, const bool vselfPerturbationUpdateForStress=false)
 
void initElectronicFields ()
 
void initPseudoPotentialAll (const bool updateNonlocalSparsity=true)
 
void createpRefinedDofHandler (dealii::parallel::distributed::Triangulation< 3 > &triangulation)
 
void initpRefinedObjects (const bool recomputeBasisData, const bool meshOnlyDeformed, const bool vselfPerturbationUpdateForStress=false)
 
void applyMultipoleDirichletBC (const dealii::DoFHandler< 3 > &_dofHandler, const dealii::AffineConstraints< double > &onlyHangingNodeConstraints, dealii::AffineConstraints< double > &constraintMatrix)
 Sets inhomegeneous dirichlet boundary conditions upto quadrupole for total potential constraints on non-periodic boundary (boundary id==0).
 
void interpolateDensityNodalDataToQuadratureDataGeneral (const std::shared_ptr< dftfe::basis::FEBasisOperations< double, double, dftfe::utils::MemorySpace::HOST > > &basisOperationsPtr, const unsigned int dofHandlerId, const unsigned int quadratureId, const distributedCPUVec< double > &nodalField, dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &quadratureValueData, dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &quadratureGradValueData, dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &quadratureHessianValueData, const bool isEvaluateGradData=false, const bool isEvaluateHessianData=false)
 interpolate rho nodal data to quadrature data using FEEvaluation
 
void interpolateDensityNodalDataToQuadratureDataLpsp (const std::shared_ptr< dftfe::basis::FEBasisOperations< double, double, dftfe::utils::MemorySpace::HOST > > &basisOperationsPtr, const unsigned int dofHandlerId, const unsigned int quadratureId, const distributedCPUVec< double > &nodalField, dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &quadratureValueData, dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &quadratureGradValueData, const bool isEvaluateGradData)
 interpolate rho nodal data to quadrature data using FEEvaluation
 
void addAtomicRhoQuadValuesGradients (dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &quadratureValueData, dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &quadratureGradValueData, const bool isConsiderGradData=false)
 add atomic densities at quadrature points
 
void locateAtomCoreNodes (const dealii::DoFHandler< 3 > &_dofHandler, std::map< dealii::types::global_dof_index, double > &atomNodeIdToChargeValueMap)
 Finds the global dof ids of the nodes containing atoms.
 
void locatePeriodicPinnedNodes (const dealii::DoFHandler< 3 > &_dofHandler, const dealii::AffineConstraints< double > &constraintMatrixBase, dealii::AffineConstraints< double > &constraintMatrix)
 Sets homogeneous dirichlet boundary conditions on a node farthest from all atoms (pinned node). This is only done in case of periodic boundary conditions to get an unique solution to the total electrostatic potential problem.
 
void initAtomicRho ()
 
void initRho ()
 
void initCoreRho ()
 
void computeRhoInitialGuessFromPSI (std::vector< std::vector< distributedCPUVec< double > > > eigenVectors)
 
void clearRhoData ()
 
void computeRhoNodalFromPSI ()
 computes density nodal data from wavefunctions
 
void computeRhoNodalFirstOrderResponseFromPSIAndPSIPrime (distributedCPUVec< double > &fv, distributedCPUVec< double > &fvSpin0, distributedCPUVec< double > &fvSpin1)
 
void noRemeshRhoDataInit ()
 
void readPSI ()
 
void readPSIRadialValues ()
 
void loadPSIFiles (unsigned int Z, unsigned int n, unsigned int l, unsigned int &flag)
 
void initLocalPseudoPotential (const dealii::DoFHandler< 3 > &_dofHandler, const unsigned int lpspQuadratureId, const dealii::MatrixFree< 3, double > &_matrix_free_data, const unsigned int _phiExtDofHandlerIndex, const dealii::AffineConstraints< double > &phiExtConstraintMatrix, const std::map< dealii::types::global_dof_index, dealii::Point< 3 > > &supportPoints, const vselfBinsManager< FEOrder, FEOrderElectro > &vselfBinManager, distributedCPUVec< double > &phiExt, std::map< dealii::CellId, std::vector< double > > &_pseudoValues, std::map< unsigned int, std::map< dealii::CellId, std::vector< double > > > &_pseudoValuesAtoms)
 
void applyHomogeneousDirichletBC (const dealii::DoFHandler< 3 > &_dofHandler, const dealii::AffineConstraints< double > &onlyHangingNodeConstraints, dealii::AffineConstraints< double > &constraintMatrix)
 Sets homegeneous dirichlet boundary conditions for total potential constraints on non-periodic boundary (boundary id==0).
 
double totalCharge (const dealii::DoFHandler< 3 > &dofHandlerOfField, const distributedCPUVec< double > &rhoNodalField)
 Computes total charge by integrating the electron-density.
 
double totalCharge (const dealii::DoFHandler< 3 > &dofHandlerOfField, const std::map< dealii::CellId, std::vector< double > > *rhoQuadValues)
 
double totalCharge (const dealii::DoFHandler< 3 > &dofHandlerOfField, const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &rhoQuadValues)
 
double totalCharge (const dealii::MatrixFree< 3, double > &matrixFreeDataObject, const distributedCPUVec< double > &rhoNodalField)
 
double rhofieldl2Norm (const dealii::MatrixFree< 3, double > &matrixFreeDataObject, const distributedCPUVec< double > &rhoNodalField, const unsigned int dofHandlerId, const unsigned int quadratureId)
 
double rhofieldInnerProduct (const dealii::MatrixFree< 3, double > &matrixFreeDataObject, const distributedCPUVec< double > &rhoNodalField1, const distributedCPUVec< double > &rhoNodalField2, const unsigned int dofHandlerId, const unsigned int quadratureId)
 
double fieldGradl2Norm (const dealii::MatrixFree< 3, double > &matrixFreeDataObject, const distributedCPUVec< double > &field)
 
void l2ProjectionQuadDensityMinusAtomicDensity (const std::shared_ptr< dftfe::basis::FEBasisOperations< double, double, dftfe::utils::MemorySpace::HOST > > &basisOperationsPtr, const dealii::AffineConstraints< double > &constraintMatrix, const unsigned int dofHandlerId, const unsigned int quadratureId, const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &quadratureValueData, distributedCPUVec< double > &nodalField)
 l2 projection
 
void totalMagnetization (const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &magQuadValues)
 Computes net magnetization from the difference of local spin densities.
 
void normalizeRhoInQuadValues ()
 normalize the input electron density
 
void normalizeRhoMagInInitialGuessQuadValues ()
 normalize input mag electron density to total magnetization for use in constraint magnetization case (only for initial guess)
 
void normalizeRhoOutQuadValues ()
 normalize the output total electron density in each scf
 
void normalizeAtomicRhoQuadValues ()
 normalize the electron density
 
void compute_rhoOut (const bool isGroundState=false)
 Computes output electron-density from wavefunctions.
 
void applyKerkerPreconditionerToTotalDensityResidual (kerkerSolverProblem< C_rhoNodalPolyOrder< FEOrder, FEOrderElectro >()> &kerkerPreconditionedResidualSolverProblem, dealiiLinearSolver &CGSolver, const distributedCPUVec< double > &residualRho, distributedCPUVec< double > &preCondTotalDensityResidualVector)
 Mixing schemes for mixing electron-density.
 
double lowrankApproxScfDielectricMatrixInv (const unsigned int scfIter)
 
double lowrankApproxScfDielectricMatrixInvSpinPolarized (const unsigned int scfIter)
 
void compute_fermienergy_constraintMagnetization (const std::vector< std::vector< double > > &eigenValuesInput)
 Computes Fermi-energy obtained by imposing separate constraints on the number of spin-up and spin-down electrons.
 
void compute_fermienergy_constraintMagnetization_purestate (const std::vector< std::vector< double > > &eigenValuesInput)
 Find spin-up and spin-down channel HOMO eigenvalues.
 
void compute_tdos (const std::vector< std::vector< double > > &eigenValuesInput, const std::string &fileName)
 compute density of states and local density of states
 
void compute_ldos (const std::vector< std::vector< double > > &eigenValuesInput, const std::string &fileName)
 
void compute_localizationLength (const std::string &locLengthFileName)
 compute localization length
 
void outputDensity ()
 write electron density solution fields
 
void writeBands ()
 write the KS eigen values for given BZ sampling/path
 
double computeVolume (const dealii::DoFHandler< 3 > &_dofHandler)
 Computes the volume of the domain.
 
void deformDomain (const dealii::Tensor< 2, 3, double > &deformationGradient, const bool vselfPerturbationUpdateForStress=false, const bool useSingleAtomSolutionsOverride=false, const bool print=true)
 Deforms the domain by the given deformation gradient and reinitializes the dftClass datastructures.
 
void applyPeriodicBCHigherOrderNodes ()
 Computes inner Product and Y = alpha*X + Y for complex vectors used during periodic boundary conditions.
 
void updateAuxDensityXCMatrix (const std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &densityQuadValues, const std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &gradDensityQuadValues, const std::map< dealii::CellId, std::vector< double > > &rhoCore, const std::map< dealii::CellId, std::vector< double > > &gradRhoCore, const dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > &eigenVectorsFlattenedMemSpace, const std::vector< std::vector< double > > &eigenValues, const double fermiEnergy_, const double fermiEnergyUp_, const double fermiEnergyDown_, std::shared_ptr< AuxDensityMatrix< memorySpace > > auxDensityMatrixXCPtr)
 
void computeVselfFieldGateauxDerFD ()
 
void recomputeKPointCoordinates ()
 
void nscf (KohnShamHamiltonianOperator< memorySpace > &kohnShamDFTEigenOperator, chebyshevOrthogonalizedSubspaceIterationSolver &subspaceIterationSolver)
 
void initnscf (KohnShamHamiltonianOperator< memorySpace > &kohnShamDFTEigenOperator, poissonSolverProblem< FEOrder, FEOrderElectro > &phiTotalSolverProblem, dealiiLinearSolver &CGSolver)
 
double computeMaximumHighestOccupiedStateResidualNorm (const std::vector< std::vector< double > > &residualNormWaveFunctionsAllkPoints, const std::vector< std::vector< double > > &eigenValuesAllkPoints, const double _fermiEnergy)
 compute the maximum of the residual norm of the highest occupied state among all k points
 
double computeMaximumHighestOccupiedStateResidualNorm (const std::vector< std::vector< double > > &residualNormWaveFunctionsAllkPoints, const std::vector< std::vector< double > > &eigenValuesAllkPoints, const unsigned int highestState)
 compute the maximum of the residual norm of the highest state of interest among all k points
 
void kohnShamEigenSpaceFirstOrderDensityMatResponse (const unsigned int s, const unsigned int kPointIndex, KohnShamHamiltonianOperator< dftfe::utils::MemorySpace::HOST > &kohnShamDFTEigenOperator, elpaScalaManager &elpaScala)
 
void kohnShamEigenSpaceComputeNSCF (const unsigned int spinType, const unsigned int kPointIndex, KohnShamHamiltonianOperator< dftfe::utils::MemorySpace::HOST > &kohnShamDFTEigenOperator, chebyshevOrthogonalizedSubspaceIterationSolver &subspaceIterationSolver, std::vector< double > &residualNormWaveFunctions, unsigned int ipass)
 

Private Attributes

double d_atomicRhoScalingFac
 
std::shared_ptr< excManager< memorySpace > > d_excManagerPtr
 
dispersionCorrection d_dispersionCorr
 
unsigned int numLevels
 
double numElectrons
 
double numElectronsUp
 
double numElectronsDown
 
std::set< unsigned int > atomTypes
 
std::map< unsigned int, unsigned int > d_atomTypeAtributes
 
std::vector< std::vector< double > > atomLocations
 FIXME: remove atom type atributes from atomLocations.
 
std::vector< std::vector< double > > atomLocationsFractional
 
std::vector< std::vector< double > > d_reciprocalLatticeVectors
 
std::vector< std::vector< double > > d_domainBoundingVectors
 
std::vector< std::vector< double > > d_meshSizes
 
std::vector< std::vector< double > > d_atomLocationsInterestPseudopotential
 
std::map< unsigned int, unsigned int > d_atomIdPseudopotentialInterestToGlobalId
 
std::vector< std::vector< double > > d_atomLocationsAutoMesh
 
std::vector< std::vector< double > > d_imagePositionsAutoMesh
 
std::vector< dealii::Tensor< 1, 3, double > > d_atomsDisplacementsGaussianRead
 Gaussian displacements of atoms read from file.
 
std::vector< double > d_netFloatingDispSinceLastBinsUpdate
 
std::vector< double > d_netFloatingDispSinceLastCheckForSmearedChargeOverlaps
 
bool d_isAtomsGaussianDisplacementsReadFromFile = false
 
std::vector< double > d_gaussianConstantsForce
 
std::vector< double > d_gaussianConstantsAutoMesh
 
std::vector< double > d_generatorFlatTopWidths
 composite generator flat top widths for all domain atoms
 
std::vector< double > d_flatTopWidthsAutoMeshMove
 
std::vector< double > d_smearedChargeWidths
 smeared charge widths for all domain atoms
 
std::vector< double > d_smearedChargeScaling
 smeared charge normalization scaling for all domain atoms
 
std::vector< unsigned int > d_nearestAtomIds
 nearest atom ids for all domain atoms
 
std::vector< double > d_nearestAtomDistances
 nearest atom distances for all domain atoms
 
double d_minDist
 
std::vector< int > d_imageIds
 
std::vector< double > d_imageCharges
 
std::vector< std::vector< double > > d_imagePositions
 
std::vector< std::vector< int > > d_globalChargeIdToImageIdMap
 globalChargeId to ImageChargeId Map
 
std::vector< int > d_imageIdsTrunc
 
std::vector< double > d_imageChargesTrunc
 
std::vector< std::vector< double > > d_imagePositionsTrunc
 
std::vector< std::vector< int > > d_globalChargeIdToImageIdMapTrunc
 globalChargeId to ImageChargeId Map generated with a truncated pspCutOff
 
double d_pspCutOff = 15.0
 distance from the domain till which periodic images will be considered
 
const double d_pspCutOffTrunc = 15.0
 distance from the domain till which periodic images will be considered
 
double d_nlPSPCutOff = 8.0
 
std::map< dealii::CellId, std::vector< double > > d_bQuadValuesAllAtoms
 non-intersecting smeared charges of all atoms at quad points
 
std::map< dealii::CellId, std::vector< double > > d_gradbQuadValuesAllAtoms
 non-intersecting smeared charge gradients of all atoms at quad points
 
std::map< dealii::CellId, std::vector< int > > d_bQuadAtomIdsAllAtoms
 non-intersecting smeared charges atom ids of all atoms at quad points
 
std::map< dealii::CellId, std::vector< int > > d_bQuadAtomIdsAllAtomsImages
 
std::map< dealii::CellId, std::vector< unsigned int > > d_bCellNonTrivialAtomIds
 
std::vector< std::map< dealii::CellId, std::vector< unsigned int > > > d_bCellNonTrivialAtomIdsBins
 
std::map< dealii::CellId, std::vector< unsigned int > > d_bCellNonTrivialAtomImageIds
 
std::vector< std::map< dealii::CellId, std::vector< unsigned int > > > d_bCellNonTrivialAtomImageIdsBins
 
const double d_smearedChargeWidthMin = 0.4
 minimum smeared charge width
 
std::vector< orbital > waveFunctionsVector
 
std::map< unsigned int, std::map< unsigned int, std::map< unsigned int, alglib::spline1dinterpolant > > > radValues
 
std::map< unsigned int, std::map< unsigned int, std::map< unsigned int, double > > > outerValues
 
triangulationManager d_mesh
 
double d_autoMeshMaxJacobianRatio
 
unsigned int d_autoMesh
 
meshMovementAffineTransform d_affineTransformMesh
 affine transformation object
 
meshMovementGaussianClass d_gaussianMovePar
 meshMovementGaussianClass object
 
std::vector< dealii::Tensor< 1, 3, double > > d_gaussianMovementAtomsNetDisplacements
 
std::vector< dealii::Point< 3 > > d_controlPointLocationsCurrentMove
 
double d_domainVolume
 volume of the domain
 
double d_wfcInitTruncation = 5.0
 init wfc trunctation radius
 
dealii::FESystem< 3 > FE
 
dealii::FESystem< 3 > FEEigen
 
dealii::DoFHandler< 3 > dofHandler
 
dealii::DoFHandler< 3 > dofHandlerEigen
 
dealii::DoFHandler< 3 > d_dofHandlerPRefined
 
dealii::DoFHandler< 3 > d_dofHandlerRhoNodal
 
unsigned int d_eigenDofHandlerIndex
 
unsigned int d_phiExtDofHandlerIndexElectro
 
unsigned int d_forceDofHandlerIndex
 
unsigned int d_densityDofHandlerIndex
 
unsigned int d_densityDofHandlerIndexElectro
 
unsigned int d_nonPeriodicDensityDofHandlerIndexElectro
 
unsigned int d_baseDofHandlerIndexElectro
 
unsigned int d_forceDofHandlerIndexElectro
 
unsigned int d_smearedChargeQuadratureIdElectro
 
unsigned int d_nlpspQuadratureId
 
unsigned int d_lpspQuadratureId
 
unsigned int d_feOrderPlusOneQuadratureId
 
unsigned int d_lpspQuadratureIdElectro
 
unsigned int d_gllQuadratureId
 
unsigned int d_phiTotDofHandlerIndexElectro
 
unsigned int d_phiPrimeDofHandlerIndexElectro
 
unsigned int d_phiTotAXQuadratureIdElectro
 
unsigned int d_helmholtzDofHandlerIndexElectro
 
unsigned int d_binsStartDofHandlerIndexElectro
 
unsigned int d_densityQuadratureId
 
unsigned int d_densityQuadratureIdElectro
 
unsigned int d_sparsityPatternQuadratureId
 
unsigned int d_nOMPThreads
 
dealii::MatrixFree< 3, double > matrix_free_data
 
dealii::MatrixFree< 3, double > d_matrixFreeDataPRefined
 
std::shared_ptr< dftfe::basis::FEBasisOperations< dataTypes::number, double, dftfe::utils::MemorySpace::HOST > > d_basisOperationsPtrHost
 
std::shared_ptr< dftfe::basis::FEBasisOperations< double, double, dftfe::utils::MemorySpace::HOST > > d_basisOperationsPtrElectroHost
 
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > d_BLASWrapperPtrHost
 
std::shared_ptr< dftfe::oncvClass< dataTypes::number, memorySpace > > d_oncvClassPtr
 
std::shared_ptr< dftfe::atomCenteredOrbitalsPostProcessing< dataTypes::number, memorySpace > > d_atomCenteredOrbitalsPostProcessingPtr
 
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > d_BLASWrapperPtr
 
std::map< dealii::types::global_dof_index, dealii::Point< 3 > > d_supportPoints
 
std::map< dealii::types::global_dof_index, dealii::Point< 3 > > d_supportPointsPRefined
 
std::map< dealii::types::global_dof_index, dealii::Point< 3 > > d_supportPointsEigen
 
std::vector< const dealii::AffineConstraints< double > * > d_constraintsVector
 
std::vector< const dealii::AffineConstraints< double > * > d_constraintsVectorElectro
 
const MPI_Comm mpi_communicator
 
const MPI_Comm d_mpiCommParent
 
const MPI_Comm interpoolcomm
 
const MPI_Comm interBandGroupComm
 
const unsigned int n_mpi_processes
 
const unsigned int this_mpi_process
 
dealii::IndexSet locally_owned_dofs
 
dealii::IndexSet locally_owned_dofsEigen
 
dealii::IndexSet locally_relevant_dofs
 
dealii::IndexSet locally_relevant_dofsEigen
 
dealii::IndexSet d_locallyRelevantDofsPRefined
 
dealii::IndexSet d_locallyRelevantDofsRhoNodal
 
std::vector< dealii::types::global_dof_index > local_dof_indicesReal
 
std::vector< dealii::types::global_dof_index > local_dof_indicesImag
 
std::vector< dealii::types::global_dof_index > localProc_dof_indicesReal
 
std::vector< dealii::types::global_dof_index > localProc_dof_indicesImag
 
std::vector< bool > selectedDofsHanging
 
forceClass< FEOrder, FEOrderElectro, memorySpace > * forcePtr
 
symmetryClass< FEOrder, FEOrderElectro, memorySpace > * symmetryPtr
 
elpaScalaManagerd_elpaScala
 
poissonSolverProblem< FEOrder, FEOrderElectro > d_phiTotalSolverProblem
 
poissonSolverProblem< FEOrder, FEOrderElectro > d_phiPrimeSolverProblem
 
bool d_kohnShamDFTOperatorsInitialized
 
KohnShamHamiltonianOperator< memorySpace > * d_kohnShamDFTOperatorPtr
 
const std::string d_dftfeScratchFolderName
 
chebyshevOrthogonalizedSubspaceIterationSolver d_subspaceIterationSolver
 
dftUtils::constraintMatrixInfo< dftfe::utils::MemorySpace::HOSTconstraintsNoneEigenDataInfo
 
dftUtils::constraintMatrixInfo< dftfe::utils::MemorySpace::HOSTconstraintsNoneDataInfo
 
dealii::AffineConstraints< double > constraintsNone
 
dealii::AffineConstraints< double > constraintsNoneEigen
 
dealii::AffineConstraints< double > d_noConstraints
 
dealii::AffineConstraints< double > d_constraintsForTotalPotentialElectro
 
dealii::AffineConstraints< double > d_constraintsForPhiPrimeElectro
 
dealii::AffineConstraints< double > d_constraintsForHelmholtzRhoNodal
 
dealii::AffineConstraints< double > d_constraintsPRefined
 
dealii::AffineConstraints< double > d_constraintsPRefinedOnlyHanging
 
dealii::AffineConstraints< double > d_constraintsRhoNodal
 
dealii::AffineConstraints< double > d_constraintsRhoNodalOnlyHanging
 
dftUtils::constraintMatrixInfo< dftfe::utils::MemorySpace::HOSTd_constraintsRhoNodalInfo
 
std::vector< std::vector< double > > eigenValues
 
std::vector< std::vector< double > > d_partialOccupancies
 
std::vector< std::vector< double > > d_fracOccupancy
 
std::vector< std::vector< double > > d_densityMatDerFermiEnergy
 
dftfe::utils::MemoryStorage< dataTypes::number, dftfe::utils::MemorySpace::HOSTd_eigenVectorsFlattenedHost
 
dftfe::utils::MemoryStorage< dataTypes::number, dftfe::utils::MemorySpace::HOSTd_eigenVectorsDensityMatrixPrimeHost
 
dealii::ConditionalOStream pcout
 device eigenvectors
 
dealii::TimerOutput computing_timer
 compute-time logger
 
dealii::TimerOutput computingTimerStandard
 
dealii::Timer d_globalTimer
 
std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > d_densityInQuadValues
 
std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > d_densityOutQuadValues
 
std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > d_densityResidualQuadValues
 
std::vector< distributedCPUVec< double > > d_densityInNodalValues
 
std::vector< distributedCPUVec< double > > d_densityOutNodalValues
 
std::vector< distributedCPUVec< double > > d_densityResidualNodalValues
 
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOSTd_phiInQuadValues
 
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOSTd_phiOutQuadValues
 
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOSTd_gradPhiInQuadValues
 
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOSTd_gradPhiOutQuadValues
 
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOSTd_gradPhiResQuadValues
 
MixingScheme d_mixingScheme
 
distributedCPUVec< double > d_rhoInNodalValuesRead
 
distributedCPUVec< double > d_rhoOutNodalValuesSplit
 
distributedCPUVec< double > d_preCondTotalDensityResidualVector
 
distributedCPUVec< double > d_rhoNodalFieldRefined
 
distributedCPUVec< double > d_rhoOutNodalValuesDistributed
 
distributedCPUVec< double > d_magInNodalValuesRead
 
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOSTd_densityTotalOutValuesLpspQuad
 
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOSTd_densityTotalInValuesLpspQuad
 
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOSTd_gradDensityTotalOutValuesLpspQuad
 
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOSTd_gradDensityTotalInValuesLpspQuad
 
std::shared_ptr< AuxDensityMatrix< memorySpace > > d_auxDensityMatrixXCInPtr
 
std::shared_ptr< AuxDensityMatrix< memorySpace > > d_auxDensityMatrixXCOutPtr
 
double d_monopole
 
std::vector< double > d_dipole
 
std::vector< double > d_quadrupole
 
std::vector< double > d_smearedChargeMoments
 
bool d_smearedChargeMomentsComputed
 
std::deque< distributedCPUVec< double > > d_vcontainerVals
 for low rank jacobian inverse approximation
 
std::deque< distributedCPUVec< double > > d_fvcontainerVals
 
std::deque< distributedCPUVec< double > > d_vSpin0containerVals
 
std::deque< distributedCPUVec< double > > d_fvSpin0containerVals
 
std::deque< distributedCPUVec< double > > d_vSpin1containerVals
 
std::deque< distributedCPUVec< double > > d_fvSpin1containerVals
 
distributedCPUVec< double > d_residualPredicted
 
unsigned int d_rankCurrentLRD
 
double d_relativeErrorJacInvApproxPrevScfLRD
 
double d_residualNormPredicted
 
bool d_tolReached
 
std::map< dealii::CellId, std::vector< double > > d_rhoAtomsValues
 for xl-bomd
 
std::map< dealii::CellId, std::vector< double > > d_gradRhoAtomsValues
 
std::map< dealii::CellId, std::vector< double > > d_hessianRhoAtomsValues
 
std::map< unsigned int, std::map< dealii::CellId, std::vector< double > > > d_rhoAtomsValuesSeparate
 
std::map< unsigned int, std::map< dealii::CellId, std::vector< double > > > d_gradRhoAtomsValuesSeparate
 
std::map< unsigned int, std::map< dealii::CellId, std::vector< double > > > d_hessianRhoAtomsValuesSeparate
 
std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > d_gradDensityInQuadValues
 
std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > d_gradDensityOutQuadValues
 
std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > d_gradDensityResidualQuadValues
 
distributedCPUVec< double > d_phiTotRhoIn
 
distributedCPUVec< double > d_phiTotRhoOut
 
distributedCPUVec< double > d_phiPrime
 
distributedCPUVec< double > d_phiExt
 
std::deque< distributedCPUVec< double > > d_groundStateDensityHistory
 
std::map< dealii::CellId, std::vector< double > > d_pseudoVLoc
 
std::map< unsigned int, std::map< dealii::CellId, std::vector< double > > > d_pseudoVLocAtoms
 
std::vector< std::vector< double > > d_localVselfs
 
std::map< dealii::CellId, std::vector< double > > d_rhoCore
 
std::map< dealii::CellId, std::vector< double > > d_gradRhoCore
 
std::map< unsigned int, std::map< dealii::CellId, std::vector< double > > > d_gradRhoCoreAtoms
 
std::map< dealii::CellId, std::vector< double > > d_hessianRhoCore
 
std::map< unsigned int, std::map< dealii::CellId, std::vector< double > > > d_hessianRhoCoreAtoms
 
std::map< dealii::types::global_dof_index, double > d_atomNodeIdToChargeMap
 map of atom node number and atomic weight
 
vselfBinsManager< FEOrder, FEOrderElectro > d_vselfBinsManager
 vselfBinsManager object
 
std::vector< distributedCPUVec< double > > d_vselfFieldGateauxDerStrainFDBins
 
dftParametersd_dftParamsPtr
 dftParameters object
 
std::vector< double > d_kPointCoordinates
 kPoint cartesian coordinates
 
std::vector< double > kPointReducedCoordinates
 k point crystal coordinates
 
std::vector< double > d_kPointWeights
 k point weights
 
std::vector< dealii::Point< 3 > > d_closestTriaVertexToAtomsLocation
 closest tria vertex
 
std::vector< dealii::Tensor< 1, 3, double > > d_dispClosestTriaVerticesToAtoms
 
unsigned int lowerBoundKindex = 0
 global k index of lower bound of the local k point set
 
double fermiEnergy
 fermi energy
 
double fermiEnergyUp
 
double fermiEnergyDown
 
double d_groundStateEnergy
 
double d_freeEnergyInitial
 
double d_freeEnergy
 
double d_entropicEnergy
 entropic energy
 
std::vector< double > a0
 
std::vector< double > bLow
 
std::vector< bool > d_isFirstFilteringCall
 
std::vector< double > d_upperBoundUnwantedSpectrumValues
 
distributedCPUVec< double > d_tempEigenVec
 
bool d_isRestartGroundStateCalcFromChk
 
bool scfConverged
 
expConfiningPotential d_expConfiningPot
 
std::shared_ptr< hubbard< dataTypes::number, memorySpace > > d_hubbardClassPtr
 
bool d_useHubbard
 

Friends

class forceClass< FEOrder, FEOrderElectro, memorySpace >
 
class symmetryClass< FEOrder, FEOrderElectro, memorySpace >
 

Detailed Description

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
class dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >

This class is the primary interface location of all other parts of the DFT-FE code for all steps involved in obtaining the Kohn-Sham DFT ground-state solution.

Author
Shiva Rudraraju, Phani Motamarri, Sambit Das

Constructor & Destructor Documentation

◆ dftClass()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::dftClass ( const MPI_Comm & mpiCommParent,
const MPI_Comm & mpi_comm_domain,
const MPI_Comm & interpoolcomm,
const MPI_Comm & interBandGroupComm,
const std::string & scratchFolderName,
dftParameters & dftParams )

dftClass constructor

Parameters
[in]mpi_comm_parentparent communicator
[in]mpi_comm_domainmpi_communicator for domain decomposition parallelization
[in]interpoolcommmpi_communicator for parallelization over k points
[in]interBandGroupCommmpi_communicator for parallelization over bands
[in]scratchFolderNamescratch folder name
[in]dftParamsdftParameters object containg parameter values parsed from an input parameter file in dftfeWrapper class

◆ ~dftClass()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::~dftClass ( )

dftClass destructor

Member Function Documentation

◆ addAtomicRhoQuadValuesGradients()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::addAtomicRhoQuadValuesGradients ( dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & quadratureValueData,
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & quadratureGradValueData,
const bool isConsiderGradData = false )
private

add atomic densities at quadrature points

◆ aposterioriMeshGenerate()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::aposterioriMeshGenerate ( )
private

◆ applyHomogeneousDirichletBC()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::applyHomogeneousDirichletBC ( const dealii::DoFHandler< 3 > & _dofHandler,
const dealii::AffineConstraints< double > & onlyHangingNodeConstraints,
dealii::AffineConstraints< double > & constraintMatrix )
private

Sets homegeneous dirichlet boundary conditions for total potential constraints on non-periodic boundary (boundary id==0).

Parameters
[in]dofHandler
[out]constraintMatrixdealii::AffineConstraints<double> object with homogeneous Dirichlet boundary condition entries added

◆ applyKerkerPreconditionerToTotalDensityResidual()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::applyKerkerPreconditionerToTotalDensityResidual ( kerkerSolverProblem< C_rhoNodalPolyOrder< FEOrder, FEOrderElectro >()> & kerkerPreconditionedResidualSolverProblem,
dealiiLinearSolver & CGSolver,
const distributedCPUVec< double > & residualRho,
distributedCPUVec< double > & preCondTotalDensityResidualVector )
private

Mixing schemes for mixing electron-density.

◆ applyMultipoleDirichletBC()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::applyMultipoleDirichletBC ( const dealii::DoFHandler< 3 > & _dofHandler,
const dealii::AffineConstraints< double > & onlyHangingNodeConstraints,
dealii::AffineConstraints< double > & constraintMatrix )
private

Sets inhomegeneous dirichlet boundary conditions upto quadrupole for total potential constraints on non-periodic boundary (boundary id==0).

Parameters
[in]dofHandler
[out]constraintMatrixdealii::AffineConstraints<double> object with inhomogeneous Dirichlet boundary condition entries added

◆ applyPeriodicBCHigherOrderNodes()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::applyPeriodicBCHigherOrderNodes ( )
private

Computes inner Product and Y = alpha*X + Y for complex vectors used during periodic boundary conditions.

Sets dirichlet boundary conditions for total potential constraints on non-periodic boundary (boundary id==0). Currently setting homogeneous bc

◆ calculateNearestAtomDistances()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::calculateNearestAtomDistances ( )
private

a

◆ calculateSmearedChargeWidths()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::calculateSmearedChargeWidths ( )
private

a

◆ clearRhoData()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::clearRhoData ( )
private

◆ compute_fermienergy()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::compute_fermienergy ( const std::vector< std::vector< double > > & eigenValuesInput,
const double numElectronsInput )

Computes Fermi-energy obtained by imposing constraint on the number of electrons.

◆ compute_fermienergy_constraintMagnetization()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::compute_fermienergy_constraintMagnetization ( const std::vector< std::vector< double > > & eigenValuesInput)
private

Computes Fermi-energy obtained by imposing separate constraints on the number of spin-up and spin-down electrons.

◆ compute_fermienergy_constraintMagnetization_purestate()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::compute_fermienergy_constraintMagnetization_purestate ( const std::vector< std::vector< double > > & eigenValuesInput)
private

Find spin-up and spin-down channel HOMO eigenvalues.

◆ compute_fermienergy_purestate()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::compute_fermienergy_purestate ( const std::vector< std::vector< double > > & eigenValuesInput,
const double numElectronsInput )

find HOMO eigenvalue for pure state

◆ compute_ldos()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::compute_ldos ( const std::vector< std::vector< double > > & eigenValuesInput,
const std::string & fileName )
private

◆ compute_localizationLength()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::compute_localizationLength ( const std::string & locLengthFileName)
private

compute localization length

◆ compute_rhoOut()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::compute_rhoOut ( const bool isGroundState = false)
private

Computes output electron-density from wavefunctions.

◆ compute_tdos()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::compute_tdos ( const std::vector< std::vector< double > > & eigenValuesInput,
const std::string & fileName )
private

compute density of states and local density of states

◆ computeAndPrintKE()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::computeAndPrintKE ( dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & kineticEnergyDensityValues)

Computes the kinetic energy.

◆ computeMaximumHighestOccupiedStateResidualNorm() [1/2]

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::computeMaximumHighestOccupiedStateResidualNorm ( const std::vector< std::vector< double > > & residualNormWaveFunctionsAllkPoints,
const std::vector< std::vector< double > > & eigenValuesAllkPoints,
const double _fermiEnergy )
private

compute the maximum of the residual norm of the highest occupied state among all k points

◆ computeMaximumHighestOccupiedStateResidualNorm() [2/2]

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::computeMaximumHighestOccupiedStateResidualNorm ( const std::vector< std::vector< double > > & residualNormWaveFunctionsAllkPoints,
const std::vector< std::vector< double > > & eigenValuesAllkPoints,
const unsigned int highestState )
private

compute the maximum of the residual norm of the highest state of interest among all k points

◆ computeMultipoleMoments()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::computeMultipoleMoments ( const std::shared_ptr< dftfe::basis::FEBasisOperations< double, double, dftfe::utils::MemorySpace::HOST > > & basisOperationsPtr,
const unsigned int densityQuadratureId,
const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & rhoQuadValues,
const std::map< dealii::CellId, std::vector< double > > * bQuadValues )

◆ computeOutputDensityDirectionalDerivative()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::computeOutputDensityDirectionalDerivative ( const distributedCPUVec< double > & v,
const distributedCPUVec< double > & vSpin0,
const distributedCPUVec< double > & vSpin1,
distributedCPUVec< double > & fv,
distributedCPUVec< double > & fvSpin0,
distributedCPUVec< double > & fvSpin1 )

◆ computeResidualNodalData()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::computeResidualNodalData ( const distributedCPUVec< double > & outValues,
const distributedCPUVec< double > & inValues,
distributedCPUVec< double > & residualValues )

◆ computeResidualQuadData()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::computeResidualQuadData ( const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & outValues,
const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & inValues,
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & residualValues,
const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & JxW,
const bool computeNorm )

Copies the residual residualValues=outValues-inValues.

◆ computeRhoInitialGuessFromPSI()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::computeRhoInitialGuessFromPSI ( std::vector< std::vector< distributedCPUVec< double > > > eigenVectors)
private

◆ computeRhoNodalFirstOrderResponseFromPSIAndPSIPrime()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::computeRhoNodalFirstOrderResponseFromPSIAndPSIPrime ( distributedCPUVec< double > & fv,
distributedCPUVec< double > & fvSpin0,
distributedCPUVec< double > & fvSpin1 )
private

◆ computeRhoNodalFromPSI()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::computeRhoNodalFromPSI ( )
private

computes density nodal data from wavefunctions

◆ computeRhoNodalMassVector()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::computeRhoNodalMassVector ( dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & massVec)

Computes the diagonal mass matrix for rho nodal grid, used for nodal mixing.

◆ computeStress()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::computeStress ( )
virtual

Implements dftfe::dftBase.

◆ computeTraceXtHX()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dataTypes::number dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::computeTraceXtHX ( unsigned int numberWaveFunctionsEstimate)
private

◆ computeTraceXtKX()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::computeTraceXtKX ( unsigned int numberWaveFunctionsEstimate)
private

◆ computeVolume()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::computeVolume ( const dealii::DoFHandler< 3 > & _dofHandler)
private

Computes the volume of the domain.

◆ computeVselfFieldGateauxDerFD()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::computeVselfFieldGateauxDerFD ( )
private

Compute Gateaux derivative of vself field in bins with respect to affine strain tensor components

◆ createMasterChargeIdToImageIdMaps()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::createMasterChargeIdToImageIdMaps ( const double pspCutOff,
const std::vector< int > & imageIds,
const std::vector< std::vector< double > > & imagePositions,
std::vector< std::vector< int > > & globalChargeIdToImageIdMap )
private

◆ createpRefinedDofHandler()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::createpRefinedDofHandler ( dealii::parallel::distributed::Triangulation< 3 > & triangulation)
private

create a dofHandler containing finite-element interpolating polynomial twice of the original polynomial required for Kerker mixing and initialize various objects related to this refined dofHandler

◆ deformDomain()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::deformDomain ( const dealii::Tensor< 2, 3, double > & deformationGradient,
const bool vselfPerturbationUpdateForStress = false,
const bool useSingleAtomSolutionsOverride = false,
const bool print = true )
privatevirtual

Deforms the domain by the given deformation gradient and reinitializes the dftClass datastructures.

Implements dftfe::dftBase.

◆ determineAtomsOfInterstPseudopotential()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::determineAtomsOfInterstPseudopotential ( const std::vector< std::vector< double > > & atomCoordinates)
private

◆ determineOrbitalFilling()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::determineOrbitalFilling ( )
private

◆ fieldGradl2Norm()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::fieldGradl2Norm ( const dealii::MatrixFree< 3, double > & matrixFreeDataObject,
const distributedCPUVec< double > & field )
private

◆ finalizeKohnShamDFTOperator()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::finalizeKohnShamDFTOperator ( )

◆ generateImageCharges()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::generateImageCharges ( const double pspCutOff,
std::vector< int > & imageIds,
std::vector< double > & imageCharges,
std::vector< std::vector< double > > & imagePositions )
private

creates datastructures related to periodic image charges

◆ generateMPGrid()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::generateMPGrid ( )
private

◆ getAtomLocationsCart()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const std::vector< std::vector< double > > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getAtomLocationsCart ( ) const
virtual

Gets the current atom Locations in cartesian form (origin at center of domain) from dftClass.

Implements dftfe::dftBase.

◆ getAtomLocationsFrac()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const std::vector< std::vector< double > > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getAtomLocationsFrac ( ) const
virtual

Gets the current atom Locations in fractional form from dftClass (only applicable for periodic and semi-periodic BCs)

Implements dftfe::dftBase.

◆ getAtomNodeToChargeMap()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map< dealii::types::global_dof_index, double > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getAtomNodeToChargeMap ( )

map of atom node number and atomic weight

◆ getAtomTypes()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const std::set< unsigned int > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getAtomTypes ( ) const
virtual

Gets the current atom types from dftClass.

Implements dftfe::dftBase.

◆ getBasisOperationsElectroHost()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::shared_ptr< dftfe::basis::FEBasisOperations< double, double, dftfe::utils::MemorySpace::HOST > > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getBasisOperationsElectroHost ( )

◆ getBasisOperationsElectroMemSpace()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::shared_ptr< dftfe::basis::FEBasisOperations< double, double, memorySpace > > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getBasisOperationsElectroMemSpace ( )

◆ getBasisOperationsHost()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::shared_ptr< dftfe::basis::FEBasisOperations< dataTypes::number, double, dftfe::utils::MemorySpace::HOST > > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getBasisOperationsHost ( )

◆ getBasisOperationsMemSpace()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::shared_ptr< dftfe::basis::FEBasisOperations< dataTypes::number, double, memorySpace > > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getBasisOperationsMemSpace ( )

◆ getbCellNonTrivialAtomIds()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const std::map< dealii::CellId, std::vector< unsigned int > > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getbCellNonTrivialAtomIds ( ) const

◆ getBLASWrapperHost()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getBLASWrapperHost ( )

◆ getBLASWrapperMemSpace()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getBLASWrapperMemSpace ( )

◆ getBQuadValuesAllAtoms()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map< dealii::CellId, std::vector< double > > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getBQuadValuesAllAtoms ( )

non-intersecting smeared charges of all atoms at quad points

◆ getCell()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const std::vector< std::vector< double > > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getCell ( ) const
virtual

Gets the current cell lattice vectors.

Returns
std::vector<std::vector<double>> 3 \times 3 matrix,lattice[i][j] corresponds to jth component of ith lattice vector

Implements dftfe::dftBase.

◆ getCellStress()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const dealii::Tensor< 2, 3, double > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getCellStress ( ) const
virtual

Gets the current cell stress from dftClass.

Implements dftfe::dftBase.

◆ getCellVolume()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getCellVolume ( ) const
virtual

Gets the current cell volume.

Implements dftfe::dftBase.

◆ getConfiningPotential()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const expConfiningPotential & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getConfiningPotential ( ) const

◆ getConstraintsVectorElectro()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const dealii::AffineConstraints< double > * dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getConstraintsVectorElectro ( )

◆ getDensityConstraint()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::AffineConstraints< double > * dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getDensityConstraint ( )

◆ getDensityDofHandlerIndex()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getDensityDofHandlerIndex ( )

get the index of the DoF Handler corresponding to

◆ getDensityInValues()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getDensityInValues ( )

◆ getDensityOutValues()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getDensityOutValues ( )

◆ getDensityQuadratureId()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getDensityQuadratureId ( )

◆ getEigenValues()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const std::vector< std::vector< double > > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getEigenValues ( ) const

Get reference to the eigen values.

◆ getEigenVectors()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getEigenVectors ( ) const

Get reference the memorySpace templated eigen vectors.

◆ getEigenVectorsHost()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const dftfe::utils::MemoryStorage< dataTypes::number, dftfe::utils::MemorySpace::HOST > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getEigenVectorsHost ( ) const

Get reference the host eigen vectors.

◆ getElectroDofHandlerIndex()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getElectroDofHandlerIndex ( ) const

◆ getElectroQuadratureAxId()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getElectroQuadratureAxId ( ) const

◆ getElectroQuadratureRhsId()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getElectroQuadratureRhsId ( ) const

◆ getElpaScalaManager()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
elpaScalaManager * dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getElpaScalaManager ( ) const

◆ getEntropicEnergy()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getEntropicEnergy ( ) const
virtual

Implements dftfe::dftBase.

◆ getFermiEnergy()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getFermiEnergy ( ) const

Get the value of fermi energy.

◆ getForceonAtoms()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const std::vector< double > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getForceonAtoms ( ) const
virtual

Gets the current atomic forces from dftClass.

Implements dftfe::dftBase.

◆ getFreeEnergy()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getFreeEnergy ( ) const
virtual

Implements dftfe::dftBase.

◆ getHubbardClassPtr()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::shared_ptr< hubbard< dataTypes::number, memorySpace > > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getHubbardClassPtr ( )

Returns the shared ptr to hubbard class.

◆ getImageAtomIDs()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const std::vector< int > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getImageAtomIDs ( ) const
virtual

Gets the current image atom ids from dftClass.

Implements dftfe::dftBase.

◆ getImageAtomLocationsCart()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const std::vector< std::vector< double > > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getImageAtomLocationsCart ( ) const
virtual

Gets the current image atom Locations in cartesian form (origin at center of domain) from dftClass.

Implements dftfe::dftBase.

◆ getInternalEnergy()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getInternalEnergy ( ) const
virtual

Implements dftfe::dftBase.

◆ getKPointWeights()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const std::vector< double > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getKPointWeights ( ) const

◆ getLocalDofIndicesImag()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const std::vector< dealii::types::global_dof_index > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getLocalDofIndicesImag ( ) const

Get local dofs global indices imag.

◆ getLocalDofIndicesReal()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const std::vector< dealii::types::global_dof_index > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getLocalDofIndicesReal ( ) const

Get local dofs global indices real.

◆ getLocalProcDofIndicesImag()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const std::vector< dealii::types::global_dof_index > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getLocalProcDofIndicesImag ( ) const

Get local dofs local proc indices imag.

◆ getLocalProcDofIndicesReal()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const std::vector< dealii::types::global_dof_index > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getLocalProcDofIndicesReal ( ) const

Get local dofs local proc indices real.

◆ getLocalVselfs()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const std::vector< std::vector< double > > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getLocalVselfs ( ) const

◆ getMatrixFreeData()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const dealii::MatrixFree< 3, double > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getMatrixFreeData ( ) const

Get matrix free data object.

◆ getMatrixFreeDataElectro()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const dealii::MatrixFree< 3, double > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getMatrixFreeDataElectro ( ) const

◆ getMPIDomain()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const MPI_Comm & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getMPIDomain ( ) const
overridevirtual

Implements dftfe::dftBase.

◆ getMPIInterBand()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const MPI_Comm & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getMPIInterBand ( ) const
overridevirtual

Implements dftfe::dftBase.

◆ getMPIInterPool()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const MPI_Comm & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getMPIInterPool ( ) const
overridevirtual

Implements dftfe::dftBase.

◆ getMPIParent()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const MPI_Comm & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getMPIParent ( ) const
overridevirtual

Implements dftfe::dftBase.

◆ getNearestAtomDistance()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const std::vector< double > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getNearestAtomDistance ( ) const

Gets the nearest atom distance for each atom.

◆ getNumEigenValues()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getNumEigenValues ( ) const

◆ getNumElectrons()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getNumElectrons ( ) const

Get the number of electrons.

◆ getOperatorClass()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
KohnShamHamiltonianOperator< memorySpace > * dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getOperatorClass ( )

get the Ptr to the operator class ( Kohn Sham Operator)

◆ getParametersObject()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dftParameters & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getParametersObject ( ) const
virtual

Get reference to dftParameters object.

Implements dftfe::dftBase.

◆ getPseudoVLoc()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const std::map< dealii::CellId, std::vector< double > > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getPseudoVLoc ( ) const

return the pseudo potential field

◆ getRhoNodalOut()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const distributedCPUVec< double > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getRhoNodalOut ( ) const
virtual

Implements dftfe::dftBase.

◆ getRhoNodalSplitOut()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const distributedCPUVec< double > & dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getRhoNodalSplitOut ( ) const
virtual

Implements dftfe::dftBase.

◆ getSmearedChargeQuadratureIdElectro()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getSmearedChargeQuadratureIdElectro ( )

◆ getSubspaceIterationSolverHost()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
chebyshevOrthogonalizedSubspaceIterationSolver * dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getSubspaceIterationSolverHost ( )

Get the Ptr to Chebyshev solver in host.

◆ getTotalChargeforRhoSplit()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getTotalChargeforRhoSplit ( )
virtual

Implements dftfe::dftBase.

◆ getTriangulationManager()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
triangulationManager * dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::getTriangulationManager ( )

◆ init()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::init ( )
virtual

Does KSDFT problem pre-processing steps including mesh generation calls.

Implements dftfe::dftBase.

◆ initAtomicRho()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::initAtomicRho ( )
private

◆ initBoundaryConditions()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::initBoundaryConditions ( const bool recomputeBasisData = true,
const bool meshOnlyDeformed = false,
const bool vselfPerturbationUpdateForStress = false )
private

◆ initCoreRho()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::initCoreRho ( )
private

◆ initElectronicFields()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::initElectronicFields ( )
private

◆ initHubbardOperator()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::initHubbardOperator ( )
private

Checks if the Exc functional requires Hubbard correction and sets up the Hubbard class if required.

◆ initializeKohnShamDFTOperator()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::initializeKohnShamDFTOperator ( const bool initializeCublas = true)

◆ initImageChargesUpdateKPoints()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::initImageChargesUpdateKPoints ( bool flag = true)
private

generate image charges and update k point cartesian coordinates based on current lattice vectors

◆ initLocalPseudoPotential()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::initLocalPseudoPotential ( const dealii::DoFHandler< 3 > & _dofHandler,
const unsigned int lpspQuadratureId,
const dealii::MatrixFree< 3, double > & _matrix_free_data,
const unsigned int _phiExtDofHandlerIndex,
const dealii::AffineConstraints< double > & phiExtConstraintMatrix,
const std::map< dealii::types::global_dof_index, dealii::Point< 3 > > & supportPoints,
const vselfBinsManager< FEOrder, FEOrderElectro > & vselfBinManager,
distributedCPUVec< double > & phiExt,
std::map< dealii::CellId, std::vector< double > > & _pseudoValues,
std::map< unsigned int, std::map< dealii::CellId, std::vector< double > > > & _pseudoValuesAtoms )
private

◆ initNoRemesh()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::initNoRemesh ( const bool updateImagesAndKPointsAndVselfBins = true,
const bool checkSmearedChargeWidthsForOverlap = true,
const bool useSingleAtomSolutionOverride = false,
const bool isMeshDeformed = false )

Does KSDFT problem pre-processing steps but without remeshing.

◆ initnscf()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::initnscf ( KohnShamHamiltonianOperator< memorySpace > & kohnShamDFTEigenOperator,
poissonSolverProblem< FEOrder, FEOrderElectro > & phiTotalSolverProblem,
dealiiLinearSolver & CGSolver )
private

◆ initpRefinedObjects()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::initpRefinedObjects ( const bool recomputeBasisData,
const bool meshOnlyDeformed,
const bool vselfPerturbationUpdateForStress = false )
private

◆ initPseudoPotentialAll()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::initPseudoPotentialAll ( const bool updateNonlocalSparsity = true)
private

◆ initRho()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::initRho ( )
private

◆ initUnmovedTriangulation()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::initUnmovedTriangulation ( dealii::parallel::distributed::Triangulation< 3 > & triangulation)
private

Initializes the guess of electron-density and single-atom wavefunctions on the mesh, maps finite-element nodes to given atomic positions, initializes pseudopotential files and exchange-correlation functionals to be used based on user-choice. In periodic problems, periodic faces are mapped here. Further finite-element nodes to be pinned for solving the Poisson problem electro-static potential is set here

◆ interpolateDensityNodalDataToQuadratureDataGeneral()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::interpolateDensityNodalDataToQuadratureDataGeneral ( const std::shared_ptr< dftfe::basis::FEBasisOperations< double, double, dftfe::utils::MemorySpace::HOST > > & basisOperationsPtr,
const unsigned int dofHandlerId,
const unsigned int quadratureId,
const distributedCPUVec< double > & nodalField,
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & quadratureValueData,
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & quadratureGradValueData,
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & quadratureHessianValueData,
const bool isEvaluateGradData = false,
const bool isEvaluateHessianData = false )
private

interpolate rho nodal data to quadrature data using FEEvaluation

Parameters
[in]basisOperationsPtrbasisoperationsPtr object
[in]nodalFieldnodal data to be interpolated
[out]quadratureValueDatato be computed at quadrature points
[out]quadratureGradValueDatato be computed at quadrature points
[in]isEvaluateGradDatadenotes a flag to evaluate gradients or not

◆ interpolateDensityNodalDataToQuadratureDataLpsp()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::interpolateDensityNodalDataToQuadratureDataLpsp ( const std::shared_ptr< dftfe::basis::FEBasisOperations< double, double, dftfe::utils::MemorySpace::HOST > > & basisOperationsPtr,
const unsigned int dofHandlerId,
const unsigned int quadratureId,
const distributedCPUVec< double > & nodalField,
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & quadratureValueData,
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & quadratureGradValueData,
const bool isEvaluateGradData )
private

interpolate rho nodal data to quadrature data using FEEvaluation

Parameters
[in]basisOperationsPtrbasisoperationsPtr object
[in]nodalFieldnodal data to be interpolated
[out]quadratureValueDatato be computed at quadrature points
[out]quadratureGradValueDatato be computed at quadrature points
[in]isEvaluateGradDatadenotes a flag to evaluate gradients or not

◆ interpolateElectroNodalDataToQuadratureDataGeneral()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::interpolateElectroNodalDataToQuadratureDataGeneral ( const std::shared_ptr< dftfe::basis::FEBasisOperations< double, double, dftfe::utils::MemorySpace::HOST > > & basisOperationsPtr,
const unsigned int dofHandlerId,
const unsigned int quadratureId,
const distributedCPUVec< double > & nodalField,
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & quadratureValueData,
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & quadratureGradValueData,
const bool isEvaluateGradData = false )

interpolate nodal data to quadrature data using FEEvaluation

Parameters
[in]matrixFreeDatamatrix free data object
[in]nodalFieldnodal data to be interpolated
[out]quadratureValueDatato be computed at quadrature points
[out]quadratureGradValueDatato be computed at quadrature points
[in]isEvaluateGradDatadenotes a flag to evaluate gradients or not

◆ isHubbardCorrectionsUsed()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
bool dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::isHubbardCorrectionsUsed ( )

Function to check if hubbard corrections is being used.

◆ kohnShamEigenSpaceCompute()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::kohnShamEigenSpaceCompute ( const unsigned int s,
const unsigned int kPointIndex,
KohnShamHamiltonianOperator< dftfe::utils::MemorySpace::HOST > & kohnShamDFTEigenOperator,
elpaScalaManager & elpaScala,
chebyshevOrthogonalizedSubspaceIterationSolver & subspaceIterationSolver,
std::vector< double > & residualNormWaveFunctions,
const bool computeResidual,
const bool useMixedPrec = false,
const bool isFirstScf = false )

Function that computes the Eigen space for the Kohn Sham operator.

◆ kohnShamEigenSpaceComputeNSCF()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::kohnShamEigenSpaceComputeNSCF ( const unsigned int spinType,
const unsigned int kPointIndex,
KohnShamHamiltonianOperator< dftfe::utils::MemorySpace::HOST > & kohnShamDFTEigenOperator,
chebyshevOrthogonalizedSubspaceIterationSolver & subspaceIterationSolver,
std::vector< double > & residualNormWaveFunctions,
unsigned int ipass )
private

◆ kohnShamEigenSpaceFirstOrderDensityMatResponse()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::kohnShamEigenSpaceFirstOrderDensityMatResponse ( const unsigned int s,
const unsigned int kPointIndex,
KohnShamHamiltonianOperator< dftfe::utils::MemorySpace::HOST > & kohnShamDFTEigenOperator,
elpaScalaManager & elpaScala )
private

◆ l2ProjectionQuadDensityMinusAtomicDensity()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::l2ProjectionQuadDensityMinusAtomicDensity ( const std::shared_ptr< dftfe::basis::FEBasisOperations< double, double, dftfe::utils::MemorySpace::HOST > > & basisOperationsPtr,
const dealii::AffineConstraints< double > & constraintMatrix,
const unsigned int dofHandlerId,
const unsigned int quadratureId,
const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & quadratureValueData,
distributedCPUVec< double > & nodalField )
private

l2 projection

◆ l2ProjectionQuadToNodal()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::l2ProjectionQuadToNodal ( const std::shared_ptr< dftfe::basis::FEBasisOperations< double, double, dftfe::utils::MemorySpace::HOST > > & basisOperationsPtr,
const dealii::AffineConstraints< double > & constraintMatrix,
const unsigned int dofHandlerId,
const unsigned int quadratureId,
const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & quadratureValueData,
distributedCPUVec< double > & nodalField )

l2 projection

◆ loadPSIFiles()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::loadPSIFiles ( unsigned int Z,
unsigned int n,
unsigned int l,
unsigned int & flag )
private

◆ loadTriaInfoAndRhoNodalData()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::loadTriaInfoAndRhoNodalData ( )
private

load triangulation information rho quadrature data from checkpoint file for restarted run

◆ locateAtomCoreNodes()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::locateAtomCoreNodes ( const dealii::DoFHandler< 3 > & _dofHandler,
std::map< dealii::types::global_dof_index, double > & atomNodeIdToChargeValueMap )
private

Finds the global dof ids of the nodes containing atoms.

Parameters
[in]dofHandler
[out]atomNodeIdToChargeValueMaplocal map of global dof id to atom charge id

◆ locatePeriodicPinnedNodes()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::locatePeriodicPinnedNodes ( const dealii::DoFHandler< 3 > & _dofHandler,
const dealii::AffineConstraints< double > & constraintMatrixBase,
dealii::AffineConstraints< double > & constraintMatrix )
private

Sets homogeneous dirichlet boundary conditions on a node farthest from all atoms (pinned node). This is only done in case of periodic boundary conditions to get an unique solution to the total electrostatic potential problem.

Parameters
[in]dofHandler
[in]constraintMatrixBasebase dealii::AffineConstraints<double> object
[out]constraintMatrixdealii::AffineConstraints<double> object with homogeneous Dirichlet boundary condition entries added

◆ lowrankApproxScfDielectricMatrixInv()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::lowrankApproxScfDielectricMatrixInv ( const unsigned int scfIter)
private

◆ lowrankApproxScfDielectricMatrixInvSpinPolarized()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::lowrankApproxScfDielectricMatrixInvSpinPolarized ( const unsigned int scfIter)
private

◆ moveMeshToAtoms()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::moveMeshToAtoms ( dealii::Triangulation< 3, 3 > & triangulationMove,
dealii::Triangulation< 3, 3 > & triangulationSerial,
bool reuseFlag = false,
bool moveSubdivided = false )
private

moves the triangulation vertices using Gaussians such that the all atoms are on triangulation vertices

◆ noRemeshRhoDataInit()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::noRemeshRhoDataInit ( )
private

◆ normalizeAtomicRhoQuadValues()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::normalizeAtomicRhoQuadValues ( )
private

normalize the electron density

◆ normalizeRhoInQuadValues()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::normalizeRhoInQuadValues ( )
private

normalize the input electron density

◆ normalizeRhoMagInInitialGuessQuadValues()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::normalizeRhoMagInInitialGuessQuadValues ( )
private

normalize input mag electron density to total magnetization for use in constraint magnetization case (only for initial guess)

◆ normalizeRhoOutQuadValues()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::normalizeRhoOutQuadValues ( )
private

normalize the output total electron density in each scf

◆ nscf()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::nscf ( KohnShamHamiltonianOperator< memorySpace > & kohnShamDFTEigenOperator,
chebyshevOrthogonalizedSubspaceIterationSolver & subspaceIterationSolver )
private

◆ outputDensity()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::outputDensity ( )
private

write electron density solution fields

◆ outputWfc()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::outputWfc ( const std::string outputFileName = "wfcOutput")

write wavefunction solution fields

◆ projectPreviousGroundStateRho()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::projectPreviousGroundStateRho ( )
private

project ground state electron density from previous mesh into the new mesh to be used as initial guess for the new ground state solve

◆ readkPointData()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::readkPointData ( )

◆ readPSI()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::readPSI ( )
private

◆ readPSIRadialValues()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::readPSIRadialValues ( )
private

◆ recomputeKPointCoordinates()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::recomputeKPointCoordinates ( )
private

Recomputes the k point cartesian coordinates from the crystal k point coordinates and the current lattice vectors, which can change in each ground state solve dutring cell optimization.

◆ reInitializeKohnShamDFTOperator()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::reInitializeKohnShamDFTOperator ( )

◆ resetRhoNodalIn()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::resetRhoNodalIn ( distributedCPUVec< double > & OutDensity)
virtual

Implements dftfe::dftBase.

◆ resetRhoNodalSplitIn()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
virtual void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::resetRhoNodalSplitIn ( distributedCPUVec< double > & OutDensity)
virtual

Implements dftfe::dftBase.

◆ rhofieldInnerProduct()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::rhofieldInnerProduct ( const dealii::MatrixFree< 3, double > & matrixFreeDataObject,
const distributedCPUVec< double > & rhoNodalField1,
const distributedCPUVec< double > & rhoNodalField2,
const unsigned int dofHandlerId,
const unsigned int quadratureId )
private

◆ rhofieldl2Norm()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::rhofieldl2Norm ( const dealii::MatrixFree< 3, double > & matrixFreeDataObject,
const distributedCPUVec< double > & rhoNodalField,
const unsigned int dofHandlerId,
const unsigned int quadratureId )
private

◆ run()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::run ( )
virtual

FIXME: legacy call, move to main.cc.

Implements dftfe::dftBase.

◆ runFunctionalTest()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::runFunctionalTest ( )

◆ saveTriaInfoAndRhoNodalData()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::saveTriaInfoAndRhoNodalData ( )
private

save triangulation information and rho quadrature data to checkpoint file for restarts

◆ set()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::set ( )
virtual

atomic system pre-processing steps.

Reads the coordinates of the atoms. If periodic calculation, reads fractional coordinates of atoms in the unit-cell, lattice vectors, kPoint quadrature rules to be used and also generates image atoms. Also determines orbital-ordering

Implements dftfe::dftBase.

◆ setNumElectrons()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::setNumElectrons ( unsigned int inputNumElectrons)

◆ solve()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::tuple< bool, double > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::solve ( const bool computeForces = true,
const bool computestress = true,
const bool restartGroundStateCalcFromChk = false )
virtual

Kohn-Sham ground-state solve using SCF iteration.

Returns
tuple of boolean flag on whether scf converged, and L2 norm of residual electron-density of the last SCF iteration step

Implements dftfe::dftBase.

◆ solveNoSCF()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::solveNoSCF ( )

compute approximation to ground-state without solving the SCF iteration

◆ totalCharge() [1/4]

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::totalCharge ( const dealii::DoFHandler< 3 > & dofHandlerOfField,
const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & rhoQuadValues )
private

◆ totalCharge() [2/4]

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::totalCharge ( const dealii::DoFHandler< 3 > & dofHandlerOfField,
const distributedCPUVec< double > & rhoNodalField )
private

Computes total charge by integrating the electron-density.

◆ totalCharge() [3/4]

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::totalCharge ( const dealii::DoFHandler< 3 > & dofHandlerOfField,
const std::map< dealii::CellId, std::vector< double > > * rhoQuadValues )
private

◆ totalCharge() [4/4]

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::totalCharge ( const dealii::MatrixFree< 3, double > & matrixFreeDataObject,
const distributedCPUVec< double > & rhoNodalField )
private

◆ totalMagnetization()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::totalMagnetization ( const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & magQuadValues)
private

Computes net magnetization from the difference of local spin densities.

◆ trivialSolveForStress()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::trivialSolveForStress ( )
virtual

Implements dftfe::dftBase.

◆ updateAtomPositionsAndMoveMesh()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::updateAtomPositionsAndMoveMesh ( const std::vector< dealii::Tensor< 1, 3, double > > & globalAtomsDisplacements,
const double maxJacobianRatioFactor = 1.25,
const bool useSingleAtomSolutionsOverride = false )
virtual

Updates atom positions, remeshes/moves mesh and calls appropriate reinits.

Function to update the atom positions and mesh based on the provided displacement input. Depending on the maximum displacement magnitude this function decides wether to do auto remeshing or move mesh using Gaussian functions. Additionaly this function also wraps the atom position across the periodic boundary if the atom moves across it beyond a certain magnitude. In case of floating atoms, only the atomic positions are updated keeping the mesh fixed. This function also calls initNoRemesh to reinitialize all the required FEM and KSDFT objects.

Parameters
[in]globalAtomsDisplacementsvector containing the displacements (from current position) of all atoms (global).
Returns
void.

Implements dftfe::dftBase.

◆ updateAuxDensityXCMatrix()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::updateAuxDensityXCMatrix ( const std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > & densityQuadValues,
const std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > & gradDensityQuadValues,
const std::map< dealii::CellId, std::vector< double > > & rhoCore,
const std::map< dealii::CellId, std::vector< double > > & gradRhoCore,
const dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > & eigenVectorsFlattenedMemSpace,
const std::vector< std::vector< double > > & eigenValues,
const double fermiEnergy_,
const double fermiEnergyUp_,
const double fermiEnergyDown_,
std::shared_ptr< AuxDensityMatrix< memorySpace > > auxDensityMatrixXCPtr )
private

◆ updatePRefinedConstraints()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::updatePRefinedConstraints ( )

◆ writeBands()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::writeBands ( )
private

write the KS eigen values for given BZ sampling/path

◆ writeDomainAndAtomCoordinates() [1/2]

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::writeDomainAndAtomCoordinates ( )
virtual

writes the current domain bounding vectors and atom coordinates to files, which are required for geometry relaxation restart

Implements dftfe::dftBase.

◆ writeDomainAndAtomCoordinates() [2/2]

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::writeDomainAndAtomCoordinates ( const std::string Path) const
virtual

writes the current domain bounding vectors and atom coordinates to files for structural optimization and dynamics restarts. The coordinates are stored as: 1. fractional for semi-periodic/periodic 2. Cartesian for non-periodic.

Parameters
[in]PathThe folder path to store the atom coordinates required during restart.

Implements dftfe::dftBase.

◆ writeGSElectronDensity()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
virtual void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::writeGSElectronDensity ( const std::string Path) const
virtual

writes quadrature grid information and associated spin-up and spin-down electron-density for post-processing

Parameters
[in]PathThe folder path to store the atomistics data.

Implements dftfe::dftBase.

◆ writeMesh() [1/2]

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::writeMesh ( )
virtual

Writes inital density and mesh to file.

Implements dftfe::dftBase.

◆ writeMesh() [2/2]

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::writeMesh ( std::string meshFileName)
private

◆ writeStructureEnergyForcesDataPostProcess()

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
void dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::writeStructureEnergyForcesDataPostProcess ( const std::string Path) const
virtual

writes atomistics data for subsequent post-processing. Related to WRITE STRUCTURE ENERGY FORCES DATA POST PROCESS input parameter.

Parameters
[in]PathThe folder path to store the atomistics data.

Implements dftfe::dftBase.

Friends And Related Symbol Documentation

◆ forceClass< FEOrder, FEOrderElectro, memorySpace >

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
friend class forceClass< FEOrder, FEOrderElectro, memorySpace >
friend

◆ symmetryClass< FEOrder, FEOrderElectro, memorySpace >

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
friend class symmetryClass< FEOrder, FEOrderElectro, memorySpace >
friend

Member Data Documentation

◆ a0

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::a0
private

◆ atomLocations

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<std::vector<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::atomLocations
private

FIXME: remove atom type atributes from atomLocations.

◆ atomLocationsFractional

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<std::vector<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::atomLocationsFractional
private

◆ atomTypes

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::set<unsigned int> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::atomTypes
private

◆ bLow

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::bLow
private

◆ computing_timer

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::TimerOutput dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::computing_timer
private

compute-time logger

◆ computingTimerStandard

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::TimerOutput dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::computingTimerStandard
private

◆ constraintsNone

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::AffineConstraints<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::constraintsNone
private

◆ constraintsNoneDataInfo

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dftUtils::constraintMatrixInfo<dftfe::utils::MemorySpace::HOST> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::constraintsNoneDataInfo
private

object which is used to store dealii constraint matrix information using STL vectors. The relevant dealii constraint matrix has hanging node constraints used in Poisson problem solution

◆ constraintsNoneEigen

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::AffineConstraints<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::constraintsNoneEigen
private

◆ constraintsNoneEigenDataInfo

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dftUtils::constraintMatrixInfo<dftfe::utils::MemorySpace::HOST> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::constraintsNoneEigenDataInfo
private

constraint Matrices object which is used to store dealii constraint matrix information using STL vectors. The relevant dealii constraint matrix has hanging node constraints and periodic constraints(for periodic problems) used in eigen solve

◆ d_affineTransformMesh

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
meshMovementAffineTransform dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_affineTransformMesh
private

affine transformation object

◆ d_atomCenteredOrbitalsPostProcessingPtr

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::shared_ptr< dftfe::atomCenteredOrbitalsPostProcessing<dataTypes::number, memorySpace> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_atomCenteredOrbitalsPostProcessingPtr
private

◆ d_atomicRhoScalingFac

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_atomicRhoScalingFac
private

◆ d_atomIdPseudopotentialInterestToGlobalId

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<unsigned int, unsigned int> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_atomIdPseudopotentialInterestToGlobalId
private

◆ d_atomLocationsAutoMesh

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<std::vector<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_atomLocationsAutoMesh
private

◆ d_atomLocationsInterestPseudopotential

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<std::vector<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_atomLocationsInterestPseudopotential
private

◆ d_atomNodeIdToChargeMap

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<dealii::types::global_dof_index, double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_atomNodeIdToChargeMap
private

map of atom node number and atomic weight

◆ d_atomsDisplacementsGaussianRead

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<dealii::Tensor<1, 3, double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_atomsDisplacementsGaussianRead
private

Gaussian displacements of atoms read from file.

◆ d_atomTypeAtributes

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<unsigned int, unsigned int> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_atomTypeAtributes
private

FIXME: eventually it should be a map of atomic number to struct- {valence number, mesh input etc}

◆ d_autoMesh

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_autoMesh
private

◆ d_autoMeshMaxJacobianRatio

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_autoMeshMaxJacobianRatio
private

◆ d_auxDensityMatrixXCInPtr

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::shared_ptr<AuxDensityMatrix<memorySpace> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_auxDensityMatrixXCInPtr
private

◆ d_auxDensityMatrixXCOutPtr

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::shared_ptr<AuxDensityMatrix<memorySpace> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_auxDensityMatrixXCOutPtr
private

◆ d_baseDofHandlerIndexElectro

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_baseDofHandlerIndexElectro
private

◆ d_basisOperationsPtrElectroHost

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::shared_ptr< dftfe::basis:: FEBasisOperations<double, double, dftfe::utils::MemorySpace::HOST> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_basisOperationsPtrElectroHost
private

◆ d_basisOperationsPtrHost

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::shared_ptr< dftfe::basis::FEBasisOperations<dataTypes::number, double, dftfe::utils::MemorySpace::HOST> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_basisOperationsPtrHost
private

◆ d_bCellNonTrivialAtomIds

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<dealii::CellId, std::vector<unsigned int> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_bCellNonTrivialAtomIds
private

map of cell and non-trivial global atom ids (no images) for smeared charges for each bin

◆ d_bCellNonTrivialAtomIdsBins

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<std::map<dealii::CellId, std::vector<unsigned int> > > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_bCellNonTrivialAtomIdsBins
private

map of cell and non-trivial global atom ids (no images) for smeared charge for each bin

◆ d_bCellNonTrivialAtomImageIds

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<dealii::CellId, std::vector<unsigned int> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_bCellNonTrivialAtomImageIds
private

map of cell and non-trivial global atom and image ids for smeared charges for each bin

◆ d_bCellNonTrivialAtomImageIdsBins

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<std::map<dealii::CellId, std::vector<unsigned int> > > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_bCellNonTrivialAtomImageIdsBins
private

map of cell and non-trivial global atom and image ids for smeared charge for each bin

◆ d_binsStartDofHandlerIndexElectro

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_binsStartDofHandlerIndexElectro
private

◆ d_BLASWrapperPtr

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper<dftfe::utils::MemorySpace::HOST> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_BLASWrapperPtr
private

◆ d_BLASWrapperPtrHost

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper<dftfe::utils::MemorySpace::HOST> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_BLASWrapperPtrHost
private

◆ d_bQuadAtomIdsAllAtoms

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<dealii::CellId, std::vector<int> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_bQuadAtomIdsAllAtoms
private

non-intersecting smeared charges atom ids of all atoms at quad points

◆ d_bQuadAtomIdsAllAtomsImages

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<dealii::CellId, std::vector<int> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_bQuadAtomIdsAllAtomsImages
private

non-intersecting smeared charges atom ids of all atoms (with image atom ids separately accounted) at quad points

◆ d_bQuadValuesAllAtoms

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<dealii::CellId, std::vector<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_bQuadValuesAllAtoms
private

non-intersecting smeared charges of all atoms at quad points

◆ d_closestTriaVertexToAtomsLocation

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<dealii::Point<3> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_closestTriaVertexToAtomsLocation
private

closest tria vertex

◆ d_constraintsForHelmholtzRhoNodal

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::AffineConstraints<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_constraintsForHelmholtzRhoNodal
private

◆ d_constraintsForPhiPrimeElectro

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::AffineConstraints<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_constraintsForPhiPrimeElectro
private

◆ d_constraintsForTotalPotentialElectro

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::AffineConstraints<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_constraintsForTotalPotentialElectro
private

◆ d_constraintsPRefined

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::AffineConstraints<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_constraintsPRefined
private

◆ d_constraintsPRefinedOnlyHanging

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::AffineConstraints<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_constraintsPRefinedOnlyHanging
private

◆ d_constraintsRhoNodal

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::AffineConstraints<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_constraintsRhoNodal
private

◆ d_constraintsRhoNodalInfo

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dftUtils::constraintMatrixInfo<dftfe::utils::MemorySpace::HOST> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_constraintsRhoNodalInfo
private

◆ d_constraintsRhoNodalOnlyHanging

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::AffineConstraints<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_constraintsRhoNodalOnlyHanging
private

◆ d_constraintsVector

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<const dealii::AffineConstraints<double> *> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_constraintsVector
private

◆ d_constraintsVectorElectro

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<const dealii::AffineConstraints<double> *> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_constraintsVectorElectro
private

◆ d_controlPointLocationsCurrentMove

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<dealii::Point<3> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_controlPointLocationsCurrentMove
private

◆ d_densityDofHandlerIndex

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_densityDofHandlerIndex
private

◆ d_densityDofHandlerIndexElectro

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_densityDofHandlerIndexElectro
private

◆ d_densityInNodalValues

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<distributedCPUVec<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_densityInNodalValues
private

◆ d_densityInQuadValues

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector< dftfe::utils::MemoryStorage<double, dftfe::utils::MemorySpace::HOST> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_densityInQuadValues
private

◆ d_densityMatDerFermiEnergy

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<std::vector<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_densityMatDerFermiEnergy
private

◆ d_densityOutNodalValues

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<distributedCPUVec<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_densityOutNodalValues
private

◆ d_densityOutQuadValues

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector< dftfe::utils::MemoryStorage<double, dftfe::utils::MemorySpace::HOST> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_densityOutQuadValues
private

◆ d_densityQuadratureId

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_densityQuadratureId
private

◆ d_densityQuadratureIdElectro

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_densityQuadratureIdElectro
private

◆ d_densityResidualNodalValues

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<distributedCPUVec<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_densityResidualNodalValues
private

◆ d_densityResidualQuadValues

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector< dftfe::utils::MemoryStorage<double, dftfe::utils::MemorySpace::HOST> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_densityResidualQuadValues
private

◆ d_densityTotalInValuesLpspQuad

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<double, dftfe::utils::MemorySpace::HOST> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_densityTotalInValuesLpspQuad
private

◆ d_densityTotalOutValuesLpspQuad

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<double, dftfe::utils::MemorySpace::HOST> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_densityTotalOutValuesLpspQuad
private

◆ d_dftfeScratchFolderName

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const std::string dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_dftfeScratchFolderName
private

◆ d_dftParamsPtr

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dftParameters* dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_dftParamsPtr
private

dftParameters object

◆ d_dipole

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_dipole
private

◆ d_dispClosestTriaVerticesToAtoms

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<dealii::Tensor<1, 3, double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_dispClosestTriaVerticesToAtoms
private

◆ d_dispersionCorr

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dispersionCorrection dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_dispersionCorr
private

◆ d_dofHandlerPRefined

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::DoFHandler<3> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_dofHandlerPRefined
private

◆ d_dofHandlerRhoNodal

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::DoFHandler<3> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_dofHandlerRhoNodal
private

◆ d_domainBoundingVectors

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<std::vector<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_domainBoundingVectors
private

◆ d_domainVolume

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_domainVolume
private

volume of the domain

◆ d_eigenDofHandlerIndex

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_eigenDofHandlerIndex
private

◆ d_eigenVectorsDensityMatrixPrimeHost

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<dataTypes::number, dftfe::utils::MemorySpace::HOST> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_eigenVectorsDensityMatrixPrimeHost
private

◆ d_eigenVectorsFlattenedHost

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<dataTypes::number, dftfe::utils::MemorySpace::HOST> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_eigenVectorsFlattenedHost
private

The indexing of d_eigenVectorsFlattenedHost and d_eigenVectorsFlattenedDevice [kPoint * numSpinComponents * numLocallyOwnedNodes * numWaveFunctions + iSpin * numLocallyOwnedNodes * numWaveFunctions + iNode * numWaveFunctions + iWaveFunction]

◆ d_elpaScala

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
elpaScalaManager* dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_elpaScala
private

◆ d_entropicEnergy

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_entropicEnergy
private

entropic energy

◆ d_excManagerPtr

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::shared_ptr<excManager<memorySpace> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_excManagerPtr
private

◆ d_expConfiningPot

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
expConfiningPotential dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_expConfiningPot
private

◆ d_feOrderPlusOneQuadratureId

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_feOrderPlusOneQuadratureId
private

◆ d_flatTopWidthsAutoMeshMove

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_flatTopWidthsAutoMeshMove
private

flat top widths for all domain atoms in case of automesh mesh movement composite gaussian

◆ d_forceDofHandlerIndex

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_forceDofHandlerIndex
private

◆ d_forceDofHandlerIndexElectro

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_forceDofHandlerIndexElectro
private

◆ d_fracOccupancy

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<std::vector<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_fracOccupancy
private

data storage for the occupancy of Kohn-Sham wavefunctions

◆ d_freeEnergy

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_freeEnergy
private

◆ d_freeEnergyInitial

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_freeEnergyInitial
private

◆ d_fvcontainerVals

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::deque<distributedCPUVec<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_fvcontainerVals
private

◆ d_fvSpin0containerVals

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::deque<distributedCPUVec<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_fvSpin0containerVals
private

◆ d_fvSpin1containerVals

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::deque<distributedCPUVec<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_fvSpin1containerVals
private

◆ d_gaussianConstantsAutoMesh

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_gaussianConstantsAutoMesh
private

Gaussian constants for automesh mesh movement stored for all domain atoms

◆ d_gaussianConstantsForce

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_gaussianConstantsForce
private

Gaussian generator parameter for force computation and Gaussian deformation of atoms and FEM mesh Gaussian generator: Gamma(r)= exp(-(r/d_gaussianConstant)^2) Stored for all domain atoms

◆ d_gaussianMovementAtomsNetDisplacements

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<dealii::Tensor<1, 3, double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_gaussianMovementAtomsNetDisplacements
private

◆ d_gaussianMovePar

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
meshMovementGaussianClass dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_gaussianMovePar
private

meshMovementGaussianClass object

◆ d_generatorFlatTopWidths

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_generatorFlatTopWidths
private

composite generator flat top widths for all domain atoms

◆ d_gllQuadratureId

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_gllQuadratureId
private

◆ d_globalChargeIdToImageIdMap

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<std::vector<int> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_globalChargeIdToImageIdMap
private

globalChargeId to ImageChargeId Map

◆ d_globalChargeIdToImageIdMapTrunc

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<std::vector<int> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_globalChargeIdToImageIdMapTrunc
private

globalChargeId to ImageChargeId Map generated with a truncated pspCutOff

◆ d_globalTimer

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::Timer dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_globalTimer
private

A plain global timer to track only the total elapsed time after every ground-state solve

◆ d_gradbQuadValuesAllAtoms

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<dealii::CellId, std::vector<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_gradbQuadValuesAllAtoms
private

non-intersecting smeared charge gradients of all atoms at quad points

◆ d_gradDensityInQuadValues

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector< dftfe::utils::MemoryStorage<double, dftfe::utils::MemorySpace::HOST> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_gradDensityInQuadValues
private

◆ d_gradDensityOutQuadValues

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector< dftfe::utils::MemoryStorage<double, dftfe::utils::MemorySpace::HOST> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_gradDensityOutQuadValues
private

◆ d_gradDensityResidualQuadValues

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector< dftfe::utils::MemoryStorage<double, dftfe::utils::MemorySpace::HOST> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_gradDensityResidualQuadValues
private

◆ d_gradDensityTotalInValuesLpspQuad

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<double, dftfe::utils::MemorySpace::HOST> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_gradDensityTotalInValuesLpspQuad
private

◆ d_gradDensityTotalOutValuesLpspQuad

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<double, dftfe::utils::MemorySpace::HOST> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_gradDensityTotalOutValuesLpspQuad
private

◆ d_gradPhiInQuadValues

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<double, dftfe::utils::MemorySpace::HOST> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_gradPhiInQuadValues
private

◆ d_gradPhiOutQuadValues

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<double, dftfe::utils::MemorySpace::HOST> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_gradPhiOutQuadValues
private

◆ d_gradPhiResQuadValues

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<double, dftfe::utils::MemorySpace::HOST> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_gradPhiResQuadValues
private

◆ d_gradRhoAtomsValues

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<dealii::CellId, std::vector<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_gradRhoAtomsValues
private

◆ d_gradRhoAtomsValuesSeparate

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<unsigned int, std::map<dealii::CellId, std::vector<double> > > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_gradRhoAtomsValuesSeparate
private

◆ d_gradRhoCore

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<dealii::CellId, std::vector<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_gradRhoCore
private

◆ d_gradRhoCoreAtoms

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<unsigned int, std::map<dealii::CellId, std::vector<double> > > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_gradRhoCoreAtoms
private

◆ d_groundStateDensityHistory

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::deque<distributedCPUVec<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_groundStateDensityHistory
private

◆ d_groundStateEnergy

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_groundStateEnergy
private

◆ d_helmholtzDofHandlerIndexElectro

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_helmholtzDofHandlerIndexElectro
private

◆ d_hessianRhoAtomsValues

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<dealii::CellId, std::vector<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_hessianRhoAtomsValues
private

◆ d_hessianRhoAtomsValuesSeparate

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<unsigned int, std::map<dealii::CellId, std::vector<double> > > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_hessianRhoAtomsValuesSeparate
private

◆ d_hessianRhoCore

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<dealii::CellId, std::vector<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_hessianRhoCore
private

◆ d_hessianRhoCoreAtoms

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<unsigned int, std::map<dealii::CellId, std::vector<double> > > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_hessianRhoCoreAtoms
private

◆ d_highestStateForResidualComputation

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_highestStateForResidualComputation

◆ d_hubbardClassPtr

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::shared_ptr<hubbard<dataTypes::number, memorySpace> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_hubbardClassPtr
private

◆ d_imageCharges

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_imageCharges
private

vector of length number of periodic image charges with corresponding charge values

◆ d_imageChargesTrunc

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_imageChargesTrunc
private

vector of length number of periodic image charges with corresponding charge values , generated with a truncated pspCutoff

◆ d_imageIds

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<int> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_imageIds
private

vector of lendth number of periodic image charges with corresponding master chargeIds

◆ d_imageIdsTrunc

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<int> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_imageIdsTrunc
private

vector of lendth number of periodic image charges with corresponding master chargeIds , generated with a truncated pspCutoff

◆ d_imagePositions

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<std::vector<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_imagePositions
private

vector of length number of periodic image charges with corresponding positions in cartesian coordinates

◆ d_imagePositionsAutoMesh

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<std::vector<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_imagePositionsAutoMesh
private

◆ d_imagePositionsTrunc

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<std::vector<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_imagePositionsTrunc
private

vector of length number of periodic image charges with corresponding positions in cartesian coordinates, generated with a truncated pspCutOff

◆ d_isAtomsGaussianDisplacementsReadFromFile

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
bool dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_isAtomsGaussianDisplacementsReadFromFile = false
private

◆ d_isFirstFilteringCall

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<bool> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_isFirstFilteringCall
private

stores flag for first ever call to chebyshev filtering for a given FEM mesh vector for each k point and spin

◆ d_isRestartGroundStateCalcFromChk

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
bool dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_isRestartGroundStateCalcFromChk
private

◆ d_kohnShamDFTOperatorPtr

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
KohnShamHamiltonianOperator<memorySpace>* dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_kohnShamDFTOperatorPtr
private

◆ d_kohnShamDFTOperatorsInitialized

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
bool dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_kohnShamDFTOperatorsInitialized
private

◆ d_kPointCoordinates

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_kPointCoordinates
private

kPoint cartesian coordinates

◆ d_kPointWeights

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_kPointWeights
private

k point weights

◆ d_locallyRelevantDofsPRefined

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::IndexSet dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_locallyRelevantDofsPRefined
private

◆ d_locallyRelevantDofsRhoNodal

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::IndexSet dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_locallyRelevantDofsRhoNodal
private

◆ d_localVselfs

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<std::vector<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_localVselfs
private

◆ d_lpspQuadratureId

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_lpspQuadratureId
private

◆ d_lpspQuadratureIdElectro

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_lpspQuadratureIdElectro
private

◆ d_magInNodalValuesRead

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
distributedCPUVec<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_magInNodalValuesRead
private

◆ d_matrixFreeDataPRefined

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::MatrixFree<3, double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_matrixFreeDataPRefined
private

◆ d_mesh

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
triangulationManager dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_mesh
private

meshGenerator based object

◆ d_meshSizes

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<std::vector<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_meshSizes
private

◆ d_minDist

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_minDist
private

◆ d_mixingScheme

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
MixingScheme dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_mixingScheme
private

◆ d_monopole

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_monopole
private

◆ d_mpiCommParent

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const MPI_Comm dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_mpiCommParent
private

◆ d_nearestAtomDistances

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_nearestAtomDistances
private

nearest atom distances for all domain atoms

◆ d_nearestAtomIds

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<unsigned int> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_nearestAtomIds
private

nearest atom ids for all domain atoms

◆ d_netFloatingDispSinceLastBinsUpdate

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_netFloatingDispSinceLastBinsUpdate
private

◆ d_netFloatingDispSinceLastCheckForSmearedChargeOverlaps

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_netFloatingDispSinceLastCheckForSmearedChargeOverlaps
private

◆ d_nlPSPCutOff

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_nlPSPCutOff = 8.0
private

cut-off distance from atom till which non-local projectors are non-trivial

◆ d_nlpspQuadratureId

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_nlpspQuadratureId
private

◆ d_noConstraints

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::AffineConstraints<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_noConstraints
private

◆ d_nOMPThreads

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_nOMPThreads
private

◆ d_nonAtomicWaveFunctions

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_nonAtomicWaveFunctions

Number of random wavefunctions.

◆ d_nonPeriodicDensityDofHandlerIndexElectro

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_nonPeriodicDensityDofHandlerIndexElectro
private

◆ d_numEigenValues

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_numEigenValues

Number of Kohn-Sham eigen values to be computed.

◆ d_oncvClassPtr

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::shared_ptr<dftfe::oncvClass<dataTypes::number, memorySpace> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_oncvClassPtr
private

◆ d_partialOccupancies

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<std::vector<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_partialOccupancies
private

◆ d_phiExt

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
distributedCPUVec<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_phiExt
private

◆ d_phiExtDofHandlerIndexElectro

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_phiExtDofHandlerIndexElectro
private

◆ d_phiInQuadValues

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<double, dftfe::utils::MemorySpace::HOST> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_phiInQuadValues
private

◆ d_phiOutQuadValues

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<double, dftfe::utils::MemorySpace::HOST> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_phiOutQuadValues
private

◆ d_phiPrime

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
distributedCPUVec<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_phiPrime
private

◆ d_phiPrimeDofHandlerIndexElectro

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_phiPrimeDofHandlerIndexElectro
private

◆ d_phiPrimeSolverProblem

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
poissonSolverProblem<FEOrder, FEOrderElectro> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_phiPrimeSolverProblem
private

◆ d_phiTotalSolverProblem

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
poissonSolverProblem<FEOrder, FEOrderElectro> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_phiTotalSolverProblem
private

◆ d_phiTotAXQuadratureIdElectro

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_phiTotAXQuadratureIdElectro
private

◆ d_phiTotDofHandlerIndexElectro

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_phiTotDofHandlerIndexElectro
private

◆ d_phiTotRhoIn

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
distributedCPUVec<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_phiTotRhoIn
private

◆ d_phiTotRhoOut

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
distributedCPUVec<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_phiTotRhoOut
private

◆ d_preCondTotalDensityResidualVector

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
distributedCPUVec<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_preCondTotalDensityResidualVector
private

◆ d_pseudoVLoc

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<dealii::CellId, std::vector<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_pseudoVLoc
private

◆ d_pseudoVLocAtoms

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<unsigned int, std::map<dealii::CellId, std::vector<double> > > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_pseudoVLocAtoms
private

Internal data:: map for cell id to Vpseudo local of individual atoms. Only for atoms whose psp tail intersects the local domain.

◆ d_pspCutOff

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_pspCutOff = 15.0
private

distance from the domain till which periodic images will be considered

◆ d_pspCutOffTrunc

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_pspCutOffTrunc = 15.0
private

distance from the domain till which periodic images will be considered

◆ d_quadrupole

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_quadrupole
private

◆ d_rankCurrentLRD

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_rankCurrentLRD
private

◆ d_reciprocalLatticeVectors

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<std::vector<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_reciprocalLatticeVectors
private

◆ d_relativeErrorJacInvApproxPrevScfLRD

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_relativeErrorJacInvApproxPrevScfLRD
private

◆ d_residualNormPredicted

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_residualNormPredicted
private

◆ d_residualPredicted

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
distributedCPUVec<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_residualPredicted
private

◆ d_rhoAtomsValues

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<dealii::CellId, std::vector<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_rhoAtomsValues
private

for xl-bomd

◆ d_rhoAtomsValuesSeparate

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<unsigned int, std::map<dealii::CellId, std::vector<double> > > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_rhoAtomsValuesSeparate
private

◆ d_rhoCore

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<dealii::CellId, std::vector<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_rhoCore
private

◆ d_rhoInNodalValuesRead

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
distributedCPUVec<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_rhoInNodalValuesRead
private

◆ d_rhoNodalFieldRefined

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
distributedCPUVec<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_rhoNodalFieldRefined
private

◆ d_rhoOutNodalValuesDistributed

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
distributedCPUVec<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_rhoOutNodalValuesDistributed
private

◆ d_rhoOutNodalValuesSplit

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
distributedCPUVec<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_rhoOutNodalValuesSplit
private

◆ d_smearedChargeMoments

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_smearedChargeMoments
private

◆ d_smearedChargeMomentsComputed

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
bool dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_smearedChargeMomentsComputed
private

◆ d_smearedChargeQuadratureIdElectro

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_smearedChargeQuadratureIdElectro
private

◆ d_smearedChargeScaling

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_smearedChargeScaling
private

smeared charge normalization scaling for all domain atoms

◆ d_smearedChargeWidthMin

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_smearedChargeWidthMin = 0.4
private

minimum smeared charge width

◆ d_smearedChargeWidths

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_smearedChargeWidths
private

smeared charge widths for all domain atoms

◆ d_sparsityPatternQuadratureId

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_sparsityPatternQuadratureId
private

◆ d_subspaceIterationSolver

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
chebyshevOrthogonalizedSubspaceIterationSolver dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_subspaceIterationSolver
private

chebyshev subspace iteration solver objects

◆ d_supportPoints

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<dealii::types::global_dof_index, dealii::Point<3> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_supportPoints
private

◆ d_supportPointsEigen

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<dealii::types::global_dof_index, dealii::Point<3> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_supportPointsEigen
private

◆ d_supportPointsPRefined

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<dealii::types::global_dof_index, dealii::Point<3> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_supportPointsPRefined
private

◆ d_tempEigenVec

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
distributedCPUVec<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_tempEigenVec
private

◆ d_tolReached

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
bool dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_tolReached
private

◆ d_upperBoundUnwantedSpectrumValues

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_upperBoundUnwantedSpectrumValues
private

◆ d_useHubbard

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
bool dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_useHubbard
private

◆ d_vcontainerVals

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::deque<distributedCPUVec<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_vcontainerVals
private

for low rank jacobian inverse approximation

◆ d_vselfBinsManager

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
vselfBinsManager<FEOrder, FEOrderElectro> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_vselfBinsManager
private

vselfBinsManager object

◆ d_vselfFieldGateauxDerStrainFDBins

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<distributedCPUVec<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_vselfFieldGateauxDerStrainFDBins
private

Gateaux derivative of vself field with respect to affine strain tensor components using central finite difference. This is used for cell stress computation

◆ d_vSpin0containerVals

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::deque<distributedCPUVec<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_vSpin0containerVals
private

◆ d_vSpin1containerVals

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::deque<distributedCPUVec<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_vSpin1containerVals
private

◆ d_wfcInitTruncation

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::d_wfcInitTruncation = 5.0
private

init wfc trunctation radius

◆ dofHandler

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::DoFHandler<3> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::dofHandler
private

◆ dofHandlerEigen

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::DoFHandler<3> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::dofHandlerEigen
private

◆ eigenValues

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<std::vector<double> > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::eigenValues
private

data storage for Kohn-Sham eigenvalues and partial occupancies

◆ FE

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::FESystem<3> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::FE
private

dealii based FE data structres

◆ FEEigen

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::FESystem<3> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::FEEigen
private

◆ fermiEnergy

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::fermiEnergy
private

fermi energy

◆ fermiEnergyDown

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::fermiEnergyDown
private

◆ fermiEnergyUp

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::fermiEnergyUp
private

◆ forcePtr

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
forceClass<FEOrder, FEOrderElectro, memorySpace>* dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::forcePtr
private

◆ interBandGroupComm

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const MPI_Comm dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::interBandGroupComm
private

◆ interpoolcomm

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const MPI_Comm dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::interpoolcomm
private

◆ kPointReducedCoordinates

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::kPointReducedCoordinates
private

k point crystal coordinates

◆ local_dof_indicesImag

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<dealii::types::global_dof_index> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::local_dof_indicesImag
private

◆ local_dof_indicesReal

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<dealii::types::global_dof_index> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::local_dof_indicesReal
private

◆ locally_owned_dofs

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::IndexSet dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::locally_owned_dofs
private

◆ locally_owned_dofsEigen

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::IndexSet dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::locally_owned_dofsEigen
private

◆ locally_relevant_dofs

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::IndexSet dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::locally_relevant_dofs
private

◆ locally_relevant_dofsEigen

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::IndexSet dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::locally_relevant_dofsEigen
private

◆ localProc_dof_indicesImag

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<dealii::types::global_dof_index> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::localProc_dof_indicesImag
private

◆ localProc_dof_indicesReal

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<dealii::types::global_dof_index> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::localProc_dof_indicesReal
private

◆ lowerBoundKindex

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::lowerBoundKindex = 0
private

global k index of lower bound of the local k point set

◆ matrix_free_data

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::MatrixFree<3, double> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::matrix_free_data
private

◆ mpi_communicator

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const MPI_Comm dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::mpi_communicator
private

parallel objects

◆ n_mpi_processes

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::n_mpi_processes
private

◆ numElectrons

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::numElectrons
private

◆ numElectronsDown

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::numElectronsDown
private

◆ numElectronsUp

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
double dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::numElectronsUp
private

◆ numLevels

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::numLevels
private

stores required data for Kohn-Sham problem

◆ outerValues

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<unsigned int, std::map<unsigned int, std::map<unsigned int, double> > > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::outerValues
private

◆ pcout

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
dealii::ConditionalOStream dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::pcout
private

device eigenvectors

parallel message stream

◆ radValues

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::map<unsigned int, std::map<unsigned int, std::map<unsigned int, alglib::spline1dinterpolant> > > dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::radValues
private

◆ scfConverged

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
bool dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::scfConverged
private

@ nscf variables

◆ selectedDofsHanging

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<bool> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::selectedDofsHanging
private

◆ symmetryPtr

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
symmetryClass<FEOrder, FEOrderElectro, memorySpace>* dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::symmetryPtr
private

◆ this_mpi_process

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
const unsigned int dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::this_mpi_process
private

◆ waveFunctionsVector

template<unsigned int FEOrder, unsigned int FEOrderElectro, dftfe::utils::MemorySpace memorySpace>
std::vector<orbital> dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >::waveFunctionsVector
private

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