9 #ifndef _fei_Vector_core_hpp_
10 #define _fei_Vector_core_hpp_
39 int vectorIndex=0)
const;
45 const int* nodeNumbers,
46 const int* numIndicesPerNode,
48 const double* values) = 0;
51 virtual int copyOut_FE(
int nodeNumber,
int dofOffset,
double& value) = 0;
66 void setOverlap(
int numRemoteEqns=0,
const int* remoteEqns=NULL);
101 const double* values,
103 int vectorIndex=0) = 0;
109 int vectorIndex=0)
const = 0;
114 bool matrixMarketFormat=
true);
118 bool matrixMarketFormat=
true);
173 throw std::runtime_error(
"failed to find remote-vec for specified processor.");
186 std::vector<std::vector<char> >& send_chars,
188 bool zeroRemotelyOwnedAfterPacking);
std::vector< int > & work_indices()
void setOverlap(int numRemoteEqns=0, const int *remoteEqns=NULL)
std::vector< CSVec * > remotelyOwned_
std::vector< int > work_indices2_
virtual int giveToUnderlyingVector(int numValues, const int *indices, const double *values, bool sumInto=true, int vectorIndex=0)=0
int giveToVector(int numValues, const int *indices, const double *values, bool sumInto=true, int vectorIndex=0)
std::vector< int > & work_indices2()
std::vector< int > work_indices_
int assembleFieldDataLocalIDs(int fieldID, int idType, int numIDs, const int *localIDs, const double *data, bool sumInto=true, int vectorIndex=0)
const std::vector< int > & remotelyOwnedProcs() const
bool sendRecvProcsNeedUpdated_
virtual int copyOut_FE(int nodeNumber, int dofOffset, double &value)=0
const std::vector< CSVec * > & remotelyOwned() const
virtual int writeToStream(FEI_OSTREAM &ostrm, bool matrixMarketFormat=true)
int copyOut(int numValues, const int *indices, double *values, int vectorIndex=0) const
void set_vector_space(fei::SharedPtr< fei::VectorSpace > vspace)
std::vector< std::vector< char > > send_chars_
std::vector< int > sendProcs_
std::vector< int > remotelyOwnedProcs_
std::vector< CSVec * > & remotelyOwned()
void setFEVector(bool flag)
virtual int copyOutFieldData(int fieldID, int idType, int numIDs, const int *IDs, double *data, int vectorIndex=0)
std::vector< std::vector< char > > recv_chars_
fei::SharedPtr< fei::EqnComm > eqnComm_
virtual int sumIntoFEVector(int blockID, int connOffset, int numNodes, const int *nodeNumbers, const int *numIndicesPerNode, const int *dof_ids, const double *values)=0
void pack_send_buffers(const std::vector< int > &sendProcs, const std::vector< fei::CSVec * > &remotelyOwned, std::vector< std::vector< char > > &send_chars, bool resize_buffer, bool zeroRemotelyOwnedAfterPacking)
int lastLocalOffset() const
fei::CSVec * getRemotelyOwned(int proc)
fei::SharedPtr< fei::VectorSpace > get_vector_space() const
std::vector< int > & remotelyOwnedProcs()
const fei::CSVec * getRemotelyOwned(int proc) const
Vector_core(fei::SharedPtr< fei::VectorSpace > vecSpace, int numLocalEqns)
std::vector< int > recvProcs_
virtual int writeToFile(const char *filename, bool matrixMarketFormat=true)
virtual int scatterToOverlap()
virtual int copyOutOfUnderlyingVector(int numValues, const int *indices, double *values, int vectorIndex=0) const =0
int firstLocalOffset() const
fei::SharedPtr< fei::VectorSpace > vecSpace_
virtual int gatherFromOverlap(bool accumulate=true)
std::vector< int > recv_sizes_
int assembleFieldData(int fieldID, int idType, int numIDs, const int *IDs, const double *data, bool sumInto=true, int vectorIndex=0)