1#ifndef GRID_TECHNIQUE_H
2#define GRID_TECHNIQUE_H
10#if ((defined __CUDA) )
11#include "kernels/cuda/gemm_selector.cuh"
13#include <cuda_runtime.h>
82 std::vector<std::vector<double>>
psi_u;
83 std::vector<std::vector<double>>
dpsi_u;
101 const int& nbzp_start_in,
105 const int& startz_current,
109 const std::vector<double>&
rcuts,
110 const std::vector<std::vector<double>>&
psi_u,
111 const std::vector<std::vector<double>>&
dpsi_u,
112 const std::vector<std::vector<double>>&
d2psi_u,
113 const int& num_stream);
122 const int& iat2)
const;
124 int find_offset(
const int id1,
const int id2,
const int iat1,
const int iat2)
const;
142 void check_bigcell(
int* ind_bigcell,
char* bigcell_on_processor);
146#if ((defined __CUDA) )
164 matrix_multiple_func_type fastest_matrix_mul;
167 void init_gpu_gint_variables(
const UnitCell&
ucell,
const int num_stream);
168 void free_gpu_gint_variables(
int nat);
int nat
Definition grid_bigcell.h:15
Definition sltk_grid_driver.h:43
Definition grid_meshball.h:7
Definition grid_technique.h:18
int lgd
Definition grid_technique.h:58
void cal_grid_integration_index()
Definition grid_technique.cpp:458
std::vector< std::vector< double > > psi_u
Definition grid_technique.h:82
void init_ijr_and_nnrg(const UnitCell &ucell, const Grid_Driver &gd)
Definition grid_technique.cpp:555
const LCAO_Orbitals * orb
Definition grid_technique.h:72
void init_atoms_on_grid(const int &ny, const int &nplane, const UnitCell &ucell)
Definition grid_technique.cpp:172
std::vector< std::vector< double > > d2psi_u
Definition grid_technique.h:84
int max_atom
Definition grid_technique.h:32
Grid_Technique & operator=(Grid_Technique &&rhs)=default
move operator for the next ESolver to directly use its infomation
void set_pbc_grid(const int &ncx_in, const int &ncy_in, const int &ncz_in, const int &bx_in, const int &by_in, const int &bz_in, const int &nbx_in, const int &nby_in, const int &nbz_in, const int &nbxx_in, const int &nbzp_start_in, const int &nbzp_in, const int &ny, const int &nplane, const int &startz_current, const UnitCell &ucell, const Grid_Driver &gd, const double &dr_uniform, const std::vector< double > &rcuts, const std::vector< std::vector< double > > &psi_u, const std::vector< std::vector< double > > &dpsi_u, const std::vector< std::vector< double > > &d2psi_u, const int &num_stream)
Definition grid_technique.cpp:36
int total_atoms_on_grid
Definition grid_technique.h:34
int nr_max
Definition grid_technique.h:76
std::vector< int > trace_iat
Definition grid_technique.h:60
Grid_Technique()
Definition grid_technique.cpp:15
const UnitCell * ucell
Definition grid_technique.h:71
std::vector< int > which_atom
Definition grid_technique.h:45
std::vector< int > which_bigcell
Definition grid_technique.h:51
bool get_init_malloced() const
Definition grid_technique.h:89
int nwmax
Definition grid_technique.h:75
int cal_RindexAtom(const int &u1, const int &u2, const int &u3, const int &iat2) const
std::vector< int > trace_lo
Definition grid_technique.h:61
std::vector< int > start_ind
Definition grid_technique.h:35
void get_startind(const int &ny, const int &nplane)
Definition grid_technique.cpp:133
int nnrg
Definition grid_technique.h:68
void init_atoms_on_grid2(const int *index2normal, const UnitCell &ucell)
Definition grid_technique.cpp:340
const std::vector< int > * get_ijr_info() const
Definition grid_technique.h:115
int find_offset(const int id1, const int id2, const int iat1, const int iat2) const
void check_bigcell(int *ind_bigcell, char *bigcell_on_processor)
Definition grid_technique.cpp:305
int lnat
Definition grid_technique.h:57
std::vector< int > ijr_info
Definition grid_technique.h:130
std::vector< int > how_many_atoms
Definition grid_technique.h:30
std::vector< double > rcuts
Definition grid_technique.h:81
void cal_trace_lo(const UnitCell &ucell)
Definition grid_technique.cpp:498
int ntype
Definition grid_technique.h:77
std::vector< bool > in_this_processor
Definition grid_technique.h:59
bool init_malloced
Definition grid_technique.h:87
~Grid_Technique()
Definition grid_technique.cpp:23
std::vector< int > bcell_start
Definition grid_technique.h:42
std::vector< int > which_unitcell
Definition grid_technique.h:52
std::vector< std::vector< double > > dpsi_u
Definition grid_technique.h:83
double dr_uniform
Definition grid_technique.h:80