Actual source code: petscpvode.h

  1: /*$Id: petscpvode.h,v 1.13 2000/05/08 15:09:13 balay Exp $*/

  3: /*
  4:     Provides a PETSc interface to PVODE. Alan Hindmarsh's parallel ODE
  5:    solver developed at LLNL.
  6: */


 11:  #include src/ts/tsimpl.h
 12:  #include src/sles/pc/pcimpl.h
 13:  #include src/mat/matimpl.h

 15: /*
 16:    Include files specific for PVODE
 17: */
 18: #if defined(PETSC_HAVE_PVODE) && !defined(__cplusplus) 
 19: #include "llnltyps.h"
 20: #include "cvode.h"
 21: #include "nvector.h"
 22: #include "iterativ.h"
 23: #include "cvspgmr.h"


 26: typedef struct {
 27:   Vec  update;    /* work vector where new solution is formed */
 28:   Vec  func;      /* work vector where F(t[i],u[i]) is stored */
 29:   Vec  rhs;       /* work vector for RHS; vec_sol/dt */

 31:   Vec  w1,w2;     /* work space vectors for function evaluation */


 34:   PetscTruth  exact_final_time; /* force PVode to interpolate solution to exactly final time
 35:                                    requested by user (default) */

 37:   /*
 38:      PETSc peconditioner objects used by PVODE
 39:   */
 40: 
 41:   Mat  pmat;                         /* preconditioner Jacobian */
 42:   PC   pc;                           /* the PC context */
 43:   int  cvode_type;                   /* the PVODE method, BDF  or ADAMS   */
 44:   TSPVodeGramSchmidtType gtype;
 45:   int                    restart;
 46:   double                 linear_tol;

 48:   /*
 49:      Variables used by PVode 
 50:   */

 52:   long int iopt[OPT_SIZE];
 53:   double   ropt[OPT_SIZE];
 54:   double   reltol;
 55:   double   abstol;          /* only for using SS flag in PVODE */
 56:   N_Vector y;               /* current solution */
 57:   void     *mem;            /* time integrater context */
 58: } TS_PVode;

 60: #endif

 62: #endif