fei Namespace Reference


Classes

class  BlockLinearProblemManager
class  MessageHandler
class  ConnectivityBlock
class  CSRMat
class  CSVec
class  ctg_set
class  DirichletBCManager
struct  DirichletBCRecord
class  less_DirichletBCRecord
class  EqnComm
struct  EqnRecord
class  Factory
class  FEI_Impl
class  FieldMask
class  FillableMat
class  FillableVec
class  Graph
class  Graph_Impl
class  GraphReducer
class  IndexTable
class  LinearProblemManager
class  LinearSystem
class  LogFile
class  Logger
class  LogManager
class  Lookup_Impl
class  Matrix
class  Matrix_core
class  Matrix_Impl
class  Matrix_Local
class  MatrixGraph
class  MatrixGraph_Impl2
class  MatrixReducer
struct  MatrixTraits
struct  MatrixTraits< FiniteElementData >
struct  MatrixTraits< FillableMat >
struct  MatrixTraits< LinearSystemCore >
struct  mpiTraits
struct  mpiTraits< float >
struct  mpiTraits< double >
struct  mpiTraits< int >
struct  mpiTraits< long >
class  Param
class  ParameterSet
class  Pattern
class  Record
struct  record_lessthan
class  Record_Operator
class  Reducer
class  ReverseMapper
class  SharedIDs
class  SharedPtr
class  Solver
class  SparseRowGraph
class  Vector
class  Vector_core
class  Vector_Impl
class  Vector_Local
class  VectorReducer
class  VectorSpace
struct  VectorTraits
struct  VectorTraits< FiniteElementData >
struct  VectorTraits< FillableVec >
struct  VectorTraits< LinearSystemCore >
struct  MatrixTraits< fei::LinearProblemManager >
struct  VectorTraits< fei::LinearProblemManager >

Namespaces

namespace  impl_utils
namespace  utils

Typedefs

typedef snl_fei::RaggedTable<
std::map< int, std::set<
int > * >, std::set< int > > 
comm_map
typedef snl_fei::Constraint<
fei::Record * > 
ConstraintType

Enumerations

enum  OutputLevel

Functions

int localProc (MPI_Comm comm)
int numProcs (MPI_Comm comm)
void Barrier (MPI_Comm comm)
int mirrorProcs (MPI_Comm comm, std::vector< int > &toProcs, std::vector< int > &fromProcs)
int mirrorCommPattern (MPI_Comm comm, comm_map *inPattern, comm_map *&outPattern)
int exchangeIntData (MPI_Comm comm, std::vector< int > &sendProcs, std::vector< int > &sendData, std::vector< int > &recvProcs, std::vector< int > &recvData)
int Allreduce (MPI_Comm comm, bool localBool, bool &globalBool)
template<class T>
int GlobalMax (MPI_Comm comm, std::vector< T > &local, std::vector< T > &global)
template<class T>
int GlobalMax (MPI_Comm comm, T local, T &global)
template<class T>
int GlobalSum (MPI_Comm comm, std::vector< T > &local, std::vector< T > &global)
template<class T>
int GlobalSum (MPI_Comm comm, T local, T &global)
template<class T>
int Allgatherv (MPI_Comm comm, std::vector< T > &sendbuf, std::vector< int > &recvLengths, std::vector< T > &recvbuf)
template<class T>
int Bcast (MPI_Comm comm, std::vector< T > &sendbuf, int sourceProc)
template<class T>
int exchangeData (MPI_Comm comm, std::vector< int > &sendProcs, std::vector< std::vector< T > * > &sendData, std::vector< int > &recvProcs, std::vector< int > &recvLengths, bool recvLengthsKnownOnEntry, std::vector< T > &recvData)
template<class T>
int exchangeData (MPI_Comm comm, std::vector< int > &sendProcs, std::vector< std::vector< T > * > &sendData, std::vector< int > &recvProcs, bool recvLengthsKnownOnEntry, std::vector< std::vector< T > * > &recvData)
template<class T>
int exchange (MPI_Comm comm, MessageHandler< T > *msgHandler)
void multiply_CSRMat_CSVec (const CSRMat &A, const CSVec &x, CSVec &y)
void multiply_trans_CSRMat_CSVec (const CSRMat &A, const CSVec &x, CSVec &y)
void multiply_CSRMat_CSRMat (const CSRMat &A, const CSRMat &B, CSRMat &C, bool storeResultZeros)
void multiply_trans_CSRMat_CSRMat (const CSRMat &A, const CSRMat &B, CSRMat &C, bool storeResultZeros)
void add_CSRMat_to_FillableMat (const CSRMat &csrm, FillableMat &fm)
void add_entry (CSVec &vec, int eqn, double coef)
void put_entry (CSVec &vec, int eqn, double coef)
void remove_entry (CSVec &vec, int eqn)
void set_values (CSVec &vec, double scalar)
void add_CSVec_CSVec (const CSVec &u, CSVec &v)
FillableMat::feipoolmat::iterator insert_row (FillableMat::feipoolmat &matdata, FillableMat::feipoolmat::iterator iter, int row, fei_Pool_alloc< FillableVec > &vecpool)
int count_nnz (const FillableMat &mat)
void get_row_numbers (const FillableMat &mat, std::vector< int > &rows)
template<typename T, typename U>
bool operator== (const SharedPtr< T > &a, const SharedPtr< U > &b)
template<typename T, typename U>
bool operator!= (const SharedPtr< T > &a, const SharedPtr< U > &b)
int find_row_start (int row, const SparseRowGraph &srg)
template<typename SET_TYPE>
void copySetToArray (const SET_TYPE &set_obj, int lenList, int *list)
template<typename MAP_TYPE>
void copyKeysToArray (MAP_TYPE &map_obj, unsigned lenList, int *list)
template<typename MAP_TYPE>
void copyKeysToVector (MAP_TYPE &map_obj, std::vector< int > &keyvector)
template<typename MAP_TYPE>
void copyToArrays (MAP_TYPE &map_obj, int lenList, int *keylist, int *vallist)
template<typename MAP_TYPE>
void destroyValues (MAP_TYPE &map_obj)
template<typename MAP_TYPE, typename SET_TYPE>
void writeToStream (snl_fei::RaggedTable< MAP_TYPE, SET_TYPE > &table, FEI_OSTREAM &os, const char *lineprefix=NULL)
template<typename MAP_TYPE, typename SET_TYPE>
void packRaggedTable (snl_fei::RaggedTable< MAP_TYPE, SET_TYPE > &table, std::vector< int > &intdata)
template<typename MAP_TYPE, typename SET_TYPE>
fei::SharedPtr< fei::SparseRowGraphcreateSparseRowGraph (const std::vector< snl_fei::RaggedTable< MAP_TYPE, SET_TYPE > * > &tables)
template<typename MAP_TYPE, typename SET_TYPE>
void copyToSparseRowGraph (snl_fei::RaggedTable< MAP_TYPE, SET_TYPE > &table, fei::SparseRowGraph &srg)
template<typename MAP_TYPE, typename SET_TYPE>
fei::SharedPtr< fei::SparseRowGraphcreateSparseRowGraph (snl_fei::RaggedTable< MAP_TYPE, SET_TYPE > &table)
template<typename MAP_TYPE, typename SET_TYPE>
int countNonzeros (snl_fei::RaggedTable< MAP_TYPE, SET_TYPE > &table)
fei::SharedPtr< LibraryWrappercreate_LibraryWrapper (MPI_Comm comm, const char *libraryName)
fei::SharedPtr< fei::Factorycreate_fei_Factory (MPI_Comm comm, const char *libraryName)

Variables

const int Set_end_val = -99999999


Detailed Description

The fei namespace contains public functions, classes and interfaces.


Typedef Documentation

typedef snl_fei::Constraint<fei::Record*> fei::ConstraintType

alias for constraint type

Definition at line 25 of file fei_MatrixGraph.hpp.


Enumeration Type Documentation

enum fei::OutputLevel

enumeration for various output levels

Definition at line 46 of file fei_fwd.hpp.


Function Documentation

int fei::localProc ( MPI_Comm  comm  ) 

Return the MPI rank of the local processor. If the macro FEI_SER is defined, returns 0; otherwise calls MPI_Comm_rank.

Definition at line 13 of file fei_CommUtils.cpp.

int fei::numProcs ( MPI_Comm  comm  ) 

Return the number of processors (number of MPI ranks). If the macro FEI_SER is defined, returns 1; otherwise calls MPI_Comm_size.

Definition at line 25 of file fei_CommUtils.cpp.

int fei::mirrorProcs ( MPI_Comm  comm,
std::vector< int > &  toProcs,
std::vector< int > &  fromProcs 
)

Scenario: The local processor has a list of processors to which data will be sent, but doesn't know which processors data will be received from. This method produces that list of processors to be received from. This is a collective method.

Definition at line 45 of file fei_CommUtils.cpp.

int fei::mirrorCommPattern ( MPI_Comm  comm,
comm_map *  inPattern,
comm_map *&  outPattern 
)

Given a comm-pattern, create and initialize its mirror...

Definition at line 98 of file fei_CommUtils.cpp.

int fei::exchangeIntData ( MPI_Comm  comm,
std::vector< int > &  sendProcs,
std::vector< int > &  sendData,
std::vector< int > &  recvProcs,
std::vector< int > &  recvData 
)

Given a list of processors to send to, a scalar to send to each, and a list of processors to receive from, perform the exchange.

Parameters:
sendProcs Input. List of processors to send to.
sendData Input. List of data, same length as 'sendProcs', to be sent. (One item to be sent to each send proc.)
recvProcs Input. List of processors to receive from.
recvData Output. On exit, contains one item received from each recv proc.
Returns:
error-code 0 if successful

Definition at line 215 of file fei_CommUtils.cpp.

int fei::Allreduce ( MPI_Comm  comm,
bool  localBool,
bool &  globalBool 
)

Perform a "global OR" to reduce the local-bool to a global-bool. i.e., if localBool is true on any processor, then on exit globalBool will be true on all processors.

Definition at line 265 of file fei_CommUtils.cpp.

template<class T>
int fei::GlobalMax ( MPI_Comm  comm,
std::vector< T > &  local,
std::vector< T > &  global 
)

Perform an MPI_Allreduce with op = MPI_MAX

Parameters:
local Input.
global Output.
Returns:
MPI error-code

Definition at line 85 of file fei_CommUtils.hpp.

template<class T>
int fei::GlobalMax ( MPI_Comm  comm,
local,
T &  global 
)

Perform an MPI_Allreduce with op = MPI_MAX

Parameters:
local Input.
global Output.
Returns:
MPI error-code

Definition at line 115 of file fei_CommUtils.hpp.

template<class T>
int fei::GlobalSum ( MPI_Comm  comm,
std::vector< T > &  local,
std::vector< T > &  global 
)

Perform an MPI_Allreduce with op = MPI_SUM

Parameters:
local Input.
global Output.
Returns:
MPI error-code

Definition at line 134 of file fei_CommUtils.hpp.

template<class T>
int fei::GlobalSum ( MPI_Comm  comm,
local,
T &  global 
)

Single-scalar version of the GlobalSum function.

Definition at line 152 of file fei_CommUtils.hpp.

template<class T>
int fei::Allgatherv ( MPI_Comm  comm,
std::vector< T > &  sendbuf,
std::vector< int > &  recvLengths,
std::vector< T > &  recvbuf 
)

Allgatherv function that takes std::vectors.

Definition at line 168 of file fei_CommUtils.hpp.

void fei::multiply_CSRMat_CSVec ( const CSRMat &  A,
const CSVec &  x,
CSVec &  y 
)

form y = A*x

Definition at line 101 of file fei_CSRMat.cpp.

void fei::multiply_trans_CSRMat_CSVec ( const CSRMat &  A,
const CSVec &  x,
CSVec &  y 
)

form y = A^T*x

Definition at line 147 of file fei_CSRMat.cpp.

void fei::multiply_CSRMat_CSRMat ( const CSRMat &  A,
const CSRMat &  B,
CSRMat &  C,
bool  storeResultZeros = false 
)

form C = A*B

Definition at line 188 of file fei_CSRMat.cpp.

void fei::multiply_trans_CSRMat_CSRMat ( const CSRMat &  A,
const CSRMat &  B,
CSRMat &  C,
bool  storeResultZeros = false 
)

form C = A^T*B

Definition at line 267 of file fei_CSRMat.cpp.

void fei::add_CSVec_CSVec ( const CSVec &  u,
CSVec &  v 
)

form v = v + u

Definition at line 117 of file fei_CSVec.cpp.

int fei::count_nnz ( const FillableMat &  mat  ) 

Return the number of nonzeros in mat.

Definition at line 243 of file fei_FillableMat.cpp.

void fei::get_row_numbers ( const FillableMat &  mat,
std::vector< int > &  rows 
)

Fill a std::vector with the row-numbers from the given matrix.

Definition at line 260 of file fei_FillableMat.cpp.

template<typename T, typename U>
bool fei::operator== ( const SharedPtr< T > &  a,
const SharedPtr< U > &  b 
) [inline]

Equals operator for shared pointers.

Definition at line 297 of file fei_SharedPtr.hpp.

template<typename T, typename U>
bool fei::operator!= ( const SharedPtr< T > &  a,
const SharedPtr< U > &  b 
) [inline]

Not equals operator for shared pointers.

Definition at line 304 of file fei_SharedPtr.hpp.

int fei::find_row_start ( int  row,
const SparseRowGraph &  srg 
) [inline]

Given a row-number and a SparseRowGraph object, return the offset at which that row's column-indices start in the SparseRowGraph object's packedColumnIndices vector.

If the given row-number is not found in the SparseRowGraph object's vector of row-numbers, return -1.

Definition at line 86 of file fei_SparseRowGraph.hpp.

template<typename SET_TYPE>
void fei::copySetToArray ( const SET_TYPE &  set_obj,
int  lenList,
int *  list 
)

dangerous function to copy a set to an array, assuming the set contents are of type int

Definition at line 30 of file fei_TemplateUtils.hpp.

template<typename MAP_TYPE>
void fei::copyKeysToArray ( MAP_TYPE &  map_obj,
unsigned  lenList,
int *  list 
)

dangerous function to copy map keys to an array, assuming the keys are of type int

Definition at line 49 of file fei_TemplateUtils.hpp.

template<typename MAP_TYPE>
void fei::copyKeysToVector ( MAP_TYPE &  map_obj,
std::vector< int > &  keyvector 
)

function to copy map keys to a vector, assuming the keys are of type int

Definition at line 68 of file fei_TemplateUtils.hpp.

template<typename MAP_TYPE>
void fei::copyToArrays ( MAP_TYPE &  map_obj,
int  lenList,
int *  keylist,
int *  vallist 
)

dangerous function to copy a map object to a pair of arrays, assuming the keys and values of the map are of type int.

Definition at line 81 of file fei_TemplateUtils.hpp.

template<typename MAP_TYPE>
void fei::destroyValues ( MAP_TYPE &  map_obj  ) 

iterate a map object, destroying its contents

Definition at line 100 of file fei_TemplateUtils.hpp.

template<typename MAP_TYPE, typename SET_TYPE>
void fei::writeToStream ( snl_fei::RaggedTable< MAP_TYPE, SET_TYPE > &  table,
FEI_OSTREAM &  os,
const char *  lineprefix = NULL 
)

write a ragged-table to a specified ostream

Definition at line 113 of file fei_TemplateUtils.hpp.

template<typename MAP_TYPE, typename SET_TYPE>
fei::SharedPtr<fei::SparseRowGraph> fei::createSparseRowGraph ( const std::vector< snl_fei::RaggedTable< MAP_TYPE, SET_TYPE > * > &  tables  ) 

create fei::SparseRowGraph object from a vector of ragged-tables. user is responsible for destroying the fei::SparseRowGraph

Definition at line 183 of file fei_TemplateUtils.hpp.

template<typename MAP_TYPE, typename SET_TYPE>
void fei::copyToSparseRowGraph ( snl_fei::RaggedTable< MAP_TYPE, SET_TYPE > &  table,
fei::SparseRowGraph srg 
)

copy a ragged-table to an existing fei::SparseRowGraph object.

Definition at line 232 of file fei_TemplateUtils.hpp.

template<typename MAP_TYPE, typename SET_TYPE>
fei::SharedPtr<fei::SparseRowGraph> fei::createSparseRowGraph ( snl_fei::RaggedTable< MAP_TYPE, SET_TYPE > &  table  ) 

create fei::SparseRowGraph object from a ragged-table. user is responsible for destroying the fei::SparseRowGraph

Definition at line 280 of file fei_TemplateUtils.hpp.

template<typename MAP_TYPE, typename SET_TYPE>
int fei::countNonzeros ( snl_fei::RaggedTable< MAP_TYPE, SET_TYPE > &  table  ) 

function to count the "nonzeros" in a ragged-table

Definition at line 291 of file fei_TemplateUtils.hpp.

fei::SharedPtr< LibraryWrapper > fei::create_LibraryWrapper ( MPI_Comm  comm,
const char *  libraryName 
)

Create an instance of LibraryWrapper. Throws std::runtime_error if the input libraryName is not recognized. (names are case-sensitive)

Parameters:
libraryName Input name of the solver library that is to be used. Valid values of this parameter are:
  • Aztec
  • FETI
  • PETSc
Returns:
shared-pointer holding newly-created LibraryWrapper instance.

Definition at line 30 of file LibraryFactory.cpp.

fei::SharedPtr< fei::Factory > fei::create_fei_Factory ( MPI_Comm  comm,
const char *  libraryName 
)

Create an instance of the fei::Factory interface. Throws std::runtime_error if the input libraryName is not recognized. (names are case-sensitive)

Parameters:
libraryName Input name of solver library, same valid values as for 'create_LibraryWrapper' above, as well as allowing "Trilinos".
Returns:
shared-pointer holding newly-created fei::Factory instance.

Definition at line 77 of file LibraryFactory.cpp.


Generated on Wed May 12 01:33:50 2010 for FEI by  doxygen 1.4.7