ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
gint_fvl_meta_gpu.h
Go to the documentation of this file.
1#pragma once
2
3#include <memory>
4#include <vector>
7#include "gint.h"
8#include "gint_info.h"
10
11namespace ModuleGint
12{
13class Gint_fvl_meta_gpu : public Gint
14{
15 public:
17 const int nspin,
18 const std::vector<const double*>& vr_eff,
19 const std::vector<const double*>& vofk,
20 const std::vector<HContainer<double>*>& dm_vec,
21 const bool isforce,
22 const bool isstress,
25 : nspin_(nspin), vr_eff_(vr_eff), vofk_(vofk), dm_vec_(dm_vec),
26 isforce_(isforce), isstress_(isstress), fvl_(fvl), svl_(svl),
27 dr3_(gint_info_->get_mgrid_volume()) {}
28
29 void cal_gint();
30
31 private:
32 void init_dm_gint_();
33
35
37
38 void cal_fvl_svl_();
39
40 // input
41 const int nspin_;
42 std::vector<const double*> vr_eff_;
43 std::vector<const double*> vofk_;
44 std::vector<HContainer<double>*> dm_vec_;
45 const bool isforce_;
46 const bool isstress_;
47
48 // output
51
52 // intermediate variables
53 std::vector<HContainer<double>> dm_gint_vec_;
54
55 double dr3_;
56
57 std::vector<CudaMemWrapper<double>> vr_eff_d_vec_;
58 std::vector<CudaMemWrapper<double>> vofk_d_vec_;
59 std::vector<CudaMemWrapper<double>> dm_gint_d_vec_;
62};
63
64} // namespace ModuleGint
Definition cuda_mem_wrapper.h:8
Definition matrix.h:19
Definition gint_fvl_meta_gpu.h:14
std::vector< CudaMemWrapper< double > > vr_eff_d_vec_
Definition gint_fvl_meta_gpu.h:57
std::vector< const double * > vofk_
Definition gint_fvl_meta_gpu.h:43
ModuleBase::matrix * svl_
Definition gint_fvl_meta_gpu.h:50
CudaMemWrapper< double > svl_d_
Definition gint_fvl_meta_gpu.h:61
std::vector< CudaMemWrapper< double > > vofk_d_vec_
Definition gint_fvl_meta_gpu.h:58
std::vector< CudaMemWrapper< double > > dm_gint_d_vec_
Definition gint_fvl_meta_gpu.h:59
void init_dm_gint_()
Definition gint_fvl_meta_gpu.cpp:20
std::vector< HContainer< double > * > dm_vec_
Definition gint_fvl_meta_gpu.h:44
ModuleBase::matrix * fvl_
Definition gint_fvl_meta_gpu.h:49
CudaMemWrapper< double > fvl_d_
Definition gint_fvl_meta_gpu.h:60
void cal_fvl_svl_()
Definition gint_fvl_meta_gpu.cpp:81
double dr3_
Definition gint_fvl_meta_gpu.h:55
std::vector< const double * > vr_eff_
Definition gint_fvl_meta_gpu.h:42
Gint_fvl_meta_gpu(const int nspin, const std::vector< const double * > &vr_eff, const std::vector< const double * > &vofk, const std::vector< HContainer< double > * > &dm_vec, const bool isforce, const bool isstress, ModuleBase::matrix *fvl, ModuleBase::matrix *svl)
Definition gint_fvl_meta_gpu.h:16
const bool isforce_
Definition gint_fvl_meta_gpu.h:45
void transfer_cpu_to_gpu_()
Definition gint_fvl_meta_gpu.cpp:29
void cal_gint()
Definition gint_fvl_meta_gpu.cpp:10
std::vector< HContainer< double > > dm_gint_vec_
Definition gint_fvl_meta_gpu.h:53
void transfer_gpu_to_cpu_()
Definition gint_fvl_meta_gpu.cpp:56
const bool isstress_
Definition gint_fvl_meta_gpu.h:46
const int nspin_
Definition gint_fvl_meta_gpu.h:41
Definition gint.h:10
static GintInfo * gint_info_
Definition gint.h:23
Definition hcontainer.h:144
Definition batch_biggrid.cpp:4