当模拟原子、分子、胶体等时,是否有程序将每个相互作用的统一体定义为 OOP 意义上的对象?
在我自己的情况下,我一直在 Fortran 中模拟胶体分散体中的磁性纳米粒子,但我有许多在代码中与纳米粒子的每个属性无关的阵列。例如,对于 100 个纳米颗粒,我将阵列 r(3,100) 用于 3D 位置,m(3,100) 用于 3D 磁矩,xi(100) 用于吸附分子表面密度等。
我使用 Fortran 77 编译器开始我的代码,所以我没有使用 Fortran 2003 的 TYPE 功能,它允许我将所有这些数组放在同一类型中。
然而,这些时候我一直在使用 Java,所以我想知道是否可以更好地将每个磁性纳米粒子定义为一个对象。所以我也会在纳米粒子类中定义“移动”、“旋转”等方法。我不确定如何计算配对交互本身。我不知道如何将其定义为对象类方法...我想我必须在“控制器”层中进行,而不是在“模型”层中(使用 MVC 范例)。
我只是在制作这个新程序时犹豫不决,因为我怀疑将我的纳米粒子定义为对象会使模拟变得慢很多,无论代码看起来多么漂亮。但是,如果有其他程序以这种方式定义配对交互单元,那么可能会有很好的理由这样做,而且我不会孤单...... :-)