ida_band.h 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /*
  2. * -----------------------------------------------------------------
  3. * $Revision: 4378 $
  4. * $Date: 2015-02-19 10:55:14 -0800 (Thu, 19 Feb 2015) $
  5. * -----------------------------------------------------------------
  6. * Programmer(s): Alan C. Hindmarsh, and Radu Serban @ LLNL
  7. * -----------------------------------------------------------------
  8. * LLNS Copyright Start
  9. * Copyright (c) 2014, Lawrence Livermore National Security
  10. * This work was performed under the auspices of the U.S. Department
  11. * of Energy by Lawrence Livermore National Laboratory in part under
  12. * Contract W-7405-Eng-48 and in part under Contract DE-AC52-07NA27344.
  13. * Produced at the Lawrence Livermore National Laboratory.
  14. * All rights reserved.
  15. * For details, see the LICENSE file.
  16. * LLNS Copyright End
  17. * -----------------------------------------------------------------
  18. * This is the header file for the IDABAND linear solver module.
  19. * -----------------------------------------------------------------
  20. */
  21. #ifndef _IDABAND_H
  22. #define _IDABAND_H
  23. #include <ida/ida_direct.h>
  24. #include <sundials/sundials_band.h>
  25. #ifdef __cplusplus /* wrapper to enable C++ usage */
  26. extern "C" {
  27. #endif
  28. /*
  29. * -----------------------------------------------------------------
  30. * Function : IDABand
  31. * -----------------------------------------------------------------
  32. * A call to the IDABand function links the main integrator
  33. * with the IDABAND linear solver module.
  34. *
  35. * ida_mem is the pointer to the integrator memory returned by
  36. * IDACreate.
  37. *
  38. * mupper is the upper bandwidth of the banded Jacobian matrix.
  39. *
  40. * mlower is the lower bandwidth of the banded Jacobian matrix.
  41. *
  42. * The return values of IDABand are:
  43. * IDADLS_SUCCESS = 0 if successful
  44. * IDADLS_LMEM_FAIL = -1 if there was a memory allocation failure
  45. * IDADLS_ILL_INPUT = -2 if the input was illegal or NVECTOR bad.
  46. *
  47. * NOTE: The band linear solver assumes a serial implementation
  48. * of the NVECTOR package. Therefore, IDABand will first
  49. * test for a compatible N_Vector internal representation
  50. * by checking that the N_VGetArrayPointer function exists.
  51. * -----------------------------------------------------------------
  52. */
  53. SUNDIALS_EXPORT int IDABand(void *ida_mem, long int Neq, long int mupper, long int mlower);
  54. #ifdef __cplusplus
  55. }
  56. #endif
  57. #endif