def METHOD_NAME(net, ppc, ppci, result_pm):
    """
    reads power models results from result_pm to ppc / ppci and then to pandapower net
    """
    # read power models results from result_pm to result (== ppc with results)
    result, multinetwork = pm_results_to_ppc_results(net, ppc, ppci, result_pm)
    net["_pm_result"] = result.copy()
    net["_pm_org_result"] = result_pm["solution"]
    if "ne_branch" in result_pm["solution"].keys():
        net["_pm_result"]["ne_branch"] = result_pm["solution"]["ne_branch"]
    net["_pm_result"]["solve_time"] = result_pm["solve_time"]
    # net["_pm_result"] = result_pm
    success = ppc["success"]
    if success:
        if not multinetwork:
            # results are extracted from a single time step to pandapower dataframes
            _extract_results(net, result)
        else:
            neti = deepcopy(net)
            removed_keys = set(net.keys()) - pp_elements(res_elements=True) - \
                {"_options", "_is_elements", "_pd2ppc_lookups", "res_bus", "res_switch"} | \
                {"measurement"}
            for rk in removed_keys:
                neti.pop(rk)
            for tp, ri in result.items():
                add_time_series_data_to_net(neti, net.controller, tp)
                _extract_results(neti, ri)
                add_storage_results(neti, result_pm["solution"]["nw"][str(int(tp)+1)])
                result[tp] = deepcopy(neti)
            net["res_ts_opt"] = result
        _clean_up(net)
        net["OPF_converged"] = True
    else:
        _clean_up(net, res=False)
        logger.warning("OPF did not converge!")
        raise OPFNotConverged("PowerModels.jl OPF not converged")