/* ----------------------------------------------------------------------------- * Programmer(s): David J. Gardner @ LLNL * ----------------------------------------------------------------------------- * Based on CPODES by Radu Serban @ LLNL * ----------------------------------------------------------------------------- * SUNDIALS Copyright Start * Copyright (c) 2002-2024, Lawrence Livermore National Security * and Southern Methodist University. * All rights reserved. * * See the top-level LICENSE and NOTICE files for details. * * SPDX-License-Identifier: BSD-3-Clause * SUNDIALS Copyright End * ----------------------------------------------------------------------------- * This is the header file for CVODE's projection interface. * ---------------------------------------------------------------------------*/ #ifndef _CVPROJ_H #define _CVPROJ_H #include #ifdef __cplusplus /* wrapper to enable C++ usage */ extern "C" { #endif /* ----------------------------------------------------------------------------- * CVProj user-supplied function prototypes * ---------------------------------------------------------------------------*/ typedef int (*CVProjFn)(sunrealtype t, N_Vector ycur, N_Vector corr, sunrealtype epsProj, N_Vector err, void* user_data); /* ----------------------------------------------------------------------------- * CVProj Exported functions * ---------------------------------------------------------------------------*/ /* Projection initialization functions */ SUNDIALS_EXPORT int CVodeSetProjFn(void* cvode_mem, CVProjFn pfun); /* Optional input functions */ SUNDIALS_EXPORT int CVodeSetProjErrEst(void* cvode_mem, sunbooleantype onoff); SUNDIALS_EXPORT int CVodeSetProjFrequency(void* cvode_mem, long int proj_freq); SUNDIALS_EXPORT int CVodeSetMaxNumProjFails(void* cvode_mem, int max_fails); SUNDIALS_EXPORT int CVodeSetEpsProj(void* cvode_mem, sunrealtype eps); SUNDIALS_EXPORT int CVodeSetProjFailEta(void* cvode_mem, sunrealtype eta); /* Optional output functions */ SUNDIALS_EXPORT int CVodeGetNumProjEvals(void* cvode_mem, long int* nproj); SUNDIALS_EXPORT int CVodeGetNumProjFails(void* cvode_mem, long int* nprf); #ifdef __cplusplus } #endif #endif