18#if defined(DFTFE_WITH_DEVICE)
19# ifndef chebyshevOrthogonalizedSubspaceIterationSolverDevice_h
20# define chebyshevOrthogonalizedSubspaceIterationSolverDevice_h
37 class chebyshevOrthogonalizedSubspaceIterationSolverDevice
48 chebyshevOrthogonalizedSubspaceIterationSolverDevice(
49 const MPI_Comm & mpi_comm_parent,
50 const MPI_Comm & mpi_comm_domain,
51 double lowerBoundWantedSpectrum,
52 double lowerBoundUnWantedSpectrum,
53 double upperBoundUnWantedSpectrum,
54 const dftParameters &dftParams);
62 solve(operatorDFTClass<dftfe::utils::MemorySpace::DEVICE> &operatorMatrix,
63 std::shared_ptr<dftfe::linearAlgebra::BLASWrapper<
65 elpaScalaManager & elpaScala,
66 dataTypes::number * eigenVectorsFlattenedDevice,
67 const unsigned int flattenedSize,
68 const unsigned int totalNumberWaveFunctions,
69 std::vector<double> & eigenValues,
70 std::vector<double> & residuals,
71 utils::DeviceCCLWrapper &devicecclMpiCommDomain,
72 const MPI_Comm & interBandGroupComm,
73 const bool isFirstFilteringCall,
74 const bool computeResidual,
75 const bool useMixedPrecOverall =
false,
76 const bool isFirstScf =
false);
85 operatorDFTClass<dftfe::utils::MemorySpace::DEVICE> &operatorMatrix,
87 dftfe::linearAlgebra::BLASWrapper<dftfe::utils::MemorySpace::DEVICE>>
89 dataTypes::number * eigenVectorsFlattenedDevice,
90 const unsigned int flattenedSize,
91 const unsigned int totalNumberWaveFunctions,
92 const std::vector<double> &eigenValues,
93 const double fermiEnergy,
94 std::vector<double> & densityMatDerFermiEnergy,
95 utils::DeviceCCLWrapper & devicecclMpiCommDomain,
96 const MPI_Comm & interBandGroupComm,
97 dftfe::elpaScalaManager & elpaScala);
104 reinitSpectrumBounds(
double lowerBoundWantedSpectrum,
105 double lowerBoundUnWantedSpectrum,
106 double upperBoundUnWantedSpectrum);
109 const MPI_Comm d_mpiCommParent;
113 double d_lowerBoundWantedSpectrum;
118 double d_lowerBoundUnWantedSpectrum;
123 double d_upperBoundUnWantedSpectrum;
125 const dftParameters &d_dftParams;
130 dealii::ConditionalOStream pcout;
131 dealii::TimerOutput computing_timer;
void densityMatrixEigenBasisFirstOrderResponse(operatorDFTClass< dftfe::utils::MemorySpace::HOST > &operatorMatrix, const std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > &BLASWrapperPtr, T *X, const unsigned int N, const unsigned int numberLocalDofs, const MPI_Comm &mpiCommParent, const MPI_Comm &mpiCommDomain, const MPI_Comm &interBandGroupComm, const std::vector< double > &eigenValues, const double fermiEnergy, std::vector< double > &densityMatDerFermiEnergy, elpaScalaManager &elpaScala, const dftParameters &dftParams)
Compute first order response in density matrix with respect to perturbation in the Hamiltonian....
@ DEVICE
Definition MemorySpaceType.h:36
Definition pseudoPotentialToDftfeConverter.cc:34