FEI Package Browser (Single Doxygen Collection)
Version of the Day
|
#include <fei_LinearSystem.hpp>
Classes | |
class | Factory |
Public Member Functions | |
LinearSystem (fei::SharedPtr< fei::MatrixGraph > &matrixGraph) | |
virtual | ~LinearSystem () |
virtual int | parameters (int numParams, const char *const *paramStrings)=0 |
virtual int | parameters (const fei::ParameterSet ¶ms)=0 |
virtual void | setMatrix (fei::SharedPtr< fei::Matrix > &matrix) |
virtual fei::SharedPtr < fei::Matrix > | getMatrix () |
virtual fei::SharedPtr< const fei::Matrix > | getMatrix () const |
virtual void | setRHS (fei::SharedPtr< fei::Vector > &rhs) |
virtual fei::SharedPtr < fei::Vector > | getRHS () |
virtual fei::SharedPtr< const fei::Vector > | getRHS () const |
virtual void | setSolutionVector (fei::SharedPtr< fei::Vector > &soln) |
virtual fei::SharedPtr < fei::Vector > | getSolutionVector () |
virtual fei::SharedPtr< const fei::Vector > | getSolutionVector () const |
virtual int | putAttribute (const char *name, void *attribute) |
virtual int | getAttribute (const char *name, void *&attribute) |
virtual int | loadEssentialBCs (int numIDs, const int *IDs, int idType, int fieldID, int offsetIntoField, const double *prescribedValues) |
virtual int | loadEssentialBCs (int numIDs, const int *IDs, int idType, int fieldID, const int *offsetsIntoField, const double *prescribedValues) |
virtual int | loadLagrangeConstraint (int constraintID, const double *weights, double rhsValue)=0 |
virtual int | loadPenaltyConstraint (int constraintID, const double *weights, double penaltyValue, double rhsValue)=0 |
virtual int | loadComplete (bool applyBCs=true, bool globalAssemble=true)=0 |
virtual int | setBCValuesOnVector (fei::Vector *vector)=0 |
virtual bool | eqnIsEssentialBC (int globalEqnIndex) const =0 |
virtual void | getEssentialBCs (std::vector< int > &bcEqns, std::vector< double > &bcVals) const =0 |
virtual void | getConstrainedEqns (std::vector< int > &crEqns) const =0 |
Protected Attributes | |
fei::SharedPtr< fei::Matrix > | matrix_ |
fei::SharedPtr< fei::Vector > | soln_ |
fei::SharedPtr< fei::Vector > | rhs_ |
fei::SharedPtr< fei::MatrixGraph > | matrixGraph_ |
fei::DirichletBCManager * | dbcManager_ |
std::vector< char * > | attributeNames_ |
std::vector< void * > | attributes_ |
A simple container to bind a matrix and two vectors together as the matrix, rhs and solution of a linear system.
Definition at line 26 of file fei_LinearSystem.hpp.
fei::LinearSystem::LinearSystem | ( | fei::SharedPtr< fei::MatrixGraph > & | matrixGraph | ) |
Constructor
Definition at line 17 of file fei_LinearSystem.cpp.
|
virtual |
Destructor
Definition at line 27 of file fei_LinearSystem.cpp.
|
pure virtual |
Set parameters on this object. Currently two parameters are recognized:
"debugOutput 'path'" where 'path' is the path to the location where debug-log files will be produced.
"name 'string'" where 'string' is an identifier that will be used in debug-log file-names.
Implemented in snl_fei::LinearSystem_General, and snl_fei::LinearSystem_FEData.
Referenced by beam_main(), main(), poisson3_main(), snl_fei_tester::setParameter(), test_LinearSystem::test3(), and snl_fei_tester::testLoading().
|
pure virtual |
Set parameters on this object.
Implemented in snl_fei::LinearSystem_General, and snl_fei::LinearSystem_FEData.
|
virtual |
Set the matrix for this linear system.
Definition at line 47 of file fei_LinearSystem.cpp.
Referenced by beam_main(), main(), poisson3_main(), test_LinearSystem::test2(), test_LinearSystem::test3(), test_LinearSystem::test4(), and snl_fei_tester::testLoading().
|
inlinevirtual |
Get the matrix for this linear system.
Definition at line 62 of file fei_LinearSystem.hpp.
References matrix_.
Referenced by fei_Solver_solve().
|
inlinevirtual |
Get the matrix for this linear system.
Definition at line 66 of file fei_LinearSystem.hpp.
References matrix_.
|
inlinevirtual |
Set the right-hand-side for this linear system.
Definition at line 71 of file fei_LinearSystem.hpp.
References rhs_.
Referenced by beam_main(), main(), poisson3_main(), test_LinearSystem::test2(), test_LinearSystem::test3(), test_LinearSystem::test4(), and snl_fei_tester::testLoading().
|
inlinevirtual |
Get the right-hand-side for this linear system.
Definition at line 75 of file fei_LinearSystem.hpp.
References rhs_.
|
inlinevirtual |
Get the right-hand-side for this linear system.
Definition at line 79 of file fei_LinearSystem.hpp.
References rhs_.
|
inlinevirtual |
Set the solution for this linear system.
Definition at line 84 of file fei_LinearSystem.hpp.
References soln_.
Referenced by beam_main(), main(), poisson3_main(), test_LinearSystem::test2(), test_LinearSystem::test3(), test_LinearSystem::test4(), and snl_fei_tester::testLoading().
|
inlinevirtual |
Get the solution for this linear system.
Definition at line 88 of file fei_LinearSystem.hpp.
References soln_.
|
inlinevirtual |
Get the solution for this linear system.
Definition at line 92 of file fei_LinearSystem.hpp.
References soln_.
|
virtual |
Store an attribute on this LinearSystem which can be retrieved later by name.
Definition at line 53 of file fei_LinearSystem.cpp.
References snl_fei::storeNamedAttribute().
|
virtual |
Retrieve an attribute which was previously stored.
Definition at line 62 of file fei_LinearSystem.cpp.
References snl_fei::retrieveNamedAttribute().
|
virtual |
Essential boundary-condition function that simply accepts a list of prescribed values, rather than the 'old' FEI's confusing approach of accepting arrays of alpha, beta and gamma values that nobody every really understood.
For each specified ID, a value is being prescribed for a specified fieldID and a specified offset into that field.
numIDs | |
IDs | |
idType | |
fieldID | |
offsetIntoField | |
prescribedValues | Input. List of values. Has length numIDs. |
Reimplemented in snl_fei::LinearSystem_General.
Definition at line 70 of file fei_LinearSystem.cpp.
References fei::DirichletBCManager::addBCRecords(), fei::console_out(), and FEI_ENDL.
Referenced by load_BC_data(), HexBeam_Functions::load_BC_data(), snl_fei::LinearSystem_General::loadEssentialBCs(), and snl_fei_tester::testLoading().
|
virtual |
Essential boundary-condition function that simply accepts a list of prescribed values, rather than the 'old' FEI's confusing approach of accepting arrays of alpha, beta and gamma values that nobody every really understood.
For each specified ID, a value is being prescribed for a specified fieldID and a specified offset into that field. The offset into the field can be different for each prescribed value.
numIDs | |
IDs | |
idType | |
fieldID | |
offsetsIntoField | Input. List of values, length numIDs. |
prescribedValues | Input. List of values. Has length numIDs. |
Reimplemented in snl_fei::LinearSystem_General.
Definition at line 94 of file fei_LinearSystem.cpp.
References fei::DirichletBCManager::addBCRecords(), fei::console_out(), and FEI_ENDL.
|
pure virtual |
Lagrange constraint coefficient loading function.
constraintID | Input. Must be an identifier of a lagrange constraint that was initialized on the fei::MatrixGraph object which was used to construct the matrix for this linear system. |
weights | Input. List, with length given by the sum of the sizes of the constrained fields. |
rhsValue |
Implemented in snl_fei::LinearSystem_General, and snl_fei::LinearSystem_FEData.
Referenced by HexBeam_Functions::load_constraints(), snl_fei_tester::loadConstraints(), test_LinearSystem::test2(), and test_LinearSystem::test4().
|
pure virtual |
Penalty constraint coefficient loading function.
constraintID | Input. Must be an identifier of a lagrange constraint that was initialized on the fei::MatrixGraph object which was used to construct the matrix for this linear system. |
weights | Input. List, with length given by the sum of the sizes of the constrained fields. |
penaltyValue | |
rhsValue |
Implemented in snl_fei::LinearSystem_General, and snl_fei::LinearSystem_FEData.
Referenced by snl_fei_tester::loadConstraints(), and test_LinearSystem::test3().
|
pure virtual |
Signal that all boundary-conditions and constraint coefficients have been
loaded, and they may now be applied to the linear system.
Implemented in snl_fei::LinearSystem_General, and snl_fei::LinearSystem_FEData.
Referenced by beam_main(), main(), poisson3_main(), test_LinearSystem::test2(), test_LinearSystem::test3(), test_LinearSystem::test4(), and snl_fei_tester::testLoading().
|
pure virtual |
Request that any boundary-condition values that have been provided via
loadEssentialBCs() be set in the specified vector.
Implemented in snl_fei::LinearSystem_General, and snl_fei::LinearSystem_FEData.
|
pure virtual |
Query whether a specified equation-index has a prescribed
essential boundary-condition.
Implemented in snl_fei::LinearSystem_FEData, and snl_fei::LinearSystem_General.
|
pure virtual |
Fill caller-supplied vectors with the global equation-indices (which
reside on the local processor) that have essential boundary-conditions prescribed, and fill a second vector with the prescribed values.
Implemented in snl_fei::LinearSystem_FEData, and snl_fei::LinearSystem_General.
|
pure virtual |
Fill a caller-supplied vector with the global equation-indices (which reside on the local processor) that are involved in constraint-relations.
Implemented in snl_fei::LinearSystem_FEData, and snl_fei::LinearSystem_General.
Referenced by test_LinearSystem::test2().
|
protected |
Definition at line 205 of file fei_LinearSystem.hpp.
Referenced by getMatrix().
|
protected |
Definition at line 206 of file fei_LinearSystem.hpp.
Referenced by getSolutionVector(), and setSolutionVector().
|
protected |
Definition at line 207 of file fei_LinearSystem.hpp.
|
protected |
Definition at line 209 of file fei_LinearSystem.hpp.
|
protected |
Definition at line 210 of file fei_LinearSystem.hpp.
|
protected |
Definition at line 212 of file fei_LinearSystem.hpp.
|
protected |
Definition at line 213 of file fei_LinearSystem.hpp.