Answers:
无需转换为OOP框架即可受益于面向对象。请注意,功能数量比这些功能内部和之间的代码重复或这些功能的长度少是一个指标。(具有超过100行代码的功能通常是“改进潜力”的标志。)
如果您无法找到有助于面向对象的部分,那么转换为OOP框架并不是最好的第一步。而是问一个熟悉面向对象的人可以简化或改进什么,然后尝试理解为什么它是简化或改进的。
如果要使用诸如Deal.II或PETSc之类的框架,请在它们提供的功能对您有用的情况下使用它们,而不是因为您认为这样做会使您自己的代码更好或更可维护。但是您已经在MATLAB框架中,因此不太可能要改为使用C ++ OOP框架。(您可能已经知道,MATLAB提供了完整的OOP支持。)
对于Python端口,只需根据您当前的知识就可以开始使用,然后在您学到足够多的知识后可以重新开始。
这个问题可能很适合堆栈溢出。我认为这也很合适,因为它是计算科学中的常见问题。
就组成算法而言,如果您能阅读C代码,那么做得很好的一个很好的例子就是PETSc。面向对象的编程风格可能有助于封装数据,但是作为简单的第一步,您可能只想使阶段的每个选择都具有一个通用接口的功能。然后,对于您的算法,传入每个阶段的函数作为输入,并让主要算法为每个阶段调用该函数。