具有不同有限差分步长的半全导数近似

Semi-total derivative approximation with varying finite difference steps

最近了解了semi-total derivative approximation的功能。我开始将此功能与 bsplines 和显式组件一起使用。我当前的问题是我的设计变量是从类似于下面的 xsdm 的两个不同组件输入的。据我所知,不可能为不同的设计变量设置不同的有限差分步骤。所以再次查看 xsdm,控制点 x 和 z 应该具有相同的 FD 步骤,即

model.approx_totals(步骤=1)

有效但是

model.approx_totals(步骤=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') 

从 OpenMDAO V2.4 开始,您无法在使用 approx_totals 时设置每个变量的 FD 步长。最好的选择是只使用相对步长。