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"
8
9namespace ModuleGint
10{
11
12class Gint_rho_gpu: public Gint
13{
14 public:
16 const std::vector<HContainer<double>*>& dm_vec,
17 const int nspin,
18 double **rho,
19 bool is_dm_symm = true)
20 : dm_vec_(dm_vec), nspin_(nspin), rho_(rho), is_dm_symm_(is_dm_symm) {}
21
22 void cal_gint();
23
24 private:
25 template<typename Real>
26 void cal_gint_impl_();
27
28 // input
29 const std::vector<HContainer<double>*> dm_vec_;
30 const int nspin_;
31
32 // if true, it means the DMR matrix is symmetric,
33 // which leads to faster computations compared to the asymmetric case.
34 const bool is_dm_symm_;
35
36 // output
37 double ** rho_ = nullptr;
38};
39
40}
Definition gint_rho_gpu.h:13
void cal_gint_impl_()
Definition gint_rho_gpu.cpp:29
double ** rho_
Definition gint_rho_gpu.h:37
const bool is_dm_symm_
Definition gint_rho_gpu.h:34
const std::vector< HContainer< double > * > dm_vec_
Definition gint_rho_gpu.h:29
const int nspin_
Definition gint_rho_gpu.h:30
void cal_gint()
Definition gint_rho_gpu.cpp:11
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:15
Definition gint.h:10
Definition hcontainer.h:144
Definition batch_biggrid.cpp:4