FEI Package Browser (Single Doxygen Collection)
Version of the Day
|
#include <FEData.hpp>
Public Member Functions | |
FEData (MPI_Comm comm) | |
virtual | ~FEData () |
int | parameters (int numParams, char **params) |
int | setLookup (Lookup &lookup) |
int | describeStructure (int numElemBlocks, const int *numElemsPerBlock, const int *numNodesPerElem, const int *elemMatrixSizePerBlock, int totalNumNodes, int numSharedNodes, int numMultCRs) |
int | setConnectivity (int elemBlockID, int elemID, int numNodes, const int *nodeNumbers, const int *numDofPerNode, const int *dof_ids) |
int | setElemMatrix (int elemBlockID, int elemID, int numNodes, const int *nodeNumbers, const int *dofPerNode, const int *dof_ids, const double *const *coefs) |
int | setElemVector (int elemBlockID, int elemID, int numNodes, const int *nodeNumbers, const int *dofPerNode, const int *dof_ids, const double *coefs) |
int | setDirichletBCs (int numBCs, const int *nodeNumbers, const int *dofOffsets, const double *values) |
int | sumIntoMatrix (int numRowNodes, const int *rowNodeNumbers, const int *rowDofOffsets, const int *numColNodesPerRow, const int *colNodeNumbers, const int *colDofOffsets, const double *coefs) |
int | sumIntoRHSVector (int numNodes, const int *nodeNumbers, const int *dofOffsets, const double *coefs) |
int | putIntoRHSVector (int numNodes, const int *nodeNumbers, const int *dofOffsets, const double *coefs) |
int | loadComplete () |
int | launchSolver (int &solveStatus, int &iterations) |
int | reset () |
int | resetRHSVector () |
int | resetMatrix () |
int | deleteConstraints () |
int | getSolnEntry (int nodeNumber, int dofOffset, double &value) |
int | getMultiplierSoln (int CRID, double &lagrangeMultiplier) |
int | putNodalFieldData (int fieldID, int fieldSize, int numNodes, const int *nodeNumbers, const double *coefs) |
int | setMultiplierCR (int CRID, int numNodes, const int *nodeNumbers, const int *dofOffsets, const double *coefWeights, double rhsValue) |
int | setPenaltyCR (int CRID, int numNodes, const int *nodeNumbers, const int *dofOffsets, const double *coefWeights, double penaltyValue, double rhsValue) |
Public Member Functions inherited from FiniteElementData | |
virtual | ~FiniteElementData () |
Private Member Functions | |
int | setDebugLog (int debugOutputLevel, const char *path) |
Private Attributes | |
MPI_Comm | comm_ |
int | numProcs_ |
int | localProc_ |
int | debugOutputLevel_ |
char * | dbgPath_ |
FEI_OSTREAM * | dbgOStreamPtr_ |
bool | dbgFileOpened_ |
FEI_OFSTREAM * | dbgFStreamPtr_ |
Simply a test harness to use for checking the FEI layer's usage of the FiniteElementData interface.
Definition at line 28 of file FEData.hpp.
|
inline |
Constructor.
Definition at line 31 of file FEData.hpp.
References comm_, localProc_, MPI_Abort, MPI_SUCCESS, numProcs_, and setDebugLog().
|
inlinevirtual |
Definition at line 46 of file FEData.hpp.
References dbgFileOpened_, dbgFStreamPtr_, dbgOStreamPtr_, and dbgPath_.
|
virtual |
For setting argc/argv style parameters.
numParams | Number of strings in the params argument |
params | A list of strings which will usually contain space-separated key-value pairs. Example: "debugOutput /usr/users/me/work_dir" |
Implements FiniteElementData.
Definition at line 20 of file FEData.cpp.
References dbgOut, FEI_ENDL, snl_fei::getParamValue(), and setDebugLog().
|
inlinevirtual |
Supply the FiniteElementData implementation with an object (created and owned by the caller) that can be used to obtain various information about problem layout, shared finite-element nodes, etc. For details, see the documentation for the Lookup interface.
lookup | Input. Reference to an implementation of the Lookup interface |
Implements FiniteElementData.
Definition at line 68 of file FEData.hpp.
|
inlinevirtual |
For describing the general structure of the finite-element problem that is to be assembled.
Implements FiniteElementData.
Definition at line 78 of file FEData.hpp.
|
inlinevirtual |
For passing element-connectivity arrays.
Implements FiniteElementData.
Definition at line 100 of file FEData.hpp.
|
inlinevirtual |
For passing element-stiffness arrays.
elemBlockID | Identifier for the element-block that these elements belong to. |
elemID | Locally zero-based identifier for this element. |
numNodes | Number of nodes on this element. |
nodeNumbers | List of length numNodes |
numDofPerNode | List of length numNodes. |
dof_ids | List of length sum(numDofPerNode[i]) |
coefs | C-style table (list of pointers). Each row of the table is of length sum(dofPerNode[i]), and that is also the number of rows. |
Implements FiniteElementData.
Definition at line 126 of file FEData.hpp.
|
inlinevirtual |
For passing element-load vectors.
elemBlockID | Identifier for the element-block that this element belongs to. |
elemID | Locally zero-based identifier for this element. |
numNodes | Number of nodes on this element. |
nodeNumbers | |
numDofPerNode | |
dof_ids | |
coefs | Packed list, length sum(dofPerNode[i]). |
Implements FiniteElementData.
Definition at line 161 of file FEData.hpp.
|
inlinevirtual |
Specify dirichlet boundary-condition values.
numBCs | Number of boundary-condition values. |
nodeNumbers | List of length numBCs. |
dof_ids | List of length numBCs. |
values | List of length numBCs. |
Implements FiniteElementData.
Definition at line 191 of file FEData.hpp.
|
inlinevirtual |
Sum coefficients into the matrix. This may be used to pass a dense rectangular block of coefs, or a diagonal band of coefs, or an arbitrary sparse block of coefs.
numRowNodes | |
rowNodeNumbers | List of length numRowNodes |
row_dof_ids | List of length numRowNodes |
numColNodesPerRow | List of length numRowNodes |
colNodeNumbers | List of length sum(numColNodesPerRow[i]) |
col_dof_ids | List of length sum(numColNodesPerRow[i]) |
coefs | List of length sum(numColNodesPerRow[i]) |
Implements FiniteElementData.
Definition at line 206 of file FEData.hpp.
|
inlinevirtual |
Implements FiniteElementData.
Definition at line 230 of file FEData.hpp.
|
inlinevirtual |
Implements FiniteElementData.
Definition at line 244 of file FEData.hpp.
|
inlinevirtual |
Function called to signal to the FiniteElementData implementation that data-loading is complete and any synchronization or other final operations may be performed now. This is a collective function, must be called by all processors.
Implements FiniteElementData.
Definition at line 258 of file FEData.hpp.
|
inlinevirtual |
Function called to request the launching of the linear solver.
solveStatus | Output, should indicate the status of the solve. A successful solve is usually indicated by a value of 0. |
iterations | Output, how many iterations were performed. |
Implements FiniteElementData.
Definition at line 274 of file FEData.hpp.
|
inlinevirtual |
Function to signal that all coefficient values should be zero'd in preparation for a new assemble/solve phase. This is to handle cases where no structural information is changing from one time-step to the next, but new coefficient values need to be loaded for the next solve.
Implements FiniteElementData.
Definition at line 284 of file FEData.hpp.
|
inline |
Definition at line 290 of file FEData.hpp.
|
inline |
Definition at line 296 of file FEData.hpp.
|
inlinevirtual |
Function to signal that lagrange multiplier constraints should be deleted.
Implements FiniteElementData.
Definition at line 302 of file FEData.hpp.
|
inlinevirtual |
Get solution value from the underlying solver.
nodeNumber | |
dof_id | |
value |
Implements FiniteElementData.
Definition at line 308 of file FEData.hpp.
|
inlinevirtual |
Get solution value of a Lagrange Multiplier from the solver.
Implements FiniteElementData.
Definition at line 320 of file FEData.hpp.
|
inlinevirtual |
Pass nodal data that probably doesn't mean anything to the FEI implementation, but may mean something to the linear solver. Examples: geometric coordinates, nullspace data, etc.
fieldID | Identifier for the field that describes this data. Lists of field identifiers and field sizes defined for the finite-element problem may be obtained from the Lookup interface that is supplied to the ESI_Broker by the FEI implementation. |
nodeNumbers | List of nodes for which data is being supplied. |
numNodes | |
data | List of length numNodes * (size of field 'fieldID') |
Implements FiniteElementData.
Definition at line 337 of file FEData.hpp.
|
inlinevirtual |
Specify lagrange-multipler constraint-relation.
Implements FiniteElementData.
Definition at line 357 of file FEData.hpp.
|
inlinevirtual |
Specify penalty constraint-relation.
Implements FiniteElementData.
Definition at line 375 of file FEData.hpp.
|
private |
Definition at line 37 of file FEData.cpp.
References dbgFileOpened_, dbgFStreamPtr_, dbgOStreamPtr_, dbgPath_, debugOutputLevel_, FEI_OFSTREAM, FEI_OSTRINGSTREAM, localProc_, and numProcs_.
Referenced by FEData(), and parameters().
|
private |
Definition at line 398 of file FEData.hpp.
Referenced by FEData().
|
private |
Definition at line 399 of file FEData.hpp.
Referenced by FEData(), and setDebugLog().
|
private |
Definition at line 399 of file FEData.hpp.
Referenced by FEData(), and setDebugLog().
|
private |
Definition at line 401 of file FEData.hpp.
Referenced by setDebugLog().
|
private |
Definition at line 402 of file FEData.hpp.
Referenced by setDebugLog(), and ~FEData().
|
private |
Definition at line 403 of file FEData.hpp.
Referenced by setDebugLog(), and ~FEData().
|
private |
Definition at line 404 of file FEData.hpp.
Referenced by setDebugLog(), and ~FEData().
|
private |
Definition at line 405 of file FEData.hpp.
Referenced by setDebugLog(), and ~FEData().