1*6d84be18SBarry Smith /* $Id: ts.h,v 1.1 1996/01/01 19:40:02 bsmith Exp bsmith $ */ 2818ad0c1SBarry Smith /* 3*6d84be18SBarry Smith User interface for the time-stepping package. This is package 4*6d84be18SBarry Smith is for use in solving time dependent PDES. 5818ad0c1SBarry Smith */ 6*6d84be18SBarry Smith #if !defined(__TS_PACKAGE) 7*6d84be18SBarry Smith #define __TS_PACKAGE 8*6d84be18SBarry Smith #include "snes.h" 9818ad0c1SBarry Smith 10*6d84be18SBarry Smith typedef struct _TS* TS; 11*6d84be18SBarry Smith #define TS_COOKIE PETSC_COOKIE+18 12818ad0c1SBarry Smith 13*6d84be18SBarry Smith typedef enum { TS_EULER, TS_BEULER, TS_PSEUDO} TSType; 14*6d84be18SBarry Smith typedef enum { TS_LINEAR_CONSTANT_MATRIX, TS_LINEAR_VARIABLE_MATRIX, 15*6d84be18SBarry Smith TS_LINEAR_NO_MATRIX, TS_NONLINEAR_JACOBIAN, 16*6d84be18SBarry Smith TS_NONLINEAR_NO_JACOBIAN} TSProblemType; 17818ad0c1SBarry Smith 18*6d84be18SBarry Smith extern int TSCreate(MPI_Comm,TSProblemType,TS*); 19*6d84be18SBarry Smith extern int TSSetType(TS,TSType); 20*6d84be18SBarry Smith extern int TSDestroy(TS); 21818ad0c1SBarry Smith 22*6d84be18SBarry Smith extern int TSSetMonitor(TS,int(*)(TS,int,Scalar,Vec,void*),void *); 23*6d84be18SBarry Smith extern int TSGetType(TS,TSType*,char**); 24818ad0c1SBarry Smith 25*6d84be18SBarry Smith extern int TSSetFromOptions(TS); 26*6d84be18SBarry Smith extern int TSSetUp(TS); 27818ad0c1SBarry Smith 28*6d84be18SBarry Smith extern int TSSetSolution(TS,Vec); 29*6d84be18SBarry Smith extern int TSGetSolution(TS,Vec*); 30818ad0c1SBarry Smith 31*6d84be18SBarry Smith extern int TSSetDuration(TS,int,Scalar); 32*6d84be18SBarry Smith extern int TSPrintHelp(TS); 33818ad0c1SBarry Smith 34*6d84be18SBarry Smith extern int TSDefaultMonitor(TS,int,Scalar,Vec,void*); 35*6d84be18SBarry Smith extern int TSStep(TS,int *,Scalar*); 36818ad0c1SBarry Smith 37*6d84be18SBarry Smith extern int TSSetInitialTimeStep(TS,Scalar,Scalar); 38*6d84be18SBarry Smith extern int TSGetTimeStep(TS,Scalar *); 39*6d84be18SBarry Smith extern int TSSetTimeStep(TS,Scalar); 40818ad0c1SBarry Smith 41*6d84be18SBarry Smith extern int TSSetRHSFunction(TS,int (*)(TS,Scalar,Vec,Vec,void*),void*); 42*6d84be18SBarry Smith extern int TSSetRHSMatrix(TS,Mat,Mat,int (*)(TS,Scalar,Mat*,Mat*,MatStructure*,void*),void*); 43*6d84be18SBarry Smith extern int TSSetRHSJacobian(TS,Mat,Mat,int(*)(TS,Scalar,Vec,Mat*,Mat*,MatStructure*,void*),void*); 44818ad0c1SBarry Smith 45*6d84be18SBarry Smith extern int TSComputeRHSFunction(TS,Scalar,Vec,Vec); 46818ad0c1SBarry Smith 47*6d84be18SBarry Smith extern int TSRegisterAll(); 48*6d84be18SBarry Smith extern int TSRegister(int,char*,int (*)(TS)); 49818ad0c1SBarry Smith 50*6d84be18SBarry Smith extern int TSGetSNES(TS,SNES*); 51*6d84be18SBarry Smith extern int TSGetSLES(TS,SLES*); 52818ad0c1SBarry Smith 53818ad0c1SBarry Smith #endif 54818ad0c1SBarry Smith 55