FEI  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Classes | Public Member Functions | List of all members
fei::VectorSpace Class Reference

#include <fei_VectorSpace.hpp>

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

Classes

class  Factory
 

Public Member Functions

 VectorSpace (MPI_Comm comm, const char *name=NULL)
 
virtual ~VectorSpace ()
 
void setParameters (const fei::ParameterSet &paramset)
 
void defineFields (int numFields, const int *fieldIDs, const int *fieldSizes, const int *fieldTypes=NULL)
 
void defineIDTypes (int numIDTypes, const int *idTypes)
 
int addDOFs (int fieldID, int idType, int numIDs, const int *IDs)
 
int addDOFs (int idType, int numIDs, const int *IDs)
 
int initSharedIDs (int numShared, int idType, const int *sharedIDs, const int *numSharingProcsPerID, const int *sharingProcs)
 
int initSharedIDs (int numShared, int idType, const int *sharedIDs, const int *numSharingProcsPerID, const int *const *sharingProcs)
 
int addVectorSpace (fei::VectorSpace *inputSpace)
 
int initComplete ()
 
bool initCompleteAlreadyCalled () const
 
class fei::Lookup_Impl
 
MPI_Comm getCommunicator () const
 
int getGlobalIndex (int idType, int ID, int fieldID, int fieldOffset, int whichComponentOfField, int &globalIndex)
 
int getGlobalIndex (int idType, int ID, int fieldID, int &globalIndex)
 
int getGlobalBlkIndex (int idType, int ID, int &globalBlkIndex)
 
int getGlobalIndices (int numIDs, const int *IDs, int idType, int fieldID, int *globalIndices)
 
int getGlobalIndicesLocalIDs (int numIDs, const int *localIDs, int idType, int fieldID, int *globalIndices)
 
int getGlobalBlkIndices (int numIDs, const int *IDs, int idType, int *globalBlkIndices)
 
int getGlobalIndices (int numIDs, const int *IDs, const int *idTypes, const int *fieldIDs, int *globalIndices)
 
int getGlobalIndex (int idType, int ID, int &globalIndex)
 
int getNumDegreesOfFreedom (int idType, int ID)
 
int getNumFields ()
 
void getFields (std::vector< int > &fieldIDs)
 
int getNumFields (int idType, int ID)
 
void getFields (int idType, int ID, std::vector< int > &fieldIDs)
 
size_t getNumIDTypes ()
 
void getIDTypes (std::vector< int > &idTypes) const
 
void getGlobalIndexOffsets (std::vector< int > &globalOffsets) const
 
void getGlobalBlkIndexOffsets (std::vector< int > &globalBlkOffsets) const
 
int getOwnerProcPtIndex (int globalIndex)
 
int getOwnerProcBlkIndex (int globalIndex)
 
bool isLocal (int idType, int ID)
 
bool isLocallyOwned (int idType, int ID)
 
unsigned getFieldSize (int fieldID)
 
int getNumOwnedAndSharedIDs (int idType)
 
int getNumOwnedIDs (int idType)
 
int getOwnedAndSharedIDs (int idtype, int lenList, int *IDs, int &numOwnedAndSharedIDs)
 
int getOwnedIDs (int idtype, int lenList, int *IDs, int &numLocalIDs)
 
int getNumIndices_SharedAndOwned () const
 
int getIndices_SharedAndOwned (std::vector< int > &globalIndices) const
 
int getNumBlkIndices_SharedAndOwned (int &numBlkIndices) const
 
int getBlkIndices_SharedAndOwned (int lenBlkIndices, int *globalBlkIndices, int *blkSizes, int &numBlkIndices)
 
int getNumIndices_Owned () const
 
int getIndices_Owned (std::vector< int > &globalIndices) const
 
int getNumBlkIndices_Owned () const
 
int getBlkIndices_Owned (int lenBlkIndices, int *globalBlkIndices, int *blkSizes, int &numBlkIndices)
 
int getNumSharedIDs (int idType, int &numShared)
 
int getGlobalNumIndices () const
 
int getGlobalNumBlkIndices () const
 
int getRecordCollection (int idType, snl_fei::RecordCollection *&records)
 
int getRecordCollection (int idType, const snl_fei::RecordCollection *&records) const
 
std::vector< int > & getEqnNumbers ()
 
const std::vector< int > & getEqnNumbers () const
 
snl_fei::PointBlockMapgetPointBlockMap ()
 

Detailed Description

Class containing the methods for defining a solution-space (a set of degrees-of-freedom) and mapping that space to a globally unique set of indices. The set of indices can then be used in defining vectors or in defining either the row-space or the column-space of matrices.

Example: define a displacement field over a set of node-identifiers, and map that set to a set of equation-numbers.

There are multiple ways to use an instance of this interface:

For generating vectors:

  1. Define fields and identifier-types
  2. Initialize active fields over sets of identifiers
  3. Obtain index offset and range information via the methods 'getGlobalIndexOffsets()', 'getIndices_Owned()', 'getIndices_SharedAndOwned()', etc., to use in constructing or initializing a vector object.

For generating matrices:

  1. Define fields and identifier-types
  2. Construct an instance of fei::MatrixGraph (using this VectorSpace as a contructor argument) and then initialize connectivities and other structural attributes on the MatrixGraph object.
  3. Obtain matrix-graph information from the fei::MatrixGraph object to use in constructing or initializing a matrix object.

Definition at line 62 of file fei_VectorSpace.hpp.

Constructor & Destructor Documentation

fei::VectorSpace::VectorSpace ( MPI_Comm  comm,
const char *  name = NULL 
)

Constructor.

Parameters
commMPI_Communicator
nameString to be used in the name of a debug-log file, if any. This is an optional argument, defaults to NULL.

Definition at line 139 of file fei_VectorSpace.cpp.

fei::VectorSpace::~VectorSpace ( )
virtual

Destructor

Definition at line 181 of file fei_VectorSpace.cpp.

Member Function Documentation

void fei::VectorSpace::setParameters ( const fei::ParameterSet paramset)

Set parameter values from a fei::ParameterSet object. (Need to add documentation here regarding what parameters and values are valid and meaningful to this object...)

Definition at line 212 of file fei_VectorSpace.cpp.

void fei::VectorSpace::defineFields ( int  numFields,
const int *  fieldIDs,
const int *  fieldSizes,
const int *  fieldTypes = NULL 
)

Define fields that will occur in this solution space.
Example: a temperature field might be defined as fieldID 0, size 1.
Example: a velocity field might be defined as fieldID 5, size 3.

Parameters
numFieldsInput. Length of the fieldIDs and fieldSizes lists.
fieldIDsInput. List of user-supplied field-identifiers. Convention: Active solution-space fields should generally be denoted by non-negative field-identifiers, while "other" fields (such as geometric coordinates) should be denoted by negative field-identifiers.
fieldSizesInput. List of user-specified field-sizes. A field-size is the number of scalar components that make up a field.

Definition at line 260 of file fei_VectorSpace.cpp.

void fei::VectorSpace::defineIDTypes ( int  numIDTypes,
const int *  idTypes 
)

Define identifier-types in this solution space.
For example, define node-identifiers to be type 0, edge-identifiers to be type 1, lagrange-multiplier identifiers to be type 2, etc.
identifier-types need not be zero-based or contiguous.

Parameters
numIDTypesNumber of distinct identifier-types
idTypesUser-supplied list of identifier-types
Returns
error-code 0 if successful

Definition at line 288 of file fei_VectorSpace.cpp.

int fei::VectorSpace::addDOFs ( int  fieldID,
int  idType,
int  numIDs,
const int *  IDs 
)

Add a set of identifiers to this solution-space. These solution-space entries consist of fields residing at identifiers.
Example: temperature field at a set of finite-element nodes.

Parameters
fieldIDInput. The field-identifier to be added. Must be one of the fieldIDs defined previously via 'defineFields()'.
idTypeInput. The identifier-type over which the active field is being initialized. Must be one of the idTypes defined previously via 'defineIDTypes()'.
numIDsInput. Length of the IDs list.
IDsInput List of identifiers over which 'fieldID' is active.
Returns
error-code 0 if successful

Definition at line 325 of file fei_VectorSpace.cpp.

int fei::VectorSpace::addDOFs ( int  idType,
int  numIDs,
const int *  IDs 
)

Add a set of identifiers to the solution-space. These solution-space entries consist of identifiers that don't have associated fields.
Example: Lagrange-multiplier constraint identifiers.
This method may also be used for initializing a finite-element solution-space where the user knows that the entire problem contains only one scalar field (e.g., temperature) and so it is sufficient to define a solution space on identifiers without associating fields with those identifiers. (This will achieve a performance gain for the structure- definition, graph-generation and matrix/vector assembly.)

Parameters
idTypeInput. The identifier-type over which the solution- space is being defined. Must be one of the idTypes defined previously via 'defineIDTypes()'.
numIDsInput. Number of identifiers being added to the solution- space.
IDsInput. List of length numIDs. Identifiers being added to the solution-space.
Returns
error-code 0 if successful

Definition at line 400 of file fei_VectorSpace.cpp.

int fei::VectorSpace::initSharedIDs ( int  numShared,
int  idType,
const int *  sharedIDs,
const int *  numSharingProcsPerID,
const int *  sharingProcs 
)

Specify a set of identifiers that are shared with other processors. The shared ids must be identified in a globally symmetric way. i.e., if the local processor identifies id x as being shared with processor p, then processor p MUST identify id x as being shared with the local processor.

Parameters
numSharedInput. Length of the lists sharedIDs and numSharingProcsPerID.
idTypeInput. The identifier-type of the ids that are being identified as shared.
sharedIDsInput. List of shared identifiers.
numSharingProcsPerIDInput. List of length numShared, and the i-th entry gives the number of processors being identified as sharing the i-th sharedID.
sharingProcsInput. Packed list of length sum(numSharingProcsPerID), containing the sharing processor ranks.
Returns
error-code 0 if successful

Definition at line 458 of file fei_VectorSpace.cpp.

int fei::VectorSpace::initSharedIDs ( int  numShared,
int  idType,
const int *  sharedIDs,
const int *  numSharingProcsPerID,
const int *const *  sharingProcs 
)

Specify a set of identifiers that are shared with other processors. The shared ids must be identified in a globally symmetric way. i.e., if the local processor identifies id x as being shared with processor p, then processor p MUST identify id x as being shared with the local processor.

Parameters
numSharedInput. Length of the lists sharedIDs and numSharingProcsPerID.
idTypeInput. The identifier-type of the ids that are being identified as shared.
sharedIDsInput. List of shared identifiers.
numSharingProcsPerIDInput. List of length numShared, and the i-th entry gives the number of processors being identified as sharing the i-th sharedID.
sharingProcsInput. Table with 'numShared' rows, and each row is of length numSharingProcsPerID. This table contains the sharing processor ranks.
Returns
error-code 0 if successful

Definition at line 504 of file fei_VectorSpace.cpp.

int fei::VectorSpace::addVectorSpace ( fei::VectorSpace inputSpace)

Add the contents of another VectorSpace object to this one.

Definition at line 562 of file fei_VectorSpace.cpp.

int fei::VectorSpace::initComplete ( )

Indicate that initialization is complete. This is a collective function, must be called on all processors. At this time ownership of shared IDs will be assigned, and the global index space calculated.

Returns
error-code 0 if successful

Definition at line 647 of file fei_VectorSpace.cpp.

bool fei::VectorSpace::initCompleteAlreadyCalled ( ) const
inline

Return true if initComplete() has already been called.

Definition at line 233 of file fei_VectorSpace.hpp.

MPI_Comm fei::VectorSpace::getCommunicator ( ) const

Return the MPI_Comm held by this vector-space. When built/run in serial mode, MPI_Comm is #defined to be int.

Definition at line 206 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getGlobalIndex ( int  idType,
int  ID,
int  fieldID,
int  fieldOffset,
int  whichComponentOfField,
int &  globalIndex 
)

Given a particular degree-of-freedom, request the corresponding global index. A particular degree-of-freedom is specified as a component of a particular field, residing at a particular location (ID).

Parameters
idTypeInput. Identifier-type of the location at which the specified degree-of-freedom resides. Must be one of the identifier-types previously defined via a call to 'defineIDTypes()'.
IDInput. Identifier for the location being specified, such as a node-identifier, etc.
fieldIDInput. Identifier for the field being specified.
fieldOffsetInput. In case there is more than one field with the specified fieldID residing at the specified ID, this provides an offset into those fields. If only one field with specified fieldID, then this parameter is 0.
whichComponentOfFieldInput. Specifies a scalar component within the field. If the field only has 1 scalar component, then this parameter is 0.
globalIndexOutput. This is the global index of the specified degree-of-freedom. Not referenced if the specified degree-of-freedom is not found.
Returns
error-code 0 if successful. If the specified degree-of-freedom is not found, -1 is returned.

Definition at line 735 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getGlobalIndex ( int  idType,
int  ID,
int  fieldID,
int &  globalIndex 
)

Given a particular degree-of-freedom, request the corresponding global index. A particular degree-of-freedom is specified as a component of a particular field, residing at a particular location (ID).

Parameters
idTypeInput. Identifier-type of the location at which the specified degree-of-freedom resides. Must be one of the identifier-types previously defined via a call to 'defineIDTypes()'.
IDInput. Identifier for the location being specified, such as a node-identifier, etc.
fieldIDInput. Identifier for the field being specified.
globalIndexOutput. This is the global index of the first component of the specified field. Not referenced if the specified field is not found on the given ID.
Returns
error-code 0 if successful. If the specified degree-of-freedom is not found, -1 is returned.

Definition at line 761 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getGlobalBlkIndex ( int  idType,
int  ID,
int &  globalBlkIndex 
)

Given a particular identifier, request the corresponding global block-index.

Parameters
idTypeInput. Identifier-type of the identifier being queried.
IDInput. Identifier for which a block-index is being requested.
globalBlkIndexOutput. This is the global block-index of the specified identifier.
Returns
error-code 0 if successful. If the specified degree-of-freedom is not found, -1 is returned.

Definition at line 770 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getGlobalIndices ( int  numIDs,
const int *  IDs,
int  idType,
int  fieldID,
int *  globalIndices 
)

Given a list of IDs, fill an output-list of the global-indices that correspond to the first instance of the specified field at each ID.

Parameters
numIDsInput. Length of the IDs.
IDsInput. User-provided list of identifiers.
idTypeInput. Type of the IDs for which indices are being requested.
fieldIDInput. Specified field
globalIndicesOutput. User-allocated list which, on exit, will contain the requested indices. Note that the length of this list is assumed to be numIDs*getFieldSize(fieldID).
Returns
error-code 0 if successful Note that for any IDs that are not found, or IDs which don't have the specified field, the corresponding global-index will be -1.

Definition at line 783 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getGlobalIndicesLocalIDs ( int  numIDs,
const int *  localIDs,
int  idType,
int  fieldID,
int *  globalIndices 
)

Given a list of localIDs, fill an output-list of the global-indices that correspond to the first instance of the specified field at each localID.

Parameters
numIDsInput. Length of the IDs.
IDsInput. User-provided list of identifiers.
idTypeInput. Type of the IDs for which indices are being requested.
fieldIDInput. Specified field
globalIndicesOutput. User-allocated list which, on exit, will contain the requested indices. Note that the length of this list is assumed to be numIDs*getFieldSize(fieldID).
Returns
error-code 0 if successful Note that for any IDs that are not found, or IDs which don't have the specified field, the corresponding global-index will be -1.

Definition at line 820 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getGlobalBlkIndices ( int  numIDs,
const int *  IDs,
int  idType,
int *  globalBlkIndices 
)

Given a list of IDs, fill an output-list of the global-block-indices that correspond to each ID.

Parameters
numIDsInput. Length of the IDs list and of the globalBlkIndices list.
IDsInput. User-provided list of identifiers.
idTypeInput. Type of the IDs for which block-indices are being requested.
globalBlkIndicesOutput. User-allocated list which, on exit, will contain the requested indices. Note that the length of this list is assumed to be numIDs.
Returns
error-code 0 if successful Note that for any IDs that are not found, the corresponding global-index will be -1.

Definition at line 857 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getGlobalIndices ( int  numIDs,
const int *  IDs,
const int *  idTypes,
const int *  fieldIDs,
int *  globalIndices 
)

Given a list of IDs, fill an output-list of the global-indices that correspond to the first instance of the specified field at each ID. Somewhat more general version of the getGlobalIndices() method above.

Parameters
numIDsInput. Length of the IDs list.
IDsInput. User-provided list of identifiers.
idTypesInput. List of length numIDs, specifying the types of the IDs for which indices are being requested.
fieldIDsInput. List of length numIDs, specifying a field at each ID.
globalIndicesOutput. User-allocated list which, on exit, will contain the requested indices. Note that the length of this list is assumed to be numIDs*getFieldSize(fieldID).
Returns
error-code 0 if successful Note that for any IDs that are not found, or IDs which don't have the specified field, the corresponding global-index will be -1.

Definition at line 881 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getGlobalIndex ( int  idType,
int  ID,
int &  globalIndex 
)

Given a particular degree-of-freedom, request the corresponding global index. In this case, the degree-of-freedom is specified simply by an identifier and identifier-type, without specifying a field. This is intended to be used for requesting global indices for constraint- identifiers or other identifiers which don't have associated fields. If the specified identifier actually does have associated fields, then the output globalIndex will be the global-index corresponding to the first component of the first associated field.

Parameters
idTypeInput. Identifier-type of the location at which the specified degree-of-freedom resides. Must be one of the identifier-types previously defined via a call to 'defineIDTypes()'.
IDInput. Identifier for the location being specified, such as a node-identifier, etc.
globalIndexOutput. This is the global index of the specified degree-of-freedom. Not referenced if the specified degree-of-freedom is not found.
Returns
error-code 0 if successful. If the specified degree-of-freedom is not found, -1 is returned.

Definition at line 1253 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getNumDegreesOfFreedom ( int  idType,
int  ID 
)

Given a particular identifier, request the number of scalar degrees-of- freedom that are associated with that identifier.

Definition at line 1273 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getNumFields ( )

Query the number of fields defined for this vector-space.

Definition at line 1288 of file fei_VectorSpace.cpp.

void fei::VectorSpace::getFields ( std::vector< int > &  fieldIDs)

Fill a std::vector with fieldIDs defined for this vector-space.

Parameters
fieldIDsOn exit, contains fieldIDs.

Definition at line 1294 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getNumFields ( int  idType,
int  ID 
)

Given a particular identifier, request the number of fields that are associated with that identifier.

Definition at line 1319 of file fei_VectorSpace.cpp.

void fei::VectorSpace::getFields ( int  idType,
int  ID,
std::vector< int > &  fieldIDs 
)

Given a particular identifier, request the list of fields that are associated with that identifier.

Parameters
idTypeIdentifier-type
IDSpecified identifier
lenFieldIDsInput. Length of user-allocated 'fieldIDs' list.
fieldIDsInput. User-allocated list, length must be at least as large as the value produced by getNumFields() for this ID.
numFieldsOutput. Number of fields. If numFields > lenFieldIDs, then fieldIDs will contain the first 'lenFieldIDs' field identifiers.

Definition at line 1384 of file fei_VectorSpace.cpp.

size_t fei::VectorSpace::getNumIDTypes ( )

Query for the number of identifier-types defined for this vector-space.

Definition at line 1305 of file fei_VectorSpace.cpp.

void fei::VectorSpace::getIDTypes ( std::vector< int > &  idTypes) const

Query for the list of identifier-types defined for this vector-space.

Parameters
idTypesOutput, on exit contents will contain id-types that are defined for this vector-space.

Definition at line 1311 of file fei_VectorSpace.cpp.

void fei::VectorSpace::getGlobalIndexOffsets ( std::vector< int > &  globalOffsets) const

Request the global index offsets. Indices are zero-based.

Parameters
globalOffsetsOutput. On exit, contains global-offsets.
globalOffsets[i] is first global offset on processor i, for i in 0 .. numPartitions - 1
globalOffsets[i+1] - globalOffsets[i] is the number of indices on the i-th processor

Definition at line 1407 of file fei_VectorSpace.cpp.

void fei::VectorSpace::getGlobalBlkIndexOffsets ( std::vector< int > &  globalBlkOffsets) const

Request the global block-index offsets. Indices are zero-based.

Parameters
globalBlkOffsetsOutput. On exit, contains global-block-offsets.
globalBlkOffsets[i] is first global block-offset on processor i, for i in 0 .. numPartitions - 1
globalBlkOffsets[i+1] - globalBlkOffsets[i] is the number of block-indices on the i-th processor

Definition at line 1413 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getOwnerProcPtIndex ( int  globalIndex)

Given a global index in the point-equation space, return the owning processor. If the global index is not in the equation space, return -1.

Definition at line 1419 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getOwnerProcBlkIndex ( int  globalIndex)

Given a global index in the block-equation space, return the owning processor. If the global index is not in the equation space, return -1.

Definition at line 1434 of file fei_VectorSpace.cpp.

bool fei::VectorSpace::isLocal ( int  idType,
int  ID 
)

Given an identifier (with identifier-type), return true if it resides on the local processor, false if not. This will return true if the identifier is either owned or shared by the local processor.

Definition at line 1334 of file fei_VectorSpace.cpp.

bool fei::VectorSpace::isLocallyOwned ( int  idType,
int  ID 
)

Given an identifier (with identifier-type), return true if it resides on the local processor and is locally owned, false if not.

Definition at line 1348 of file fei_VectorSpace.cpp.

unsigned fei::VectorSpace::getFieldSize ( int  fieldID)

Request the field-size for a specified field-identifier. If the specified field-identifier is not found, std::runtime_error is thrown.

Parameters
fieldIDInput. Specified field-identifier

Definition at line 1365 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getNumOwnedAndSharedIDs ( int  idType)

Query the number of locally owned-or-shared identifiers.

Definition at line 1449 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getNumOwnedIDs ( int  idType)

Query the number of locally-owned identifiers.

Definition at line 1458 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getOwnedAndSharedIDs ( int  idtype,
int  lenList,
int *  IDs,
int &  numOwnedAndSharedIDs 
)

Obtain a list of the local identifiers. Note that this includes identifiers that are locally shared but not owned.

Definition at line 1478 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getOwnedIDs ( int  idtype,
int  lenList,
int *  IDs,
int &  numLocalIDs 
)

Obtain a list of the locally owned identifiers.

Definition at line 1505 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getNumIndices_SharedAndOwned ( ) const

Query number of indices on local processor, including ones that are locally owned as well as shared-but-not-owned. Only available after initComplete has been called. (returns 0 before that)

Definition at line 1537 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getIndices_SharedAndOwned ( std::vector< int > &  globalIndices) const

Obtain list of global indices on local processor, including ones that are locally owned as well as shared-but-not-owned. Only available after initComplete has been called.

Parameters
globalIndicesOn output, will contain all indices owned or shared by local processor.

Definition at line 1543 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getNumBlkIndices_SharedAndOwned ( int &  numBlkIndices) const

Query number of block indices on local processor, including ones that are locally owned as well as shared-but-not-owned. Only available after initComplete has been called.

Definition at line 1562 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getBlkIndices_SharedAndOwned ( int  lenBlkIndices,
int *  globalBlkIndices,
int *  blkSizes,
int &  numBlkIndices 
)

Obtain list of global block indices on local processor, including ones that are locally owned as well as shared-but-not-owned. Only available after initComplete has been called.

Parameters
lenBlkIndicesInput. Length of user-allocated 'globalBlkIndices' list.
globalBlkIndicesUser-allocated list. On output, will contain all indices owned or shared by local processor.
blkSizesUser-allocated list. On output, will contain the number of scalars (point-indices) associated with each corresponding block-index.
numBlkIndicesOutput. Number of indices. If 'numBlkIndices' is different than 'lenBlkIndices', then globalBlkIndices will contain 'min(lenBlkIndices, numBlkIndices)' of the local processor's indices.

Definition at line 1573 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getNumIndices_Owned ( ) const

Query number of indices owned by local processor.

Definition at line 1600 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getIndices_Owned ( std::vector< int > &  globalIndices) const

Obtain list of global indices owned by local processor. Only available after initComplete has been called.

Parameters
lenIndicesInput. Length of user-allocated 'globalIndices' list.
globalIndicesUser-allocated list. On output, will contain all indices owned by local processor.
numIndicesOutput. Number of indices. If 'numIndices' is different than 'lenIndices', then globalIndices will contain 'min(lenIndices, numIndices)' of the local processor's indices.

Definition at line 1613 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getNumBlkIndices_Owned ( ) const

Query number of block indices owned by local processor.

Definition at line 1655 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getBlkIndices_Owned ( int  lenBlkIndices,
int *  globalBlkIndices,
int *  blkSizes,
int &  numBlkIndices 
)

Obtain list of global block indices owned by local processor. Only available after initComplete has been called.

Parameters
lenBlkIndicesInput. Length of user-allocated 'globalBlkIndices' list.
globalBlkIndicesUser-allocated list. On output, will contain all indices owned by local processor.
blkSizesUser-allocated list. On output, will contain the number of scalars (point-indices) associated with each corresponding block-index.
numBlkIndicesOutput. Number of indices. If 'numBlkIndices' is different than 'lenBlkIndices', then globalBlkIndices will contain 'min(lenBlkIndices, numBlkIndices)' of the local processor's indices.

Definition at line 1680 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getNumSharedIDs ( int  idType,
int &  numShared 
)

Query the number of shared identifiers of a given id-type.

Definition at line 1470 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getGlobalNumIndices ( ) const

Query the number of eqn indices across all processors.

Definition at line 1593 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getGlobalNumBlkIndices ( ) const

Query the number of block-eqn indices across all processors.

Definition at line 1668 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getRecordCollection ( int  idType,
snl_fei::RecordCollection *&  records 
)

Intended to be used by other fei classes.

Definition at line 1701 of file fei_VectorSpace.cpp.

int fei::VectorSpace::getRecordCollection ( int  idType,
const snl_fei::RecordCollection *&  records 
) const

Intended to be used by other fei classes.

Definition at line 1712 of file fei_VectorSpace.cpp.

std::vector< int > & fei::VectorSpace::getEqnNumbers ( )
inline

Intended to be used only by other fei classes.

Definition at line 809 of file fei_VectorSpace.hpp.

const std::vector< int > & fei::VectorSpace::getEqnNumbers ( ) const
inline

Intended to be used only by other fei classes.

Definition at line 814 of file fei_VectorSpace.hpp.

snl_fei::PointBlockMap * fei::VectorSpace::getPointBlockMap ( )
inline

Intended to be used by other implementation classes.

Definition at line 819 of file fei_VectorSpace.hpp.


The documentation for this class was generated from the following files: