1#ifndef _FEI_Implementation_hpp_
2#define _FEI_Implementation_hpp_
80 int parameters(
int numParams,
const char *
const* paramStrings);
100 const int* matrixIDs,
129 const int *fieldSizes,
131 const int *fieldTypes = NULL);
156 int numNodesPerElement,
157 const int* numFieldsPerNode,
158 const int*
const* nodalFieldIDs,
159 int numElemDofFieldsPerElement,
160 const int* elemDOFFieldIDs,
161 int interleaveStrategy);
224 int offsetIntoSlaveField,
227 const int* masterFieldIDs,
228 const double* weights,
240 const int* numProcsPerNode,
241 const int *
const *sharingProcIDs);
322 const int* offsetsIntoField,
323 const double* prescribedValues);
339 const double *
const *alpha,
340 const double *
const *beta,
341 const double *
const *gamma);
361 const double*
const* elemStiffness,
362 const double* elemLoad,
382 const double*
const* elemStiffness,
396 const double* elemLoad);
411 const double* CRWeights,
428 const double* CRWeights,
437 const double* rhsEntries);
444 const double* rhsEntries);
450 const double* coefficients);
458 const double* scalars);
463 const double* scalars);
468 bool globalAssemble=
true);
477 int solve(
int& status);
492 int version(
const char*& versionString);
498 double& solnReturnTime);
526 int& numElemDOFPerElement,
538 double *multipliers);
556 const double *estimates);
563 const double *estimates);
570 const double *estimates);
575 const double* multEstimates);
713 const double* nodeData);
733 void debugOut(
const char* msg,
int whichFEI);
750 std::vector<fei::SharedPtr<LinearSystemCore> >
lscArray_;
795#ifdef FEI_HAVE_IOSFWD
798 ostream* dbgOStreamPtr_;
801#ifdef FEI_HAVE_IOSFWD
804 ofstream* dbgFStreamPtr_;
int index_current_filter_
std::vector< fei::SharedPtr< LinearSystemCore > > lscArray_
int sumInElemRHS(GlobalID elemBlockID, GlobalID elemID, const GlobalID *elemConn, const double *elemLoad)
int getBlockElemIDList(GlobalID elemBlockID, int numElems, GlobalID *elemIDs)
void badParametersAbort(const char *name)
int putNodalFieldData(int fieldID, int numNodes, const GlobalID *nodeIDs, const double *nodeData)
int getEqnNumbers(GlobalID ID, int idType, int fieldID, int &numEqns, int *eqnNumbers)
int initCRPen(int numCRNodes, const GlobalID *CRNodes, const int *CRFields, int &CRID)
int sumInElemMatrix(GlobalID elemBlockID, GlobalID elemID, const GlobalID *elemConn, const double *const *elemStiffness, int elemFormat)
int loadNodeBCs(int numNodes, const GlobalID *nodeIDs, int fieldID, const int *offsetsIntoField, const double *prescribedValues)
int initSharedNodes(int numSharedNodes, const GlobalID *sharedNodeIDs, const int *numProcsPerNode, const int *const *sharingProcIDs)
int getNumEqnsPerElement(GlobalID blockID, int &numEqns) const
fei::SharedPtr< LibraryWrapper > wrapper_
std::vector< int * > rhsIDs_
int version(const char *&versionString)
int putIntoRHS(int IDType, int fieldID, int numIDs, const GlobalID *IDs, const double *rhsEntries)
int allocateInternalFEIs()
int getBlockNodeSolution(GlobalID elemBlockID, int numNodes, const GlobalID *nodeIDs, int *offsets, double *results)
int getBlockElemSolution(GlobalID elemBlockID, int numElems, const GlobalID *elemIDs, int &numElemDOFPerElement, double *results)
bool internalFEIsAllocated_
int iterations(int &itersTaken) const
int getNumBlockElemDOF(GlobalID blockID, int &DOFPerElem) const
int initCRMult(int numCRNodes, const GlobalID *CRNodes, const int *CRFields, int &CRID)
int setCurrentMatrix(int matID)
int setSolveType(int solveType)
int getNumElemBlocks(int &numElemBlocks) const
void needParametersAbort(const char *name)
int loadElemBCs(int numElems, const GlobalID *elemIDs, int fieldID, const double *const *alpha, const double *const *beta, const double *const *gamma)
int getBlockFieldNodeSolution(GlobalID elemBlockID, int fieldID, int numNodes, const GlobalID *nodeIDs, double *results)
int getCRMultIDList(int numMultCRs, int *multIDs)
bool aggregateSystemFormed_
int resetInitialGuess(double s=0.0)
const SNL_FEI_Structure & getProblemStructure() const
int sumIntoMatrixDiagonal(int IDType, int fieldID, int numIDs, const GlobalID *IDs, const double *coefficients)
int getNumBlockElements(GlobalID blockID, int &numElems) const
void debugOut(const char *msg)
int initFields(int numFields, const int *fieldSizes, const int *fieldIDs, const int *fieldTypes=NULL)
int resetRHSVector(double s=0.0)
std::vector< int > matrixIDs_
int loadComplete(bool applyBCs=true, bool globalAssemble=true)
int getBlockNodeIDList(GlobalID elemBlockID, int numNodes, GlobalID *nodeIDs)
void setDebugOutput(const char *path, const char *name)
int setCurrentRHS(int rhsID)
int setMatScalars(int numScalars, const int *IDs, const double *scalars)
int getNumBlockActEqns(GlobalID blockID, int &numEqns) const
int getNumBlockActNodes(GlobalID blockID, int &numNodes) const
int loadCRPen(int CRID, int numCRNodes, const GlobalID *CRNodes, const int *CRFields, const double *CRWeights, double CRValue, double penValue)
FEI_Implementation(const FEI_Implementation &src)
int initSlaveVariable(GlobalID slaveNodeID, int slaveFieldID, int offsetIntoSlaveField, int numMasterNodes, const GlobalID *masterNodeIDs, const int *masterFieldIDs, const double *weights, double rhsValue)
int getFieldSize(int fieldID, int &numScalars)
int cumulative_cpu_times(double &initTime, double &loadTime, double &solveTime, double &solnReturnTime)
int getNumSolnParams(GlobalID nodeID, int &numSolnParams) const
int getNodalFieldSolution(int fieldID, int numNodes, const GlobalID *nodeIDs, double *results)
FEI_Implementation & operator=(const FEI_Implementation &src)
void notAllocatedAbort(const char *name)
std::vector< int > numRHSIDs_
int resetMatrix(double s=0.0)
int getCRMultipliers(int numCRs, const int *CRIDs, double *multipliers)
bool initPhaseIsComplete_
int getLocalNodeIDList(int &numNodes, GlobalID *nodeIDs, int lenNodeIDs)
int initElemBlock(GlobalID elemBlockID, int numElements, int numNodesPerElement, const int *numFieldsPerNode, const int *const *nodalFieldIDs, int numElemDofFieldsPerElement, const int *elemDOFFieldIDs, int interleaveStrategy)
int getNumLocalNodes(int &numNodes)
int getNodalSolution(int numNodes, const GlobalID *nodeIDs, int *offsets, double *results)
std::ostream * dbgOStreamPtr_
int getParameters(int &numParams, char **¶mStrings)
SNL_FEI_Structure & getProblemStructure()
void messageAbort(const char *msg)
int getNumCRMultipliers(int &numMultCRs)
int residualNorm(int whichNorm, int numFields, int *fieldIDs, double *norms)
int resetSystem(double s=0.0)
int index_current_rhs_row_
std::vector< double > matScalars_
int loadCRMult(int CRID, int numCRNodes, const GlobalID *CRNodes, const int *CRFields, const double *CRWeights, double CRValue)
int putBlockNodeSolution(GlobalID elemBlockID, int numNodes, const GlobalID *nodeIDs, const int *offsets, const double *estimates)
int getNumNodesPerElement(GlobalID blockID, int &nodesPerElem) const
int sumIntoRHS(int IDType, int fieldID, int numIDs, const GlobalID *IDs, const double *rhsEntries)
int putBlockElemSolution(GlobalID elemBlockID, int numElems, const GlobalID *elemIDs, int dofPerElem, const double *estimates)
int putCRMultipliers(int numMultCRs, const int *CRIDs, const double *multEstimates)
int setRHSScalars(int numScalars, const int *IDs, const double *scalars)
SNL_FEI_Structure * problemStructure_
fei::SharedPtr< LinearSystemCore > linSysCore_
std::ofstream * dbgFStreamPtr_
std::vector< double * > rhsScalars_
#define FEI_Implementation