/[ascend]/trunk/solvers/ida/ida_impl.h
ViewVC logotype

Contents of /trunk/solvers/ida/ida_impl.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2369 - (show annotations) (download) (as text)
Mon Jan 31 09:00:44 2011 UTC (13 years, 4 months ago) by jpye
File MIME type: text/x-chdr
File size: 1595 byte(s)
Working to refactor ida.c, which is too big and scary.
1 /**
2 Implementation functions for IDA. Only put things here if they need to
3 be shared between .c files but not visible outside IDA.
4 */
5 #ifndef ASC_IDA_IMPL_H
6 #define ASC_IDA_IMPL_H
7
8 /* forward dec needed for IntegratorIdaPrecFreeFn */
9 struct IntegratorIdaDataStruct;
10
11 /* functions for allocating storage for and freeing preconditioner data */
12 typedef void IntegratorIdaPrecCreateFn(IntegratorSystem *integ);
13 typedef void IntegratorIdaPrecFreeFn(struct IntegratorIdaDataStruct *enginedata);
14
15 /**
16 Struct containing any stuff that IDA needs that doesn't fit into the
17 common IntegratorSystem struct.
18 */
19 typedef struct IntegratorIdaDataStruct{
20
21 struct rel_relation **rellist; /**< NULL terminated list of ACTIVE rels */
22 int nrels; /* number of ACTIVE rels */
23
24 struct bnd_boundary **bndlist; /**< NULL-terminated list of boundaries, for use in the root-finding code */
25 int nbnds; /* number of boundaries */
26
27 int safeeval; /**< whether to pass the 'safe' flag to relman_eval */
28 var_filter_t vfilter;
29 rel_filter_t rfilter; /**< Used to filter relations from solver's rellist (@TODO needs work) */
30 void *precdata; /**< For use by the preconditioner */
31 IntegratorIdaPrecFreeFn *pfree; /**< Store instructions here on how to free precdata */
32
33 } IntegratorIdaData;
34
35
36 mtx_matrix_t integrator_ida_dgdya(const IntegratorSystem *sys);
37
38 int integrator_ida_debug(const IntegratorSystem *sys, FILE *fp);
39
40 IntegratorIdaData *integrator_ida_enginedata(IntegratorSystem *integ);
41
42 void integrator_ida_write_incidence(IntegratorSystem *integ);
43
44 #endif
45

john.pye@anu.edu.au
ViewVC Help
Powered by ViewVC 1.1.22