def run_bender(param_set, in_file): system = param_set["system"] ir = param_set["ir"] rmin, rmax = param_set["rmin"], param_set["rmax"] height = param_set["height"] moldy_opm = param_set["moldy_opm"] print 'running system: ' + system + ', ir = ' + str(ir) print 'height = ' + str(height) print 'rmin, rmax = %.2f, %.2f' %(rmin, rmax) ue = parse_u_from_file(in_file) optimize_c = optimize(ue, 'l_bfgs') if not moldy_opm: [E_b_surf, E_s_surf], [E_b, E_s], ue, normals \ = optimize_c.optimize_consts() write_bender(E_b_surf, E_s_surf, normals, E_b, E_s, \ ue, param_set, in_file) plot_e_surfaces(in_file) write_synopsis(in_file) if system != 'spiral': study_height_synopsis(in_file) try: study_consts_proximity(in_file, 20) except ValueError: print 'voi hoh' elif moldy_opm: #optimize_c = optimize(ue, 'l_bfgs') try: params = read_bender_output(in_file, read_for_moldy = True)[0] ue.set_const(params[("consts")]) ue.set_moldy(True) except IOError: print 'got io error from trying to import constants for moldy opm!!' ue = optimize_c.optimize_consts()[2] [E_s_surf, E_b_surf], [E_b, E_s], ue \ = optimize_c.optimize_moldy()[:4] write_bender(E_b_surf, E_s_surf, E_b, E_s, ue, param_set)
def plot_e_surfaces(in_file, show = False): asurf, umat, E_surfs, normals, path = read_bender_output(in_file)[1:] plot_all(asurf[1], asurf[2], umat[1], umat[2], E_surfs[0], E_surfs[1], \ normals, path = path, show = show)