To be used to define ODE systems that can then be audified with Fb1_ODE. See Fb1_ODE for general information about Fb1 ODE integrator UGens.
HISTORY AND CREDITS: Big credit to David Pirrò from IEM Graz for pointing me to the symplectic integration methods, which are essential for audifying ODEs, as they help to ensure numeric stability in the long run (e.g. to avoid drifts of oscillations that are mathematically expected to be regular). See the chapter on integration in his dissertation [2], pp 135-146. You might also want check David Pirròs optimized ODE compiler named Henri [3]. Big credit also to Nathaniel Virgo who brought up the buffering strategy used in Fb1, which is Fb1_ODE's working horse.
Creates a new Fb1_ODEdef object.
name |
The name of the ODE, expects a Symbol. Default Fb1_ODEdefs cannot be overwritten. |
function |
The implementation of the function F which describes the ODE given as Y'(t) = F(t, Y(t)) where Y, F can be a single-valued or vector-valued. It must take time as first and a system state (possibly an array) as second parameter and optional further args that can also be arrays. The system state is expected to have the size of the system (given by y0's size), the function's return value must also equal this size. If the system size is greater than 1 the components of the output array should be rather written as Functions, as this optimizes the compile process with symplectic integration procedures, it isn't compulsory though. See examples below and in the source file Fb1_ODEdef.sc. |
t0 |
Number. Default initial time value. |
y0 |
Default initial value of the ODE. Expects number or array and determines the size of the system, function's second arg and return value must be of same size. |
outScale |
Number that determines the default multiplier for the integration signal produced by Fb1_ODE when the latter's withOutScale flag is set to true (default). Defaults to 1. Especially thought for systems like Lorenz which produce high levels with standard parameters, then it makes sense to set outScale to a value smaller than 1. WARNING: outScale / diffOutScale / withOutScale do not implement a general safety net functionality, withOutScale 's default value true does by no means say that output is limited. The default scaling values of predefined Fb1_ODEdefs are average assumptions and can, under different circumstances, always lead to high out levels. |
diffOutScale |
Number that determines the default multiplier for the differential signal produced by Fb1_ODE when the latter's withOutScale flag is set to true (default). Defaults to 1. Especially thought for systems like Lorenz which produce high levels with standard parameters, then it makes sense to set outScale to a value smaller than 1. WARNING: outScale / diffOutScale / withOutScale do not implement a general safety net functionality, withOutScale's default value true does by no means say that output is limited. The default scaling values of predefined Fb1_ODEdefs are average assumptions and can, under different circumstances, always lead to high out levels. |
Returns the Fb1_ODEdef instance of the Symbol key if it exists.
key |
Symbol. |
Returns an array of all keys of currently stored Fb1_ODEdefs.
Posts all keys of currently stored Fb1_ODEdefs.
Removes the Fb1_ODEdef of the Symbol key from the Dictionary.
key |
Symbol. |
Removes all Fb1_ODEdefs other than the predefined ones from the Dictionary.
Method for language-side integration, gives next value based on previous data.
intType |
Integration type. Expects one of the Symbols, for which procedures are stored with Fb1_ODEintdef. The use of symplectic procedures (with prefix 'sym', like 'sym2') is highly recommended. For more accurate integration you can try symplectic procedures of higher order like \sym4, \sym8 etc. Multi-step procedures are not implemented, remaining:
|
t |
Previous time, expects Number. |
y |
Previous state, expects Number or Array of system size. |
dt |
Number. Time delta. |
args |
List of additional args to be passed to Fb1_ODEdef's function. |
Method for language-side integration, gives an array of next n values (arrays) based on previous data. Last values (arrays) are stored at last position. For intTypes with sizeFactor 2 the differential is included. See Examples.
n |
Integer. Number of next values (resp. value arrays) to be calculated. |
intType |
Integration type. Expects one of the Symbols, for which procedures are stored with Fb1_ODEintdef. The use of symplectic procedures (with prefix 'sym', like 'sym2') is highly recommended. For more accurate integration you can try symplectic procedures of higher order like \sym4, \sym8 etc. Multi-step procedures are not implemented, remaining:
|
t |
Previous time, expects Number. |
y |
Previous state, expects Number or Array of system size. |
dt |
Number. Time delta. |
args |
List of additional args to be passed to Fb1_ODEdef's function. |
withTime |
Boolean. Determines if integrated time should be included. Defaults to false. |
includeStart |
Boolean. Determines if start value(s) should be included. Defaults to true. |
Getter for the Fb1_ODEdef's name.
Getter for the Fb1_ODEdef's function.
Getter for the Fb1_ODEdef's name.
Getter for the Fb1_ODEdef's t0.
Getter for the Fb1_ODEdef's y0.
Getter for the Fb1_ODEdef's outScale.
Getter for the Fb1_ODEdef's diffOutScale.
Getter for the Fb1_ODEdef's system size.