def test_sens(models, sim):
results = sim.get_sens(models, ['simp',])
#print(results)
resp_mat = np.zeros((10,10), dtype=np.float64)
inp_mat = np.zeros((10,10), dtype=np.float64)
for i in range(models['simp'].shape()):
dof_new = np.arange(10, dtype=np.float64) + 1
delta = np.zeros((10,))
delta[i] = 0.02 * dof_new[i]
dof_new += delta
#print(dof_new)
resp_mat[:, i] = np.arange(10) * dof_new\
- np.arange(10) * (np.arange(10) + 1)
inp_mat[:, i] = delta
sens_matrix = np.linalg.lstsq(inp_mat, resp_mat.T)[0].T
# print(resp_mat)
# print(inp_mat)
# print(sens_matrix)
for i in range(models['simp'].shape()):
npt.assert_array_almost_equal(
results[i , :],
sens_matrix[i, :],
err_msg='Error in {:d} dof sens'.format(i)
)
评论列表
文章目录