/* * ----------------------------------------------------------------- * $Revision: 4378 $ * $Date: 2015-02-19 10:55:14 -0800 (Thu, 19 Feb 2015) $ * ----------------------------------------------------------------- * Programmer(s): Allan Taylor, Alan Hindmarsh, Radu Serban, and * Aaron Collier @ 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 * ----------------------------------------------------------------- * KINBBDPRE module header file (private version) * ----------------------------------------------------------------- */ #ifndef _KINBBDPRE_IMPL_H #define _KINBBDPRE_IMPL_H #include #include #include "kinsol_impl.h" #ifdef __cplusplus /* wrapper to enable C++ usage */ extern "C" { #endif /* * ----------------------------------------------------------------- * Definition of KBBDData * ----------------------------------------------------------------- */ typedef struct KBBDPrecDataRec { /* passed by user to KINBBDPrecAlloc, used by pset/psolve functions */ long int mudq, mldq, mukeep, mlkeep; KINLocalFn gloc; KINCommFn gcomm; /* relative error for the Jacobian DQ routine */ realtype rel_uu; /* allocated for use by KINBBDPrecSetup */ N_Vector vtemp3; /* set by KINBBDPrecSetup and used by KINBBDPrecSolve */ DlsMat PP; long int *lpivots; /* set by KINBBDPrecAlloc and used by KINBBDPrecSetup */ long int n_local; /* available for optional output */ long int rpwsize; long int ipwsize; long int nge; /* pointer to KINSol memory */ void *kin_mem; } *KBBDPrecData; /* *----------------------------------------------------------------- * KINBBDPRE error messages *----------------------------------------------------------------- */ #define MSGBBD_MEM_NULL "KINSOL Memory is NULL." #define MSGBBD_LMEM_NULL "Linear solver memory is NULL. One of the SPILS linear solvers must be attached." #define MSGBBD_MEM_FAIL "A memory request failed." #define MSGBBD_BAD_NVECTOR "A required vector operation is not implemented." #define MSGBBD_FUNC_FAILED "The gloc or cfn routine failed in an unrecoverable manner." #define MSGBBD_PMEM_NULL "BBD peconditioner memory is NULL. IDABBDPrecInit must be called." #ifdef __cplusplus } #endif #endif