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