DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
AtomicCenteredNonLocalOperatorKernelsDevice.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// @author Kartick Ramakrishnan
18//
19#ifndef DFTFE_ATOMICCENTEREDNONLOCALOPERATORDEVICEKERNELS_H
20#define DFTFE_ATOMICCENTEREDNONLOCALOPERATORDEVICEKERNELS_H
21
23#include <DeviceAPICalls.h>
25#include <DeviceTypeConfig.h>
27#include <MemoryStorage.h>
28namespace dftfe
29{
31 {
32 template <typename ValueType>
33 void
35 const unsigned int numWfcs,
36 const unsigned int numNonLocalCells,
37 const unsigned int maxSingleAtomPseudoWfc,
38 const ValueType * sphericalFnTimesWfcParallelVec,
39 ValueType * sphericalFnTimesWfcAllCellsVec,
40 const int * indexMapPaddedToParallelVec);
41
42
43 template <typename ValueType>
44 void
46 const unsigned int numWfcs,
47 const unsigned int totalEntries,
48 const ValueType * sphericalFnTimesWfcParallelVec,
49 ValueType * sphericalFnTimesWfcDealiiParallelVec,
50 const unsigned int *indexMapDealiiParallelNumbering);
51
52 template <typename ValueType>
53 void
55 const unsigned int numWfcs,
56 const unsigned int totalEntriesPadded,
57 const ValueType * sphericalFnTimesWfcDealiiParallelVec,
58 ValueType * sphericalFnTimesWfcPaddedVec,
59 const int * indexMapDealiiParallelNumbering);
60
61 template <typename ValueType>
62 void
64 const unsigned int numWfcs,
65 const unsigned int totalEntriesPadded,
66 const ValueType * sphericalFnTimesWfcPaddedVec,
67 ValueType * sphericalFnTimesWfcDealiiParallelVec,
68 const int * indexMapDealiiParallelNumbering);
69
70 template <typename ValueType>
71 void
73 const unsigned int numberCellsForAtom,
74 const unsigned int numberNodesPerElement,
75 const unsigned int numberWfc,
76 const unsigned int numberCellsTraversed,
77 const dftfe::utils::MemoryStorage<ValueType,
79 & nonLocalContribution,
80 ValueType *TotalContribution,
81 const dftfe::utils::MemoryStorage<unsigned int,
83 &cellNodeIdMapNonLocalToLocal);
84 template <typename ValueType>
85 void
87 const unsigned int totalNonLocalElements,
88 const unsigned int numberWfc,
89 const unsigned int numberNodesPerElement,
90 const dftfe::utils::MemoryStorage<unsigned int,
92 &iElemNonLocalToElemIndexMap,
93 const dftfe::utils::MemoryStorage<ValueType,
95 & nonLocalContribution,
96 ValueType *TotalContribution);
97
98 template <typename ValueType>
99 void
101 const unsigned int maxSingleAtomContribution,
102 const unsigned int numWfcs,
103 const unsigned int totalAtomsInCurrentProcessor,
104 const double * scalingVector,
105 ValueType * sphericalFnTimesWfcPadded);
106
107
108 } // namespace AtomicCenteredNonLocalOperatorKernelsDevice
109
110
111
112} // namespace dftfe
113
114#endif // DFTFE_ATOMICCENTEREDNONLOCALOPERATORDEVICEKERNELS_H
Definition MemoryStorage.h:33
Definition AtomicCenteredNonLocalOperatorKernelsDevice.h:31
void sqrtAlphaScalingWaveFunctionEntries(const unsigned int maxSingleAtomContribution, const unsigned int numWfcs, const unsigned int totalAtomsInCurrentProcessor, const double *scalingVector, ValueType *sphericalFnTimesWfcPadded)
void copyFromParallelNonLocalVecToAllCellsVec(const unsigned int numWfcs, const unsigned int numNonLocalCells, const unsigned int maxSingleAtomPseudoWfc, const ValueType *sphericalFnTimesWfcParallelVec, ValueType *sphericalFnTimesWfcAllCellsVec, const int *indexMapPaddedToParallelVec)
void copyToDealiiParallelNonLocalVec(const unsigned int numWfcs, const unsigned int totalEntries, const ValueType *sphericalFnTimesWfcParallelVec, ValueType *sphericalFnTimesWfcDealiiParallelVec, const unsigned int *indexMapDealiiParallelNumbering)
void addNonLocalContribution(const unsigned int numberCellsForAtom, const unsigned int numberNodesPerElement, const unsigned int numberWfc, const unsigned int numberCellsTraversed, const dftfe::utils::MemoryStorage< ValueType, dftfe::utils::MemorySpace::DEVICE > &nonLocalContribution, ValueType *TotalContribution, const dftfe::utils::MemoryStorage< unsigned int, dftfe::utils::MemorySpace::DEVICE > &cellNodeIdMapNonLocalToLocal)
void copyToDealiiParallelNonLocalVecFromPaddedVector(const unsigned int numWfcs, const unsigned int totalEntriesPadded, const ValueType *sphericalFnTimesWfcPaddedVec, ValueType *sphericalFnTimesWfcDealiiParallelVec, const int *indexMapDealiiParallelNumbering)
void copyFromDealiiParallelNonLocalVecToPaddedVector(const unsigned int numWfcs, const unsigned int totalEntriesPadded, const ValueType *sphericalFnTimesWfcDealiiParallelVec, ValueType *sphericalFnTimesWfcPaddedVec, const int *indexMapDealiiParallelNumbering)
@ DEVICE
Definition MemorySpaceType.h:36
Definition pseudoPotentialToDftfeConverter.cc:34