46 #ifndef _PEXSI_SUPERLUGRID_IMPL_HPP_
47 #define _PEXSI_SUPERLUGRID_IMPL_HPP_
56 inline SuperLUGrid<Real>::SuperLUGrid ( MPI_Comm comm, Int nprow, Int npcol )
60 ErrorHandling(
"SuperLUGrid cannot be allocated." );
62 ptrData->GridInit(comm, nprow, npcol);
68 inline SuperLUGrid<Real>::~SuperLUGrid ( )
86 inline SuperLUGrid<Real>::SuperLUGrid(
const SuperLUGrid<Real> & g)
89 if(g.ptrData == NULL){
90 ErrorHandling(
"Original SuperLUGrid not allocated." );
93 ptrData =
new RealGridData(*g.ptrData);
95 ErrorHandling(
"SuperLUGrid cannot be allocated." );
102 inline SuperLUGrid<Real> & SuperLUGrid<Real>::operator = (
const SuperLUGrid<Real> & g){
110 if(g.ptrData == NULL){
111 ErrorHandling(
"Original SuperLUGrid not allocated." );
114 ptrData =
new RealGridData(*g.ptrData);
116 ErrorHandling(
"SuperLUGrid cannot be allocated." );
134 inline SuperLUGrid<Complex>::SuperLUGrid ( MPI_Comm comm, Int nprow, Int npcol )
138 ErrorHandling(
"SuperLUGrid cannot be allocated." );
140 ptrData->GridInit(comm, nprow, npcol);
147 inline SuperLUGrid<Complex>::~SuperLUGrid ( )
161 inline SuperLUGrid<Complex>::SuperLUGrid(
const SuperLUGrid<Complex> & g)
164 if(g.ptrData == NULL){
165 ErrorHandling(
"Original SuperLUGrid not allocated." );
168 ptrData =
new ComplexGridData(*g.ptrData);
170 ErrorHandling(
"SuperLUGrid cannot be allocated." );
177 inline SuperLUGrid<Complex> & SuperLUGrid<Complex>::operator = (
const SuperLUGrid<Complex> & g){
185 if(g.ptrData == NULL){
186 ErrorHandling(
"Original SuperLUGrid not allocated." );
189 ptrData =
new ComplexGridData(*g.ptrData);
191 ErrorHandling(
"SuperLUGrid cannot be allocated." );
212 #endif //_PEXSI_SUPERLUGRID_IMPL_HPP_
void * ptrData
SuperLUMatrix can have access to the grid information.
Definition: SuperLUGrid.hpp:101