DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
forceWfcContractionsDeviceKernels.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#if defined(DFTFE_WITH_DEVICE)
19# ifndef forceWfcContractionsDeviceKernels_H_
20# define forceWfcContractionsDeviceKernels_H_
21
22namespace dftfe
23{
24 namespace forceDeviceKernels
25 {
26 template <typename ValueType>
27 void
28 nlpContractionContributionPsiIndex(
29 const dftfe::uInt wfcBlockSize,
30 const dftfe::uInt blockSizeNlp,
31 const dftfe::uInt numQuadsNLP,
32 const dftfe::uInt startingIdNlp,
33 const ValueType *projectorKetTimesVectorPar,
34 const ValueType *gradPsiOrPsiQuadValuesNLP,
35 const double *partialOccupancies,
36 const dftfe::uInt *nonTrivialIdToElemIdMap,
37 const dftfe::uInt *projecterKetTimesFlattenedVectorLocalIds,
38 ValueType *nlpContractionContribution);
39
40 template <typename ValueType>
41 void
42 computeELocWfcEshelbyTensorContributions(const dftfe::uInt wfcBlockSize,
43 const dftfe::uInt cellsBlockSize,
44 const dftfe::uInt numQuads,
45 const ValueType *psiQuadValues,
46 const ValueType *gradPsiQuadValues,
47 const double *eigenValues,
48 const double *partialOccupancies,
49# ifdef USE_COMPLEX
50 const double kcoordx,
51 const double kcoordy,
52 const double kcoordz,
53# endif
54 double *eshelbyTensorContributions
55# ifdef USE_COMPLEX
56 ,
57 const bool addEk
58# endif
59 );
60
61
62 } // namespace forceDeviceKernels
63} // namespace dftfe
64# endif
65#endif
Definition pseudoPotentialToDftfeConverter.cc:34
std::uint32_t uInt
Definition TypeConfig.h:10