Make uniform mesh with quad elements

In the following, the parameters m and n enable you to control the mesh resolution in each direction.

Needs["NDSolve`FEM`"];
r0 = .5; Emod = 2*10^6; ν = 0.3; ρ = 7860; g = 10; F = 100000; k = ρ* g*.5^2*Pi/2/F;
m = 5;
n = 18;
R = ToElementMesh[Rectangle[{0, 0}, {m, n}], MaxCellMeasure -> {"Length" -> 1}, "MeshOrder" -> 1];

f = z \[Function] r0 Exp[k z];
F = {r, z} \[Function] {(r/m) f[4 z/n], (4 z/n)};
R2 = ToElementMesh["Coordinates" -> F @@@ R["Coordinates"], "MeshElements" -> R["MeshElements"]];
Show[
 RegionPlot[ImplicitRegion[0 <= r <= f[z] && 0 <= z <= 4, {r, z}]],
 R2["Wireframe"]
 ]

enter image description here

Edit

This should work now for any function f.


An alternative method would be to deform a rectangle:

mesh2 = ToElementMesh[ (* determines horizontal scale: r0*Exp[k*4]/2 *)
   Rectangle @@ Transpose[{{0, r0*Exp[k*4]/2}, {0, 4}}]];

drfn = Function[{r, z}, r ( 2 E^(k (-4 + z)) - 1)]; (* r * (scale - 1) *)
dzfn = Function[{r, z}, 0];     (* 0 deformation of z coordinates *)

dr = ElementMeshInterpolation[{mesh2}, rfn @@@ mesh2["Coordinates"]];
dz = ElementMeshInterpolation[{mesh2}, zfn @@@ mesh2["Coordinates"]];

mesh3 = ElementMeshDeformation[mesh2, {dr, dz}];

Show[mesh3["Wireframe"], Frame -> True]

Show[
 %,
 mesh["Wireframe"[
   "ElementMeshDirective" -> Directive[EdgeForm[Red], FaceForm[]]]], 
 Frame -> True]

Update: Since the OP is using the FEMAddOns package, I would also suggest the following:

nx = 5; ny = 18;
mesh3 = StructuredMesh[Reverse@Array[
     Compile @@ {{r, z}, {r*r0*Exp[k*z], z}},
     {2 nx + 1, 2 ny + 1}, {{0., 1.}, {0., 4.}}], {ny, nx}, 
   InterpolationOrder -> 2];