Ejemplo n.º 1
0
def target(prices):
    global dist_min
    global econ_save

    p_ = prices[0]
    rc_ = prices[1]
    #   ome_ = prices[2]
    #   varpi_ = prices[3]
    #   theta_ = prices[4]

    ome_ = ome
    varpi_ = varpi
    theta_ = theta

    print('computing for the case p = {:f}, rc = {:f}'.format(p_, rc_),
          end=', ')

    #create an Economy instance
    econ = Economy(
        alpha=alpha,
        beta=beta,
        chi=chi,
        delk=delk,
        delkap=delkap,
        eta=eta,
        grate=grate,
        la=la,
        mu=mu,
        #ome = ome_, # target
        ome=ome,
        phi=phi,
        rho=rho,
        tauc=tauc,
        taud=taud,
        taup=taup,
        #theta = theta_, # target
        theta=theta,
        veps=veps,
        vthet=vthet,
        zeta=zeta,
        A=A,
        upsilon=upsilon,
        #varpi = varpi_, # varpi
        varpi=varpi,
        agrid=agrid,
        kapgrid=kapgrid,
        prob=prob,
        zgrid=zgrid,
        epsgrid=epsgrid,
        is_to_iz=is_to_iz,
        is_to_ieps=is_to_ieps,
        prob_yo=prob_yo,
        iota=iota,
        la_tilde=la_tilde,
        tau_wo=tau_wo,
        tau_bo=tau_bo,
        trans_retire=trans_retire,
        g=g,
        yn=yn,
        xnb=xnb,
        taub=taub,
        bbracket=bbracket,
        psib=psib,
        taun=taun,
        nbracket=nbracket,
        psin=psin,
        sim_time=sim_time,
        num_total_pop=num_total_pop,
        num_suba_inner=num_suba_inner,
        num_subkap_inner=num_subkap_inner,
        path_to_data_i_s=path_to_data_i_s,
        path_to_data_is_o=path_to_data_is_o)

    econ.set_prices(p=p_, rc=rc_)

    with open('econ.pickle', mode='wb') as f:
        pickle.dump(econ, f)
    #with open('econ.pickle', mode='rb') as f: econ = pickle.load(f)
    t0 = time.time()
    result = subprocess.run(
        ['mpiexec', '-n',
         str(num_core), 'python', 'SCEconomy.py'],
        stdout=subprocess.PIPE)
    t1 = time.time()

    f = open(detailed_output_file, 'ab')  #use byte mode
    f.write(result.stdout)
    f.close()

    print('etime: {:f}'.format(t1 - t0), end=', ')

    time.sleep(1)

    with open('econ.pickle', mode='rb') as f:
        econ = pickle.load(f)

    moms = econ.moms

    # mom0 = comm.bcast(mom0) #1. - Ecs/Eys
    # mom1 = comm.bcast(mom1) # 1. - (Ecc  + Ex+ (grate + delk)*(kc + Eks) + g + xnb - yn)/yc
    # mom2 = comm.bcast(mom2) # 1. - (tax_rev - tran - netb)/g
    # mom3 = comm.bcast(mom3) # 0.0
    # mom4 = comm.bcast(mom4) # Ens/En
    # mom5 = comm.bcast(mom5) # (p*Eys - (rs+delk)*Eks - w*Ens - Ex)/GDP
    # mom6 = comm.bcast(mom6) # nc
    # mom7 = comm.bcast(mom7) # 1. - EIc
    # mom8 = comm.bcast(mom8) # xc/GDP

    dist = np.sqrt(moms[0]**2.0 +
                   moms[1]**2.0)  #if targets are just market clearing
    # dist = np.sqrt(5.*moms[0]**2.0 + 5.*moms[1]**2.0 +\
    #               (moms[4]/s_emp_share - 1.)**2.0 +\
    #               (moms[5]/pure_sweat_share - 1.)**2.0 +\
    #               (moms[8]/xc_share - 1.)**2.0 )
    #

    print('dist = {:f}'.format(dist))

    f = open(nd_log_file, 'a')
    f.writelines(
        str(dist) + ', ' + str(p_) + ', ' + str(rc_) + ', ' + str(ome_) +
        ', ' + str(varpi_) + ', ' + str(theta_) + ', ' + str(moms[0]) + ', ' +
        str(moms[1]) + ', ' + str(moms[2]) + ', ' + str(moms[4]) + ', ' +
        str(moms[5]) + ', ' + str(moms[7]) + ', ' + str(moms[8]) + '\n')

    f.close()

    if dist < dist_min:
        econ_save = econ
        dist_min = dist
    return dist
 econ = Economy(alpha=alpha,
                beta=beta,
                chi=chi,
                delk=delk,
                delkap=delkap,
                eta=eta,
                grate=grate,
                la=la,
                mu=mu,
                ome=ome,
                phi=phi,
                rho=rho,
                tauc=tauc,
                taud=taud,
                taup=taup,
                theta=theta,
                veps=veps,
                vthet=vthet,
                zeta=zeta,
                A=A,
                upsilon=upsilon,
                varpi=varpi,
                agrid=agrid,
                kapgrid=kapgrid,
                prob=prob,
                zgrid=zgrid,
                epsgrid=epsgrid,
                is_to_iz=is_to_iz,
                is_to_ieps=is_to_ieps,
                prob_yo=prob_yo,
                iota=iota,
                la_tilde=la_tilde,
                tau_wo=tau_wo,
                tau_bo=tau_bo,
                trans_retire=trans_retire,
                g=g,
                yn=yn,
                xnb=xnb,
                taub=taub,
                bbracket=bbracket,
                psib=psib,
                taun=taun,
                nbracket=nbracket,
                psin=psin,
                sim_time=sim_time,
                num_total_pop=num_total_pop,
                num_suba_inner=num_suba_inner,
                num_subkap_inner=num_subkap_inner,
                path_to_data_i_s=path_to_data_i_s,
                path_to_data_is_o=path_to_data_is_o,
                init_a=init_a,
                init_kap0=init_kap0,
                init_is_c=init_is_c)
Ejemplo n.º 3
0
 econ = Economy(alpha = alpha,
                beta = beta,
                chi = chi,
                delk = delk,
                delkap = delkap,
                eta = eta,
                grate = grate,
                la = la,
                mu = mu,
                ome = ome,
                phi = phi,
                rho = rho,
                tauc = tauc,
                taud = taud,
                taup = taup,
                theta = theta,
                veps = veps,
                vthet = vthet,
                zeta = zeta,
                A = A,
                upsilon = upsilon,
                varpi = varpi,
                agrid = agrid,
                kapgrid = kapgrid,
                prob = prob,
                zgrid = zgrid,
                epsgrid = epsgrid,
                is_to_iz = is_to_iz,
                is_to_ieps = is_to_ieps,
                prob_yo = prob_yo,
                iota = iota,
                la_tilde = la_tilde,
                tau_wo = tau_wo,
                tau_bo = tau_bo,
                trans_retire = trans_retire,
                g = g,
                yn = yn,
                xnb = xnb,
                taub = taub,
                bbracket = bbracket,
                psib = psib,
                taun = taun,
                nbracket = nbracket,
                psin = psin,
                sim_time = sim_time,
                num_total_pop = num_total_pop,
                num_suba_inner = num_suba_inner,
                num_subkap_inner = num_subkap_inner,
                path_to_data_i_s = path_to_data_i_s,
                path_to_data_is_o = path_to_data_is_o)