Sundials Solver Options

Selecting Precision

Sundials can be built with different precisions (currently ‘single’ which maps to C ‘float’; ‘double’ (the default) which maps to C ‘double’; and ‘extended’ which maps to C ‘long double’), and scikits-odes-sundials supports using whichever precision Sundials is built with. To take advantage of this, you must first have sundials built and installed with the desired precision setting.

Once you have done this, build scikits-odes-sundials against this particular version of sundials (see the main documentation for how to do this). scikits-odes-sundials will automatically detect the precision, and store this in a variable called DTYPE. DTYPE should be accessed from scikits_odes_sundials (other modules may have DTYPE defined, but scikits_odes_sundials should be preferred). Additionally scikits_odes_sundials.precision contains the precision setting found by scikits.odes.

To use DTYPE, treat it as a numpy dtype; use it whenever you need to create an array:

np.array([1,2,3], dtype=DTYPE)

or when using scalars:

DTYPE(0.1) * DTYPE(0.1)