def METHOD_NAME(shape, show=False):
    "On-axis cylinder of charge for different radii"
    # Initialize the simulation object
    sim = Simulation( Nz, zmax, Nr, rmax, Nm, (zmax-zmin)/Nz/c,
        p_zmin, p_zmax, p_rmin, p_rmax, p_nz, p_nr, p_nt, n_e,
        zmin=zmin, boundaries={'z':'periodic', 'r':'reflective'}, verbose_level=0,
        smoother=BinomialSmoother(1, False), particle_shape=shape)
    # store results in dict
    res = {}
    # Scale the radius of the cylinder and calculate the space charge field
    for i, scale in enumerate(scales):
        res[scale] = calculate_fields(sim, scale)
    if show is False:
        for i, scale in enumerate(scales):
            r, Er, Er_theory, rho_n = res[scale]
            # Check that the density is correct in mode 0, below this index
            assert np.allclose( (-Er*r)[-5:], (Er_theory*r)[-5:], 1.e-3 )
    else:
        import matplotlib.pyplot as plt
        import matplotlib
        # Segmented colormap
        cmap = matplotlib.cm.get_cmap('YlGnBu')
        colors = np.array([co for co in cmap(np.linspace(0.2,0.8,7))])[::-1]
        # Plot charge density
        plt.title('Cylinder charge density')
        for i, scale in enumerate(scales):
            r, Er, Er_theory, rho_n = res[scale]
            plt.plot(r*1.e6, rho_n/(n_e*e), label=str(scale), color=colors[i])
        plt.legend()
        plt.xlim(0, 1.25)
        plt.ylabel(r'$\rho_n$')
        plt.xlabel(r'$r$')
        plt.show()
        # Plot simulated and analytically calculated field
        plt.title('Cylinder space charge field')
        for i, scale in enumerate(scales):
            r, Er, Er_theory, rho_n = res[scale]
            E0 = (n_e*e*p_rmax**2/(2*epsilon_0))
            plt.plot(r*1.e6, -Er*r/E0, label=str(scale), color=colors[i])
            plt.plot(r*1.e6, Er_theory*r/E0, color=colors[i], ls='--')
        plt.legend()
        plt.xlim(0, 1.25)
        plt.ylabel(r'$-E_{r,norm} \times r$')
        plt.xlabel(r'$r$')
        plt.show()