FEI Package Browser (Single Doxygen Collection)  Version of the Day
FEI_Implementation.hpp
Go to the documentation of this file.
1 #ifndef _FEI_Implementation_hpp_
2 #define _FEI_Implementation_hpp_
3 
4 /*--------------------------------------------------------------------*/
5 /* Copyright 2005 Sandia Corporation. */
6 /* Under the terms of Contract DE-AC04-94AL85000, there is a */
7 /* non-exclusive license for use of this work by or on behalf */
8 /* of the U.S. Government. Export of this program may require */
9 /* a license from the United States Government. */
10 /*--------------------------------------------------------------------*/
11 
12 #include <fei_fwd.hpp>
13 #include <fei_mpi.h>
14 #include <fei_SharedPtr.hpp>
15 #include <fei_defs.h>
16 
17 #include <FEI.hpp>
18 
50 class FEI_Implementation : public FEI {
51 
52  public:
63  MPI_Comm comm,
64  int masterRank=0);
65 
67  virtual ~FEI_Implementation();
68 
69 //public FEI functions:
70 
71 
80  int parameters(int numParams, const char *const* paramStrings);
81 
82 //Structural initialization functions.............................
83 
99  int setIDLists(int numMatrices,
100  const int* matrixIDs,
101  int numRHSs,
102  const int* rhsIDs);
103 
112  int setSolveType(int solveType);
113 
128  int initFields(int numFields,
129  const int *fieldSizes,
130  const int *fieldIDs,
131  const int *fieldTypes = NULL);
132 
154  int initElemBlock(GlobalID elemBlockID,
155  int numElements,
156  int numNodesPerElement,
157  const int* numFieldsPerNode,
158  const int* const* nodalFieldIDs,
159  int numElemDofFieldsPerElement,
160  const int* elemDOFFieldIDs,
161  int interleaveStrategy);
162 
171  int initElem(GlobalID elemBlockID,
172  GlobalID elemID,
173  const GlobalID* elemConn);
174 
222  int initSlaveVariable(GlobalID slaveNodeID,
223  int slaveFieldID,
224  int offsetIntoSlaveField,
225  int numMasterNodes,
226  const GlobalID* masterNodeIDs,
227  const int* masterFieldIDs,
228  const double* weights,
229  double rhsValue);
230 
235  int deleteMultCRs();
236 
238  int initSharedNodes(int numSharedNodes,
239  const GlobalID *sharedNodeIDs,
240  const int* numProcsPerNode,
241  const int *const *sharingProcIDs);
242 
251  int initCRMult(int numCRNodes,
252  const GlobalID* CRNodes,
253  const int *CRFields,
254  int& CRID);
255 
264  int initCRPen(int numCRNodes,
265  const GlobalID* CRNodes,
266  const int *CRFields,
267  int& CRID);
268 
270  int initComplete();
271 
272 // FEI data loading sequence..........................................
273 
276  int setCurrentMatrix(int matID);
277 
280  int setCurrentRHS(int rhsID);
281 
283  int resetSystem(double s=0.0);
284 
287  int resetMatrix(double s=0.0);
288 
292  int resetRHSVector(double s=0.0);
293 
299  int resetInitialGuess(double s=0.0);
300 
319  int loadNodeBCs(int numNodes,
320  const GlobalID *nodeIDs,
321  int fieldID,
322  const int* offsetsIntoField,
323  const double* prescribedValues);
324 
336  int loadElemBCs(int numElems,
337  const GlobalID* elemIDs,
338  int fieldID,
339  const double *const *alpha,
340  const double *const *beta,
341  const double *const *gamma);
342 
358  int sumInElem(GlobalID elemBlockID,
359  GlobalID elemID,
360  const GlobalID* elemConn,
361  const double* const* elemStiffness,
362  const double* elemLoad,
363  int elemFormat);
364 
379  int sumInElemMatrix(GlobalID elemBlockID,
380  GlobalID elemID,
381  const GlobalID* elemConn,
382  const double* const* elemStiffness,
383  int elemFormat);
384 
393  int sumInElemRHS(GlobalID elemBlockID,
394  GlobalID elemID,
395  const GlobalID* elemConn,
396  const double* elemLoad);
397 
407  int loadCRMult(int CRID,
408  int numCRNodes,
409  const GlobalID* CRNodes,
410  const int* CRFields,
411  const double* CRWeights,
412  double CRValue);
413 
424  int loadCRPen(int CRID,
425  int numCRNodes,
426  const GlobalID* CRNodes,
427  const int* CRFields,
428  const double* CRWeights,
429  double CRValue,
430  double penValue);
431 
433  int putIntoRHS(int IDType,
434  int fieldID,
435  int numIDs,
436  const GlobalID* IDs,
437  const double* rhsEntries);
438 
440  int sumIntoRHS(int IDType,
441  int fieldID,
442  int numIDs,
443  const GlobalID* IDs,
444  const double* rhsEntries);
445 
446  int sumIntoMatrixDiagonal(int IDType,
447  int fieldID,
448  int numIDs,
449  const GlobalID* IDs,
450  const double* coefficients);
451 
452 // Equation solution services.....................................
453 
456  int setMatScalars(int numScalars,
457  const int* IDs,
458  const double* scalars);
459 
461  int setRHSScalars(int numScalars,
462  const int* IDs,
463  const double* scalars);
464 
467  int loadComplete(bool applyBCs=true,
468  bool globalAssemble=true);
469 
471  int residualNorm(int whichNorm,
472  int numFields,
473  int* fieldIDs,
474  double* norms);
475 
477  int solve(int& status);
478 
482  int iterations(int& itersTaken) const;
483 
492  int version(const char*& versionString);
493 
495  int cumulative_cpu_times(double& initTime,
496  double& loadTime,
497  double& solveTime,
498  double& solnReturnTime);
499 
500 // Solution return services.......................................
501 
503  int getBlockNodeSolution(GlobalID elemBlockID,
504  int numNodes,
505  const GlobalID *nodeIDs,
506  int *offsets,
507  double *results);
508 
510  int getNodalSolution(int numNodes,
511  const GlobalID* nodeIDs,
512  int* offsets,
513  double* results);
514 
516  int getBlockFieldNodeSolution(GlobalID elemBlockID,
517  int fieldID,
518  int numNodes,
519  const GlobalID *nodeIDs,
520  double *results);
521 
523  int getBlockElemSolution(GlobalID elemBlockID,
524  int numElems,
525  const GlobalID *elemIDs,
526  int& numElemDOFPerElement,
527  double *results);
528 
530  int getNumCRMultipliers(int& numMultCRs);
531 
533  int getCRMultIDList(int numMultCRs, int* multIDs);
534 
536  int getCRMultipliers(int numCRs,
537  const int* CRIDs,
538  double *multipliers);
539 
540 
541 // associated "puts" paralleling the solution return services.
542 //
543 // the int sizing parameters are passed for error-checking purposes, so
544 // that the interface implementation can tell if the passed estimate
545 // vectors make sense -before- an attempt is made to utilize them as
546 // initial guesses by unpacking them into the solver's native solution
547 // vector format (these parameters include lenNodeIDList, lenElemIDList,
548 // numElemDOF, and numMultCRs -- all other passed params are either
549 // vectors or block/constraint-set IDs)
550 
552  int putBlockNodeSolution(GlobalID elemBlockID,
553  int numNodes,
554  const GlobalID *nodeIDs,
555  const int *offsets,
556  const double *estimates);
557 
559  int putBlockFieldNodeSolution(GlobalID elemBlockID,
560  int fieldID,
561  int numNodes,
562  const GlobalID *nodeIDs,
563  const double *estimates);
564 
566  int putBlockElemSolution(GlobalID elemBlockID,
567  int numElems,
568  const GlobalID *elemIDs,
569  int dofPerElem,
570  const double *estimates);
571 
573  int putCRMultipliers(int numMultCRs,
574  const int* CRIDs,
575  const double* multEstimates);
576 
577 // utility functions that aid in integrating the FEI calls..............
578 
579 // support methods for the "gets" and "puts" of the soln services.
580 
581 
583  int getBlockNodeIDList(GlobalID elemBlockID,
584  int numNodes,
585  GlobalID *nodeIDs);
586 
588  int getBlockElemIDList(GlobalID elemBlockID,
589  int numElems,
590  GlobalID* elemIDs);
591 
592 // miscellaneous self-explanatory "read-only" query functions............
593 
595  int getNumSolnParams(GlobalID nodeID, int& numSolnParams) const;
596 
598  int getNumElemBlocks(int& numElemBlocks) const;
599 
601  int getNumBlockActNodes(GlobalID blockID, int& numNodes) const;
602 
604  int getNumBlockActEqns(GlobalID blockID, int& numEqns) const;
605 
608  int getNumNodesPerElement(GlobalID blockID, int& nodesPerElem) const;
609 
612  int getNumEqnsPerElement(GlobalID blockID, int& numEqns) const;
613 
615  int getNumBlockElements(GlobalID blockID, int& numElems) const;
616 
618  int getNumBlockElemDOF(GlobalID blockID, int& DOFPerElem) const;
619 
620 
624  int getParameters(int& numParams, char**& paramStrings);
625 
626  //And now a couple of non-FEI query functions that Sandia applications
627  //need to augment the matrix-access functions. I (Alan Williams) will
628  //argue to have these included in the FEI 2.1 specification update.
629 
634  int getFieldSize(int fieldID, int& numScalars);
635 
648  int getEqnNumbers(GlobalID ID,
649  int idType,
650  int fieldID,
651  int& numEqns,
652  int* eqnNumbers);
653 
667  int getNodalFieldSolution(int fieldID,
668  int numNodes,
669  const GlobalID* nodeIDs,
670  double* results);
671 
677  int getNumLocalNodes(int& numNodes);
678 
690  int getLocalNodeIDList(int& numNodes,
691  GlobalID* nodeIDs,
692  int lenNodeIDs);
693 
710  int putNodalFieldData(int fieldID,
711  int numNodes,
712  const GlobalID* nodeIDs,
713  const double* nodeData);
714 
716  { return *problemStructure_; }
717 
719  { return *problemStructure_; }
720 
721  //============================================================================
722  private: //functions
723 
726 
727  void deleteIDs();
728  void deleteRHSScalars();
729 
730  int allocateInternalFEIs();
731 
732  void debugOut(const char* msg);
733  void debugOut(const char* msg, int whichFEI);
734 
735  void buildLinearSystem();
736  int aggregateSystem();
737 
738  void messageAbort(const char* msg);
739  void notAllocatedAbort(const char* name);
740  void needParametersAbort(const char* name);
741  void badParametersAbort(const char* name);
742 
743  void setDebugOutput(const char* path, const char* name);
744 
745  //============================================================================
746  private: //member variables
747 
750  std::vector<fei::SharedPtr<LinearSystemCore> > lscArray_;
755 
758 
759  std::vector<int> matrixIDs_;
760  std::vector<int> numRHSIDs_;
761  std::vector<int*> rhsIDs_;
762 
764 
765  std::vector<double> matScalars_;
767  std::vector<double*> rhsScalars_;
769 
773 
775 
778 
781 
784 
786 
790 
792 
795 #ifdef FEI_HAVE_IOSFWD
796  std::ostream* dbgOStreamPtr_;
797 #else
798  ostream* dbgOStreamPtr_;
799 #endif
801 #ifdef FEI_HAVE_IOSFWD
802  std::ofstream* dbgFStreamPtr_;
803 #else
804  ofstream* dbgFStreamPtr_;
805 #endif
806 
808 
811 };
812 
813 #endif
814 
FEI_Implementation::loadCRMult
int loadCRMult(int CRID, int numCRNodes, const GlobalID *CRNodes, const int *CRFields, const double *CRWeights, double CRValue)
Definition: FEI_Implementation.cpp:665
FEI_Implementation::getCRMultipliers
int getCRMultipliers(int numCRs, const int *CRIDs, double *multipliers)
Definition: FEI_Implementation.cpp:1100
FEI_Implementation::deleteMultCRs
int deleteMultCRs()
Definition: FEI_Implementation.cpp:428
FEI_Implementation::IDsAllocated_
bool IDsAllocated_
Definition: FEI_Implementation.hpp:763
FEI_Implementation::getNumCRMultipliers
int getNumCRMultipliers(int &numMultCRs)
Definition: FEI_Implementation.cpp:1075
FEI_Implementation::initElem
int initElem(GlobalID elemBlockID, GlobalID elemID, const GlobalID *elemConn)
Definition: FEI_Implementation.cpp:400
FEI_Implementation::solveCounter_
int solveCounter_
Definition: FEI_Implementation.hpp:793
FEI_Implementation::debugOut
void debugOut(const char *msg)
Definition: FEI_Implementation.cpp:1588
FEI_Implementation::getBlockNodeSolution
int getBlockNodeSolution(GlobalID elemBlockID, int numNodes, const GlobalID *nodeIDs, int *offsets, double *results)
Definition: FEI_Implementation.cpp:979
FEI_Implementation::resetSystem
int resetSystem(double s=0.0)
Definition: FEI_Implementation.cpp:523
FEI_Implementation::getProblemStructure
SNL_FEI_Structure & getProblemStructure()
Definition: FEI_Implementation.hpp:718
FEI_Implementation::setSolveTypeCalled_
bool setSolveTypeCalled_
Definition: FEI_Implementation.hpp:776
FEI_Implementation::resetMatrix
int resetMatrix(double s=0.0)
Definition: FEI_Implementation.cpp:536
FEI_Implementation::getNumBlockActNodes
int getNumBlockActNodes(GlobalID blockID, int &numNodes) const
Definition: FEI_Implementation.cpp:1231
FEI_Implementation::setSolveType
int setSolveType(int solveType)
Definition: FEI_Implementation.cpp:267
FEI_Implementation::haveLinSysCore_
bool haveLinSysCore_
Definition: FEI_Implementation.hpp:751
FEI_Implementation::getBlockElemSolution
int getBlockElemSolution(GlobalID elemBlockID, int numElems, const GlobalID *elemIDs, int &numElemDOFPerElement, double *results)
Definition: FEI_Implementation.cpp:1048
FEI_Implementation::dbgFStreamPtr_
std::ofstream * dbgFStreamPtr_
Definition: FEI_Implementation.hpp:802
FEI_Implementation::loadElemBCs
int loadElemBCs(int numElems, const GlobalID *elemIDs, int fieldID, const double *const *alpha, const double *const *beta, const double *const *gamma)
Definition: FEI_Implementation.cpp:586
FEI_Implementation::notAllocatedAbort
void notAllocatedAbort(const char *name)
Definition: FEI_Implementation.cpp:1607
FEI_Implementation::getProblemStructure
const SNL_FEI_Structure & getProblemStructure() const
Definition: FEI_Implementation.hpp:715
FEI_Implementation::setIDLists
int setIDLists(int numMatrices, const int *matrixIDs, int numRHSs, const int *rhsIDs)
Definition: FEI_Implementation.cpp:299
fei::SharedPtr< LibraryWrapper >
FEI_Implementation::getNumEqnsPerElement
int getNumEqnsPerElement(GlobalID blockID, int &numEqns) const
Definition: FEI_Implementation.cpp:1190
FEI_Implementation::parameters
int parameters(int numParams, const char *const *paramStrings)
Definition: FEI_Implementation.cpp:811
FEI_Implementation::lscArray_
std::vector< fei::SharedPtr< LinearSystemCore > > lscArray_
Definition: FEI_Implementation.hpp:750
FEI_Implementation::getParameters
int getParameters(int &numParams, char **&paramStrings)
Definition: FEI_Implementation.cpp:228
FEI_Implementation::getNumBlockElemDOF
int getNumBlockElemDOF(GlobalID blockID, int &DOFPerElem) const
Definition: FEI_Implementation.cpp:1270
FEI.hpp
fei_fwd.hpp
FEI_Implementation::setCurrentRHS
int setCurrentRHS(int rhsID)
Definition: FEI_Implementation.cpp:236
FEI_Implementation::allocateInternalFEIs
int allocateInternalFEIs()
Definition: FEI_Implementation.cpp:1481
FEI_Implementation::sumInElemMatrix
int sumInElemMatrix(GlobalID elemBlockID, GlobalID elemID, const GlobalID *elemConn, const double *const *elemStiffness, int elemFormat)
Definition: FEI_Implementation.cpp:628
FEI_Implementation::resetRHSVector
int resetRHSVector(double s=0.0)
Definition: FEI_Implementation.cpp:546
fei_SharedPtr.hpp
FEI_Implementation::newMatrixDataLoaded_
int newMatrixDataLoaded_
Definition: FEI_Implementation.hpp:780
FEI_Implementation::index_soln_filter_
int index_soln_filter_
Definition: FEI_Implementation.hpp:770
FEI_Implementation::putBlockFieldNodeSolution
int putBlockFieldNodeSolution(GlobalID elemBlockID, int fieldID, int numNodes, const GlobalID *nodeIDs, const double *estimates)
Definition: FEI_Implementation.cpp:1035
FEI_Implementation::getFieldSize
int getFieldSize(int fieldID, int &numScalars)
Definition: FEI_Implementation.cpp:1285
FEI_Implementation::outputLevel_
int outputLevel_
Definition: FEI_Implementation.hpp:791
FEI_Implementation::getBlockNodeIDList
int getBlockNodeIDList(GlobalID elemBlockID, int numNodes, GlobalID *nodeIDs)
Definition: FEI_Implementation.cpp:1150
FEI_Implementation::badParametersAbort
void badParametersAbort(const char *name)
Definition: FEI_Implementation.cpp:1629
FEI_Implementation::operator=
FEI_Implementation & operator=(const FEI_Implementation &src)
FEI_Implementation::debugOutput_
int debugOutput_
Definition: FEI_Implementation.hpp:794
Data
Definition: fei_Data.hpp:18
FEI_Implementation::initTime_
double initTime_
Definition: FEI_Implementation.hpp:807
FEI_Implementation::initElemBlock
int initElemBlock(GlobalID elemBlockID, int numElements, int numNodesPerElement, const int *numFieldsPerNode, const int *const *nodalFieldIDs, int numElemDofFieldsPerElement, const int *elemDOFFieldIDs, int interleaveStrategy)
Definition: FEI_Implementation.cpp:378
FEI
Definition: FEI.hpp:144
FEI_Implementation::soln_fei_vector_
Data * soln_fei_vector_
Definition: FEI_Implementation.hpp:783
FEI_Implementation::setRHSScalars
int setRHSScalars(int numScalars, const int *IDs, const double *scalars)
Definition: FEI_Implementation.cpp:782
FEI_Implementation::getNumBlockElements
int getNumBlockElements(GlobalID blockID, int &numElems) const
Definition: FEI_Implementation.cpp:1258
FEI_Implementation::resetInitialGuess
int resetInitialGuess(double s=0.0)
Definition: FEI_Implementation.cpp:556
FEI_Implementation::getNumNodesPerElement
int getNumNodesPerElement(GlobalID blockID, int &nodesPerElem) const
Definition: FEI_Implementation.cpp:1176
FEI_Implementation::messageAbort
void messageAbort(const char *msg)
Definition: FEI_Implementation.cpp:1600
FEI_Implementation::index_current_rhs_row_
int index_current_rhs_row_
Definition: FEI_Implementation.hpp:772
SNL_FEI_Structure
Definition: SNL_FEI_Structure.hpp:43
FEI_Implementation::initSharedNodes
int initSharedNodes(int numSharedNodes, const GlobalID *sharedNodeIDs, const int *numProcsPerNode, const int *const *sharingProcIDs)
Definition: FEI_Implementation.cpp:443
FEI_Implementation::cumulative_cpu_times
int cumulative_cpu_times(double &initTime, double &loadTime, double &solveTime, double &solnReturnTime)
Definition: FEI_Implementation.cpp:965
Filter
Definition: fei_Filter.hpp:27
FEI_Implementation::initComplete
int initComplete()
Definition: FEI_Implementation.cpp:500
FEI_Implementation::sumInElemRHS
int sumInElemRHS(GlobalID elemBlockID, GlobalID elemID, const GlobalID *elemConn, const double *elemLoad)
Definition: FEI_Implementation.cpp:648
FEI_Implementation::sumIntoRHS
int sumIntoRHS(int IDType, int fieldID, int numIDs, const GlobalID *IDs, const double *rhsEntries)
Definition: FEI_Implementation.cpp:707
FEI_Implementation::getNumBlockActEqns
int getNumBlockActEqns(GlobalID blockID, int &numEqns) const
Definition: FEI_Implementation.cpp:1244
FEI_Implementation::matScalars_
std::vector< double > matScalars_
Definition: FEI_Implementation.hpp:765
FEI_Implementation::putBlockElemSolution
int putBlockElemSolution(GlobalID elemBlockID, int numElems, const GlobalID *elemIDs, int dofPerElem, const double *estimates)
Definition: FEI_Implementation.cpp:1062
FEI_Implementation
Definition: FEI_Implementation.hpp:50
FEI_Implementation::aggregateSystemFormed_
bool aggregateSystemFormed_
Definition: FEI_Implementation.hpp:779
FEI_Implementation::loadCRPen
int loadCRPen(int CRID, int numCRNodes, const GlobalID *CRNodes, const int *CRFields, const double *CRWeights, double CRValue, double penValue)
Definition: FEI_Implementation.cpp:685
FEI_Implementation::FEI_Implementation
FEI_Implementation(fei::SharedPtr< LibraryWrapper > libWrapper, MPI_Comm comm, int masterRank=0)
Definition: FEI_Implementation.cpp:39
fei_mpi.h
FEI_Implementation::setCurrentMatrix
int setCurrentMatrix(int matID)
Definition: FEI_Implementation.cpp:197
FEI_Implementation::getNodalFieldSolution
int getNodalFieldSolution(int fieldID, int numNodes, const GlobalID *nodeIDs, double *results)
Definition: FEI_Implementation.cpp:1310
FEI_Implementation::rhsScalarsSet_
bool rhsScalarsSet_
Definition: FEI_Implementation.hpp:768
FEI_Implementation::needParametersAbort
void needParametersAbort(const char *name)
Definition: FEI_Implementation.cpp:1618
FEI_Implementation::initCRPen
int initCRPen(int numCRNodes, const GlobalID *CRNodes, const int *CRFields, int &CRID)
Definition: FEI_Implementation.cpp:481
FEI_Implementation::setDebugOutput
void setDebugOutput(const char *path, const char *name)
Definition: FEI_Implementation.cpp:865
FEI_Implementation::loadComplete
int loadComplete(bool applyBCs=true, bool globalAssemble=true)
Definition: FEI_Implementation.cpp:910
GlobalID
int GlobalID
Definition: fei_defs.h:60
FEI_Implementation::initCRMult
int initCRMult(int numCRNodes, const GlobalID *CRNodes, const int *CRFields, int &CRID)
Definition: FEI_Implementation.cpp:461
FEI_Implementation::dbgFileOpened_
bool dbgFileOpened_
Definition: FEI_Implementation.hpp:800
FEI_Implementation::initSlaveVariable
int initSlaveVariable(GlobalID slaveNodeID, int slaveFieldID, int offsetIntoSlaveField, int numMasterNodes, const GlobalID *masterNodeIDs, const int *masterFieldIDs, const double *weights, double rhsValue)
Definition: FEI_Implementation.cpp:410
FEI_Implementation::haveFEData_
bool haveFEData_
Definition: FEI_Implementation.hpp:752
FEI_Implementation::internalFEIsAllocated_
bool internalFEIsAllocated_
Definition: FEI_Implementation.hpp:757
FEI_Implementation::numParams_
int numParams_
Definition: FEI_Implementation.hpp:809
FEI_Implementation::solnReturnTime_
double solnReturnTime_
Definition: FEI_Implementation.hpp:807
FEI_Implementation::putNodalFieldData
int putNodalFieldData(int fieldID, int numNodes, const GlobalID *nodeIDs, const double *nodeData)
Definition: FEI_Implementation.cpp:1343
FEI_Implementation::soln_fei_matrix_
Data * soln_fei_matrix_
Definition: FEI_Implementation.hpp:782
FEI_Implementation::putCRMultipliers
int putCRMultipliers(int numMultCRs, const int *CRIDs, const double *multEstimates)
Definition: FEI_Implementation.cpp:1110
FEI_Implementation::index_current_filter_
int index_current_filter_
Definition: FEI_Implementation.hpp:771
FEI_Implementation::masterRank_
int masterRank_
Definition: FEI_Implementation.hpp:787
FEI_Implementation::aggregateSystem
int aggregateSystem()
Definition: FEI_Implementation.cpp:1412
FEI_Implementation::deleteRHSScalars
void deleteRHSScalars()
Definition: FEI_Implementation.cpp:188
FEI_Implementation::problemStructure_
SNL_FEI_Structure * problemStructure_
Definition: FEI_Implementation.hpp:753
FEI_Implementation::wrapper_
fei::SharedPtr< LibraryWrapper > wrapper_
Definition: FEI_Implementation.hpp:748
fei_defs.h
FEI_Implementation::putIntoRHS
int putIntoRHS(int IDType, int fieldID, int numIDs, const GlobalID *IDs, const double *rhsEntries)
Definition: FEI_Implementation.cpp:741
FEI_Implementation::linSysCore_
fei::SharedPtr< LinearSystemCore > linSysCore_
Definition: FEI_Implementation.hpp:749
MPI_Comm
#define MPI_Comm
Definition: fei_mpi.h:56
FEI_Implementation::putBlockNodeSolution
int putBlockNodeSolution(GlobalID elemBlockID, int numNodes, const GlobalID *nodeIDs, const int *offsets, const double *estimates)
Definition: FEI_Implementation.cpp:1022
FEI_Implementation::solveTime_
double solveTime_
Definition: FEI_Implementation.hpp:807
FEI_Implementation::getLocalNodeIDList
int getLocalNodeIDList(int &numNodes, GlobalID *nodeIDs, int lenNodeIDs)
Definition: FEI_Implementation.cpp:1327
FEI_Implementation::version
int version(const char *&versionString)
Definition: FEI_Implementation.cpp:958
FEI_Implementation::getNumElemBlocks
int getNumElemBlocks(int &numElemBlocks) const
Definition: FEI_Implementation.cpp:1221
FEI_Implementation::getNumSolnParams
int getNumSolnParams(GlobalID nodeID, int &numSolnParams) const
Definition: FEI_Implementation.cpp:1204
FEI_Implementation::comm_
MPI_Comm comm_
Definition: FEI_Implementation.hpp:785
FEI_Implementation::~FEI_Implementation
virtual ~FEI_Implementation()
Definition: FEI_Implementation.cpp:128
FEI_Implementation::dbgOStreamPtr_
std::ostream * dbgOStreamPtr_
Definition: FEI_Implementation.hpp:796
FEI_Implementation::localRank_
int localRank_
Definition: FEI_Implementation.hpp:788
FEI_Implementation::initPhaseIsComplete_
bool initPhaseIsComplete_
Definition: FEI_Implementation.hpp:777
FEI_Implementation::buildLinearSystem
void buildLinearSystem()
Definition: FEI_Implementation.cpp:1353
FEI_Implementation::getBlockElemIDList
int getBlockElemIDList(GlobalID elemBlockID, int numElems, GlobalID *elemIDs)
Definition: FEI_Implementation.cpp:1127
FEI_Implementation::numProcs_
int numProcs_
Definition: FEI_Implementation.hpp:789
FEI_Implementation::initFields
int initFields(int numFields, const int *fieldSizes, const int *fieldIDs, const int *fieldTypes=NULL)
Definition: FEI_Implementation.cpp:367
FEI_Implementation::numInternalFEIs_
int numInternalFEIs_
Definition: FEI_Implementation.hpp:756
FEI_Implementation::numRHSIDs_
std::vector< int > numRHSIDs_
Definition: FEI_Implementation.hpp:760
FEI_Implementation::filter_
Filter ** filter_
Definition: FEI_Implementation.hpp:754
FEI_Implementation::setMatScalars
int setMatScalars(int numScalars, const int *IDs, const double *scalars)
Definition: FEI_Implementation.cpp:758
FEI_Implementation::getEqnNumbers
int getEqnNumbers(GlobalID ID, int idType, int fieldID, int &numEqns, int *eqnNumbers)
Definition: FEI_Implementation.cpp:1297
FEI_Implementation::residualNorm
int residualNorm(int whichNorm, int numFields, int *fieldIDs, double *norms)
Definition: FEI_Implementation.cpp:922
FEI_Implementation::rhsIDs_
std::vector< int * > rhsIDs_
Definition: FEI_Implementation.hpp:761
FEI_Implementation::sumInElem
int sumInElem(GlobalID elemBlockID, GlobalID elemID, const GlobalID *elemConn, const double *const *elemStiffness, const double *elemLoad, int elemFormat)
Definition: FEI_Implementation.cpp:607
FEI_Implementation::solve
int solve(int &status)
Definition: FEI_Implementation.cpp:938
FEI_Implementation::sumIntoMatrixDiagonal
int sumIntoMatrixDiagonal(int IDType, int fieldID, int numIDs, const GlobalID *IDs, const double *coefficients)
Definition: FEI_Implementation.cpp:724
FEI_Implementation::matScalarsSet_
bool matScalarsSet_
Definition: FEI_Implementation.hpp:766
FEI_Implementation::getCRMultIDList
int getCRMultIDList(int numMultCRs, int *multIDs)
Definition: FEI_Implementation.cpp:1082
FEI_Implementation::deleteIDs
void deleteIDs()
Definition: FEI_Implementation.cpp:177
FEI_Implementation::rhsScalars_
std::vector< double * > rhsScalars_
Definition: FEI_Implementation.hpp:767
FEI_Implementation::loadNodeBCs
int loadNodeBCs(int numNodes, const GlobalID *nodeIDs, int fieldID, const int *offsetsIntoField, const double *prescribedValues)
Definition: FEI_Implementation.cpp:566
FEI_Implementation::getNodalSolution
int getNodalSolution(int numNodes, const GlobalID *nodeIDs, int *offsets, double *results)
Definition: FEI_Implementation.cpp:994
FEI_Implementation::loadTime_
double loadTime_
Definition: FEI_Implementation.hpp:807
FEI_Implementation::iterations
int iterations(int &itersTaken) const
Definition: FEI_Implementation.cpp:952
FEI_Implementation::paramStrings_
char ** paramStrings_
Definition: FEI_Implementation.hpp:810
FEI_Implementation::solveType_
int solveType_
Definition: FEI_Implementation.hpp:774
FEI_Implementation::getNumLocalNodes
int getNumLocalNodes(int &numNodes)
Definition: FEI_Implementation.cpp:1320
FEI_Implementation::matrixIDs_
std::vector< int > matrixIDs_
Definition: FEI_Implementation.hpp:759
FEI_Implementation::getBlockFieldNodeSolution
int getBlockFieldNodeSolution(GlobalID elemBlockID, int fieldID, int numNodes, const GlobalID *nodeIDs, double *results)
Definition: FEI_Implementation.cpp:1008