fei::Vector_core Class Reference

#include <fei_Vector_core.hpp>

Inheritance diagram for fei::Vector_core:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 Vector_core (fei::SharedPtr< fei::VectorSpace > vecSpace, int numLocalEqns)
virtual ~Vector_core ()
int copyOut (int numValues, const int *indices, double *values, int vectorIndex=0) const
virtual int sumIntoFEVector (int blockID, int connOffset, int numNodes, const int *nodeNumbers, const int *numIndicesPerNode, const int *dof_ids, const double *values)=0
virtual int copyOut_FE (int nodeNumber, int dofOffset, double &value)=0
int giveToVector (int numValues, const int *indices, const double *values, bool sumInto=true, int vectorIndex=0)
virtual int scatterToOverlap ()
void setOverlap (int numRemoteEqns=0, const int *remoteEqns=NULL)

Protected Member Functions

int assembleFieldData (int fieldID, int idType, int numIDs, const int *IDs, const double *data, bool sumInto=true, int vectorIndex=0)
virtual int gatherFromOverlap (bool accumulate=true)
virtual int copyOutFieldData (int fieldID, int idType, int numIDs, const int *IDs, double *data, int vectorIndex=0)
virtual int giveToUnderlyingVector (int numValues, const int *indices, const double *values, bool sumInto=true, int vectorIndex=0)=0
virtual int copyOutOfUnderlyingVector (int numValues, const int *indices, double *values, int vectorIndex=0) const =0
virtual int writeToFile (const char *filename, bool matrixMarketFormat=true)
virtual int writeToStream (FEI_OSTREAM &ostrm, bool matrixMarketFormat=true)
fei::SharedPtr< fei::VectorSpaceget_vector_space () const
void set_vector_space (fei::SharedPtr< fei::VectorSpace > vspace)
int firstLocalOffset () const
int lastLocalOffset () const
std::vector< int > & work_indices ()
std::vector< int > & work_indices2 ()
bool haveFEVector ()
void setFEVector (bool flag)
std::vector< CSVec * > & remotelyOwned ()

Detailed Description

Class to provide infrastructure for fei::Vector implementations.

Definition at line 23 of file fei_Vector_core.hpp.


Constructor & Destructor Documentation

fei::Vector_core::Vector_core ( fei::SharedPtr< fei::VectorSpace vecSpace,
int  numLocalEqns 
)

constructor

Definition at line 22 of file fei_Vector_core.cpp.

fei::Vector_core::~Vector_core (  )  [virtual]

destructor

Definition at line 55 of file fei_Vector_core.cpp.


Member Function Documentation

int fei::Vector_core::copyOut ( int  numValues,
const int *  indices,
double *  values,
int  vectorIndex = 0 
) const

Retrieve a copy of values from the vector for the specified indices. Note that if the specified indices are not local in the underlying non-overlapping data decomposition, these values are not guaranteed to be correct until after the scatterToOverlap() method has been called.

Reimplemented in fei::Vector_Impl< T >.

Definition at line 207 of file fei_Vector_core.cpp.

virtual int fei::Vector_core::sumIntoFEVector ( int  blockID,
int  connOffset,
int  numNodes,
const int *  nodeNumbers,
const int *  numIndicesPerNode,
const int *  dof_ids,
const double *  values 
) [pure virtual]

Sum in data for FiniteElementData-specific structure. Power users only.

virtual int fei::Vector_core::copyOut_FE ( int  nodeNumber,
int  dofOffset,
double &  value 
) [pure virtual]

Another FiniteElementData-specific method. Power users only.

Implemented in fei::Vector_Impl< T >.

int fei::Vector_core::giveToVector ( int  numValues,
const int *  indices,
const double *  values,
bool  sumInto = true,
int  vectorIndex = 0 
)

Give specified data to underlying vector object.

Definition at line 245 of file fei_Vector_core.cpp.

int fei::Vector_core::scatterToOverlap (  )  [virtual]

Scatter locally-owned vector data to remote sharing procs.

Reimplemented in fei::Vector_Impl< T >.

Definition at line 99 of file fei_Vector_core.cpp.

void fei::Vector_core::setOverlap ( int  numRemoteEqns = 0,
const int *  remoteEqns = NULL 
)

define the extent of the overlapping indices. If the optional arguments are not specified, remote eqns will be obtained from the internal fei::VectorSpace attribute.

Definition at line 62 of file fei_Vector_core.cpp.

int fei::Vector_core::assembleFieldData ( int  fieldID,
int  idType,
int  numIDs,
const int *  IDs,
const double *  data,
bool  sumInto = true,
int  vectorIndex = 0 
) [protected]

Assemble data specified by fieldID, idType, etc.

Definition at line 293 of file fei_Vector_core.cpp.

int fei::Vector_core::gatherFromOverlap ( bool  accumulate = true  )  [protected, virtual]

Gather shared data from remote procs for eqns that are locally-owned.

Reimplemented in fei::Vector_Impl< T >.

Definition at line 316 of file fei_Vector_core.cpp.

int fei::Vector_core::copyOutFieldData ( int  fieldID,
int  idType,
int  numIDs,
const int *  IDs,
double *  data,
int  vectorIndex = 0 
) [protected, virtual]

Copy out data specified by fieldID, idType, etc.

Reimplemented in fei::Vector_Impl< T >.

Definition at line 412 of file fei_Vector_core.cpp.

virtual int fei::Vector_core::giveToUnderlyingVector ( int  numValues,
const int *  indices,
const double *  values,
bool  sumInto = true,
int  vectorIndex = 0 
) [protected, pure virtual]

Review this function. Is it redundant with other functions?

virtual int fei::Vector_core::copyOutOfUnderlyingVector ( int  numValues,
const int *  indices,
double *  values,
int  vectorIndex = 0 
) const [protected, pure virtual]

Review this function. Is it redundant with other functions?

int fei::Vector_core::writeToFile ( const char *  filename,
bool  matrixMarketFormat = true 
) [protected, virtual]

Establish basic information like sizes etc. Write data to specified filename.

Reimplemented in fei::Vector_Impl< T >.

Definition at line 462 of file fei_Vector_core.cpp.

int fei::Vector_core::writeToStream ( FEI_OSTREAM &  ostrm,
bool  matrixMarketFormat = true 
) [protected, virtual]

Write data to specified ostream.

Reimplemented in fei::Vector_Impl< T >.

Definition at line 509 of file fei_Vector_core.cpp.

fei::SharedPtr<fei::VectorSpace> fei::Vector_core::get_vector_space (  )  const [inline, protected]

Return vector-space that describes that size/layout of this vector.

Definition at line 112 of file fei_Vector_core.hpp.

void fei::Vector_core::set_vector_space ( fei::SharedPtr< fei::VectorSpace vspace  )  [inline, protected]

Set vector-space that describes the size/layout of this vector.

Definition at line 118 of file fei_Vector_core.hpp.

int fei::Vector_core::firstLocalOffset (  )  const [inline, protected]

Query for first locally-owned vector position.

Definition at line 124 of file fei_Vector_core.hpp.

int fei::Vector_core::lastLocalOffset (  )  const [inline, protected]

Query for last locally-owned vector position.

Definition at line 127 of file fei_Vector_core.hpp.

std::vector<int>& fei::Vector_core::work_indices (  )  [inline, protected]

work_indices

Definition at line 130 of file fei_Vector_core.hpp.

std::vector<int>& fei::Vector_core::work_indices2 (  )  [inline, protected]

work_indices2

Definition at line 132 of file fei_Vector_core.hpp.

bool fei::Vector_core::haveFEVector (  )  [inline, protected]

haveFEVector

Definition at line 135 of file fei_Vector_core.hpp.

void fei::Vector_core::setFEVector ( bool  flag  )  [inline, protected]

setFEVector

Definition at line 137 of file fei_Vector_core.hpp.

std::vector<CSVec*>& fei::Vector_core::remotelyOwned (  )  [inline, protected]

remotelyOwned

Definition at line 140 of file fei_Vector_core.hpp.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends
Generated on Wed Apr 13 10:08:36 2011 for FEI by  doxygen 1.6.3