ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
dist_ccs_matrix.h
Go to the documentation of this file.
1#ifndef DISTCCSMATRIX_H
2#define DISTCCSMATRIX_H
3
4#include <mpi.h>
5// Distributed Compressed Column Storage Matrix format
6// used for PEXSI
7namespace pexsi
8{
10{
11
12 public:
16 DistCCSMatrix(MPI_Comm comm, int size, int nnzLocal);
17 DistCCSMatrix(MPI_Comm comm, int size, int nnzLocal, double* valLocal, int* index);
18
20 int localCol(int globalCol, int& mypcol);
21 void setnnz(int nnzLocal);
22
23 const MPI_Comm get_comm() const
24 {
25 return comm;
26 };
27 const MPI_Group get_group() const
28 {
29 return group;
30 };
31 const MPI_Group get_group_data() const
32 {
33 return group_data;
34 };
35 const int get_size() const
36 {
37 return size;
38 };
39 const int get_nnz() const
40 {
41 return nnz;
42 };
43 const int get_nnzlocal() const
44 {
45 return nnzLocal;
46 };
47 const int get_numcol_local() const
48 {
49 return numColLocal;
50 };
51 int* get_colptr_local() const
52 {
53 return colptrLocal;
54 };
55 int* get_rowind_local() const
56 {
57 return rowindLocal;
58 };
59
61
62 private:
63 // MPI communicator
64 MPI_Comm comm;
65 MPI_Group group;
66
67 // total number of processes and the processes with data in
68 int nprocs = 0;
69 int nproc_data =0;
70 MPI_Group group_data;
71 MPI_Comm comm_data;
72
73 // Matrix size
74 int size;
75
76 // Number of non-zero values in the matrix
77 int nnz;
78
79 // Number of non-zero values in the matrix of the local process
81
82 // number of columns in current process
84
85 // the first column index in current process
86 int firstCol=0;
87
88 // Array stores the indices to the nonzero row indices in rowptrLocal and nzvalLocal
91
92 // friend class DistMatrixTransformer;
93};
94} // namespace pexsi
95#endif // DISTCCSMATRIX_H
Definition dist_ccs_matrix.h:10
MPI_Comm comm_data
Definition dist_ccs_matrix.h:71
MPI_Comm comm
Definition dist_ccs_matrix.h:64
DistCCSMatrix(MPI_Comm comm)
int * get_colptr_local() const
Definition dist_ccs_matrix.h:51
int localCol(int globalCol, int &mypcol)
int numColLocal
Definition dist_ccs_matrix.h:83
int nnzLocal
Definition dist_ccs_matrix.h:80
int size
Definition dist_ccs_matrix.h:74
MPI_Group group_data
Definition dist_ccs_matrix.h:70
int nproc_data
Definition dist_ccs_matrix.h:69
const int get_numcol_local() const
Definition dist_ccs_matrix.h:47
int * get_rowind_local() const
Definition dist_ccs_matrix.h:55
int nprocs
Definition dist_ccs_matrix.h:68
int firstCol
Definition dist_ccs_matrix.h:86
int nnz
Definition dist_ccs_matrix.h:77
DistCCSMatrix(int size, int nnzLocal)
DistCCSMatrix(MPI_Comm comm, int size, int nnzLocal)
const MPI_Group get_group_data() const
Definition dist_ccs_matrix.h:31
void setnnz(int nnzLocal)
int * colptrLocal
Definition dist_ccs_matrix.h:89
const int get_nnzlocal() const
Definition dist_ccs_matrix.h:43
DistCCSMatrix(MPI_Comm comm, int size, int nnzLocal, double *valLocal, int *index)
const int get_size() const
Definition dist_ccs_matrix.h:35
int globalCol(int localCol)
MPI_Group group
Definition dist_ccs_matrix.h:65
int * rowindLocal
Definition dist_ccs_matrix.h:90
const int get_nnz() const
Definition dist_ccs_matrix.h:39
const MPI_Group get_group() const
Definition dist_ccs_matrix.h:27
const MPI_Comm get_comm() const
Definition dist_ccs_matrix.h:23
Definition dist_bcd_matrix.h:12
int mypcol
Definition tddft_test.cpp:14