First I can solve a transport equation with a source (Is it still called transport equation?) using DSolve. The form of the source serves only as an example. It can be anything.
sol1 = DSolve[
{ D[y[x, t], t] - 2 D[y[x, t], x] == Exp[-(t - 1)^2 - (x - 5)^2],
y[x, 0] == 0
},
y[x, t],
{x, t}
];
Plot3D[Evaluate[y[x, t] /. sol1], {x, -10, 10}, {t, 0, 15}, PlotRange -> All]
It will give me the following results. This is what I expected.

My question is, if I want to use NDSolve instead, what should I use as boundary conditions? The BC should allow the bulk to follow out of the domain and never return. I have no idea how to write down the BC.
For example,
sol3 = NDSolve[
{ D[y[x, t], t] - 2 D[y[x, t], x] == Exp[-(t - 1)^2 - (x - 5)^2],
y[x, 0] == 0,
y[-10, t] == 0,
y[10, t] == 0},
y[x, t],
{x, -10, 10},
{t, 0, 15}];
Plot3D[Evaluate[y[x, t] /. sol3], {x, -10, 10}, {t, 0, 15}, PlotRange -> All]
will give me an error and the following results which is obviously wrong:
NDSolve::eerr: Warning: scaled local spatial error estimate of 89.96891825336817` at t = 15.` in the direction of independent variable x is much greater than the prescribed error tolerance. Grid spacing with 25 points may be too large to achieve the desired accuracy or precision. A singularity may have formed or a smaller grid spacing can be specified using the MaxStepSize or MinPoints method options. >>

I think the error might involve something besides BC.



