ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
gint_rho_gpu.h
Go to the documentation of this file.
1#pragma once
2
3#include <memory>
4#include <vector>
6#include "gint.h"
7#include "gint_info.h"
9
10namespace ModuleGint
11{
12
13class Gint_rho_gpu: public Gint
14{
15 public:
17 const std::vector<HContainer<double>*>& dm_vec,
18 const int nspin,
19 double **rho,
20 bool is_dm_symm = true)
21 : dm_vec_(dm_vec), nspin_(nspin), rho_(rho), is_dm_symm_(is_dm_symm) {}
22
23 void cal_gint();
24
25 private:
26 void init_dm_gint_();
27
28 void cal_rho_();
29
31
33
34 // input
35 const std::vector<HContainer<double>*> dm_vec_;
36 const int nspin_;
37
38 // if true, it means the DMR matrix is symmetric,
39 // which leads to faster computations compared to the asymmetric case.
40 const bool is_dm_symm_;
41
42 // output
43 double **rho_;
44
45 // Intermediate variables
46 std::vector<HContainer<double>> dm_gint_vec_;
47
48 std::vector<CudaMemWrapper<double>> dm_gint_d_vec_;
49 std::vector<CudaMemWrapper<double>> rho_d_vec_;
50};
51
52}
Definition gint_rho_gpu.h:14
std::vector< CudaMemWrapper< double > > dm_gint_d_vec_
Definition gint_rho_gpu.h:48
void transfer_cpu_to_gpu_()
Definition gint_rho_gpu.cpp:29
double ** rho_
Definition gint_rho_gpu.h:43
void transfer_gpu_to_cpu_()
Definition gint_rho_gpu.cpp:42
const bool is_dm_symm_
Definition gint_rho_gpu.h:40
std::vector< CudaMemWrapper< double > > rho_d_vec_
Definition gint_rho_gpu.h:49
const std::vector< HContainer< double > * > dm_vec_
Definition gint_rho_gpu.h:35
std::vector< HContainer< double > > dm_gint_vec_
Definition gint_rho_gpu.h:46
void init_dm_gint_()
Definition gint_rho_gpu.cpp:20
const int nspin_
Definition gint_rho_gpu.h:36
void cal_gint()
Definition gint_rho_gpu.cpp:10
Gint_rho_gpu(const std::vector< HContainer< double > * > &dm_vec, const int nspin, double **rho, bool is_dm_symm=true)
Definition gint_rho_gpu.h:16
void cal_rho_()
Definition gint_rho_gpu.cpp:51
Definition gint.h:10
Definition hcontainer.h:144
Definition batch_biggrid.cpp:4