我正在编写一个脚本,处理有限元分析(FEA)的多个节点的计算应变/变形。对于不同的正输入转矩,有多种解决方案。我想推断这些数据,并模拟负扭矩的结果。同时,原始数据会发生变化。在
由于我们没有直接改变任何原始值,我认为它必须通过引用通过函数外推FEA来访问。我一直在尝试copy.deepcopy
,但在多个线程上发现这不会复制类结构。在other threads it was recommended to inherit中,但我正在努力适应我的情况。在
以下代码位于包含对象同一半径上的所有节点的类内。所有节点都在按角度排序的列表self._nodes
中。每个节点都有所有扭矩水平的应变。在
class RadialNodeContainer:
def __init__(self, radius):
self._r = radius
self._nodes = []
def compute_negatives_radial_container(self): # ... see below
class Node:
def __init__(self, node_id, x, y, z,
strain_0nm, strain_100nm, strain_204nm, strain_369nm):
self._coordinate = Coordinate(x, y, z)
self._torque_levels = [strain_0nm, strain_100nm,
strain_204nm, strain_369nm]
def get_all_strains_complete(self):
return copy.deepcopy(self._torque_levels)
class Strain:
def __init__(self, torque_nm, exx, exy, eyy):
self._torque = torque_nm
self._exx = exx
self._exy = exy
self._eyy = eyy
导致不必要的改变原始数据的函数:
^{pr2}$我想创建一个deepcopy
的应变元素列表(Node -> self._torque_level
)。最初这个列表看起来像[Strain(0Nm), Strain(100Nm), ...]
。但是,我不知道我必须修改代码的哪一部分才能允许传递类实例的副本。在
详细说明。如果我有时间的话,我会详细说明这一点,而这正是运营商正在寻找的。在
我还建议对数组使用numpy而不是列表,因为mumpy要快得多。在
相关问题 更多 >
编程相关推荐