Here is one way to generate it:
from numpy import *
from dolfin import *
# Parameters
height = 50
radius = 0.1
# Mesh parameters
nh = 100
nr = 20
# Generate suitable ranges for parameters
u_range = arange(nr, dtype='d')/nr*2*pi
v_range = (arange(nh, dtype='d'))/(nh - 1)*height
# Create the mesh
mesh = Mesh()
editor = MeshEditor()
editor.open(mesh, "triangle", 2, 3)
# Create a list to store the vertices
editor.init_vertices(nh*nr)
# Populate the list of vertices
j = 0
for v in v_range:
for u in u_range:
editor.add_vertex(j, cos(u)*radius, \
sin(u)*radius, \
v)
j = j + 1
# Create a list to store the cells
editor.init_cells(nr*(nh-1)*2)
# Populate the list of cells
k = 0
for i in range(nh - 1):
for j in range(nr - 1):
editor.add_cell(k , i*nr + j, (i + 1)*nr + j + 1, i*nr + j + 1)
editor.add_cell(k + 1, i*nr + j, (i + 1)*nr + j , (i + 1)*nr + j + 1)
k = k + 2
# Close the geometry
for j in range(nh-1):
editor.add_cell(k , nr*j+nr-1, nr*j, nr*(j+1))
editor.add_cell(k + 1, nr*j+nr-1, nr*(j+1)+nr-1, nr*(j+1))
k = k + 2
plot(mesh)
interactive()