32 #ifndef _OMS_ALGLOOP_H_ 33 #define _OMS_ALGLOOP_H_ 40 #include <kinsol/kinsol.h> 41 #include <nvector/nvector_serial.h> 42 #include <sunlinsol/sunlinsol_dense.h> 59 static KinsolSolver* NewKinsolSolver(
const int algLoopNum,
const unsigned int size,
double absoluteTolerance);
83 static int nlsKinsolResiduals(N_Vector uu, N_Vector fval,
void *userData);
84 static void sundialsErrorHandlerFunction(
int error_code,
const char *module,
const char *
function,
char *msg,
void *userData);
85 static void sundialsInfoHandlerFunction(
const char *module,
const char *
function,
char *msg,
void *userData);
95 std::string getAlgSolverName();
111 #endif // _OMS_ALGLOOP_H_ void * userData
Definition: AlgLoop.h:74
SUNMatrix J
Definition: AlgLoop.h:80
struct oms::KINSOL_USER_DATA KINSOL_USER_DATA
int size
Definition: AlgLoop.h:75
std::vector< std::pair< int, int > > oms_ssc_t
Strong connected components data type.
Definition: DirectedGraph.h:51
void * kinsolMemory
Definition: AlgLoop.h:73
N_Vector fTmp
Definition: AlgLoop.h:70
N_Vector uScale
Definition: AlgLoop.h:68
oms_status_enu_t
Definition: Types.h:43
N_Vector initialGuess
Definition: AlgLoop.h:67
oms_ssc_t getSCC()
Definition: AlgLoop.h:93
const oms_ssc_t SCC
Strong connected components.
Definition: AlgLoop.h:105
N_Vector fScale
Definition: AlgLoop.h:69
double fnormtol
Definition: AlgLoop.h:64
const int algLoopNumber
Definition: AlgLoop.h:52
oms_alg_solver_enu_t
Definition: Types.h:110
N_Vector y
Definition: AlgLoop.h:79
SUNLinearSolver linSol
Definition: AlgLoop.h:78
KinsolSolver * kinsolData
Definition: AlgLoop.h:102
System * syst
Definition: AlgLoop.h:50
const int systNumber
Definition: AlgLoop.h:106
oms_alg_solver_enu_t algSolverMethod
Definition: AlgLoop.h:99
DirectedGraph * graph
Definition: AlgLoop.h:51
Definition: DirectedGraph.h:55
double absoluteTolerance
Definition: AlgLoop.h:107