* block vectors are used), and MPI communicator (if the vector is
* distributed across multiple processors using MPI), along with any
* other properties necessary.
+ *
+ * @note This variable represents a
+ * @ref GlossUserProvidedCallBack "user provided callback".
+ * See there for a description of how to deal with errors and other
+ * requirements and conventions. In particular, KINSOL can deal
+ * with "recoverable" errors in some circumstances, so callbacks
+ * can throw exceptions of type RecoverableUserCallbackError.
*/
std::function<void(VectorType &)> reinit_vector;
* SolutionStrategy::newton, SolutionStrategy::linesearch, or
* SolutionStrategy::picard strategies were selected.
*
- * This function should return:
- * - 0: Success
- * - >0: Recoverable error (KINSOL will try to change its internal
- * parameters and attempt a new solution step)
- * - <0: Unrecoverable error the computation will be aborted and an
- * assertion will be thrown.
+ * @note This variable represents a
+ * @ref GlossUserProvidedCallBack "user provided callback".
+ * See there for a description of how to deal with errors and other
+ * requirements and conventions. In particular, KINSOL can deal
+ * with "recoverable" errors in some circumstances, so callbacks
+ * can throw exceptions of type RecoverableUserCallbackError.
*/
std::function<void(const VectorType &src, VectorType &dst)> residual;
* iteration. This function is only used if the
* SolutionStrategy::fixed_point strategy is selected.
*
- * This function should return:
- * - 0: Success
- * - >0: Recoverable error (KINSOL will try to change its internal
- * parameters and attempt a new solution step)
- * - <0: Unrecoverable error; the computation will be aborted and an
- * assertion will be thrown.
+ * @note This variable represents a
+ * @ref GlossUserProvidedCallBack "user provided callback".
+ * See there for a description of how to deal with errors and other
+ * requirements and conventions. In particular, KINSOL can deal
+ * with "recoverable" errors in some circumstances, so callbacks
+ * can throw exceptions of type RecoverableUserCallbackError.
*/
std::function<void(const VectorType &src, VectorType &dst)>
iteration_function;
* @param current_u Current value of $u$
* @param current_f Current value of $F(u)$ or $G(u)$
*
- * This function should return:
- * - 0: Success
- * - >0: Recoverable error (KINSOL will try to change its internal
- * parameters and attempt a new solution step)
- * - <0: Unrecoverable error the computation will be aborted and an
- * assertion will be thrown.
+ * @note This variable represents a
+ * @ref GlossUserProvidedCallBack "user provided callback".
+ * See there for a description of how to deal with errors and other
+ * requirements and conventions. In particular, KINSOL can deal
+ * with "recoverable" errors in some circumstances, so callbacks
+ * can throw exceptions of type RecoverableUserCallbackError.
*/
std::function<void(const VectorType ¤t_u,
const VectorType ¤t_f)>
* to a *previous* iterate), then you will also have to set the
* AdditionalData::maximum_newton_step variable to one, indicating
* that the Jacobian should be re-computed in every iteration.
+ *
+ * @note This variable represents a
+ * @ref GlossUserProvidedCallBack "user provided callback".
+ * See there for a description of how to deal with errors and other
+ * requirements and conventions. In particular, KINSOL can deal
+ * with "recoverable" errors in some circumstances, so callbacks
+ * can throw exceptions of type RecoverableUserCallbackError.
*/
DEAL_II_DEPRECATED
std::function<void(const VectorType &ycur,
* @param[in] tolerance The tolerance with which to solve the linear system
* of equations.
*
- * This function should return:
- * - 0: Success
- * - >0: Recoverable error (KINSOL will try to change its internal
- * parameters and attempt a new solution step)
- * - <0: Unrecoverable error the computation will be aborted and an
- * assertion will be thrown.
+ * @note This variable represents a
+ * @ref GlossUserProvidedCallBack "user provided callback".
+ * See there for a description of how to deal with errors and other
+ * requirements and conventions. In particular, KINSOL can deal
+ * with "recoverable" errors in some circumstances, so callbacks
+ * can throw exceptions of type RecoverableUserCallbackError.
*/
std::function<
void(const VectorType &rhs, VectorType &dst, const double tolerance)>
* If no function is provided to a KINSOL object, then this is interpreted
* as implicitly saying that all of these scaling factors should be
* considered as one.
+ *
+ * @note This variable represents a
+ * @ref GlossUserProvidedCallBack "user provided callback".
+ * See there for a description of how to deal with errors and other
+ * requirements and conventions. In particular, KINSOL can deal
+ * with "recoverable" errors in some circumstances, so callbacks
+ * can throw exceptions of type RecoverableUserCallbackError.
*/
std::function<VectorType &()> get_solution_scaling;
* than the components of $U$, when computing norms. As above, if no
* function is provided, then this is equivalent to using a scaling vector
* whose components are all equal to one.
+ *
+ * @note This variable represents a
+ * @ref GlossUserProvidedCallBack "user provided callback".
+ * See there for a description of how to deal with errors and other
+ * requirements and conventions. In particular, KINSOL can deal
+ * with "recoverable" errors in some circumstances, so callbacks
+ * can throw exceptions of type RecoverableUserCallbackError.
*/
std::function<VectorType &()> get_function_scaling;