def METHOD_NAME(problem, branch_function):
    displacements = {}
    for key, eq in six.iteritems(problem.conf.equations):
        problem.set_equations({key : eq})
        load = problem.get_materials()['load']
        load.set_function(branch_function)
        out = []
        problem.solve(save_results=False, step_hook=store_top_u(out))
        displacements[key] = nm.array(out, dtype=nm.float64)
    return displacements