FEI Package Browser (Single Doxygen Collection)  Version of the Day
fei_MatrixGraph_Impl2.hpp
Go to the documentation of this file.
1 /*--------------------------------------------------------------------*/
2 /* Copyright 2005 Sandia Corporation. */
3 /* Under the terms of Contract DE-AC04-94AL85000, there is a */
4 /* non-exclusive license for use of this work by or on behalf */
5 /* of the U.S. Government. Export of this program may require */
6 /* a license from the United States Government. */
7 /*--------------------------------------------------------------------*/
8 
9 #ifndef _fei_MatrixGraph_Impl2_hpp_
10 #define _fei_MatrixGraph_Impl2_hpp_
11 
12 #include <fei_macros.hpp>
13 #include <fei_SharedPtr.hpp>
14 #include <fei_VectorSpace.hpp>
15 #include <fei_Reducer.hpp>
16 #include <fei_Graph.hpp>
17 #include <snl_fei_Constraint.hpp>
18 #include <fei_Record.hpp>
19 #include <fei_Logger.hpp>
20 #include <fei_SparseRowGraph.hpp>
21 #include <fei_MatrixGraph.hpp>
22 
23 #include <vector>
24 #include <map>
25 
26 namespace fei {
27  class ConnectivityBlock;
28  class Pattern;
29 
34  public:
36  class Factory {
37  public:
39  virtual ~Factory(){}
40 
48  const char* name);
49  };
50 
58  const char* name = NULL);
59 
61  virtual ~MatrixGraph_Impl2();
62 
70  void setParameters(const fei::ParameterSet& params);
71 
79 
84 
92 
97 
117  int definePattern(int numIDs,
118  int idType);
119 
140  int definePattern(int numIDs,
141  int idType,
142  int fieldID);
143 
167  int definePattern(int numIDs,
168  int idType,
169  const int* numFieldsPerID,
170  const int* fieldIDs);
171 
194  int definePattern(int numIDs,
195  const int* idTypes,
196  const int* numFieldsPerID,
197  const int* fieldIDs);
198 
221  int initConnectivityBlock(int blockID,
222  int numConnectivityLists,
223  int patternID,
224  bool diagonal=false);
225 
248  int initConnectivityBlock(int numConnectivityLists,
249  int patternID,
250  bool diagonal=false);
251 
272  int initConnectivityBlock(int blockID,
273  int numConnectivityLists,
274  int rowPatternID,
275  int colPatternID);
276 
289  int initConnectivity(int blockID,
290  int connectivityID,
291  const int* connectedIdentifiers);
292 
307  int initConnectivity(int blockID,
308  int connectivityID,
309  const int* rowConnectedIdentifiers,
310  const int* colConnectedIdentifiers);
311 
323  int initConnectivity(int patternID,
324  const int* connectedIdentifiers);
325 
340  int initConnectivity(int rowPatternID,
341  const int* rowConnectedIdentifiers,
342  int colPatternID,
343  const int* colConnectedIdentifiers);
344 
360  int initConnectivity(int idType,
361  int numRows,
362  const int* rowIDs,
363  const int* rowOffsets,
364  const int* packedColumnIDs);
365 
383  int initConnectivity(int idType,
384  int fieldID,
385  int numRows,
386  const int* rowIDs,
387  const int* rowOffsets,
388  const int* packedColumnIDs);
389 
404  int initConnectivity(int idType,
405  int numRows,
406  const int* rowIDs,
407  const int* rowLengths,
408  const int*const* columnIDs);
409 
412  int initLagrangeConstraint(int constraintID,
413  int constraintIDType,
414  int numIDs,
415  const int* idTypes,
416  const int* IDs,
417  const int* fieldIDs);
418 
421  int initPenaltyConstraint(int constraintID,
422  int constraintIDType,
423  int numIDs,
424  const int* idTypes,
425  const int* IDs,
426  const int* fieldIDs);
427 
430  int initSlaveConstraint(int numIDs,
431  const int* idTypes,
432  const int* IDs,
433  const int* fieldIDs,
434  int offsetOfSlave,
435  int offsetIntoSlaveField,
436  const double* weights,
437  double rhsValue);
438 
439  bool newSlaveData();
440 
443  bool hasSlaveDof(int ID, int idType);
444 
449  int initComplete();
450 
463  createGraph(bool blockEntryGraph,
464  bool localRowGraph_includeSharedRows=false);
465 
469  int compareStructure(const fei::MatrixGraph& matrixGraph,
470  bool& equivalent) const;
471 
473  int getNumConnectivityBlocks() const;
474 
476  std::map<int,fei::ConnectivityBlock*>& getConnectivityBlocks();
477 
479  int getConnectivityBlockIDs(std::vector<int>& blockIDs) const;
480 
483  int getNumIDsPerConnectivityList(int blockID) const;
484 
488  int getConnectivityNumIndices(int blockID) const;
489 
494  int getConnectivityNumIndices(int blockID,
495  int& numRowIndices,
496  int& numColIndices);
497 
500  int getConnectivityIndices(int blockID,
501  int connectivityID,
502  int indicesAllocLen,
503  int* indices,
504  int& numIndices);
505 
509  int getConnectivityIndices(int blockID,
510  int connectivityID,
511  int rowIndicesAllocLen,
512  int* rowIndices,
513  int& numRowIndices,
514  int colIndicesAllocLen,
515  int* colIndices,
516  int& numColIndices);
517 
520  int getPatternNumIndices(int patternID,
521  int& numIndices);
522 
525  int getPatternIndices(int patternID,
526  const int* IDs,
527  std::vector<int>& indices);
528 
530  int getLocalNumLagrangeConstraints() const;
531 
534  int getGlobalNumSlaveConstraints() const;
535 
539  ConstraintType* getLagrangeConstraint(int constraintID);
540 
544  std::map<int, ConstraintType* >& getLagrangeConstraints();
545 
549  ConstraintType* getPenaltyConstraint(int constraintID);
550 
554  ConstraintType* getSlaveConstraint(int constraintID);
555 
560  std::vector<int>& globalIndices);
561 
565  const fei::ConnectivityBlock* getConnectivityBlock(int blockID) const;
566 
571 
573  void setIndicesMode(int mode);
574 
577 
581  fei::Pattern* getPattern(int patternID);
582 
584  int createSlaveMatrices();
585 
588 
591 
593  void getConstrainedIndices(std::vector<int>& crindices) const;
594 
595  private:
596  int createAlgebraicGraph(bool blockEntryGraph,
597  fei::Graph* graph,
598  bool gatherFromOverlap);
599 
601  fei::ConnectivityBlock* cblock);
603  fei::ConnectivityBlock* cblock);
605  fei::ConnectivityBlock* cblock);
607  fei::ConnectivityBlock* cblock);
609  fei::ConnectivityBlock* cblock);
611  fei::ConnectivityBlock* cblock);
612 
613  int addPattern(fei::Pattern* pattern);
614 
615  int getConnectivityIndices_multiField(const snl_fei::RecordCollection*const* recordCollections,
616  int* records, int numRecords,
617  const int* numFieldsPerID,
618  const int* fieldIDs,
619  const int* fieldSizes,
620  int indicesAllocLen,
621  int* indices,
622  int& numIndices);
623 
624  int getConnectivityIndices_singleField(const snl_fei::RecordCollection*const* recordCollections,
625  int* records, int numRecords,
626  int fieldID, int fieldSize,
627  int indicesAllocLen,
628  int* indices,
629  int& numIndices);
630 
631  int getConnectivityIndices_noField(const snl_fei::RecordCollection*const* recordCollections,
632  int* records,
633  int numRecords,
634  int indicesAllocLen,
635  int* indices,
636  int& numIndices);
637 
639  int idType,
640  int numIDs,
641  const int* IDs,
642  int* records);
643 
645  int idType,
646  int fieldID,
647  int numIDs,
648  const int* IDs,
649  int* records);
650 
652  fei::VectorSpace* solnSpace,
653  const int* connectedIdentifiers,
654  int* recordList);
655 
656  int exchangeBlkEqnSizes(fei::Graph* graph);
657 
659 
661 
662  void setName(const char* name);
663 
664  private:
666 
668 
674 
676 
679 
680  std::map<int,fei::Pattern*> patterns_;
681 
682  std::map<int,fei::ConnectivityBlock*> connectivityBlocks_;
684 
685  std::vector<fei::ConnectivityBlock*> sparseBlocks_;
686 
687  std::map<int, ConstraintType* >
689 
691 
693 
696 
700 
702 
703  std::string name_;
704  std::string dbgprefix_;
705 
706  std::vector<int> tmpIntArray1_, tmpIntArray2_;
707 
709 
710  std::set<int> constrained_indices_;
711 
713 };//class MatrixGraph_Impl2
714 
716  {
717  return(rowSpace_);
718  }
719 
721  {
722  return(colSpace_);
723  }
724 
725  inline std::map<int,fei::ConnectivityBlock*>& MatrixGraph_Impl2::getConnectivityBlocks()
726  {
727  return(connectivityBlocks_);
728  }
729 
731  {
732  return( globalNumSlaves_ );
733  }
734 
735  inline std::map<int, ConstraintType* >& MatrixGraph_Impl2::getLagrangeConstraints()
736  {
737  return( lagrangeConstraints_ );
738  }
739 }//namespace fei
740 
741 #endif
742 
fei::MatrixGraph_Impl2::addBlockToGraph_singleField_symmetric
int addBlockToGraph_singleField_symmetric(fei::Graph *graph, fei::ConnectivityBlock *cblock)
Definition: fei_MatrixGraph_Impl2.cpp:2304
fei::MatrixGraph_Impl2::MatrixGraph_Impl2
MatrixGraph_Impl2(fei::SharedPtr< fei::VectorSpace > rowSpace, fei::SharedPtr< fei::VectorSpace > colSpace, const char *name=NULL)
Definition: fei_MatrixGraph_Impl2.cpp:93
fei::MatrixGraph_Impl2::connectivityBlocks_
std::map< int, fei::ConnectivityBlock * > connectivityBlocks_
Definition: fei_MatrixGraph_Impl2.hpp:682
fei::MatrixGraph_Impl2::initComplete
int initComplete()
Definition: fei_MatrixGraph_Impl2.cpp:1164
fei::MatrixGraph_Impl2::Factory
Definition: fei_MatrixGraph_Impl2.hpp:36
fei::MatrixGraph_Impl2::initConnectivityBlock
int initConnectivityBlock(int blockID, int numConnectivityLists, int patternID, bool diagonal=false)
Definition: fei_MatrixGraph_Impl2.cpp:376
fei::MatrixGraph_Impl2::penaltyConstraints_
std::map< int, ConstraintType * > penaltyConstraints_
Definition: fei_MatrixGraph_Impl2.hpp:688
fei::MatrixGraph_Impl2::rowSpace_
fei::SharedPtr< fei::VectorSpace > rowSpace_
Definition: fei_MatrixGraph_Impl2.hpp:669
fei::MatrixGraph_Impl2::getConnectivityBlock
const fei::ConnectivityBlock * getConnectivityBlock(int blockID) const
Definition: fei_MatrixGraph_Impl2.cpp:1861
fei::MatrixGraph_Impl2::setName
void setName(const char *name)
Definition: fei_MatrixGraph_Impl2.cpp:2658
fei::MatrixGraph_Impl2::getPattern
fei::Pattern * getPattern(int patternID)
Definition: fei_MatrixGraph_Impl2.cpp:362
fei::MatrixGraph_Impl2::addBlockToGraph_sparse
int addBlockToGraph_sparse(fei::Graph *graph, fei::ConnectivityBlock *cblock)
Definition: fei_MatrixGraph_Impl2.cpp:2578
fei::ConnectivityBlock
Definition: fei_ConnectivityBlock.hpp:26
fei::MatrixGraph_Impl2::colSpace_
fei::SharedPtr< fei::VectorSpace > colSpace_
Definition: fei_MatrixGraph_Impl2.hpp:670
fei::MatrixGraph_Impl2::slaveConstraints_
std::map< int, ConstraintType * > slaveConstraints_
Definition: fei_MatrixGraph_Impl2.hpp:688
fei::MatrixGraph_Impl2::addLagrangeConstraintsToGraph
int addLagrangeConstraintsToGraph(fei::Graph *graph)
Definition: fei_MatrixGraph_Impl2.cpp:1597
fei::MatrixGraph_Impl2::addBlockToGraph_noField_symmetric
int addBlockToGraph_noField_symmetric(fei::Graph *graph, fei::ConnectivityBlock *cblock)
Definition: fei_MatrixGraph_Impl2.cpp:2527
fei::MatrixGraph_Impl2::definePattern
int definePattern(int numIDs, int idType)
Definition: fei_MatrixGraph_Impl2.cpp:266
fei::SharedPtr< fei::MatrixGraph >
fei::MatrixGraph_Impl2::symmetric_
bool symmetric_
Definition: fei_MatrixGraph_Impl2.hpp:673
fei::MatrixGraph_Impl2::reducer_
fei::SharedPtr< fei::Reducer > reducer_
Definition: fei_MatrixGraph_Impl2.hpp:701
fei::MatrixGraph_Impl2::tmpIntArray2_
std::vector< int > tmpIntArray2_
Definition: fei_MatrixGraph_Impl2.hpp:706
fei_macros.hpp
fei::MatrixGraph_Impl2::compareStructure
int compareStructure(const fei::MatrixGraph &matrixGraph, bool &equivalent) const
Definition: fei_MatrixGraph_Impl2.cpp:1728
fei::MatrixGraph_Impl2::getConstraintConnectivityIndices
int getConstraintConnectivityIndices(ConstraintType *cr, std::vector< int > &globalIndices)
Definition: fei_MatrixGraph_Impl2.cpp:1659
fei::MatrixGraph_Impl2::newSlaveData
bool newSlaveData()
Definition: fei_MatrixGraph_Impl2.cpp:1121
fei::MatrixGraph_Impl2::initConnectivity
int initConnectivity(int blockID, int connectivityID, const int *connectedIdentifiers)
Definition: fei_MatrixGraph_Impl2.cpp:489
fei_SharedPtr.hpp
fei_Reducer.hpp
fei::Graph
Definition: fei_Graph.hpp:20
fei::MatrixGraph_Impl2::haveColSpace_
bool haveColSpace_
Definition: fei_MatrixGraph_Impl2.hpp:672
fei::MatrixGraph_Impl2::includeAllSlaveConstraints_
bool includeAllSlaveConstraints_
Definition: fei_MatrixGraph_Impl2.hpp:712
fei::MatrixGraph_Impl2::getLocalNumLagrangeConstraints
int getLocalNumLagrangeConstraints() const
Definition: fei_MatrixGraph_Impl2.cpp:2064
fei::Pattern
Definition: fei_Pattern.hpp:29
fei::MatrixGraph_Impl2::numProcs_
int numProcs_
Definition: fei_MatrixGraph_Impl2.hpp:665
fei::MatrixGraph_Impl2::addBlockToGraph_multiField_nonsymmetric
int addBlockToGraph_multiField_nonsymmetric(fei::Graph *graph, fei::ConnectivityBlock *cblock)
Definition: fei_MatrixGraph_Impl2.cpp:2165
fei::MatrixGraph_Impl2::dbgprefix_
std::string dbgprefix_
Definition: fei_MatrixGraph_Impl2.hpp:704
fei::MatrixGraph_Impl2::globalNumSlaves_
int globalNumSlaves_
Definition: fei_MatrixGraph_Impl2.hpp:695
fei::MatrixGraph_Impl2::tmpIntArray1_
std::vector< int > tmpIntArray1_
Definition: fei_MatrixGraph_Impl2.hpp:706
fei::MatrixGraph_Impl2::createSlaveMatrices
int createSlaveMatrices()
Definition: fei_MatrixGraph_Impl2.cpp:1383
fei::MatrixGraph_Impl2::~MatrixGraph_Impl2
virtual ~MatrixGraph_Impl2()
Definition: fei_MatrixGraph_Impl2.cpp:141
fei::MatrixGraph_Impl2::exchangeBlkEqnSizes
int exchangeBlkEqnSizes(fei::Graph *graph)
Definition: fei_MatrixGraph_Impl2.cpp:1366
fei::MatrixGraph_Impl2::getConnectivityBlockIDs
int getConnectivityBlockIDs(std::vector< int > &blockIDs) const
Definition: fei_MatrixGraph_Impl2.cpp:1807
fei::MatrixGraph_Impl2::comm_
MPI_Comm comm_
Definition: fei_MatrixGraph_Impl2.hpp:667
fei::Logger
Definition: fei_Logger.hpp:19
fei::MatrixGraph_Impl2::addBlockToGraph_singleField_nonsymmetric
int addBlockToGraph_singleField_nonsymmetric(fei::Graph *graph, fei::ConnectivityBlock *cblock)
Definition: fei_MatrixGraph_Impl2.cpp:2375
fei::MatrixGraph_Impl2::arbitraryBlockCounter_
int arbitraryBlockCounter_
Definition: fei_MatrixGraph_Impl2.hpp:683
fei::MatrixGraph_Impl2::getConnectivityIndices_noField
int getConnectivityIndices_noField(const snl_fei::RecordCollection *const *recordCollections, int *records, int numRecords, int indicesAllocLen, int *indices, int &numIndices)
Definition: fei_MatrixGraph_Impl2.cpp:2501
fei::ParameterSet
Definition: fei_ParameterSet.hpp:46
snl_fei::Constraint
Definition: snl_fei_Constraint.hpp:23
fei::MatrixGraph_Impl2::getPatternIndices
int getPatternIndices(int patternID, const int *IDs, std::vector< int > &indices)
Definition: fei_MatrixGraph_Impl2.cpp:877
fei::MatrixGraph_Impl2::lagrangeConstraints_
std::map< int, ConstraintType * > lagrangeConstraints_
Definition: fei_MatrixGraph_Impl2.hpp:688
fei::MatrixGraph_Impl2::getGlobalNumSlaveConstraints
int getGlobalNumSlaveConstraints() const
Definition: fei_MatrixGraph_Impl2.hpp:730
fei_MatrixGraph.hpp
fei::MatrixGraph_Impl2::setColumnSpace
void setColumnSpace(fei::SharedPtr< fei::VectorSpace > columnSpace)
Definition: fei_MatrixGraph_Impl2.cpp:230
fei::MatrixGraph_Impl2::getLagrangeConstraints
std::map< int, ConstraintType * > & getLagrangeConstraints()
Definition: fei_MatrixGraph_Impl2.hpp:735
fei::MatrixGraph_Impl2::getConstrainedIndices
void getConstrainedIndices(std::vector< int > &crindices) const
Definition: fei_MatrixGraph_Impl2.cpp:1577
fei::MatrixGraph_Impl2::getConnectivityIndices_multiField
int getConnectivityIndices_multiField(const snl_fei::RecordCollection *const *recordCollections, int *records, int numRecords, const int *numFieldsPerID, const int *fieldIDs, const int *fieldSizes, int indicesAllocLen, int *indices, int &numIndices)
Definition: fei_MatrixGraph_Impl2.cpp:2255
fei::MatrixGraph
Definition: fei_MatrixGraph.hpp:33
fei::MatrixGraph_Impl2::getRemotelyOwnedGraphRows
fei::SharedPtr< fei::SparseRowGraph > getRemotelyOwnedGraphRows()
Definition: fei_MatrixGraph_Impl2.cpp:1571
fei::MatrixGraph_Impl2::setParameters
void setParameters(const fei::ParameterSet &params)
Definition: fei_MatrixGraph_Impl2.cpp:165
fei::MatrixGraph_Impl2::createGraph
fei::SharedPtr< fei::SparseRowGraph > createGraph(bool blockEntryGraph, bool localRowGraph_includeSharedRows=false)
Definition: fei_MatrixGraph_Impl2.cpp:1300
fei::MatrixGraph_Impl2::getConnectivityBlocks
std::map< int, fei::ConnectivityBlock * > & getConnectivityBlocks()
Definition: fei_MatrixGraph_Impl2.hpp:725
fei::MatrixGraph_Impl2::simpleProblem_
bool simpleProblem_
Definition: fei_MatrixGraph_Impl2.hpp:677
fei::MatrixGraph_Impl2::getConnectivityIndices
int getConnectivityIndices(int blockID, int connectivityID, int indicesAllocLen, int *indices, int &numIndices)
Definition: fei_MatrixGraph_Impl2.cpp:1881
fei::MatrixGraph_Impl2::setIndicesMode
void setIndicesMode(int mode)
Definition: fei_MatrixGraph_Impl2.cpp:2669
fei_Record.hpp
fei_Graph.hpp
fei::MatrixGraph_Impl2::newSlaveData_
bool newSlaveData_
Definition: fei_MatrixGraph_Impl2.hpp:692
fei::MatrixGraph_Impl2::constrained_indices_
std::set< int > constrained_indices_
Definition: fei_MatrixGraph_Impl2.hpp:710
snl_fei_Constraint.hpp
fei::MatrixGraph_Impl2::localNumSlaves_
int localNumSlaves_
Definition: fei_MatrixGraph_Impl2.hpp:694
fei::MatrixGraph_Impl2::getNumConnectivityBlocks
int getNumConnectivityBlocks() const
Definition: fei_MatrixGraph_Impl2.cpp:1801
fei_Logger.hpp
fei::MatrixGraph_Impl2::getSlaveDependencyMatrix
fei::SharedPtr< FillableMat > getSlaveDependencyMatrix()
Definition: fei_MatrixGraph_Impl2.cpp:2686
fei::MatrixGraph_Impl2::getLagrangeConstraint
ConstraintType * getLagrangeConstraint(int constraintID)
Definition: fei_MatrixGraph_Impl2.cpp:1132
fei::MatrixGraph_Impl2::getPenaltyConstraint
ConstraintType * getPenaltyConstraint(int constraintID)
Definition: fei_MatrixGraph_Impl2.cpp:1154
fei::MatrixGraph_Impl2::initPenaltyConstraint
int initPenaltyConstraint(int constraintID, int constraintIDType, int numIDs, const int *idTypes, const int *IDs, const int *fieldIDs)
Definition: fei_MatrixGraph_Impl2.cpp:988
fei::MatrixGraph_Impl2::getNumIDsPerConnectivityList
int getNumIDsPerConnectivityList(int blockID) const
Definition: fei_MatrixGraph_Impl2.cpp:1823
fei::MatrixGraph_Impl2::g_
fei::SharedPtr< CSVec > g_
Definition: fei_MatrixGraph_Impl2.hpp:698
fei::MatrixGraph_Impl2::remotelyOwnedGraphRows_
fei::SharedPtr< fei::SparseRowGraph > remotelyOwnedGraphRows_
Definition: fei_MatrixGraph_Impl2.hpp:675
fei::MatrixGraph_Impl2::localProc_
int localProc_
Definition: fei_MatrixGraph_Impl2.hpp:665
fei::MatrixGraph_Impl2::getReducer
fei::SharedPtr< fei::Reducer > getReducer()
Definition: fei_MatrixGraph_Impl2.cpp:1564
fei::MatrixGraph_Impl2::ptEqualBlk_
bool ptEqualBlk_
Definition: fei_MatrixGraph_Impl2.hpp:690
fei::MatrixGraph_Impl2::getConnectivityNumIndices
int getConnectivityNumIndices(int blockID) const
Definition: fei_MatrixGraph_Impl2.cpp:1833
fei::MatrixGraph_Impl2::Factory::~Factory
virtual ~Factory()
Definition: fei_MatrixGraph_Impl2.hpp:39
fei::MatrixGraph_Impl2::getColSpace
fei::SharedPtr< fei::VectorSpace > getColSpace()
Definition: fei_MatrixGraph_Impl2.hpp:720
fei::MatrixGraph_Impl2::createAlgebraicGraph
int createAlgebraicGraph(bool blockEntryGraph, fei::Graph *graph, bool gatherFromOverlap)
Definition: fei_MatrixGraph_Impl2.cpp:1204
fei::MatrixGraph_Impl2::getConnectivityIndices_singleField
int getConnectivityIndices_singleField(const snl_fei::RecordCollection *const *recordCollections, int *records, int numRecords, int fieldID, int fieldSize, int indicesAllocLen, int *indices, int &numIndices)
Definition: fei_MatrixGraph_Impl2.cpp:2451
fei
Definition: fei_ArrayUtils.hpp:16
fei::MatrixGraph_Impl2::D_
fei::SharedPtr< FillableMat > D_
Definition: fei_MatrixGraph_Impl2.hpp:697
fei::MatrixGraph_Impl2::setRowSpace
void setRowSpace(fei::SharedPtr< fei::VectorSpace > rowSpace)
Definition: fei_MatrixGraph_Impl2.cpp:222
fei::MatrixGraph_Impl2::getSlaveConstraint
ConstraintType * getSlaveConstraint(int constraintID)
Definition: fei_MatrixGraph_Impl2.cpp:1143
fei::MatrixGraph_Impl2::addPattern
int addPattern(fei::Pattern *pattern)
Definition: fei_MatrixGraph_Impl2.cpp:239
fei::MatrixGraph_Impl2::vspcEqnPtr_
int * vspcEqnPtr_
Definition: fei_MatrixGraph_Impl2.hpp:708
fei_SparseRowGraph.hpp
fei::MatrixGraph_Impl2::haveRowSpace_
bool haveRowSpace_
Definition: fei_MatrixGraph_Impl2.hpp:671
MPI_Comm
#define MPI_Comm
Definition: fei_mpi.h:56
fei::MatrixGraph_Impl2::addBlockToGraph_multiField_symmetric
int addBlockToGraph_multiField_symmetric(fei::Graph *graph, fei::ConnectivityBlock *cblock)
Definition: fei_MatrixGraph_Impl2.cpp:2070
fei::MatrixGraph_Impl2::blockEntryGraph_
bool blockEntryGraph_
Definition: fei_MatrixGraph_Impl2.hpp:678
fei::MatrixGraph_Impl2::getConnectivityRecords
int getConnectivityRecords(fei::VectorSpace *vecSpace, int idType, int numIDs, const int *IDs, int *records)
Definition: fei_MatrixGraph_Impl2.cpp:644
fei::MatrixGraph_Impl2::patterns_
std::map< int, fei::Pattern * > patterns_
Definition: fei_MatrixGraph_Impl2.hpp:680
fei::MatrixGraph_Impl2
Definition: fei_MatrixGraph_Impl2.hpp:33
fei::MatrixGraph_Impl2::getPatternNumIndices
int getPatternNumIndices(int patternID, int &numIndices)
Definition: fei_MatrixGraph_Impl2.cpp:863
fei::MatrixGraph_Impl2::hasSlaveDof
bool hasSlaveDof(int ID, int idType)
Definition: fei_MatrixGraph_Impl2.cpp:1026
fei_VectorSpace.hpp
fei::MatrixGraph_Impl2::getRowSpace
fei::SharedPtr< fei::VectorSpace > getRowSpace()
Definition: fei_MatrixGraph_Impl2.hpp:715
fei::MatrixGraph_Impl2::g_nonzero_
bool g_nonzero_
Definition: fei_MatrixGraph_Impl2.hpp:699
fei::MatrixGraph_Impl2::addPenaltyConstraintsToGraph
int addPenaltyConstraintsToGraph(fei::Graph *graph)
Definition: fei_MatrixGraph_Impl2.cpp:1704
fei::VectorSpace
Definition: fei_VectorSpace.hpp:62
snl_fei::RecordCollection
Definition: snl_fei_RecordCollection.hpp:32
fei::MatrixGraph_Impl2::name_
std::string name_
Definition: fei_MatrixGraph_Impl2.hpp:703
fei::MatrixGraph_Impl2::initLagrangeConstraint
int initLagrangeConstraint(int constraintID, int constraintIDType, int numIDs, const int *idTypes, const int *IDs, const int *fieldIDs)
Definition: fei_MatrixGraph_Impl2.cpp:940
fei::MatrixGraph_Impl2::Factory::createMatrixGraph
virtual fei::SharedPtr< fei::MatrixGraph > createMatrixGraph(fei::SharedPtr< fei::VectorSpace > rowSpace, fei::SharedPtr< fei::VectorSpace > columnSpace, const char *name)
Definition: fei_MatrixGraph_Impl2.cpp:81
fei::MatrixGraph_Impl2::sparseBlocks_
std::vector< fei::ConnectivityBlock * > sparseBlocks_
Definition: fei_MatrixGraph_Impl2.hpp:685
fei::MatrixGraph_Impl2::initSlaveConstraint
int initSlaveConstraint(int numIDs, const int *idTypes, const int *IDs, const int *fieldIDs, int offsetOfSlave, int offsetIntoSlaveField, const double *weights, double rhsValue)
Definition: fei_MatrixGraph_Impl2.cpp:1047