将这段代码修改正确strainZX = br.get_data(bdt.BINOUT_ELOUT_STRAIN_ZX, idtype=bit.BINOUT_ELOUT_ID_SHELL, id=100, datatype_option=bdto.BINOUT_DATATYPE_ELOUT_LOWER) n_steps = strainZX.size() // num_integration_points for i in range(strainZX.shape[0]): for j in range(strainZX.shape[1]): print("Time step: {}, Integration point: {}, Value: {}".format(i+1, j+1, strainZX[i][j]))
时间: 2024-03-18 12:41:55 浏览: 181
BDT.zip_Basic Algorithm_There There
这里存在两个问题:
1. `strainZX`是一个`dvector`对象,没有`shape`属性。应该使用`strainZX.size()`方法获取`dvector`对象中元素的数量。
2. `strainZX`中的元素数量并不等于时间步数乘以积分点数,因此需要重新计算时间步数。可以使用`strainZX.size() // num_integration_points`计算时间步数。
因此,可以使用以下代码将`strainZX`中的每一个值打印出来:
```python
strainZX = br.get_data(bdt.BINOUT_ELOUT_STRAIN_ZX, idtype=bit.BINOUT_ELOUT_ID_SHELL, id=100, datatype_option=bdto.BINOUT_DATATYPE_ELOUT_LOWER)
n_steps = strainZX.size() // num_integration_points
for i in range(n_steps):
for j in range(num_integration_points):
print("Time step: {}, Integration point: {}, Value: {}".format(i+1, j+1, strainZX[i * num_integration_points + j]))
```
其中,`num_integration_points`表示该壳单元的积分点数。通过计算`strainZX`中的元素数量除以积分点数,可以得到时间步数。然后遍历所有的时间步和积分点,将每一个值打印出来。
阅读全文