1 #ifndef _fei_FEDataFilter_hpp_
2 #define _fei_FEDataFilter_hpp_
50 const int* offsetsIntoField,
51 const double* prescribedValues);
56 const double *
const *alpha,
57 const double *
const *beta,
58 const double *
const *gamma);
63 const double*
const* elemStiffness,
64 const double* elemLoad,
70 const double*
const* elemStiffness,
76 const double* elemLoad);
82 const double* CRWeights,
89 const double* CRWeights,
97 const double* rhsEntries);
103 const double* rhsEntries);
109 const double* coefficients);
114 int parameters(
int numParams,
const char *
const* paramStrings);
118 int* fieldIDs,
double* norms,
double& residTime);
121 int solve(
int& status,
double& sTime);
151 int& numElemDOFPerElement,
171 const double *estimates);
178 const double *estimates);
185 const double *estimates);
189 const double *multEstimates);
204 const double* nodeData);
209 const double* nodeData);
221 const double* gamma,
int numEqns);
238 const double* CRWeights,
245 const double* CRWeights,
251 const double*
const* elemStiffness,
252 const double* elemLoad,
258 const double*
const* elemStiffness,
259 const double* elemLoad,
265 int numPtCols,
const int* ptCols,
266 const double*
const* values,
270 int numPtCols,
const int* ptCols,
271 const double*
const* values,
275 const int* rowColOffsets,
const int* ptCols,
276 int numColsPerRow,
double** values);
282 int giveToRHS(
int num,
const double* values,
283 const int* indices,
int mode);
286 const int* indices,
int mode);
288 int getFromRHS(
int num,
double* values,
const int* indices);
296 int formResidual(
double* residValues,
int numLocalEqns);
306 const int* rowNumbers,
307 const int* colIndices,
308 const double*
const* coefs,
309 bool structurallySymmetric,
312 int assembleRHS(
int numValues,
const int* indices,
const double* coefs,
int mode);
int loadFEDataMultCR(int CRID, int numCRNodes, const GlobalID *CRNodes, const int *CRFields, const double *CRWeights, double CRValue)
FEDataFilter(FEI_Implementation *owner, MPI_Comm comm, SNL_FEI_Structure *probStruct, LibraryWrapper *wrapper, int masterRank=0)
int resetMatrix(double s)
int sumIntoMatrixDiagonal(int IDType, int fieldID, int numIDs, const GlobalID *IDs, const double *coefficients)
int putIntoRHS(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 getReducedSolnEntry(int eqnNumber, double &solnValue)
int getRemoteSharedEqns(int numPtRows, const int *ptRows, ProcEqns &remoteProcEqns)
std::vector< int > rhsIDs_
FEDataFilter & operator=(const FEDataFilter &src)
int sumInElemMatrix(GlobalID elemBlockID, GlobalID elemID, const GlobalID *elemConn, const double *const *elemStiffness, int elemFormat)
int getBlockElemSolution(GlobalID elemBlockID, int numElems, const GlobalID *elemIDs, int &numElemDOFPerElement, double *results)
int resetTheRHSVector(double s)
int loadCRPen(int CRPenID, int numCRNodes, const GlobalID *CRNodes, const int *CRFields, const double *CRWeights, double CRValue, double penValue)
int setCurrentRHS(int rhsID)
int resetRHSVector(double s)
int getFromMatrix(int numPtRows, const int *ptRows, const int *rowColOffsets, const int *ptCols, int numColsPerRow, double **values)
int putBlockFieldNodeSolution(GlobalID elemBlockID, int fieldID, int numNodes, const GlobalID *nodeIDs, const double *estimates)
int getNodalFieldSolution(int fieldID, int numNodes, const GlobalID *nodeIDs, double *results)
int putNodalFieldSolution(int fieldID, int numNodes, const GlobalID *nodeIDs, const double *nodeData)
void setEqnCommMgr(EqnCommMgr *eqnCommMgr)
std::vector< int > packedFieldSizes_
int enforceEssentialBCs(const int *eqns, const double *alpha, const double *gamma, int numEqns)
int parameters(int numParams, const char *const *paramStrings)
int setNumRHSVectors(int numRHSs, int *rhsIDs)
std::vector< int > rowIndices_
int loadNodeBCs(int numNodes, const GlobalID *nodeIDs, int fieldID, const int *offsetsIntoField, const double *prescribedValues)
int giveToLocalReducedMatrix(int numPtRows, const int *ptRows, int numPtCols, const int *ptCols, const double *const *values, int mode)
std::vector< int > rowColOffsets_
int giveToLocalReducedRHS(int num, const double *values, const int *indices, int mode)
int getSharedRemoteSolnEntry(int eqnNumber, double &solnValue)
int giveToMatrix(int numPtRows, const int *ptRows, int numPtCols, const int *ptCols, const double *const *values, int mode)
int assembleEqns(int numPtRows, int numPtCols, const int *rowNumbers, const int *colIndices, const double *const *coefs, bool structurallySymmetric, int mode)
int getEqnsFromMatrix(ProcEqns &procEqns, EqnBuffer &eqnData)
int residualNorm(int whichNorm, int numFields, int *fieldIDs, double *norms, double &residTime)
int getEqnsFromRHS(ProcEqns &procEqns, EqnBuffer &eqnData)
int putBlockNodeSolution(GlobalID elemBlockID, int numNodes, const GlobalID *nodeIDs, const int *offsets, const double *estimates)
int solve(int &status, double &sTime)
int sumInElemRHS(GlobalID elemBlockID, GlobalID elemID, const GlobalID *elemConn, const double *elemLoad)
fei::SharedPtr< FiniteElementData > feData_
int resetTheMatrix(double s)
int createEqnCommMgr_put()
int formResidual(double *residValues, int numLocalEqns)
int resetSystem(double s)
int getBlockFieldNodeSolution(GlobalID elemBlockID, int fieldID, int numNodes, const GlobalID *nodeIDs, double *results)
void debugOutput(const char *mesg)
int generalElemInput(GlobalID elemBlockID, GlobalID elemID, const double *const *elemStiffness, const double *elemLoad, int elemFormat)
int getFromRHS(int num, double *values, const int *indices)
int getNodalSolution(int numNodes, const GlobalID *nodeIDs, int *offsets, double *results)
int resetInitialGuess(double s)
int loadCRMult(int CRMultID, int numCRNodes, const GlobalID *CRNodes, const int *CRFields, const double *CRWeights, double CRValue)
EqnCommMgr * eqnCommMgr_put_
int assembleRHS(int numValues, const int *indices, const double *coefs, int mode)
std::vector< int > colIndices_
int sumInElem(GlobalID elemBlockID, GlobalID elemID, const GlobalID *elemConn, const double *const *elemStiffness, const double *elemLoad, int elemFormat)
int putNodalFieldData(int fieldID, int numNodes, const GlobalID *nodeIDs, const double *nodeData)
int loadElemBCs(int numElems, const GlobalID *elemIDs, int fieldID, const double *const *alpha, const double *const *beta, const double *const *gamma)
LibraryWrapper * wrapper_
int giveToRHS(int num, const double *values, const int *indices, int mode)
int putCRMultipliers(int numMultCRs, const int *CRIDs, const double *multEstimates)
int getBlockNodeSolution(GlobalID elemBlockID, int numNodes, const GlobalID *nodeIDs, int *offsets, double *results)
SNL_FEI_Structure * problemStructure_
int loadFEDataPenCR(int CRID, int numCRNodes, const GlobalID *CRNodes, const int *CRFields, const double *CRWeights, double CRValue, double penValue)
std::vector< GlobalID > penCRIDs_
int getCRMultipliers(int numCRs, const int *CRIDs, double *multipliers)
std::vector< int > constraintNodeOffsets_
EqnCommMgr * getEqnCommMgr()
std::vector< int > constraintBlocks_
int sumIntoRHS(int IDType, int fieldID, int numIDs, const GlobalID *IDs, const double *rhsEntries)
int getEqnSolnEntry(int eqnNumber, double &solnValue)