/usr/include/idas/idas_klu.h is in libsundials-dev 2.7.0+dfsg-2build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 | /*
* -----------------------------------------------------------------
* $Revision: 4558 $
* $Date: 2015-10-05 09:04:16 -0700 (Mon, 05 Oct 2015) $
* -----------------------------------------------------------------
* Programmer(s): Carol S. Woodward @ LLNL
* -----------------------------------------------------------------
* LLNS Copyright Start
* Copyright (c) 2014, Lawrence Livermore National Security
* This work was performed under the auspices of the U.S. Department
* of Energy by Lawrence Livermore National Laboratory in part under
* Contract W-7405-Eng-48 and in part under Contract DE-AC52-07NA27344.
* Produced at the Lawrence Livermore National Laboratory.
* All rights reserved.
* For details, see the LICENSE file.
* LLNS Copyright End
* -----------------------------------------------------------------
* This is the header file for the IDAKLU linear solver module.
* -----------------------------------------------------------------
*/
#ifndef _IDASKLU_H
#define _IDASKLU_H
#include "idas/idas_sparse.h"
#include "sundials/sundials_sparse.h"
#ifdef __cplusplus /* wrapper to enable C++ usage */
extern "C" {
#endif
/*
* -----------------------------------------------------------------
* Function : IDAKLU
* -----------------------------------------------------------------
* A call to the IDAKLU function links the main integrator
* with the IDAKLU linear solver module.
*
* ida_mem is the pointer to integrator memory returned by
* IDACreate.
*
*
* IDAKLU returns:
* IDASLU_SUCCESS = 0 if successful
* IDASLU_LMEM_FAIL = -1 if there was a memory allocation failure
* IDASLU_ILL_INPUT = -2 if NVECTOR found incompatible
*
* NOTE: The KLU linear solver assumes a serial implementation
* of the NVECTOR package. Therefore, IDAKLU will first
* test for a compatible N_Vector internal representation
* by checking that the functions N_VGetArrayPointer and
* N_VSetArrayPointer exist.
* -----------------------------------------------------------------
*/
SUNDIALS_EXPORT int IDAKLU(void *ida_mem, int n, int nnz, int sparesetype);
/*
* -----------------------------------------------------------------
* IDAKLUReInit
* -----------------------------------------------------------------
* This routine reinitializes memory and flags for a new factorization
* (symbolic and numeric) to be conducted at the next solver setup
* call. This routine is useful in the cases where the number of nonzeroes
* has changed or if the structure of the linear system has changed
* which would require a new symbolic (and numeric factorization).
*
* The reinit_type argumenmt governs the level of reinitialization:
*
* reinit_type = 1: The Jacobian matrix will be destroyed and
* a new one will be allocated based on the nnz
* value passed to this call. New symbolic and
* numeric factorizations will be completed at the next
* solver setup.
*
* reinit_type = 2: Only symbolic and numeric factorizations will be
* completed. It is assumed that the Jacobian size
* has not exceeded the size of nnz given in the prior
* call to IDAKLU.
*
* This routine assumes no other changes to solver use are necessary.
*
* The return value is IDASLS_SUCCESS = 0, IDASLS_MEM_NULL = -1,
* IDASLS_LMEM_NULL = -2, IDASLS_ILL_INPUT = -3, or IDASLS_MEM_FAIL = -4.
*
* -----------------------------------------------------------------
*/
SUNDIALS_EXPORT int IDAKLUReInit(void *ida_mem_v, int n, int nnz,
int reinit_type);
/*
* -----------------------------------------------------------------
* Optional Input Specification Functions
* -----------------------------------------------------------------
*
* IDAKLUSetOrdering sets the ordering used by KLU for reducing fill.
* Options are: 0 for AMD, 1 for COLAMD, and 2 for the natural ordering.
* The default used in KINSOL is 1 for COLAMD.
* -----------------------------------------------------------------
*/
SUNDIALS_EXPORT int IDAKLUSetOrdering(void *ida_mem, int ordering_choice);
/*
* ================================================================
*
* PART II - backward problems
*
* ================================================================
*/
/*
* -----------------------------------------------------------------
* Function: IDAKLUB
* -----------------------------------------------------------------
* IDAKLUB links the main IDAS integrator with the IDAKLU
* linear solver for the backward integration.
* The 'which' argument is the int returned by IDACreateB.
* -----------------------------------------------------------------
*/
SUNDIALS_EXPORT int IDAKLUB(void *ida_mem, int which, int nB, int nnzB, int sparsetype);
/*
* -----------------------------------------------------------------
* Function: IDAKLUReInitB
* -----------------------------------------------------------------
* IDAKLUReInitB pulls off the memory block associated with the which parameter
* and reinitializes the KLU solver associated with that memory block.
* The 'which' argument is the int returned by IDACreateB.
* -----------------------------------------------------------------
*/
SUNDIALS_EXPORT int IDAKLUReInitB(void *ida_mem, int which, int nB, int nnzB, int reinit_type);
/*
* -----------------------------------------------------------------
* Function: IDAKLUSetOrderingB
* -----------------------------------------------------------------
* IDAKLUSetOrderingB pulls off the memory block associated with the which parameter
* and sets the ordering for the KLU solver associated with that memory block.
* The 'which' argument is the int returned by IDACreateB.
* -----------------------------------------------------------------
*/
SUNDIALS_EXPORT int IDAKLUSetOrderingB(void *ida_mem, int which, int ordering_choiceB);
#ifdef __cplusplus
}
#endif
#endif
|