def _cylindrical_radius_component(field, data): """The cylindrical radius component of the vector field Relative to the coordinate system defined by the *normal* vector, *center*, and *bulk_* field parameters. """ normal = data.get_field_parameter("normal") vectors = obtain_rv_vec(data, (xn, yn, zn), "bulk_%s" % basename) theta = resize_vector(data["index", 'cylindrical_theta'], vectors) return get_cyl_r_component(vectors, theta, normal)
def _cylindrical_radius_component(field, data): """The cylindrical radius component of the vector field Relative to the coordinate system defined by the *normal* vector, *center*, and *bulk_* field parameters. """ normal = data.get_field_parameter("normal") vectors = obtain_relative_velocity_vector(data, (xn, yn, zn), f"bulk_{basename}") theta = data["index", "cylindrical_theta"] return get_cyl_r_component(vectors, theta, normal)
def test_cylindrical_coordinate_projections(): normal = [0, 0, 1] theta = get_cyl_theta(coords, normal) z = get_cyl_z(coords, normal) zero = np.tile(0, coords.shape[1]) # Purely radial field vecs = np.array([np.cos(theta), np.sin(theta), zero]) assert_array_almost_equal(zero, get_cyl_theta_component(vecs, theta, normal)) assert_array_almost_equal(zero, get_cyl_z_component(vecs, normal)) # Purely toroidal field vecs = np.array([-np.sin(theta), np.cos(theta), zero]) assert_array_almost_equal(zero, get_cyl_z_component(vecs, normal)) assert_array_almost_equal(zero, get_cyl_r_component(vecs, theta, normal)) # Purely z field vecs = np.array([zero, zero, z]) assert_array_almost_equal(zero, get_cyl_theta_component(vecs, theta, normal)) assert_array_almost_equal(zero, get_cyl_r_component(vecs, theta, normal))
def _particle_velocity_cylindrical_radius(field, data): """The cylindrical radius component of the particle velocities Relative to the coordinate system defined by the *normal* vector, *bulk_velocity* vector and *center* field parameters. """ normal = data.get_field_parameter("normal") pos = data["relative_particle_position"].T vel = data["relative_particle_velocity"].T theta = get_cyl_theta(pos, normal) cylr = get_cyl_r_component(vel, theta, normal) return cylr
def _magnetic_r_energy(field, data): normal = data.get_field_parameter("normal") d = data[ftype,'magnetic_field_x'] Bfields = data.ds.arr( [data[ftype,'magnetic_field_x'], data[ftype,'magnetic_field_y'], data[ftype,'magnetic_field_z']], d.units) theta = data["index", 'cylindrical_theta'] B = get_cyl_r_component(Bfields, theta, normal) return 0.5*B*B/mag_factors[B.units.dimensions]*data['cell_volume']
def _particle_velocity_cylindrical_radius(field, data): """The cylindrical radius component of the particle velocities Relative to the coordinate system defined by the *normal* vector, *bulk_velocity* vector and *center* field parameters. """ normal = data.get_field_parameter('normal') center = data.get_field_parameter('center') bv = data.get_field_parameter("bulk_velocity") pos = data.ds.arr([data[ptype, spos % ax] for ax in "xyz"]) vel = data.ds.arr([data[ptype, svel % ax] for ax in "xyz"]) pos = pos - np.reshape(center, (3, 1)) vel = vel - np.reshape(bv, (3, 1)) theta = get_cyl_theta(pos, normal) cylr = get_cyl_r_component(vel, theta, normal) return cylr
def _particle_velocity_cylindrical_radius(field, data): """The cylindrical radius component of the particle velocities Relative to the coordinate system defined by the *normal* vector, *bulk_velocity* vector and *center* field parameters. """ normal = data.get_field_parameter('normal') center = data.get_field_parameter('center') bv = data.get_field_parameter("bulk_velocity") pos = data.ds.arr([data[ptype, spos % ax] for ax in "xyz"]) vel = data.ds.arr([data[ptype, svel % ax] for ax in "xyz"]) theta = get_cyl_theta(pos, normal) pos = pos - np.reshape(center, (3, 1)) vel = vel - np.reshape(bv, (3, 1)) cylr = get_cyl_r_component(vel, theta, normal) return cylr
def _cylindrical_radial(field, data): normal = data.get_field_parameter("normal") vectors = obtain_rv_vec(data, (xn, yn, zn), "bulk_%s" % basename) theta = resize_vector(data["index", 'cylindrical_theta'], vectors) return get_cyl_r_component(vectors, theta, normal)