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