DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
KohnShamHamiltonianOperator.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 kohnShamHamiltonianOperatorClass_H_
20#define kohnShamHamiltonianOperatorClass_H_
21#include <constants.h>
23#include <headers.h>
24#include <operator.h>
25#include <BLASWrapper.h>
26#include <FEBasisOperations.h>
27#include <oncvClass.h>
28#include <AuxDensityMatrix.h>
29
30#include "hubbardClass.h"
31
32namespace dftfe
33{
34 template <dftfe::utils::MemorySpace memorySpace>
36 {
37 public:
40 BLASWrapperPtr,
41 std::shared_ptr<
43 basisOperationsPtr,
44 std::shared_ptr<
46 double,
48 basisOperationsPtrHost,
50 oncvClassPtr,
51 std::shared_ptr<excManager<memorySpace>> excManagerPtr,
52 dftParameters * dftParamsPtr,
53 const unsigned int densityQuadratureID,
54 const unsigned int lpspQuadratureID,
55 const unsigned int feOrderPlusOneQuadratureID,
56 const MPI_Comm & mpi_comm_parent,
57 const MPI_Comm & mpi_comm_domain);
58
59 void
60 init(const std::vector<double> &kPointCoordinates,
61 const std::vector<double> &kPointWeights);
62
63 /*
64 * Sets the d_isExternalPotCorrHamiltonianComputed to false
65 */
66 void
68
69 void
71
72
73 const MPI_Comm &
75
78
81 {
83 ->d_constraintInfo[d_basisOperationsPtr->d_dofHandlerID]);
84 }
85
87 getScratchFEMultivector(const unsigned int numVectors,
88 const unsigned int index);
89
90
92 getScratchFEMultivectorSinglePrec(const unsigned int numVectors,
93 const unsigned int index);
94
95
96 /**
97 * @brief Computes effective potential involving exchange-correlation functionals
98 * @param auxDensityMatrixRepresentation core plus valence electron-density
99 * @param phiValues electrostatic potential arising both from electron-density and nuclear charge
100 */
101 void
103 std::shared_ptr<AuxDensityMatrix<memorySpace>>
104 auxDensityXCRepresentationPtr,
106 & phiValues,
107 const unsigned int spinIndex = 0);
108
109 /**
110 * @brief Sets the V-eff potential
111 * @param vKS_quadValues the input V-KS values stored at the quadrature points
112 * @param spinIndex spin index
113 */
114 void
116 const std::vector<
118 & vKS_quadValues,
119 const unsigned int spinIndex);
120
121 void
123 const std::map<dealii::CellId, std::vector<double>>
124 &externalPotCorrValues);
125
126 void
128 std::shared_ptr<AuxDensityMatrix<memorySpace>>
129 auxDensityXCRepresentationPtr,
130 const std::vector<
132 &rhoPrimeValues,
133 const std::vector<
135 &gradRhoPrimeValues,
137 & phiPrimeValues,
138 const unsigned int spinIndex);
139
140 /**
141 * @brief sets the data member to appropriate kPoint and spin Index
142 *
143 * @param kPointIndex k-point Index to set
144 */
145 void
146 reinitkPointSpinIndex(const unsigned int kPointIndex,
147 const unsigned int spinIndex);
148
149 void
150 reinitNumberWavefunctions(const unsigned int numWfc);
151
154
157
158 void
160 const bool onlyHPrimePartForFirstOrderDensityMatResponse = false);
161
162 void
164
165 /**
166 * @brief Computing Y = scalarHX*HX + scalarX*X + scalarY*Y for a given X and Y in full precision
167 *
168 * @param src X vector
169 * @param scalarHX scalar for HX
170 * @param scalarY scalar for Y
171 * @param scalarX scalar for X
172 * @param dst Y vector
173 * @param onlyHPrimePartForFirstOrderDensityMatResponse flag to compute only HPrime part for first order density matrix response
174 */
175 void
177 const double scalarHX,
178 const double scalarY,
179 const double scalarX,
181 const bool onlyHPrimePartForFirstOrderDensityMatResponse = false);
182
183
184 /**
185 * @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.
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
197 const double scalarHX,
198 const double scalarY,
199 const double scalarX,
201 const bool onlyHPrimePartForFirstOrderDensityMatResponse = false);
202
203 /**
204 * @brief Computing Y = scalarOX*OX + scalarX*X + scalarY*Y for a given X and Y in full precision
205 *
206 * @param src X vector
207 * @param scalarHX scalar for OX
208 * @param scalarY scalar for Y
209 * @param scalarX scalar for X
210 * @param dst Y vector
211 * @param useApproximateMatrixEntries flag to use approximate overlap matrix
212 */
213 void
216 const double scalarOX,
217 const double scalarY,
218 const double scalarX,
220 const bool useApproximateMatrixEntries = true);
221
222
223
224 /**
225 * @brief Computing Y = scalarOinvX*O^{-1}X + scalarX*X + scalarY*Y for a given X and Y in full precision
226 *
227 * @param src X vector
228 * @param scalarOinvX scalar for O^{-1}X
229 * @param scalarY scalar for Y
230 * @param scalarX scalar for X
231 * @param dst Y vector
232 */
233 void
236 const double scalarOinvX,
237 const double scalarY,
238 const double scalarX,
240
241 /**
242 * @brief Computing Y = scalarOinvX*O^{-1}X + scalarX*X + scalarY*Y for a given X and Y in Reduced precision
243 *
244 * @param src X vector
245 * @param scalarOinvX scalar for O^{-1}X
246 * @param scalarY scalar for Y
247 * @param scalarX scalar for X
248 * @param dst Y vector
249 */
250 void
253 & src,
254 const double scalarOinvX,
255 const double scalarY,
256 const double scalarX,
258 &dst);
259
260 /**
261 * @brief Computing Y = scalarHX*HM^{-1}X + scalarX*X + scalarY*Y for a given X and Y in reduced precision
262 *
263 * @param src X vector
264 * @param scalarHX scalar for HX
265 * @param scalarY scalar for Y
266 * @param scalarX scalar for X
267 * @param dst Y vector
268 * @param onlyHPrimePartForFirstOrderDensityMatResponse flag to compute only HPrime part for first order density matrix response
269 * @param skip1 flag to skip extraction
270 * @param skip2 flag to skip nonLoal All Reduce
271 * @param skip3 flag to skip local HX and Assembly
272 */
273
274 void
276 memorySpace> &src,
277 const double scalarHX,
278 const double scalarY,
279 const double scalarX,
281 memorySpace> &dst,
282 const bool onlyHPrimePartForFirstOrderDensityMatResponse,
283 const bool skip1,
284 const bool skip2,
285 const bool skip3);
286
287 /**
288 * @brief Computing Y = scalarHX*M^{-1}HX + scalarX*X + scalarY*Y for a given X and Y in full precision
289 *
290 * @param src X vector
291 * @param scalarHX scalar for HX
292 * @param scalarY scalar for Y
293 * @param scalarX scalar for X
294 * @param dst Y vector
295 * @param onlyHPrimePartForFirstOrderDensityMatResponse flag to compute only HPrime part for first order density matrix response
296 * @param skip1 flag to skip extraction
297 * @param skip2 flag to skip nonLoal All Reduce
298 * @param skip3 flag to skip local HX and Assembly
299 */
300
301 void
304 const double scalarHX,
305 const double scalarY,
306 const double scalarX,
308 const bool onlyHPrimePartForFirstOrderDensityMatResponse = false,
309 const bool skip1 = false,
310 const bool skip2 = false,
311 const bool skip3 = false);
312
313
314
315 void
317
318 private:
319 std::shared_ptr<
322
323
324 /*
325 * TODO ------------------------------
326 * TODO For debugging Purposes: remove afterwards
327 * TODO --------------------------------
328 */
329
330 // std::shared_ptr<
331 // AtomicCenteredNonLocalOperator<dataTypes::number, memorySpace>>
332 // d_HubbnonLocalOperator;
333
334 std::shared_ptr<
337
338 std::shared_ptr<dftfe::linearAlgebra::BLASWrapper<memorySpace>>
340 std::shared_ptr<
343 std::shared_ptr<
345 double,
348 std::shared_ptr<dftfe::oncvClass<dataTypes::number, memorySpace>>
350 std::shared_ptr<excManager<memorySpace>> d_excManagerPtr;
352
353 std::vector<dftfe::utils::MemoryStorage<dataTypes::number, memorySpace>>
355 std::vector<dftfe::utils::MemoryStorage<dataTypes::numberFP32, memorySpace>>
359
360
365
370
375
380
381
384
387 std::vector<dftfe::utils::MemoryStorage<double, memorySpace>>
389 // Constraints scaled with inverse sqrt diagonal Mass Matrix
390 std::shared_ptr<dftUtils::constraintMatrixInfo<memorySpace>>
392 std::shared_ptr<dftUtils::constraintMatrixInfo<memorySpace>>
394 // kPoint cartesian coordinates
395 std::vector<double> d_kPointCoordinates;
396 // k point weights
397 std::vector<double> d_kPointWeights;
398
401
402 const unsigned int d_densityQuadratureID;
403 const unsigned int d_lpspQuadratureID;
405 unsigned int d_kPointIndex;
406 unsigned int d_spinIndex;
407 unsigned int d_HamiltonianIndex;
409 const MPI_Comm d_mpiCommParent;
410 const MPI_Comm d_mpiCommDomain;
411 const unsigned int n_mpi_processes;
412 const unsigned int this_mpi_process;
414 unsigned int d_cellsBlockSizeHX;
416 unsigned int d_nOMPThreads;
417 dealii::ConditionalOStream pcout;
418
419 // compute-time logger
420 dealii::TimerOutput computing_timer;
421
422 std::shared_ptr<hubbard<dataTypes::number, memorySpace>> d_hubbardClassPtr;
428
433
436 };
437} // namespace dftfe
438#endif
Definition AtomicCenteredNonLocalOperator.h:58
Definition AuxDensityMatrix.h:33
std::shared_ptr< dftfe::basis::FEBasisOperations< dataTypes::number, double, memorySpace > > d_basisOperationsPtr
Definition KohnShamHamiltonianOperator.h:342
dftfe::utils::MemoryStorage< double, memorySpace > d_invJacderExcWithSigmaTimesGradRhoJxW
Definition KohnShamHamiltonianOperator.h:386
dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > d_cellWaveFunctionMatrixSrc
Definition KohnShamHamiltonianOperator.h:362
const unsigned int d_densityQuadratureID
Definition KohnShamHamiltonianOperator.h:402
std::shared_ptr< dftfe::oncvClass< dataTypes::number, memorySpace > > d_oncvClassPtr
Definition KohnShamHamiltonianOperator.h:349
const dftfe::utils::MemoryStorage< double, memorySpace > & getSqrtMassVector()
const unsigned int this_mpi_process
Definition KohnShamHamiltonianOperator.h:412
void reinitkPointSpinIndex(const unsigned int kPointIndex, const unsigned int spinIndex)
sets the data member to appropriate kPoint and spin Index
std::vector< double > d_kPointCoordinates
Definition KohnShamHamiltonianOperator.h:395
unsigned int d_HamiltonianIndex
Definition KohnShamHamiltonianOperator.h:407
std::shared_ptr< AtomicCenteredNonLocalOperator< dataTypes::number, memorySpace > > d_ONCVnonLocalOperator
Definition KohnShamHamiltonianOperator.h:321
unsigned int d_spinIndex
Definition KohnShamHamiltonianOperator.h:406
void HXCheby(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, const bool skip1=false, const bool skip2=false, const bool skip3=false)
Computing Y = scalarHX*M^{-1}HX + scalarX*X + scalarY*Y for a given X and Y in full precision.
dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > d_srcNonLocalTemp
Definition KohnShamHamiltonianOperator.h:425
dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > d_dstNonLocalTempSinglePrec
Definition KohnShamHamiltonianOperator.h:432
bool d_useHubbard
Definition KohnShamHamiltonianOperator.h:423
dftfe::utils::MemoryStorage< double, memorySpace > tempHamMatrixRealBlock
Definition KohnShamHamiltonianOperator.h:399
unsigned int d_numVectorsInternal
Definition KohnShamHamiltonianOperator.h:415
const unsigned int n_mpi_processes
Definition KohnShamHamiltonianOperator.h:411
std::shared_ptr< hubbard< dataTypes::number, memorySpace > > d_hubbardClassPtr
Definition KohnShamHamiltonianOperator.h:422
dftfe::utils::MemoryStorage< double, memorySpace > tempHamMatrixImagBlock
Definition KohnShamHamiltonianOperator.h:400
unsigned int d_cellsBlockSizeHX
Definition KohnShamHamiltonianOperator.h:414
dftfe::utils::MemoryStorage< dataTypes::numberFP32, memorySpace > d_cellWaveFunctionMatrixSrcSinglePrec
Definition KohnShamHamiltonianOperator.h:367
dftParameters * d_dftParamsPtr
Definition KohnShamHamiltonianOperator.h:351
void init(const std::vector< double > &kPointCoordinates, const std::vector< double > &kPointWeights)
unsigned int d_nOMPThreads
Definition KohnShamHamiltonianOperator.h:416
dftfe::utils::MemoryStorage< double, memorySpace > d_VeffJxW
Definition KohnShamHamiltonianOperator.h:382
dftUtils::constraintMatrixInfo< dftfe::utils::MemorySpace::HOST > * getOverloadedConstraintMatrixHost() const
const MPI_Comm d_mpiCommDomain
Definition KohnShamHamiltonianOperator.h:410
std::shared_ptr< AtomicCenteredNonLocalOperator< dataTypes::numberFP32, memorySpace > > d_ONCVnonLocalOperatorSinglePrec
Definition KohnShamHamiltonianOperator.h:336
void computeCellHamiltonianMatrix(const bool onlyHPrimePartForFirstOrderDensityMatResponse=false)
KohnShamHamiltonianOperator(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::oncvClass< dataTypes::number, memorySpace > > oncvClassPtr, std::shared_ptr< excManager< memorySpace > > excManagerPtr, dftParameters *dftParamsPtr, const unsigned int densityQuadratureID, const unsigned int lpspQuadratureID, const unsigned int feOrderPlusOneQuadratureID, const MPI_Comm &mpi_comm_parent, const MPI_Comm &mpi_comm_domain)
unsigned int d_kPointIndex
Definition KohnShamHamiltonianOperator.h:405
const unsigned int d_feOrderPlusOneQuadratureID
Definition KohnShamHamiltonianOperator.h:404
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...
void HXCheby(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, const bool skip1, const bool skip2, const bool skip3)
Computing Y = scalarHX*HM^{-1}X + scalarX*X + scalarY*Y for a given X and Y in reduced precision.
void computeVEff(std::shared_ptr< AuxDensityMatrix< memorySpace > > auxDensityXCRepresentationPtr, const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &phiValues, const unsigned int spinIndex=0)
Computes effective potential involving exchange-correlation functionals.
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > d_BLASWrapperPtr
Definition KohnShamHamiltonianOperator.h:339
dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > d_tempBlockVectorOverlapInvX
Definition KohnShamHamiltonianOperator.h:377
void overlapInverseMatrixTimesX(dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > &src, const double scalarOinvX, const double scalarY, const double scalarX, dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > &dst)
Computing Y = scalarOinvX*O^{-1}X + scalarX*X + scalarY*Y for a given X and Y in full precision.
dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > d_dstNonLocalTemp
Definition KohnShamHamiltonianOperator.h:427
dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > d_tempBlockVectorOverlapInvXSinglePrec
Definition KohnShamHamiltonianOperator.h:379
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.
void computeVEffExternalPotCorr(const std::map< dealii::CellId, std::vector< double > > &externalPotCorrValues)
void reinitNumberWavefunctions(const unsigned int numWfc)
void overlapMatrixTimesX(dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > &src, const double scalarOX, const double scalarY, const double scalarX, dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > &dst, const bool useApproximateMatrixEntries=true)
Computing Y = scalarOX*OX + scalarX*X + scalarY*Y for a given X and Y in full precision.
dealii::ConditionalOStream pcout
Definition KohnShamHamiltonianOperator.h:417
dftfe::utils::MemoryStorage< dataTypes::numberFP32, memorySpace > d_cellWaveFunctionMatrixDstSinglePrec
Definition KohnShamHamiltonianOperator.h:369
dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > d_srcNonLocalTempSinglePrec
Definition KohnShamHamiltonianOperator.h:430
std::shared_ptr< dftfe::basis::FEBasisOperations< dataTypes::number, double, dftfe::utils::MemorySpace::HOST > > d_basisOperationsPtrHost
Definition KohnShamHamiltonianOperator.h:347
void setVEff(const std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &vKS_quadValues, const unsigned int spinIndex)
Sets the V-eff potential.
dftUtils::constraintMatrixInfo< memorySpace > * getOverloadedConstraintMatrix() const
Definition KohnShamHamiltonianOperator.h:80
dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > d_ONCVNonLocalProjectorTimesVectorBlockSinglePrec
Definition KohnShamHamiltonianOperator.h:374
const dftfe::utils::MemoryStorage< double, memorySpace > & getInverseSqrtMassVector()
const unsigned int d_lpspQuadratureID
Definition KohnShamHamiltonianOperator.h:403
std::shared_ptr< dftUtils::constraintMatrixInfo< memorySpace > > inverseSqrtMassVectorScaledConstraintsNoneDataInfoPtr
Definition KohnShamHamiltonianOperator.h:393
dealii::TimerOutput computing_timer
Definition KohnShamHamiltonianOperator.h:420
void overlapInverseMatrixTimesX(dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > &src, const double scalarOinvX, const double scalarY, const double scalarX, dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > &dst)
Computing Y = scalarOinvX*O^{-1}X + scalarX*X + scalarY*Y for a given X and Y in Reduced precision.
dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > d_ONCVNonLocalProjectorTimesVectorBlock
Definition KohnShamHamiltonianOperator.h:372
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 unsigned int spinIndex)
std::vector< double > d_kPointWeights
Definition KohnShamHamiltonianOperator.h:397
dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > d_cellWaveFunctionMatrixDst
Definition KohnShamHamiltonianOperator.h:364
bool d_isExternalPotCorrHamiltonianComputed
Definition KohnShamHamiltonianOperator.h:408
const MPI_Comm d_mpiCommParent
Definition KohnShamHamiltonianOperator.h:409
dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > & getScratchFEMultivectorSinglePrec(const unsigned int numVectors, const unsigned int index)
dftfe::utils::MemoryStorage< dftfe::global_size_type, memorySpace > d_mapNodeIdToProcId
Definition KohnShamHamiltonianOperator.h:435
std::vector< dftfe::utils::MemoryStorage< double, memorySpace > > d_invJacKPointTimesJxW
Definition KohnShamHamiltonianOperator.h:388
std::vector< dftfe::utils::MemoryStorage< dataTypes::numberFP32, memorySpace > > d_cellHamiltonianMatrixSinglePrec
Definition KohnShamHamiltonianOperator.h:356
std::shared_ptr< dftUtils::constraintMatrixInfo< memorySpace > > inverseMassVectorScaledConstraintsNoneDataInfoPtr
Definition KohnShamHamiltonianOperator.h:391
dftfe::utils::MemoryStorage< double, memorySpace > d_VeffExtPotJxW
Definition KohnShamHamiltonianOperator.h:383
std::vector< dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > > d_cellHamiltonianMatrix
Definition KohnShamHamiltonianOperator.h:354
dftfe::utils::MemoryStorage< double, memorySpace > d_cellHamiltonianMatrixExtPot
Definition KohnShamHamiltonianOperator.h:358
unsigned int d_cellsBlockSizeHamiltonianConstruction
Definition KohnShamHamiltonianOperator.h:413
const MPI_Comm & getMPICommunicatorDomain()
dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > & getScratchFEMultivector(const unsigned int numVectors, const unsigned int index)
std::shared_ptr< excManager< memorySpace > > d_excManagerPtr
Definition KohnShamHamiltonianOperator.h:350
Definition FEBasisOperations.h:84
Namespace which declares the input parameters and the functions to parse them from the input paramete...
Definition dftParameters.h:35
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
Definition oncvClass.h:49
Base class for building the DFT operator and the action of operator on a vector.
Definition operator.h:43
Definition MemoryStorage.h:33
double number
Definition dftfeDataTypes.h:44
float numberFP32
Definition dftfeDataTypes.h:45
@ HOST
Definition MemorySpaceType.h:34
Definition pseudoPotentialToDftfeConverter.cc:34