FEData Class Reference

#include <FEData.hpp>

Inheritance diagram for FEData:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 FEData (MPI_Comm comm)
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 loadComplete ()
int launchSolver (int &solveStatus, int &iterations)
int reset ()
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)

Detailed Description

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.


Constructor & Destructor Documentation

FEData::FEData ( MPI_Comm  comm  )  [inline]

Constructor.

Definition at line 31 of file FEData.hpp.


Member Function Documentation

int FEData::parameters ( int  numParams,
char **  params 
) [virtual]

For setting argc/argv style parameters.

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.

int FEData::setLookup ( Lookup lookup  )  [inline, virtual]

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.

Parameters:
lookup Input. Reference to an implementation of the Lookup interface

Implements FiniteElementData.

Definition at line 68 of file FEData.hpp.

int FEData::describeStructure ( int  numElemBlocks,
const int *  numElemsPerBlock,
const int *  numNodesPerElem,
const int *  elemMatrixSizePerBlock,
int  totalNumNodes,
int  numSharedNodes,
int  numMultCRs 
) [inline, virtual]

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.

int FEData::setConnectivity ( int  elemBlockID,
int  elemID,
int  numNodes,
const int *  nodeNumbers,
const int *  numDofPerNode,
const int *  dof_ids 
) [inline, virtual]

For passing element-connectivity arrays.

Implements FiniteElementData.

Definition at line 100 of file FEData.hpp.

int FEData::setElemMatrix ( int  elemBlockID,
int  elemID,
int  numNodes,
const int *  nodeNumbers,
const int *  numDofPerNode,
const int *  dof_ids,
const double *const *  coefs 
) [inline, virtual]

For passing element-stiffness arrays.

Parameters:
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.

int FEData::setElemVector ( int  elemBlockID,
int  elemID,
int  numNodes,
const int *  nodeNumbers,
const int *  numDofPerNode,
const int *  dof_ids,
const double *  coefs 
) [inline, virtual]

For passing element-load vectors.

Parameters:
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.

int FEData::setDirichletBCs ( int  numBCs,
const int *  nodeNumbers,
const int *  dof_ids,
const double *  values 
) [inline, virtual]

Specify dirichlet boundary-condition values.

Parameters:
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.

int FEData::sumIntoMatrix ( int  numRowNodes,
const int *  rowNodeNumbers,
const int *  row_dof_ids,
const int *  numColNodesPerRow,
const int *  colNodeNumbers,
const int *  col_dof_ids,
const double *  coefs 
) [inline, virtual]

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.

Parameters:
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.

int FEData::loadComplete (  )  [inline, virtual]

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.

Returns:
error-code 0 if successful

Implements FiniteElementData.

Definition at line 258 of file FEData.hpp.

int FEData::launchSolver ( int &  solveStatus,
int &  iterations 
) [inline, virtual]

Function called to request the launching of the linear solver.

Parameters:
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.
Returns:
error-code, 0 if convergence tolerance was achieved within the specified maximum number of iterations. If error return is non-zero, the calling application will be expected to check solveStatus, and consult the solver-library's documentation to figure out exactly what happened.

Implements FiniteElementData.

Definition at line 274 of file FEData.hpp.

int FEData::reset (  )  [inline, virtual]

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.

int FEData::deleteConstraints (  )  [inline, virtual]

Function to signal that lagrange multiplier constraints should be deleted.

Implements FiniteElementData.

Definition at line 302 of file FEData.hpp.

int FEData::getSolnEntry ( int  nodeNumber,
int  dof_id,
double &  value 
) [inline, virtual]

Get solution value from the underlying solver.

Parameters:
nodeNumber 
dof_id 
value 

Implements FiniteElementData.

Definition at line 308 of file FEData.hpp.

int FEData::getMultiplierSoln ( int  CRID,
double &  lagrangeMultiplier 
) [inline, virtual]

Get solution value of a Lagrange Multiplier from the solver.

Implements FiniteElementData.

Definition at line 320 of file FEData.hpp.

int FEData::putNodalFieldData ( int  fieldID,
int  fieldSize,
int  numNodes,
const int *  nodeNumbers,
const double *  coefs 
) [inline, virtual]

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.

Parameters:
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.

int FEData::setMultiplierCR ( int  CRID,
int  numNodes,
const int *  nodeNumbers,
const int *  dof_ids,
const double *  coefWeights,
double  rhsValue 
) [inline, virtual]

Specify lagrange-multipler constraint-relation.

Implements FiniteElementData.

Definition at line 357 of file FEData.hpp.

int FEData::setPenaltyCR ( int  CRID,
int  numNodes,
const int *  nodeNumbers,
const int *  dof_ids,
const double *  coefWeights,
double  penaltyValue,
double  rhsValue 
) [inline, virtual]

Specify penalty constraint-relation.

Implements FiniteElementData.

Definition at line 375 of file FEData.hpp.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends
Generated on Wed Apr 13 10:08:25 2011 for FEI by  doxygen 1.6.3