Ejemplo n.º 1
0
        # mean B
        br_m = a.vals[:, :, a.lut[801], j].reshape((1, nt, nr))
        bt_m = a.vals[:, :, a.lut[802], j].reshape((1, nt, nr))
        bp_m = a.vals[:, :, a.lut[803], j].reshape((1, nt, nr))

        # mean poloidal vort. and current (for phi-derivatives)
        omr_m = a.vals[:, :, a.lut[301], j].reshape((1, nt, nr))
        omt_m = a.vals[:, :, a.lut[302], j].reshape((1, nt, nr))
        jr_m = a.vals[:, :, a.lut[1001], j].reshape((1, nt, nr))
        if not bad_jt:
            jt_m = a.vals[:, :, a.lut[1004], j].reshape((1, nt, nr))
        else:
            jt_m = np.zeros_like(jr_m)

        # full (poloidal) derivatives v
        dvrdr = drad(vr, rr)
        dvtdr = drad(vt, rr)
        dvpdr = drad(vp, rr)

        dvrdt = dth(vr, tt) / rr_3d
        dvtdt = dth(vt, tt) / rr_3d
        dvpdt = dth(vp, tt) / rr_3d

        # full (toroidal) derivatives v
        dvrdp = dvpdr + (1. / rr_3d) * vp + omt
        dvtdp = dvpdt + (cott_3d / rr_3d) * vp - omr
        dvpdp = -dlnrho*vr - dvrdr - (2./rr_3d)*vr - dvtdt -\
                (cott_3d/rr_3d)*vt

        # full (poloidal) derivatives B
        dbrdr = drad(br, rr)
Ejemplo n.º 2
0
        # mean B
        br_m = a.vals[:, :, a.lut[801], j].reshape((1, nt, nr))
        bt_m = a.vals[:, :, a.lut[802], j].reshape((1, nt, nr))
        bp_m = a.vals[:, :, a.lut[803], j].reshape((1, nt, nr))

        # mean poloidal vort. and current (for phi-derivatives)
        omr_m = a.vals[:, :, a.lut[301], j].reshape((1, nt, nr))
        omt_m = a.vals[:, :, a.lut[302], j].reshape((1, nt, nr))
        jr_m = a.vals[:, :, a.lut[1001], j].reshape((1, nt, nr))
        if not bad_jt:
            jt_m = a.vals[:, :, a.lut[1004], j].reshape((1, nt, nr))
        else:
            jt_m = np.zeros_like(jr_m)

        # full (poloidal) derivatives v
        dvrdr = drad(vr, rr)
        dvtdr = drad(vt, rr)
        dvpdr = drad(vp, rr)

        dvrdt = dth(vr, tt) / rr_3d
        dvtdt = dth(vt, tt) / rr_3d
        dvpdt = dth(vp, tt) / rr_3d

        # full (toroidal) derivatives v
        dvrdp = dvpdr + (1. / rr_3d) * vp + omt
        dvtdp = dvpdt + (cott_3d / rr_3d) * vp - omr
        dvpdp = -dlnrho*vr - dvrdr - (2./rr_3d)*vr - dvtdt -\
                (cott_3d/rr_3d)*vt

        # full (poloidal) derivatives B
        dbrdr = drad(br, rr)
Ejemplo n.º 3
0
        bt_m = a.vals[:, :, a.lut[802], j].reshape((1, nt, nr))

        # calculate flux terms
        Bp_meanshear = (br*dOmdr + bt*dOmdt) 
        Bp_meanshear_m = (br_m*dOmdr + bt_m*dOmdt) 
        # still needs to be multiplied by a time scale...

        # these are angular momentum fluxes from magnetic tension
        # they include the factor of 4pi (in geofactor)
        flux_r = np.mean(geofactor*Bp_meanshear*br, axis=0)*my_weight
        flux_t = np.mean(geofactor*Bp_meanshear*bt, axis=0)*my_weight

        flux_r_m = np.mean(geofactor*Bp_meanshear_m*br_m, axis=0)*my_weight
        flux_t_m = np.mean(geofactor*Bp_meanshear_m*bt_m, axis=0)*my_weight

        torque_r = drad(flux_r, rr) + (2/rr_2d)*flux_r
        torque_t = (1/rr_2d)*(dth(flux_t, tt) + cott_2d*flux_t)
        torque = torque_r + torque_t

        torque_r_m = drad(flux_r_m, rr) + (2/rr_2d)*flux_r_m
        torque_t_m = (1/rr_2d)*(dth(flux_t_m, tt) + cott_2d*flux_t_m)
        torque_m = torque_r_m + torque_t_m

        # add to my_vals array
        # first the full terms
        indstart = 0
        my_vals[:, :, indstart + 0] += flux_r
        my_vals[:, :, indstart + 1] += flux_t
        my_vals[:, :, indstart + 2] += torque_r
        my_vals[:, :, indstart + 3] += torque_t
        my_vals[:, :, indstart + 4] += torque
Ejemplo n.º 4
0
for i in range(my_nfiles):
    a = reading_func1(radatadir1 + str(my_files[i]).zfill(8), '')
    mer = reading_func2(radatadir2 + str(my_files[i]).zfill(8), '')

    niter = min(a.niter, mer.niter)
    my_weight = 1.0 / (nfiles * niter)
    for j in range(niter - 1, -1, -1):  # go last to first in case "niters"
        # don't agree
        # mean fields
        br_m = a.vals[:, :, a.lut[801], 0].reshape((1, nt, nr))
        bt_m = a.vals[:, :, a.lut[802], 0].reshape((1, nt, nr))
        bp_m = a.vals[:, :, a.lut[803], 0].reshape((1, nt, nr))

        # mean derivs
        dbrdr_m = drad(br_m, rr)
        dbtdt_m = dth(bt_m, tt)
        dbpdr_m = drad(bp_m, rr)
        dbpdt_m = dth(bp_m, tt)

        # full fields
        br = mer.vals[:, :, :, mer.lut[801], 0]
        bt = mer.vals[:, :, :, mer.lut[802], 0]
        bp = mer.vals[:, :, :, mer.lut[803], 0]

        # full derivs
        dbrdr = drad(br, rr)
        dbtdt = dth(bt, tt)
        dbpdr = drad(bp, rr)
        dbpdt = dth(bp, tt)