DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
KohnShamDFTBaseOperator.h
Go to the documentation of this file.
1// ---------------------------------------------------------------------
2//
3// Copyright (c) 2017-2025 The Regents of the University of Michigan and DFT-FE
4// authors.
5//
6// This file is part of the DFT-FE code.
7//
8// The DFT-FE code is free software; you can use it, redistribute
9// it, and/or modify it under the terms of the GNU Lesser General
10// Public License as published by the Free Software Foundation; either
11// version 2.1 of the License, or (at your option) any later version.
12// The full text of the license can be found in the file LICENSE at
13// the top level of the DFT-FE distribution.
14//
15// ---------------------------------------------------------------------
16//
17
18
19#ifndef KohnShamDFTBaseOperatorClass_H_
20#define KohnShamDFTBaseOperatorClass_H_
21#include <constants.h>
23#include <headers.h>
24#include <operator.h>
25#include <BLASWrapper.h>
26#include <FEBasisOperations.h>
28#include <AuxDensityMatrix.h>
29
30#include "hubbardClass.h"
31
32namespace dftfe
33{
34 template <dftfe::utils::MemorySpace memorySpace>
35 class KohnShamDFTBaseOperator : public operatorDFTClass<memorySpace>
36 {
37 public:
40 BLASWrapperPtr,
41 std::shared_ptr<
43 basisOperationsPtr,
44 std::shared_ptr<
46 double,
48 basisOperationsPtrHost,
49 std::shared_ptr<
51 pseudopotentialClassPtr,
52 std::shared_ptr<excManager<memorySpace>> excManagerPtr,
53 dftParameters *dftParamsPtr,
54 const dftfe::uInt densityQuadratureID,
55 const dftfe::uInt lpspQuadratureID,
56 const dftfe::uInt feOrderPlusOneQuadratureID,
57 const MPI_Comm &mpi_comm_parent,
58 const MPI_Comm &mpi_comm_domain);
59
60 void
61 init(const std::vector<double> &kPointCoordinates,
62 const std::vector<double> &kPointWeights);
63
64 /*
65 * Sets the d_isExternalPotCorrHamiltonianComputed to false
66 */
67 void
69
70 void
72
73
74 const MPI_Comm &
76
79
82 {
84 ->d_constraintInfo[d_basisOperationsPtr->d_dofHandlerID]);
85 }
86
89 const dftfe::uInt index);
90
91
94 const dftfe::uInt index);
95
96
97 /**
98 * @brief Computes effective potential involving exchange-correlation functionals
99 * @param auxDensityMatrixRepresentation core plus valence electron-density
100 * @param phiValues electrostatic potential arising both from electron-density and nuclear charge
101 */
102 void
104 std::shared_ptr<AuxDensityMatrix<memorySpace>>
105 auxDensityXCRepresentationPtr,
107 &phiValues,
108 const dftfe::uInt spinIndex = 0);
109
110 /**
111 * @brief Sets the V-eff potential
112 * @param vKS_quadValues the input V-KS values stored at the quadrature points
113 * @param spinIndex spin index
114 */
115 void
117 const std::vector<
119 &vKS_quadValues,
120 const dftfe::uInt spinIndex);
121
122 void
124 const std::map<dealii::CellId, std::vector<double>>
125 &externalPotCorrValues);
126
127 void
129 std::shared_ptr<AuxDensityMatrix<memorySpace>>
130 auxDensityXCRepresentationPtr,
131 const std::vector<
133 &rhoPrimeValues,
134 const std::vector<
136 &gradRhoPrimeValues,
138 &phiPrimeValues,
139 const dftfe::uInt spinIndex);
140
141 /**
142 * @brief sets the data member to appropriate kPoint and spin Index
143 *
144 * @param kPointIndex k-point Index to set
145 */
146 void
148 const dftfe::uInt spinIndex);
149
150 void
152
155
158
159 void
161 const bool onlyHPrimePartForFirstOrderDensityMatResponse = false);
162
163 void
165
166 /**
167 * @brief Computing Y = scalarHX*HX + scalarX*X + scalarY*Y for a given X and Y in full precision
168 *
169 * @param src X vector
170 * @param scalarHX scalar for HX
171 * @param scalarY scalar for Y
172 * @param scalarX scalar for X
173 * @param dst Y vector
174 * @param onlyHPrimePartForFirstOrderDensityMatResponse flag to compute only HPrime part for first order density matrix response
175 */
176 void
178 const double scalarHX,
179 const double scalarY,
180 const double scalarX,
182 const bool onlyHPrimePartForFirstOrderDensityMatResponse = false);
183
184 /**
185 * @brief Computing Y = scalarHX*HX + scalarX*X + scalarY*Y for a given X and Y in full precision
186 *
187 * @param src X vector
188 * @param scalarHX scalar for HX
189 * @param scalarY scalar for Y
190 * @param scalarX scalar for X
191 * @param dst Y vector
192 * @param onlyHPrimePartForFirstOrderDensityMatResponse flag to compute only HPrime part for first order density matrix response
193 */
194 void
196 &src,
197 const double scalarHX,
198 const double scalarY,
199 const double scalarX,
201 &dst,
202 const bool onlyHPrimePartForFirstOrderDensityMatResponse = false);
203 /**
204 * @brief Computing Y = scalarHX*M^{1/2}HM^{1/2}X + scalarX*X + scalarY*Y for a given X and Y in full precision. Used for TD-DFT and Inverse DFT calc.
205 *
206 * @param src X vector
207 * @param scalarHX scalar for HX
208 * @param scalarY scalar for Y
209 * @param scalarX scalar for X
210 * @param dst Y vector
211 * @param onlyHPrimePartForFirstOrderDensityMatResponse flag to compute only HPrime part for first order density matrix response
212 */
213 void
216 const double scalarHX,
217 const double scalarY,
218 const double scalarX,
220 const bool onlyHPrimePartForFirstOrderDensityMatResponse = false);
221
222 // /**
223 // * @brief Computing Y = scalarOX*OX + scalarX*X + scalarY*Y for a given X and Y in full precision
224 // *
225 // * @param src X vector
226 // * @param scalarHX scalar for OX
227 // * @param scalarY scalar for Y
228 // * @param scalarX scalar for X
229 // * @param dst Y vector
230 // * @param useApproximateMatrixEntries flag to use approximate overlap matrix
231 // */
232 // void
233 // overlapMatrixTimesX(
234 // dftfe::linearAlgebra::MultiVector<dataTypes::number, memorySpace> &src,
235 // const double scalarOX,
236 // const double scalarY,
237 // const double scalarX,
238 // dftfe::linearAlgebra::MultiVector<dataTypes::number, memorySpace> &dst,
239 // const bool useApproximateMatrixEntries = true);
240
241
242
243 // /**
244 // * @brief Computing Y = scalarOinvX*O^{-1}X + scalarX*X + scalarY*Y for a given X and Y in full precision
245 // *
246 // * @param src X vector
247 // * @param scalarOinvX scalar for O^{-1}X
248 // * @param scalarY scalar for Y
249 // * @param scalarX scalar for X
250 // * @param dst Y vector
251 // */
252 // void
253 // overlapInverseMatrixTimesX(
254 // dftfe::linearAlgebra::MultiVector<dataTypes::number, memorySpace> &src,
255 // const double scalarOinvX,
256 // const double scalarY,
257 // const double scalarX,
258 // dftfe::linearAlgebra::MultiVector<dataTypes::number, memorySpace>
259 // &dst);
260
261 // /**
262 // * @brief Computing Y = scalarOinvX*O^{-1}X + scalarX*X + scalarY*Y for a given X and Y in Reduced precision
263 // *
264 // * @param src X vector
265 // * @param scalarOinvX scalar for O^{-1}X
266 // * @param scalarY scalar for Y
267 // * @param scalarX scalar for X
268 // * @param dst Y vector
269 // */
270 // void
271 // overlapInverseMatrixTimesX(
272 // dftfe::linearAlgebra::MultiVector<dataTypes::numberFP32, memorySpace>
273 // & src,
274 // const double scalarOinvX,
275 // const double scalarY,
276 // const double scalarX,
277 // dftfe::linearAlgebra::MultiVector<dataTypes::numberFP32, memorySpace>
278 // &dst);
279
280 // /**
281 // * @brief Computing Y = scalarHX*HM^{-1}X + scalarX*X + scalarY*Y for a given X and Y in reduced precision
282 // *
283 // * @param src X vector
284 // * @param scalarHX scalar for HX
285 // * @param scalarY scalar for Y
286 // * @param scalarX scalar for X
287 // * @param dst Y vector
288 // * @param onlyHPrimePartForFirstOrderDensityMatResponse flag to compute only HPrime part for first order density matrix response
289 // * @param skip1 flag to skip extraction
290 // * @param skip2 flag to skip nonLoal All Reduce
291 // * @param skip3 flag to skip local HX and Assembly
292 // */
293
294 // void
295 // HXCheby(dftfe::linearAlgebra::MultiVector<dataTypes::numberFP32,
296 // memorySpace> &src,
297 // const double scalarHX,
298 // const double scalarY,
299 // const double scalarX,
300 // dftfe::linearAlgebra::MultiVector<dataTypes::numberFP32,
301 // memorySpace> &dst,
302 // const bool onlyHPrimePartForFirstOrderDensityMatResponse,
303 // const bool skip1,
304 // const bool skip2,
305 // const bool skip3);
306
307 // /**
308 // * @brief Computing Y = scalarHX*M^{-1}HX + scalarX*X + scalarY*Y for a given X and Y in full precision
309 // *
310 // * @param src X vector
311 // * @param scalarHX scalar for HX
312 // * @param scalarY scalar for Y
313 // * @param scalarX scalar for X
314 // * @param dst Y vector
315 // * @param onlyHPrimePartForFirstOrderDensityMatResponse flag to compute only HPrime part for first order density matrix response
316 // * @param skip1 flag to skip extraction
317 // * @param skip2 flag to skip nonLoal All Reduce
318 // * @param skip3 flag to skip local HX and Assembly
319 // */
320
321 // void
322 // HXCheby(
323 // dftfe::linearAlgebra::MultiVector<dataTypes::number, memorySpace> &src,
324 // const double scalarHX,
325 // const double scalarY,
326 // const double scalarX,
327 // dftfe::linearAlgebra::MultiVector<dataTypes::number, memorySpace> &dst,
328 // const bool onlyHPrimePartForFirstOrderDensityMatResponse = false,
329 // const bool skip1 = false,
330 // const bool skip2 = false,
331 // const bool skip3 = false);
332
333
334
335 void
337
338 protected:
339 std::shared_ptr<
342
343
344 /*
345 * TODO ------------------------------
346 * TODO For debugging Purposes: remove afterwards
347 * TODO --------------------------------
348 */
349
350 // std::shared_ptr<
351 // AtomicCenteredNonLocalOperator<dataTypes::number, memorySpace>>
352 // d_HubbnonLocalOperator;
353
354 std::shared_ptr<
357
358 std::shared_ptr<dftfe::linearAlgebra::BLASWrapper<memorySpace>>
360 std::shared_ptr<
363 std::shared_ptr<
365 double,
368 std::shared_ptr<
371 std::shared_ptr<excManager<memorySpace>> d_excManagerPtr;
373
374 std::vector<dftfe::utils::MemoryStorage<dataTypes::number, memorySpace>>
376 std::vector<dftfe::utils::MemoryStorage<dataTypes::numberFP32, memorySpace>>
380
381
386
391
396
401
402
405
410 std::vector<dftfe::utils::MemoryStorage<double, memorySpace>>
412 std::vector<dftfe::utils::MemoryStorage<double, memorySpace>>
414 std::vector<dftfe::utils::MemoryStorage<double, memorySpace>>
416 // Constraints scaled with inverse sqrt diagonal Mass Matrix
417 std::shared_ptr<dftUtils::constraintMatrixInfo<memorySpace>>
419 std::shared_ptr<dftUtils::constraintMatrixInfo<memorySpace>>
421 // kPoint cartesian coordinates
422 std::vector<double> d_kPointCoordinates;
423 // k point weights
424 std::vector<double> d_kPointWeights;
425
428
436 const MPI_Comm d_mpiCommParent;
437 const MPI_Comm d_mpiCommDomain;
444 dealii::ConditionalOStream pcout;
445
446 // compute-time logger
447 dealii::TimerOutput computing_timer;
448
449 std::shared_ptr<hubbard<dataTypes::number, memorySpace>> d_hubbardClassPtr;
455
460
462 };
463} // namespace dftfe
464#endif
Definition AtomicCenteredNonLocalOperator.h:58
Definition AuxDensityMatrix.h:40
std::shared_ptr< AtomicCenteredNonLocalOperator< dataTypes::numberFP32, memorySpace > > d_pseudopotentialNonLocalOperatorSinglePrec
Definition KohnShamDFTBaseOperator.h:356
dftfe::uInt d_cellsBlockSizeHamiltonianConstruction
Definition KohnShamDFTBaseOperator.h:440
void setVEffExternalPotCorrToZero()
Computing Y = scalarOX*OX + scalarX*X + scalarY*Y for a given X and Y in full precision.
void HX(dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > &src, const double scalarHX, const double scalarY, const double scalarX, dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > &dst, const bool onlyHPrimePartForFirstOrderDensityMatResponse=false)
Computing Y = scalarHX*HX + scalarX*X + scalarY*Y for a given X and Y in full precision.
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > d_BLASWrapperPtr
Definition KohnShamDFTBaseOperator.h:359
std::shared_ptr< hubbard< dataTypes::number, memorySpace > > d_hubbardClassPtr
Definition KohnShamDFTBaseOperator.h:449
dftfe::utils::MemoryStorage< dataTypes::numberFP32, memorySpace > d_cellWaveFunctionMatrixSrcSinglePrec
Definition KohnShamDFTBaseOperator.h:388
std::shared_ptr< dftfe::basis::FEBasisOperations< dataTypes::number, double, dftfe::utils::MemorySpace::HOST > > d_basisOperationsPtrHost
Definition KohnShamDFTBaseOperator.h:367
dftUtils::constraintMatrixInfo< memorySpace > * getOverloadedConstraintMatrix() const
Definition KohnShamDFTBaseOperator.h:81
dftfe::utils::MemoryStorage< double, memorySpace > d_VeffExtPotJxW
Definition KohnShamDFTBaseOperator.h:404
dftfe::uInt d_HamiltonianIndex
Definition KohnShamDFTBaseOperator.h:434
void reinitNumberWavefunctions(const dftfe::uInt numWfc)
dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > d_srcNonLocalTemp
Definition KohnShamDFTBaseOperator.h:452
dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > d_srcNonLocalTempSinglePrec
Definition KohnShamDFTBaseOperator.h:457
bool d_isExternalPotCorrHamiltonianComputed
Definition KohnShamDFTBaseOperator.h:435
dftfe::utils::MemoryStorage< double, memorySpace > tempHamMatrixRealBlock
Definition KohnShamDFTBaseOperator.h:426
std::shared_ptr< dftUtils::constraintMatrixInfo< memorySpace > > inverseMassVectorScaledConstraintsNoneDataInfoPtr
Definition KohnShamDFTBaseOperator.h:418
std::vector< dftfe::utils::MemoryStorage< double, memorySpace > > d_derExcwithTauTimesinvJacKpointTimesJxW
Definition KohnShamDFTBaseOperator.h:415
dftfe::utils::MemoryStorage< double, memorySpace > d_cellHamiltonianMatrixExtPot
Definition KohnShamDFTBaseOperator.h:379
std::vector< dftfe::utils::MemoryStorage< double, memorySpace > > d_invJacKPointTimesJxW
Definition KohnShamDFTBaseOperator.h:411
void reinitkPointSpinIndex(const dftfe::uInt kPointIndex, const dftfe::uInt spinIndex)
sets the data member to appropriate kPoint and spin Index
dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > d_tempBlockVectorOverlapInvX
Definition KohnShamDFTBaseOperator.h:398
dftfe::uInt d_nOMPThreads
Definition KohnShamDFTBaseOperator.h:443
void setVEff(const std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &vKS_quadValues, const dftfe::uInt spinIndex)
Sets the V-eff potential.
dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > & getScratchFEMultivectorSinglePrec(const dftfe::uInt numVectors, const dftfe::uInt index)
void init(const std::vector< double > &kPointCoordinates, const std::vector< double > &kPointWeights)
dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > d_cellWaveFunctionMatrixSrc
Definition KohnShamDFTBaseOperator.h:383
dftfe::utils::MemoryStorage< double, memorySpace > tempHamMatrixImagBlock
Definition KohnShamDFTBaseOperator.h:427
const dftfe::uInt n_mpi_processes
Definition KohnShamDFTBaseOperator.h:438
void computeVEffPrime(std::shared_ptr< AuxDensityMatrix< memorySpace > > auxDensityXCRepresentationPtr, const std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &rhoPrimeValues, const std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &gradRhoPrimeValues, const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &phiPrimeValues, const dftfe::uInt spinIndex)
bool d_useHubbard
Definition KohnShamDFTBaseOperator.h:450
const MPI_Comm & getMPICommunicatorDomain()
const MPI_Comm d_mpiCommParent
Definition KohnShamDFTBaseOperator.h:436
const MPI_Comm d_mpiCommDomain
Definition KohnShamDFTBaseOperator.h:437
void HXWithLowdinOrthonormalisedInput(dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > &src, const double scalarHX, const double scalarY, const double scalarX, dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > &dst, const bool onlyHPrimePartForFirstOrderDensityMatResponse=false)
Computing Y = scalarHX*M^{1/2}HM^{1/2}X + scalarX*X + scalarY*Y for a given X and Y in full precision...
std::vector< dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > > d_cellHamiltonianMatrix
Definition KohnShamDFTBaseOperator.h:375
dftfe::uInt d_numVectorsInternal
Definition KohnShamDFTBaseOperator.h:442
void HX(dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > &src, const double scalarHX, const double scalarY, const double scalarX, dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > &dst, const bool onlyHPrimePartForFirstOrderDensityMatResponse=false)
Computing Y = scalarHX*HX + scalarX*X + scalarY*Y for a given X and Y in full precision.
dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > d_pseudopotentialNonLocalProjectorTimesVectorBlock
Definition KohnShamDFTBaseOperator.h:393
dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > d_dstNonLocalTempSinglePrec
Definition KohnShamDFTBaseOperator.h:459
dftfe::utils::MemoryStorage< double, memorySpace > d_invJacinvJacderExcWithTauJxW
Definition KohnShamDFTBaseOperator.h:409
dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > d_dstNonLocalTemp
Definition KohnShamDFTBaseOperator.h:454
dftfe::utils::MemoryStorage< double, memorySpace > d_VeffJxW
Definition KohnShamDFTBaseOperator.h:403
const dftfe::uInt d_densityQuadratureID
Definition KohnShamDFTBaseOperator.h:429
dftfe::utils::MemoryStorage< double, memorySpace > d_invJacderExcWithSigmaTimesGradRhoJxW
Definition KohnShamDFTBaseOperator.h:407
dftfe::uInt d_kPointIndex
Definition KohnShamDFTBaseOperator.h:432
std::vector< dftfe::utils::MemoryStorage< double, memorySpace > > d_halfKSquareTimesDerExcwithTauJxW
Definition KohnShamDFTBaseOperator.h:413
void computeCellHamiltonianMatrixExtPotContribution()
dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > d_pseudopotentialNonLocalProjectorTimesVectorBlockSinglePrec
Definition KohnShamDFTBaseOperator.h:395
dftParameters * d_dftParamsPtr
Definition KohnShamDFTBaseOperator.h:372
dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > d_cellWaveFunctionMatrixDst
Definition KohnShamDFTBaseOperator.h:385
void computeVEffExternalPotCorr(const std::map< dealii::CellId, std::vector< double > > &externalPotCorrValues)
void computeVEff(std::shared_ptr< AuxDensityMatrix< memorySpace > > auxDensityXCRepresentationPtr, const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &phiValues, const dftfe::uInt spinIndex=0)
Computes effective potential involving exchange-correlation functionals.
std::shared_ptr< excManager< memorySpace > > d_excManagerPtr
Definition KohnShamDFTBaseOperator.h:371
const dftfe::uInt d_feOrderPlusOneQuadratureID
Definition KohnShamDFTBaseOperator.h:431
dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > & getScratchFEMultivector(const dftfe::uInt numVectors, const dftfe::uInt index)
std::shared_ptr< dftfe::basis::FEBasisOperations< dataTypes::number, double, memorySpace > > d_basisOperationsPtr
Definition KohnShamDFTBaseOperator.h:362
const dftfe::utils::MemoryStorage< double, memorySpace > & getSqrtMassVector()
std::shared_ptr< dftUtils::constraintMatrixInfo< memorySpace > > inverseSqrtMassVectorScaledConstraintsNoneDataInfoPtr
Definition KohnShamDFTBaseOperator.h:420
dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > d_tempBlockVectorOverlapInvXSinglePrec
Definition KohnShamDFTBaseOperator.h:400
dftfe::uInt d_spinIndex
Definition KohnShamDFTBaseOperator.h:433
const dftfe::uInt this_mpi_process
Definition KohnShamDFTBaseOperator.h:439
KohnShamDFTBaseOperator(std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > BLASWrapperPtr, std::shared_ptr< dftfe::basis::FEBasisOperations< dataTypes::number, double, memorySpace > > basisOperationsPtr, std::shared_ptr< dftfe::basis::FEBasisOperations< dataTypes::number, double, dftfe::utils::MemorySpace::HOST > > basisOperationsPtrHost, std::shared_ptr< dftfe::pseudopotentialBaseClass< dataTypes::number, memorySpace > > pseudopotentialClassPtr, std::shared_ptr< excManager< memorySpace > > excManagerPtr, dftParameters *dftParamsPtr, const dftfe::uInt densityQuadratureID, const dftfe::uInt lpspQuadratureID, const dftfe::uInt feOrderPlusOneQuadratureID, const MPI_Comm &mpi_comm_parent, const MPI_Comm &mpi_comm_domain)
dftfe::utils::MemoryStorage< dataTypes::numberFP32, memorySpace > d_cellWaveFunctionMatrixDstSinglePrec
Definition KohnShamDFTBaseOperator.h:390
dftfe::uInt d_cellsBlockSizeHX
Definition KohnShamDFTBaseOperator.h:441
std::shared_ptr< AtomicCenteredNonLocalOperator< dataTypes::number, memorySpace > > d_pseudopotentialNonLocalOperator
Definition KohnShamDFTBaseOperator.h:341
std::vector< double > d_kPointWeights
Definition KohnShamDFTBaseOperator.h:424
std::vector< dftfe::utils::MemoryStorage< dataTypes::numberFP32, memorySpace > > d_cellHamiltonianMatrixSinglePrec
Definition KohnShamDFTBaseOperator.h:377
std::vector< double > d_kPointCoordinates
Definition KohnShamDFTBaseOperator.h:422
dftfe::utils::MemoryStorage< dftfe::uInt, memorySpace > d_mapNodeIdToProcId
Definition KohnShamDFTBaseOperator.h:461
dealii::TimerOutput computing_timer
Definition KohnShamDFTBaseOperator.h:447
const dftfe::utils::MemoryStorage< double, memorySpace > & getInverseSqrtMassVector()
std::shared_ptr< dftfe::pseudopotentialBaseClass< dataTypes::number, memorySpace > > d_pseudopotentialClassPtr
Definition KohnShamDFTBaseOperator.h:370
dealii::ConditionalOStream pcout
Definition KohnShamDFTBaseOperator.h:444
dftUtils::constraintMatrixInfo< dftfe::utils::MemorySpace::HOST > * getOverloadedConstraintMatrixHost() const
void computeCellHamiltonianMatrix(const bool onlyHPrimePartForFirstOrderDensityMatResponse=false)
const dftfe::uInt d_lpspQuadratureID
Definition KohnShamDFTBaseOperator.h:430
Definition FEBasisOperations.h:85
Namespace which declares the input parameters and the functions to parse them from the input paramete...
Definition dftParameters.h:36
Overloads dealii's distribute and distribute_local_to_global functions associated with constraints cl...
Definition constraintMatrixInfo.h:43
Definition excManager.h:28
Definition BLASWrapper.h:35
An class template to encapsulate a MultiVector. A MultiVector is a collection of vectors belonging t...
Definition MultiVector.h:127
Base class for building the DFT operator and the action of operator on a vector.
Definition operator.h:43
Definition pseudopotentialBaseClass.h:60
Definition MemoryStorage.h:33
double number
Definition dftfeDataTypes.h:42
@ HOST
Definition MemorySpaceType.h:34
Definition pseudoPotentialToDftfeConverter.cc:34
std::uint32_t uInt
Definition TypeConfig.h:10