Hi Natasha,
You are probably approaching the limit of DSolve's ability to find an analytical solution (at least directly). You should consider a numerical solution for this problem.
If you are okay with a numerical solution, you can use the code below as a starting point.
tmax = 2/100;
ptmax = tmax/5;
eqn = D[u[x, t], t] == 100*D[u[x, t], {x, 2}] - 50*D[u[x, t], x];
ic = u[x, 0] == 50;
bc1 = u[0, t] == 50 + 20 Tanh[20000 t] ;
bc2 = (D[u[x, t], x] == 0) /. {x -> 1};
ndsol = NDSolveValue[{eqn, ic, bc1, bc2},
u[x, t], {x, 0, 1}, {t, 0, tmax},
Method -> {"MethodOfLines",
"SpatialDiscretization" -> {"TensorProductGrid",
"MinPoints" -> 50}}, MaxStepFraction -> 1/1000];
ContourPlot[ndsol, {t, 0.`, ptmax}, {x, 0.`, 1},
PlotPoints -> {200, 200}, MaxRecursion -> 4, PlotTheme -> "Web",
ColorFunction -> ColorData["DarkBands"]]
Note that I used a Tanh function to provide a rapidly rising "step" function so that the boundary and initial conditions were consistent. If you want to explore the effects of velocity on the solution, you could wrap the above (note that flipped the plot 90 degrees so it would flow left to right) into a Module like so.
condiff[v_] := Module[{tmax, ptmax, eqn, ic, bc1, bc2, ndsol, cp},
tmax = 2/100;
ptmax = 2 tmax/5;
eqn = D[u[x, t], t] == 100*D[u[x, t], {x, 2}] - v*D[u[x, t], x];
ic = u[x, 0] == 50;
bc1 = u[0, t] == 50 + 20 Tanh[20000 t] ;
bc2 = (D[u[x, t], x] == 0) /. {x -> 1};
ndsol =
NDSolveValue[{eqn, ic, bc1, bc2}, u, {x, 0, 1}, {t, 0, tmax},
Method -> {"MethodOfLines",
"SpatialDiscretization" -> {"TensorProductGrid",
"MinPoints" -> 2000}}, MaxStepFraction -> 1/1000];
cp = ContourPlot[ndsol[x, t], {x, 0.`, 1}, {t, 0.`, ptmax},
PlotRange -> {50, 70}, PlotPoints -> {50, 50}, MaxRecursion -> 4,
PlotTheme -> "Web", ColorFunction -> ColorData["DarkBands"],
FrameLabel -> Automatic];
Show[{cp, Graphics[Arrow[{{0, 0.004}, {v/500, 0.004}}]]}]
]
Now, you can create an animation of velocities from 0 to 500 (it will take a while!).
imgs = Table[condiff[v], {v, 0, 500, 5}];
ListAnimate[imgs]