1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
CLASS = "DASRT"
INCLUDE = "DAERT.h"
OPTION
NAME = "absolute tolerance"
DOC_ITEM
Absolute tolerance. May be either vector or scalar. If a vector, it
must match the dimension of the state vector, and the relative
tolerance must also be a vector of the same length.
END_DOC_ITEM
TYPE = "Array<double>"
SET_ARG_TYPE = "const $TYPE&"
INIT_BODY
$OPTVAR.resize (1);
$OPTVAR(0) = ::sqrt (DBL_EPSILON);
END_INIT_BODY
SET_CODE
void set_$OPT (double val)
{
$OPTVAR.resize (1);
$OPTVAR(0) = (val > 0.0) ? val : ::sqrt (DBL_EPSILON);
reset = true;
}
void set_$OPT (const $TYPE& val)
{ $OPTVAR = val; reset = true; }
END_SET_CODE
END_OPTION
OPTION
NAME = "relative tolerance"
DOC_ITEM
Relative tolerance. May be either vector or scalar. If a vector, it
must match the dimension of the state vector, and the absolute
tolerance must also be a vector of the same length.
The local error test applied at each integration step is
@example
abs (local error in x(i)) <= rtol(i) * abs (Y(i)) + atol(i)
@end example
END_DOC_ITEM
TYPE = "Array<double>"
SET_ARG_TYPE = "const $TYPE&"
INIT_BODY
$OPTVAR.resize (1);
$OPTVAR(0) = ::sqrt (DBL_EPSILON);
END_INIT_BODY
SET_CODE
void set_$OPT (double val)
{
$OPTVAR.resize (1);
$OPTVAR(0) = (val > 0.0) ? val : ::sqrt (DBL_EPSILON);
reset = true;
}
void set_$OPT (const $TYPE& val)
{ $OPTVAR = val; reset = true; }
END_SET_CODE
END_OPTION
OPTION
NAME = "initial step size"
DOC_ITEM
Differential-algebraic problems may occaisionally suffer from severe
scaling difficulties on the first step. If you know a great deal
about the scaling of your problem, you can help to alleviate this
problem by specifying an initial stepsize.
END_DOC_ITEM
TYPE = "double"
INIT_VALUE = "-1.0"
SET_EXPR = "(val >= 0.0) ? val : -1.0"
END_OPTION
OPTION
NAME = "maximum order"
DOC_ITEM
Restrict the maximum order of the solution method. This option must
be between 1 and 5, inclusive.
END_DOC_ITEM
TYPE = "int"
INIT_VALUE = "-1"
SET_EXPR = "val"
END_OPTION
OPTION
NAME = "maximum step size"
DOC_ITEM
Setting the maximum stepsize will avoid passing over very large
regions.
END_DOC_ITEM
TYPE = "double"
INIT_VALUE = "-1.0"
SET_EXPR = "(val >= 0.0) ? val : -1.0"
END_OPTION
OPTION
NAME = "step limit"
DOC_ITEM
Maximum number of integration steps to attempt on a single call to the
underlying Fortran code.
END_DOC_ITEM
TYPE = "int"
INIT_VALUE = "-1"
SET_EXPR = "(val >= 0) ? val : -1"
END_OPTION
|