heyoka.var_ode_sys#
- class heyoka.var_ode_sys#
Class to represent variational ODE systems.
Added in version 5.0.0.
Note
A tutorial explaining the use of this class is available.
Methods
__init__
(self, sys, args[, order])Constructor.
Attributes
The number of original state variables.
The differentitation order.
The full system of equations (including partials).
The list of variational arguments.
- __init__(self, sys: list[tuple[expression, expression]], args: var_args | list[expression], order: int = 1)#
Constructor.
A variational ODE system is constructed from two mandatory arguments: the original ODE system sys and an args parameter representing the quantities with respect to which the variational equations will be formulated.
If args is of type
var_args
, then the variational equations will be constructed with respect to arguments deduced from sys. E.g., if sys contains the two state variables \(x\) and \(y\) and args is the vars enumerator ofvar_args
, then the variational equations will be formulated with respect to the initial conditions of \(x\) and \(y\). Similarly, if sys contains two parameterspar[0]
andpar[1]
and args is the params enumerator ofvar_args
, then the variational equations will be formulated with respect to the two parameters.If args is a list of
expression
, then the variational equations will be formulated with respect to the quantities contained in the list. Specifically:variable expression are used to request derivatives with respect to the intial conditions for that state variable;
parameter expressions are used to request derivatives with respect to those parameters;
heyoka.time
is used to request the derivative with respect to the initial integration time.
Several checks are run on the input arguments. Specifically:
sys must be a valid ODE system;
if args is of type
var_args
, it must be either one of the valid enumerators or a combination of the valid enumerators;if args is a list of expressions:
it must not be empty,
it must consists only of variables, parameters or the
heyoka.time
placeholder,it must not contain duplicates,
any variable expression must refer to a state variable in sys.
Additionally, the differentiation order order must be at least 1.
- Parameters:
sys – the input ODE system.
args – the variational arguments.
order – the differentiation order.
- Raises:
ValueError – if one or more input arguments are malformed, as explained above.
- property sys#
The full system of equations (including partials).
- Return type:
- property vargs#
The list of variational arguments.
- Return type: