DFT-FE 1.3.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
KohnShamDFTOperatorKernels.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#ifndef kohnShamHamiltonianOperatorDeviceKernels_H_
19#define kohnShamHamiltonianOperatorDeviceKernels_H_
20
21
22#include <DataTypeOverloads.h>
23#include <DeviceAPICalls.h>
25#include <DeviceTypeConfig.h>
27#include <MemoryStorage.h>
28#include <memory>
29namespace dftfe
30{
31 namespace internal
32 {
33 template <dftfe::utils::MemorySpace memorySpace>
34 void
36 const std::pair<dftfe::uInt, dftfe::uInt> cellRange,
37 const dftfe::uInt numQuadsPerCell,
43
44 template <dftfe::utils::MemorySpace memorySpace>
45 void
47 const std::pair<dftfe::uInt, dftfe::uInt> cellRange,
48 const dftfe::uInt numQuadsPerCell,
52 &pdecVectorSpinDown,
55 &pdexVectorSpinDown,
62
63
64 template <dftfe::utils::MemorySpace memorySpace>
65 void
67 const std::pair<dftfe::uInt, dftfe::uInt> cellRange,
68 const dftfe::uInt numQuadsPerCell,
69 const dftfe::Int spinIndex,
70 const dftfe::Int cellsTypeFlag,
75 &invJacobianEntries,
77 &gradientRhoSpinIndex,
79 &gradientRhoOtherSpinIndex,
81 &invJacderExcWithSigmaTimesGradRhoJxW);
82
83 template <dftfe::utils::MemorySpace memorySpace>
84 void
86 const std::pair<dftfe::uInt, dftfe::uInt> cellRange,
87 const dftfe::uInt numQuadsPerCell,
88 const dftfe::Int spinIndex,
89 const dftfe::Int cellsTypeFlag,
95 &invJacobianEntries,
98 &gradientRhoSpinDown,
100 &invJacderExcWithSigmaTimesGradRhoJxW,
102 &invJacderExcWithSigmaTimesMagXTimesGradRhoJxWHost,
104 &invJacderExcWithSigmaTimesMagYTimesGradRhoJxWHost,
106 &invJacderExcWithSigmaTimesMagZTimesGradRhoJxWHost);
107
108 template <dftfe::utils::MemorySpace memorySpace>
109 void
111 const std::pair<dftfe::uInt, dftfe::uInt> cellRange,
112 const dftfe::uInt numQuadsPerCell,
113 const dftfe::Int cellsTypeFlag,
118 &invJacobianEntries,
120 &invJacinvJacderExcWithTauJxW);
121 template <dftfe::utils::MemorySpace memorySpace>
122 void
124 const std::pair<dftfe::uInt, dftfe::uInt> cellRange,
125 const dftfe::uInt numQuadsPerCell,
126 const dftfe::Int cellsTypeFlag,
127 const dftfe::uInt offset,
133 &invJacobianEntries,
135 &halfKSquareTimesDerExcwithTauJxW,
137 &invJacKpointTimesderExcwithTauJxW);
138 template <dftfe::utils::MemorySpace memorySpace>
139 void
141 const std::pair<dftfe::uInt, dftfe::uInt> cellRange,
142 const dftfe::uInt nDofsPerCell,
144 &tempHamMatrixRealBlock,
146 &tempHamMatrixImagBlock,
148 &tempHamMatrixBZBlockNonCollin,
150 &tempHamMatrixBYBlockNonCollin,
152 &tempHamMatrixBXBlockNonCollin,
153 dftfe::utils::MemoryStorage<std::complex<double>, memorySpace>
154 &cellHamiltonianMatrix);
155 }; // namespace internal
156} // namespace dftfe
157#endif
Definition MemoryStorage.h:33
Definition excManagerKernels.h:32
void computeVeffJxWEntries(const std::pair< dftfe::uInt, dftfe::uInt > cellRange, const dftfe::uInt numQuadsPerCell, const dftfe::utils::MemoryStorage< double, memorySpace > &phiVector, const dftfe::utils::MemoryStorage< double, memorySpace > &pdecVector, const dftfe::utils::MemoryStorage< double, memorySpace > &pdexVector, const dftfe::utils::MemoryStorage< double, memorySpace > &jxwVector, dftfe::utils::MemoryStorage< double, memorySpace > &VeffJxW)
void computeCellHamiltonianMatrixNonCollinearFromBlocks(const std::pair< dftfe::uInt, dftfe::uInt > cellRange, const dftfe::uInt nDofsPerCell, const dftfe::utils::MemoryStorage< double, memorySpace > &tempHamMatrixRealBlock, const dftfe::utils::MemoryStorage< double, memorySpace > &tempHamMatrixImagBlock, const dftfe::utils::MemoryStorage< double, memorySpace > &tempHamMatrixBZBlockNonCollin, const dftfe::utils::MemoryStorage< double, memorySpace > &tempHamMatrixBYBlockNonCollin, const dftfe::utils::MemoryStorage< double, memorySpace > &tempHamMatrixBXBlockNonCollin, dftfe::utils::MemoryStorage< std::complex< double >, memorySpace > &cellHamiltonianMatrix)
void computeKPointDependenderExcWithTauJxWEntries(const std::pair< dftfe::uInt, dftfe::uInt > cellRange, const dftfe::uInt numQuadsPerCell, const dftfe::Int cellsTypeFlag, const dftfe::uInt offset, const dftfe::utils::MemoryStorage< double, memorySpace > &kPointCoordinate, const dftfe::utils::MemoryStorage< double, memorySpace > &pdecVector, const dftfe::utils::MemoryStorage< double, memorySpace > &pdexVector, const dftfe::utils::MemoryStorage< double, memorySpace > &jxwVector, const dftfe::utils::MemoryStorage< double, memorySpace > &invJacobianEntries, dftfe::utils::MemoryStorage< double, memorySpace > &halfKSquareTimesDerExcwithTauJxW, dftfe::utils::MemoryStorage< double, memorySpace > &invJacKpointTimesderExcwithTauJxW)
void computeHalfInvJacinvJacderExcWithTauJxWEntries(const std::pair< dftfe::uInt, dftfe::uInt > cellRange, const dftfe::uInt numQuadsPerCell, const dftfe::Int cellsTypeFlag, const dftfe::utils::MemoryStorage< double, memorySpace > &pdecVector, const dftfe::utils::MemoryStorage< double, memorySpace > &pdexVector, const dftfe::utils::MemoryStorage< double, memorySpace > &jxwVector, const dftfe::utils::MemoryStorage< double, memorySpace > &invJacobianEntries, dftfe::utils::MemoryStorage< double, memorySpace > &invJacinvJacderExcWithTauJxW)
void computeInvJacderExcWithSigmaTimesGradRhoJxWEntries(const std::pair< dftfe::uInt, dftfe::uInt > cellRange, const dftfe::uInt numQuadsPerCell, const dftfe::Int spinIndex, const dftfe::Int cellsTypeFlag, const dftfe::utils::MemoryStorage< double, memorySpace > &pdecVector, const dftfe::utils::MemoryStorage< double, memorySpace > &pdexVector, const dftfe::utils::MemoryStorage< double, memorySpace > &jxwVector, const dftfe::utils::MemoryStorage< double, memorySpace > &invJacobianEntries, const dftfe::utils::MemoryStorage< double, memorySpace > &gradientRhoSpinIndex, const dftfe::utils::MemoryStorage< double, memorySpace > &gradientRhoOtherSpinIndex, dftfe::utils::MemoryStorage< double, memorySpace > &invJacderExcWithSigmaTimesGradRhoJxW)
void computeVeffBeffJxWEntries(const std::pair< dftfe::uInt, dftfe::uInt > cellRange, const dftfe::uInt numQuadsPerCell, const dftfe::utils::MemoryStorage< double, memorySpace > &phiVector, const dftfe::utils::MemoryStorage< double, memorySpace > &pdecVectorSpinUp, const dftfe::utils::MemoryStorage< double, memorySpace > &pdecVectorSpinDown, const dftfe::utils::MemoryStorage< double, memorySpace > &pdexVectorSpinUp, const dftfe::utils::MemoryStorage< double, memorySpace > &pdexVectorSpinDown, const dftfe::utils::MemoryStorage< double, memorySpace > &magAxis, const dftfe::utils::MemoryStorage< double, memorySpace > &jxwVector, dftfe::utils::MemoryStorage< double, memorySpace > &VeffJxW, dftfe::utils::MemoryStorage< double, memorySpace > &BeffxJxW, dftfe::utils::MemoryStorage< double, memorySpace > &BeffyJxW, dftfe::utils::MemoryStorage< double, memorySpace > &BeffzJxW)
void computeInvJacderExcWithSigmaTimesGradRhoMagJxWEntries(const std::pair< dftfe::uInt, dftfe::uInt > cellRange, const dftfe::uInt numQuadsPerCell, const dftfe::Int spinIndex, const dftfe::Int cellsTypeFlag, const dftfe::utils::MemoryStorage< double, memorySpace > &pdecVector, const dftfe::utils::MemoryStorage< double, memorySpace > &pdexVector, const dftfe::utils::MemoryStorage< double, memorySpace > &magAxis, const dftfe::utils::MemoryStorage< double, memorySpace > &jxwVector, const dftfe::utils::MemoryStorage< double, memorySpace > &invJacobianEntries, const dftfe::utils::MemoryStorage< double, memorySpace > &gradientRhoSpinUp, const dftfe::utils::MemoryStorage< double, memorySpace > &gradientRhoSpinDown, dftfe::utils::MemoryStorage< double, memorySpace > &invJacderExcWithSigmaTimesGradRhoJxW, dftfe::utils::MemoryStorage< double, memorySpace > &invJacderExcWithSigmaTimesMagXTimesGradRhoJxWHost, dftfe::utils::MemoryStorage< double, memorySpace > &invJacderExcWithSigmaTimesMagYTimesGradRhoJxWHost, dftfe::utils::MemoryStorage< double, memorySpace > &invJacderExcWithSigmaTimesMagZTimesGradRhoJxWHost)
Definition pseudoPotentialToDftfeConverter.cc:34
std::uint32_t uInt
Definition TypeConfig.h:10
std::int32_t Int
Definition TypeConfig.h:11