@@ -38,6 +38,9 @@ namespace dftfe
3838 KohnShamDFTBaseOperator (
3939 std::shared_ptr<dftfe::linearAlgebra::BLASWrapper<memorySpace>>
4040 BLASWrapperPtr,
41+ std::shared_ptr<
42+ dftfe::linearAlgebra::BLASWrapper<dftfe::utils::MemorySpace::HOST >>
43+ BLASWrapperPtrHost,
4144 std::shared_ptr<
4245 dftfe::basis::FEBasisOperations<dataTypes::number, double , memorySpace>>
4346 basisOperationsPtr,
@@ -221,119 +224,6 @@ namespace dftfe
221224 dftfe::linearAlgebra::MultiVector<dataTypes::number, memorySpace> &dst,
222225 const bool onlyHPrimePartForFirstOrderDensityMatResponse = false );
223226
224- // /**
225- // * @brief Computing Y = scalarOX*OX + scalarX*X + scalarY*Y for a given X and Y in full precision
226- // *
227- // * @param src X vector
228- // * @param scalarHX scalar for OX
229- // * @param scalarY scalar for Y
230- // * @param scalarX scalar for X
231- // * @param dst Y vector
232- // * @param useApproximateMatrixEntries flag to use approximate overlap matrix
233- // */
234- // void
235- // overlapMatrixTimesX(
236- // dftfe::linearAlgebra::MultiVector<dataTypes::number, memorySpace> &src,
237- // const double scalarOX,
238- // const double scalarY,
239- // const double scalarX,
240- // dftfe::linearAlgebra::MultiVector<dataTypes::number, memorySpace> &dst,
241- // const bool useApproximateMatrixEntries = true);
242-
243-
244-
245- // /**
246- // * @brief Computing Y = scalarOinvX*O^{-1}X + scalarX*X + scalarY*Y for a given X and Y in full precision
247- // *
248- // * @param src X vector
249- // * @param scalarOinvX scalar for O^{-1}X
250- // * @param scalarY scalar for Y
251- // * @param scalarX scalar for X
252- // * @param dst Y vector
253- // */
254- // void
255- // overlapInverseMatrixTimesX(
256- // dftfe::linearAlgebra::MultiVector<dataTypes::number, memorySpace> &src,
257- // const double scalarOinvX,
258- // const double scalarY,
259- // const double scalarX,
260- // dftfe::linearAlgebra::MultiVector<dataTypes::number, memorySpace>
261- // &dst);
262-
263- // /**
264- // * @brief Computing Y = scalarOinvX*O^{-1}X + scalarX*X + scalarY*Y for a given X and Y in Reduced precision
265- // *
266- // * @param src X vector
267- // * @param scalarOinvX scalar for O^{-1}X
268- // * @param scalarY scalar for Y
269- // * @param scalarX scalar for X
270- // * @param dst Y vector
271- // */
272- // void
273- // overlapInverseMatrixTimesX(
274- // dftfe::linearAlgebra::MultiVector<dataTypes::numberFP32, memorySpace>
275- // & src,
276- // const double scalarOinvX,
277- // const double scalarY,
278- // const double scalarX,
279- // dftfe::linearAlgebra::MultiVector<dataTypes::numberFP32, memorySpace>
280- // &dst);
281-
282- // /**
283- // * @brief Computing Y = scalarHX*HM^{-1}X + scalarX*X + scalarY*Y for a given X and Y in reduced precision
284- // *
285- // * @param src X vector
286- // * @param scalarHX scalar for HX
287- // * @param scalarY scalar for Y
288- // * @param scalarX scalar for X
289- // * @param dst Y vector
290- // * @param onlyHPrimePartForFirstOrderDensityMatResponse flag to compute only HPrime part for first order density matrix response
291- // * @param skip1 flag to skip extraction
292- // * @param skip2 flag to skip nonLoal All Reduce
293- // * @param skip3 flag to skip local HX and Assembly
294- // */
295-
296- // void
297- // HXCheby(dftfe::linearAlgebra::MultiVector<dataTypes::numberFP32,
298- // memorySpace> &src,
299- // const double scalarHX,
300- // const double scalarY,
301- // const double scalarX,
302- // dftfe::linearAlgebra::MultiVector<dataTypes::numberFP32,
303- // memorySpace> &dst,
304- // const bool onlyHPrimePartForFirstOrderDensityMatResponse,
305- // const bool skip1,
306- // const bool skip2,
307- // const bool skip3);
308-
309- // /**
310- // * @brief Computing Y = scalarHX*M^{-1}HX + scalarX*X + scalarY*Y for a given X and Y in full precision
311- // *
312- // * @param src X vector
313- // * @param scalarHX scalar for HX
314- // * @param scalarY scalar for Y
315- // * @param scalarX scalar for X
316- // * @param dst Y vector
317- // * @param onlyHPrimePartForFirstOrderDensityMatResponse flag to compute only HPrime part for first order density matrix response
318- // * @param skip1 flag to skip extraction
319- // * @param skip2 flag to skip nonLoal All Reduce
320- // * @param skip3 flag to skip local HX and Assembly
321- // */
322-
323- // void
324- // HXCheby(
325- // dftfe::linearAlgebra::MultiVector<dataTypes::number, memorySpace> &src,
326- // const double scalarHX,
327- // const double scalarY,
328- // const double scalarX,
329- // dftfe::linearAlgebra::MultiVector<dataTypes::number, memorySpace> &dst,
330- // const bool onlyHPrimePartForFirstOrderDensityMatResponse = false,
331- // const bool skip1 = false,
332- // const bool skip2 = false,
333- // const bool skip3 = false);
334-
335-
336-
337227 void
338228 setVEffExternalPotCorrToZero ();
339229
@@ -342,23 +232,15 @@ namespace dftfe
342232 AtomicCenteredNonLocalOperator<dataTypes::number, memorySpace>>
343233 d_pseudopotentialNonLocalOperator;
344234
345-
346- /*
347- * TODO ------------------------------
348- * TODO For debugging Purposes: remove afterwards
349- * TODO --------------------------------
350- */
351-
352- // std::shared_ptr<
353- // AtomicCenteredNonLocalOperator<dataTypes::number, memorySpace>>
354- // d_HubbnonLocalOperator;
355-
356235 std::shared_ptr<
357236 AtomicCenteredNonLocalOperator<dataTypes::numberFP32, memorySpace>>
358237 d_pseudopotentialNonLocalOperatorSinglePrec;
359238
360239 std::shared_ptr<dftfe::linearAlgebra::BLASWrapper<memorySpace>>
361240 d_BLASWrapperPtr;
241+ std::shared_ptr<
242+ dftfe::linearAlgebra::BLASWrapper<dftfe::utils::MemorySpace::HOST >>
243+ d_BLASWrapperPtrHost;
362244 std::shared_ptr<
363245 dftfe::basis::FEBasisOperations<dataTypes::number, double , memorySpace>>
364246 d_basisOperationsPtr;
@@ -402,11 +284,15 @@ namespace dftfe
402284 d_tempBlockVectorOverlapInvXSinglePrec;
403285
404286
405- dftfe::utils::MemoryStorage<double , memorySpace> d_VeffJxW;
287+ dftfe::utils::MemoryStorage<double , memorySpace> d_VeffJxW, d_BeffxJxW,
288+ d_BeffyJxW, d_BeffzJxW;
406289 dftfe::utils::MemoryStorage<double , memorySpace> d_VeffExtPotJxW;
407290
408291 dftfe::utils::MemoryStorage<double , memorySpace>
409- d_invJacderExcWithSigmaTimesGradRhoJxW;
292+ d_invJacderExcWithSigmaTimesGradRhoJxW,
293+ d_invJacderExcWithSigmaTimesMagXTimesGradRhoJxW,
294+ d_invJacderExcWithSigmaTimesMagYTimesGradRhoJxW,
295+ d_invJacderExcWithSigmaTimesMagZTimesGradRhoJxW;
410296 dftfe::utils::MemoryStorage<double , memorySpace>
411297 d_invJacinvJacderExcWithTauJxW;
412298 std::vector<dftfe::utils::MemoryStorage<double , memorySpace>>
@@ -427,6 +313,13 @@ namespace dftfe
427313
428314 dftfe::utils::MemoryStorage<double , memorySpace> tempHamMatrixRealBlock;
429315 dftfe::utils::MemoryStorage<double , memorySpace> tempHamMatrixImagBlock;
316+ dftfe::utils::MemoryStorage<double , memorySpace>
317+ tempHamMatrixBXBlockNonCollin;
318+ dftfe::utils::MemoryStorage<double , memorySpace>
319+ tempHamMatrixBYBlockNonCollin;
320+ dftfe::utils::MemoryStorage<double , memorySpace>
321+ tempHamMatrixBZBlockNonCollin;
322+
430323
431324 const dftfe::uInt d_densityQuadratureID;
432325 const dftfe::uInt d_lpspQuadratureID;
0 commit comments