I’m attempting to solve a simple 2D heat transfer problem with **piecewise initial values** using NDsolve.

Upon running MMA-12.02 code, we can find some **jump values** (red) at time: t = 0 (a bug): see ->

The corresponding code:

```
ClearAll("Global`*")
Needs("NDSolve`FEM`")
(CapitalOmega) = Rectangle({0, 0}, {1, 1});
timetol = 0.001;
Th = 1.0;
Tc = -0.001;
op = !(
*SubscriptBox(((PartialD)), (t))(u(t, x, y))) - !(
*SubsuperscriptBox(((Del)), ({x, y}), (2))(u(t, x, y)));
temperatures = {DirichletCondition(u(t, x, y) == Th, x == 0),
DirichletCondition(u(t, x, y) == Tc, x == 1)};
ininTemp(x_) :=
Piecewise({{Th, 0 <= x <= 1/100}, {Tc, 1/100 < x <= 1}});
ic = {u(0, x, y) == ininTemp(x)};
bcs = {temperatures};
ufunHeat =
NDSolveValue({op == 0, bcs, ic},
u, {t, 0, 0.01}, {x, y} (Element) (CapitalOmega));
list1 = Range(0, 1, 1/100);
list2 = ufunHeat(0, Subdivide(100), 0.5);
ListLinePlot(Transpose({list1, list2}), PlotRange -> All)
```

Therefore, how to **remove these jump values** for the *piecewise initial values*, which needs to look like (A reference (standard) solution)