//============================================================================== AztecDVBR_Matrix::AztecDVBR_Matrix(fei::SharedPtr<Aztec_BlockMap> map) : amap_(map), Amat_(NULL), N_update_(map->getNumLocalBlocks()), external_(NULL), extern_index_(NULL), update_index_(NULL), data_org_(NULL), orderingUpdate_(NULL), isLoaded_(false), isAllocated_(false), localNNZ_(0), nnzPerRow_(NULL), numRemoteBlocks_(0), remoteInds_(NULL), remoteBlockSizes_(NULL) { nnzPerRow_ = new int[N_update_]; for(int i=0; i<N_update_; i++) { nnzPerRow_[i] = 0; } Amat_ = AZ_matrix_create(N_update_); Amat_->matrix_type = AZ_VBR_MATRIX; Amat_->matvec = (void(*)(double*,double*,AZ_MATRIX_STRUCT*,int*))AZ_VBR_matvec_mult; //now we can allocate and fill the rpntr array. Amat_->rpntr = NULL; calcRpntr(); }