使用runge_kutta4的高维数组

higher dimensional arrays with runge_kutta4

本文关键字:高维 数组 kutta4 runge 使用      更新时间:2023-10-16

我想用boost::numeric::odeint::runge_kutta4求解一个耦合微分方程系统。这是一个3D晶格系统,所以对我来说,使用3D数组是很自然的(也很方便)。是否有一种方法可以让runge_kutta4使用用户定义的数据结构或增强multi_array ?

原则上这是可能的。Odeint提供了一种使用自定义数据结构——代数和运算的机制。请看这里。您可以使用现有的代数之一,并尝试调整您的数据结构以使用该代数。或者你实现你自己的代数,用它实例化Runge Kutta步进。

您可能还想看看像Eigen, Mtl4, boost这样的库。乌布拉斯,或犰狳。它们可能有高阶张量的数据类型。例如,Eigen可以很好地与odeint配合使用。