From 5d61c044acedcd98044f8ccb0357df9db823f1fd Mon Sep 17 00:00:00 2001 From: Su Tian Date: Sun, 22 Nov 2020 01:13:53 -0500 Subject: [PATCH] 1121 updated dakota_interface --- dakota_interface.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/dakota_interface.py b/dakota_interface.py index f605544..e110604 100644 --- a/dakota_interface.py +++ b/dakota_interface.py @@ -73,15 +73,21 @@ def interface(fn_json_args): # Calculate actual responses for k, v in interface_args['post_process'].items(): # print('') - # print('label:', v[0]) - bp = ms.getBeamProperty(v[0]) - # print('bp:', bp) - if v[1] == 'self': - r = bp - elif v[1] == 'abs_rel_diff': - r = np.abs((bp - v[2]) / v[2]) - else: - r = eval('dpf.{0}'.format(v[1]))(bp, v[2]) + # print('v[0]:', v[0]) + # print(type(v[0]).__name__) + if type(v[0]).__name__ == 'str' or type(v[0]).__name__ == 'unicode': + bp = ms.getBeamProperty(v[0]) + # print('bp:', bp) + if v[1] == 'self': + r = bp + elif v[1] == 'abs_rel_diff': + r = np.abs((bp - v[2]) / v[2]) + else: + r = eval('dpf.{0}'.format(v[1]))(bp, v[2]) + elif type(v[0]).__name__ == 'list': + bps = [ms.getBeamProperty(s) for s in v[0]] + r = eval('dpf.{0}'.format(v[1]))(bps, v[2]) + results[k].function = r