@@ -366,6 +366,7 @@ impl<BU: ButcherTableau> ODEIntegrator for BU {
366366/// In MATLAB, it is called `ode3`.
367367#[ derive( Debug , Clone , Copy , Default ) ]
368368#[ cfg_attr( feature = "serde" , derive( serde:: Serialize , serde:: Deserialize ) ) ]
369+ #[ cfg_attr( feature = "rkyv" , derive( rkyv:: Archive , rkyv:: Serialize , rkyv:: Deserialize ) ) ]
369370pub struct RALS3 ;
370371
371372impl ButcherTableau for RALS3 {
@@ -381,6 +382,7 @@ impl ButcherTableau for RALS3 {
381382/// It calculates four intermediate values (k1, k2, k3, k4) to estimate the next step solution.
382383#[ derive( Debug , Clone , Copy , Default ) ]
383384#[ cfg_attr( feature = "serde" , derive( serde:: Serialize , serde:: Deserialize ) ) ]
385+ #[ cfg_attr( feature = "rkyv" , derive( rkyv:: Archive , rkyv:: Serialize , rkyv:: Deserialize ) ) ]
384386pub struct RK4 ;
385387
386388impl ButcherTableau for RK4 {
@@ -395,6 +397,7 @@ impl ButcherTableau for RK4 {
395397/// This fourth order method is known as minimum truncation error RK4.
396398#[ derive( Debug , Clone , Copy , Default ) ]
397399#[ cfg_attr( feature = "serde" , derive( serde:: Serialize , serde:: Deserialize ) ) ]
400+ #[ cfg_attr( feature = "rkyv" , derive( rkyv:: Archive , rkyv:: Serialize , rkyv:: Deserialize ) ) ]
398401pub struct RALS4 ;
399402
400403impl ButcherTableau for RALS4 {
@@ -414,6 +417,7 @@ impl ButcherTableau for RALS4 {
414417/// This integrator uses the 5th order Runge-Kutta method to numerically integrate the ODE system.
415418#[ derive( Debug , Clone , Copy , Default ) ]
416419#[ cfg_attr( feature = "serde" , derive( serde:: Serialize , serde:: Deserialize ) ) ]
420+ #[ cfg_attr( feature = "rkyv" , derive( rkyv:: Archive , rkyv:: Serialize , rkyv:: Deserialize ) ) ]
417421pub struct RK5 ;
418422
419423impl ButcherTableau for RK5 {
@@ -473,6 +477,7 @@ impl ButcherTableau for RK5 {
473477/// - `max_step_iter`: The maximum number of iterations per step.
474478#[ derive( Debug , Clone , Copy ) ]
475479#[ cfg_attr( feature = "serde" , derive( serde:: Serialize , serde:: Deserialize ) ) ]
480+ #[ cfg_attr( feature = "rkyv" , derive( rkyv:: Archive , rkyv:: Serialize , rkyv:: Deserialize ) ) ]
476481pub struct BS23 {
477482 pub tol : f64 ,
478483 pub safety_factor : f64 ,
@@ -554,6 +559,7 @@ impl ButcherTableau for BS23 {
554559/// - `max_step_iter`: The maximum number of iterations per step.
555560#[ derive( Debug , Clone , Copy ) ]
556561#[ cfg_attr( feature = "serde" , derive( serde:: Serialize , serde:: Deserialize ) ) ]
562+ #[ cfg_attr( feature = "rkyv" , derive( rkyv:: Archive , rkyv:: Serialize , rkyv:: Deserialize ) ) ]
557563pub struct RKF45 {
558564 pub tol : f64 ,
559565 pub safety_factor : f64 ,
@@ -656,6 +662,7 @@ impl ButcherTableau for RKF45 {
656662/// - `max_step_iter`: The maximum number of iterations per step.
657663#[ derive( Debug , Clone , Copy ) ]
658664#[ cfg_attr( feature = "serde" , derive( serde:: Serialize , serde:: Deserialize ) ) ]
665+ #[ cfg_attr( feature = "rkyv" , derive( rkyv:: Archive , rkyv:: Serialize , rkyv:: Deserialize ) ) ]
659666pub struct DP45 {
660667 pub tol : f64 ,
661668 pub safety_factor : f64 ,
@@ -777,6 +784,7 @@ impl ButcherTableau for DP45 {
777784/// - Ch. Tsitouras, Comput. Math. Appl. 62 (2011) 770-780.
778785#[ derive( Debug , Clone , Copy ) ]
779786#[ cfg_attr( feature = "serde" , derive( serde:: Serialize , serde:: Deserialize ) ) ]
787+ #[ cfg_attr( feature = "rkyv" , derive( rkyv:: Archive , rkyv:: Serialize , rkyv:: Deserialize ) ) ]
780788pub struct TSIT45 {
781789 pub tol : f64 ,
782790 pub safety_factor : f64 ,
@@ -896,6 +904,7 @@ impl ButcherTableau for TSIT45 {
896904/// Currently, there are two options: fixed-point iteration and Broyden's method.
897905#[ derive( Debug , Clone , Copy ) ]
898906#[ cfg_attr( feature = "serde" , derive( serde:: Serialize , serde:: Deserialize ) ) ]
907+ #[ cfg_attr( feature = "rkyv" , derive( rkyv:: Archive , rkyv:: Serialize , rkyv:: Deserialize ) ) ]
899908pub enum ImplicitSolver {
900909 FixedPoint ,
901910 Broyden ,
@@ -915,6 +924,7 @@ pub enum ImplicitSolver {
915924/// - `max_step_iter`: The maximum number of iterations for the implicit solver per step.
916925#[ derive( Debug , Clone , Copy ) ]
917926#[ cfg_attr( feature = "serde" , derive( serde:: Serialize , serde:: Deserialize ) ) ]
927+ #[ cfg_attr( feature = "rkyv" , derive( rkyv:: Archive , rkyv:: Serialize , rkyv:: Deserialize ) ) ]
918928pub struct GL4 {
919929 pub solver : ImplicitSolver ,
920930 pub tol : f64 ,
0 commit comments