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 unsigned int wfcBlockSize,
30 const unsigned int blockSizeNlp,
31 const unsigned int numQuadsNLP,
32 const unsigned int startingIdNlp,
33 const ValueType * projectorKetTimesVectorPar,
34 const ValueType * gradPsiOrPsiQuadValuesNLP,
35 const double * partialOccupancies,
36 const unsigned int *nonTrivialIdToElemIdMap,
37 const unsigned int *projecterKetTimesFlattenedVectorLocalIds,
38 ValueType * nlpContractionContribution);
39
40 template <typename ValueType>
41 void
42 computeELocWfcEshelbyTensorContributions(const unsigned int wfcBlockSize,
43 const unsigned int cellsBlockSize,
44 const unsigned int 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