我最近了解了semi-total derivative approximation的功能。我开始将此功能与bsplines和一个显式组件一起使用。我当前的问题是,我的设计变量是从两个不同的组件输入的,类似于下面的xsdm。据我所知,不可能为不同的设计变量设置不同的有限差分步长。因此,再次查看xsdm,控制点x和z应该具有相同的FD步骤,即
model.approx_totals(step = 1)
有效但是
model.approx_totals(step = np.ones(5))
不起作用。我猜想,一种补救方法是使用相对步长,但是我的一些输入范围是从0到xx,所以也许相对步长不是最好的。有没有一种方法可以将FD步骤作为矢量或类似于;
for out in outputs:
for dep,fdstep in zip(inputs,inputsteps):
self.declare_partials(of=out,wrt=dep,method='fd',step=fdstep, form='central')
答案 0 :(得分:0)
从OpenMDAO V2.4开始,使用approx_totals
时无法设置每个变量的FD步长。最好的选择是仅使用相对步长。