9 #include <fei_macros.hpp>
11 #include <fei_Solver.hpp>
13 #include <fei_Matrix_Impl.hpp>
14 #include <fei_MatrixReducer.hpp>
15 #include <snl_fei_LinearSystem_FEData.hpp>
16 #include <fei_ParameterSet.hpp>
17 #include <fei_utils.hpp>
20 #define fei_file "fei_Solver.cpp"
21 #include <fei_ErrMacros.hpp>
27 const char*
const* solverParams,
35 fei::MatrixReducer* matred =
dynamic_cast<fei::MatrixReducer*
>(matrix.
get());
40 if (lscmatrix != NULL) {
43 char** params =
const_cast<char**
>(solverParams);
44 CHK_ERR( linSysCore->
parameters(numParams, params) );
46 CHK_ERR( linSysCore->
launchSolver(status, iterationsTaken) );
53 if (fedlinsys != NULL) {
56 CHK_ERR( fedata->
launchSolver(status, iterationsTaken) );
72 const char** paramStrings = NULL;
73 std::vector<std::string> stdstrings;
77 int err = fei_Solver_solve(linearSystem, preconditioningMatrix,
78 numParams, paramStrings,
79 iterationsTaken, status);
81 delete [] paramStrings;
void strings_to_char_ptrs(std::vector< std::string > &stdstrings, int &numStrings, const char **&charPtrs)
virtual fei::SharedPtr< fei::Matrix > getMatrix()
void convert_ParameterSet_to_strings(const fei::ParameterSet *paramset, std::vector< std::string > ¶mStrings)
fei::SharedPtr< T > getMatrix()
virtual int launchSolver(int &solveStatus, int &iterations)=0
fei::SharedPtr< FiniteElementData > getFiniteElementData()
virtual int solve(fei::LinearSystem *linearSystem, fei::Matrix *preconditioningMatrix, const fei::ParameterSet ¶meterSet, int &iterationsTaken, int &status)
virtual int parameters(int numParams, const char *const *params)=0
virtual int launchSolver(int &solveStatus, int &iterations)=0