ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
ekinetic_op.h
Go to the documentation of this file.
1#ifndef MODULE_HAMILT_EKINETIC_H
2#define MODULE_HAMILT_EKINETIC_H
3
4#include "source_psi/psi.h"
5#include <complex>
6
7namespace hamilt {
8template <typename FPTYPE, typename Device>
25 const Device* dev,
26 const int& nband,
27 const int& npw,
28 const int& max_npw,
29 const bool& is_first_node,
30 const FPTYPE& tpiba2,
31 const FPTYPE* gk2_ik,
32 std::complex<FPTYPE>* tmhpsi,
33 const std::complex<FPTYPE>* tmpsi_in);
34};
35
36#if __CUDA || __UT_USE_CUDA || __ROCM || __UT_USE_ROCM
37// Partially specialize functor for base_device::GpuDevice.
38template <typename FPTYPE>
39struct ekinetic_pw_op<FPTYPE, base_device::DEVICE_GPU>
40{
41 void operator()(const base_device::DEVICE_GPU* dev,
42 const int& nband,
43 const int& npw,
44 const int& max_npw,
45 const bool& is_first_node,
46 const FPTYPE& tpiba2,
47 const FPTYPE* gk2_ik,
48 std::complex<FPTYPE>* tmhpsi,
49 const std::complex<FPTYPE>* tmpsi_in);
50};
51#endif // __CUDA || __UT_USE_CUDA || __ROCM || __UT_USE_ROCM
52} // namespace hamilt
53#endif //MODULE_HAMILT_EKINETIC_H
Definition device.cpp:21
Definition hamilt.h:12
Definition ekinetic_op.h:9
void operator()(const Device *dev, const int &nband, const int &npw, const int &max_npw, const bool &is_first_node, const FPTYPE &tpiba2, const FPTYPE *gk2_ik, std::complex< FPTYPE > *tmhpsi, const std::complex< FPTYPE > *tmpsi_in)
Compute the ekinetic potential of hPsi.