#include <AlgLoop.h>
|
| static KinsolSolver * | NewKinsolSolver (const int algLoopNum, const unsigned int size, double relativeTolerance, const bool useDirectionalDerivative) |
| | Create new oms::KinsolSolver::KinsolSolver object.
|
| |
|
| static int | nlsKinsolJac (N_Vector u, N_Vector fu, SUNMatrix J, void *user_data, N_Vector tmp1, N_Vector tmp2) |
| | Jacobian function for KINSOL.
|
| |
| static int | nlsKinsolResiduals (N_Vector u, N_Vector fval, void *user_data) |
| | Residual function for KINSOL.
|
| |
| static void | sundialsErrorHandlerFunction (int line, const char *func, const char *file, const char *msg, SUNErrCode err_code, void *err_user_data, SUNContext sunctx) |
| | Error handler function of type SUNErrHandlerFn.
|
| |
◆ ~KinsolSolver()
| oms::KinsolSolver::~KinsolSolver |
( |
| ) |
|
Destroy the oms::KinsolSolver::KinsolSolver object.
◆ kinsolSolve()
Solve algebraic system with KINSOL.
- Parameters
-
| syst | Reference to System object |
| graph | Reference to graph opbject |
- Returns
- oms_status_enu_t Return
oms_status_ok on success, oms_status_warning if solving was computed, but solution is not within tolerance and oms_status_error if an error occured.
◆ NewKinsolSolver()
| oms::KinsolSolver * oms::KinsolSolver::NewKinsolSolver |
( |
const int |
algLoopNum, |
|
|
const unsigned int |
size, |
|
|
double |
relativeTolerance, |
|
|
const bool |
useDirectionalDerivative |
|
) |
| |
|
static |
Create new oms::KinsolSolver::KinsolSolver object.
- Parameters
-
| algLoopNum | Number of algebraic loop |
| size | Dimension of algebraic loop |
| relativeTolerance | Tolerance used for solving the loop |
- Returns
- oms::KinsolSolver* Retruns pointer to KinsolSolver object
◆ nlsKinsolJac()
| int oms::KinsolSolver::nlsKinsolJac |
( |
N_Vector |
u, |
|
|
N_Vector |
fu, |
|
|
SUNMatrix |
J, |
|
|
void * |
user_data, |
|
|
N_Vector |
tmp1, |
|
|
N_Vector |
tmp2 |
|
) |
| |
|
staticprivate |
Jacobian function for KINSOL.
- Parameters
-
| u | is the current (unscaled) iterate |
| fu | is the current value of the vector F(u) |
| J | is the output approximate Jacobian matrix, J = ∂F/∂u, of type SUNMatrix |
| data | is a pointer to user data, the same as the user data parameter passed to KINSetUserData |
| tmp1 | pointer to memory allocated for variables of type N_Vector which can be used by the KINJacFn function as temporary storage or work space |
| tmp2 | pointer to memory allocated for variables of type N_Vector which can be used by the KINJacFn function as temporary storage or work space |
- Returns
- int A function of type KINLsJacFn should return 0 if successful or a non-zero value otherwise
◆ nlsKinsolResiduals()
| int oms::KinsolSolver::nlsKinsolResiduals |
( |
N_Vector |
u, |
|
|
N_Vector |
fval, |
|
|
void * |
user_data |
|
) |
| |
|
staticprivate |
Residual function for KINSOL.
This function computes F(u) (or G(u) for fixed-point iteration and Anderson acceleration) for a given value of the vector u.
- Parameters
-
| u | is the current value of the variable vector, u |
| fval | is the output vector F(u) |
| user_data | a is a pointer to user data, the pointer user data passed to KINSetUserData |
- Returns
- int A KINSysFn function should return 0 if successful, a positive value if a recoverable error occurred (in which case kinsol will attempt to correct), or a negative value if it failed unrecoverably (in which case the solution process is halted and KIN SYSFUNC FAIL is returned).
◆ sundialsErrorHandlerFunction()
| void oms::KinsolSolver::sundialsErrorHandlerFunction |
( |
int |
line, |
|
|
const char * |
func_name, |
|
|
const char * |
file, |
|
|
const char * |
msg, |
|
|
SUNErrCode |
err_code, |
|
|
void * |
err_user_data, |
|
|
SUNContext |
sunctx |
|
) |
| |
|
staticprivate |
Error handler function of type SUNErrHandlerFn.
Pushed onto the error handler stack of the SUNDIALS context, so it is called for errors reported by KINSOL and by any other SUNDIALS module created with that context.
- Parameters
-
| line | Line number in the SUNDIALS source file where the error occurred. |
| func_name | Name of the SUNDIALS function in which the error occurred. |
| file | Name of the SUNDIALS source file where the error occurred. |
| msg | Error message. Can be NULL, in which case the message belonging to err_code is used. |
| err_code | Error code. Either a SUNErrCode or a package level code, e.g. one of the KIN_* constants. |
| err_user_data | Pointer to user data given to SUNContext_PushErrHandler(), a KINSOL_USER_DATA pointer. Can be NULL. |
| sunctx | SUNDIALS context reporting the error. Unused. |
◆ fnormtol
| double oms::KinsolSolver::fnormtol = 0.0 |
|
private |
◆ fScale
| N_Vector oms::KinsolSolver::fScale = nullptr |
|
private |
◆ fTmp
| N_Vector oms::KinsolSolver::fTmp = nullptr |
|
private |
◆ initialGuess
| N_Vector oms::KinsolSolver::initialGuess = nullptr |
|
private |
| SUNMatrix oms::KinsolSolver::J = nullptr |
|
private |
◆ kinsolMemory
| void* oms::KinsolSolver::kinsolMemory = nullptr |
|
private |
◆ linSol
| SUNLinearSolver oms::KinsolSolver::linSol = nullptr |
|
private |
◆ size
| int oms::KinsolSolver::size = 0 |
|
private |
◆ sunctx
| SUNContext oms::KinsolSolver::sunctx = nullptr |
|
private |
◆ uScale
| N_Vector oms::KinsolSolver::uScale = nullptr |
|
private |
◆ user_data
| void* oms::KinsolSolver::user_data = nullptr |
|
private |
| N_Vector oms::KinsolSolver::y = nullptr |
|
private |
The documentation for this class was generated from the following files:
- /var/lib/jenkins1/ws/OMSimulator_PR-1619/src/OMSimulatorLib/AlgLoop.h
- /var/lib/jenkins1/ws/OMSimulator_PR-1619/src/OMSimulatorLib/AlgLoop.cpp