ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
gint_fvl_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{
13
14class Gint_fvl_gpu : public Gint
15{
16 public:
18 const int nspin,
19 const std::vector<const double*>& vr_eff,
20 const std::vector<HContainer<double>*>& dm_vec,
21 const bool isforce,
22 const bool isstress,
25 : nspin_(nspin), vr_eff_(vr_eff), 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
34 void cal_fvl_svl_();
35
38 // input
39 const int nspin_;
40 std::vector<const double*> vr_eff_;
41 std::vector<HContainer<double>*> dm_vec_;
42 const bool isforce_;
43 const bool isstress_;
44
45 // output
48
49 // intermediate variables
50 std::vector<HContainer<double>> dm_gint_vec_;
51
52 double dr3_;
53
54 // GPU memory
55 std::vector<CudaMemWrapper<double>> vr_eff_d_vec_;
56 std::vector<CudaMemWrapper<double>> dm_gint_d_vec_;
59};
60
61}
Definition cuda_mem_wrapper.h:8
Definition matrix.h:19
Definition gint_fvl_gpu.h:15
std::vector< CudaMemWrapper< double > > vr_eff_d_vec_
Definition gint_fvl_gpu.h:55
std::vector< CudaMemWrapper< double > > dm_gint_d_vec_
Definition gint_fvl_gpu.h:56
CudaMemWrapper< double > svl_d_
Definition gint_fvl_gpu.h:58
const int nspin_
Definition gint_fvl_gpu.h:39
const bool isforce_
Definition gint_fvl_gpu.h:42
CudaMemWrapper< double > fvl_d_
Definition gint_fvl_gpu.h:57
void cal_gint()
Definition gint_fvl_gpu.cpp:10
void init_dm_gint_()
Definition gint_fvl_gpu.cpp:20
double dr3_
Definition gint_fvl_gpu.h:52
ModuleBase::matrix * fvl_
Definition gint_fvl_gpu.h:46
std::vector< HContainer< double > * > dm_vec_
Definition gint_fvl_gpu.h:41
void cal_fvl_svl_()
Definition gint_fvl_gpu.cpp:77
ModuleBase::matrix * svl_
Definition gint_fvl_gpu.h:47
void transfer_gpu_to_cpu_()
Definition gint_fvl_gpu.cpp:52
Gint_fvl_gpu(const int nspin, const std::vector< const double * > &vr_eff, const std::vector< HContainer< double > * > &dm_vec, const bool isforce, const bool isstress, ModuleBase::matrix *fvl, ModuleBase::matrix *svl)
Definition gint_fvl_gpu.h:17
void transfer_cpu_to_gpu_()
Definition gint_fvl_gpu.cpp:29
std::vector< HContainer< double > > dm_gint_vec_
Definition gint_fvl_gpu.h:50
const bool isstress_
Definition gint_fvl_gpu.h:43
std::vector< const double * > vr_eff_
Definition gint_fvl_gpu.h:40
Definition gint.h:10
static GintInfo * gint_info_
Definition gint.h:23
Definition hcontainer.h:144
Definition batch_biggrid.cpp:4