1 |
johnpye |
1239 |
#ifndef ASC_IDAANALYSE_H |
2 |
|
|
#define ASC_IDAANALYSE_H |
3 |
|
|
|
4 |
|
|
#include "integrator.h" |
5 |
|
|
|
6 |
|
|
IntegratorAnalyseFn integrator_ida_analyse; /* for new approach -- JP Jan 2007 */ |
7 |
|
|
|
8 |
johnpye |
1309 |
/** |
9 |
|
|
Given a derivative variable, return the index of its corresponding differential |
10 |
|
|
variable in the y vector (and equivalently the var_sindex of the diff var) |
11 |
|
|
*/ |
12 |
johnpye |
1239 |
int integrator_ida_diffindex(const IntegratorSystem *sys, const struct var_variable *deriv); |
13 |
|
|
|
14 |
jpye |
1387 |
/** |
15 |
|
|
Same as integrator_ida_diffindex but returns -1 instead of aborting |
16 |
|
|
*/ |
17 |
|
|
int integrator_ida_diffindex1(const IntegratorSystem *sys, const struct var_variable *deriv); |
18 |
|
|
|
19 |
|
|
/** |
20 |
|
|
Lots of helpful advice to help you mend your evil inclinations. |
21 |
|
|
*/ |
22 |
johnpye |
1239 |
int integrator_ida_analyse_debug(const IntegratorSystem *sys,FILE *fp); |
23 |
|
|
|
24 |
johnpye |
1240 |
/** |
25 |
|
|
Filter that will match all our 'y' variables (and only those) |
26 |
|
|
*/ |
27 |
|
|
const var_filter_t integrator_ida_filter_nonderiv; |
28 |
|
|
|
29 |
|
|
/* |
30 |
|
|
Filter that will match all our 'ydot' variables (and only those) |
31 |
|
|
*/ |
32 |
|
|
const var_filter_t integrator_ida_filter_deriv; |
33 |
|
|
|
34 |
johnpye |
1309 |
/** |
35 |
|
|
Some filters that will generally be useful for IDA systems. |
36 |
|
|
|
37 |
|
|
A var can be non-incident. If it *is* non incident and we're going to |
38 |
|
|
keep it, it will have to have derivative that *is* incident, and that |
39 |
|
|
meets the following filter. |
40 |
|
|
|
41 |
|
|
If it doesn't have a valid derivative (eg the derivative is fixed, or |
42 |
|
|
the variable doesn't HAVE a derivative), we will mark the non-deriv |
43 |
|
|
var non-ACTIVE, so anyway it will end up meeting this filter after we've |
44 |
|
|
run integrator_ida_check_vars. |
45 |
|
|
*/ |
46 |
|
|
extern const var_filter_t integrator_ida_nonderiv; |
47 |
|
|
extern const var_filter_t integrator_ida_deriv; |
48 |
|
|
extern const rel_filter_t integrator_ida_rel; |
49 |
|
|
|
50 |
johnpye |
1239 |
#endif |