4.4.12.5. ODE Solvers
There are several ODE solvers available that can be selected from in Aria. The basic set of input arguments for an ODE solver are given below, where the specific solver arguments are described in the following subsections. Anywhere an ODE solver is requested in the input file, these additional arguments are also recognized.
ODE Solver = [SOLVER ARGS]
Absolute Tolerance = 1e-10
Relative Tolerance = 1e-5
Maximum Substeps = 100000
Minimum Step Size = 1e-15
Note
For GPU execution you should use one of the Runge-Kutta solvers since CVODE and LSODE are not supported on the GPU yet.
4.4.12.5.1. CVODE
The CVODE solver is the most flexible of the options available, and often the
fastest. It is the only option that allows you to select the method (BDF or ADAMS),
the order (max of 5 for BDF and 12 for ADAMS), and the iteration scheme
(FUNCTIONAL or NEWTON). For stiff problems, BDF 5 NEWTON will be most robust,
but is also the most costly. For non-stiff problems, a lower order Adams method,
such as ADAMS 12 FUNCTIONAL may be better.
The default is BDF 5 NEWTON if you only write ODE Solver = CVODE. A few
valid options are shown below.
ODE Solver = CVODE [METHOD] [ORDER] [ITERATION_SCHEME]
ODE Solver = CVODE ADAMS 12 FUNCTIONAL
ODE Solver = CVODE BDF 3 NEWTON
ODE Solver = CVODE
4.4.12.5.2. LSODE
The LSODE solver can sometimes provide better performance than CVODE for large, stiff problems. It always uses the BDF 5 NEWTON scheme, so there are no extra options. The minimum time step in LSODE is set to machine precision and cannot be set by the user.
ODE Solver = LSODE
4.4.12.5.3. RKEH
The RKEH solver uses the Euler-Heun Method. It is a second-order error-adaptive Runge-Kutta scheme. It is typically slow for stiff systems, but may be advantageous for slowly changing non-stiff systems.
ODE Solver = RKEH
4.4.12.5.4. RK12
The RK12 solver uses the Fehlberg 1-2 Method. It is a second-order error-adaptive Runge-Kutta scheme. It is typically slow for stiff systems, but may be advantageous for slowly changing non-stiff systems.
ODE Solver = RK12
4.4.12.5.5. RKBS
The RKBS solver uses the Bogacki-Shampine Method. It is a third-order error-adaptive Runge-Kutta scheme. It is typically slow for stiff systems, but may be advantageous for slowly changing non-stiff systems,
ODE Solver = RKBS
4.4.12.5.6. RKF45
The RKF45 solver uses the Runge-Kutta-Fehlberg 4-5 Method. It is a fourth-order error-adaptive Runge-Kutta scheme. It is typically slow for stiff systems, but may be advantageous for slowly changing non-stiff systems,
ODE Solver = RKF45
4.4.12.5.7. CashKarp
The CashKarp solver uses the Cash-Karp Method. It is a fourth-order error-adaptive Runge-Kutta scheme. It is typically slow for stiff systems, but may be advantageous for slowly changing non-stiff systems.
ODE Solver = CashKarp
4.4.12.5.8. DOPRI5
The DOPRI5 uses the Dormand-Prince Method. It is a fourth-order error-adaptive Runge-Kutta scheme. It is typically slow for stiff systems, but may be advantageous for slowly changing non-stiff systems.
ODE Solver = DOPRI5