我试图在面向对象的Python中编写有限元模拟作为个人好奇心项目。这是我所做的第一个完全OO项目之一,所以我还在学习OO实施的细节。
首先,我有一个基本上如下的Mesh类:
# Simulation mesh
class mesh:
def __init__(self, nx, ny):
self.nx = nx # Number of cells in x dimension
self.ny = ny # Number of cells in y dimension
我还认为在我的情况下,对于电场和磁场(两者都有多种方法和多个numpy数组),以及UPML(相同)和一些其他辅助对象都有单独的类是谨慎的。 ,用于计算目的。我推断这些应该是网格类的子类并继承网格的大小,这样当创建这些对象时,它们自然地与网格本身大小相同。
我很难以这种方式继承网格类的属性,所以我想知道是否有人能够解释在这种情况下如何正确使用super()以及我如何自动一旦我实例化它,就会将参数nx和ny从网格对象继承到电场(以及其他)对象。
如果有更好的方法来构建这种类型的程序,这也是很好的建议。感谢。