This problem can be easily solved using V10's new FEM functionality.
For concreteness, let's suppose we want to solve the heat equation
$$u_t - \Delta u = 0$$
over the region
$$\left\{(x,y): -1 \leq x \leq 1, \; 0 \leq y \leq e^{-x^2}\right\}.$$
We'll take the initial temperature distribution to be identically 1, i.e. $u(x,y,0)=1$; we'll suppose the bottom edge is held at 1 while the left and right edges are held at 0, i.e. $u(x,0,t)=1$ and $u(-1,y,t)=u(1,y,t)=0$; and we'll suppose the curved top is insulated, i.e. the normal derivate of $u$ is zero along the curve $(x,e^{-x^2})$.
Needs["NDSolve`FEM`"];
Clear[u];
omega = ImplicitRegion[-1 <= x <= 1 && 0 <= y <= Exp[-x^2], {x, y}];
mesh = ToElementMesh[omega];
gamma1 = DirichletCondition[u[t, x, y] == 0, x == 1 || x == -1];
gamma2 = DirichletCondition[u[t, x, y] == 1, y == 0];
u = NDSolveValue[{D[u[t, x, y], t] - Laplacian[u[t, x, y], {x, y}] ==
NeumannValue[0, y == Exp[-x^2]], gamma1, gamma2,
u[0, x, y] == 1}, u, Element[{x, y}, mesh], {t, 0, 3}];
Note that the NeumannValue
is specified as part of the differential equation itself.
We can now plot the solution:
pics = Table[Plot3D[u[t, x, y], Element[{x, y}, omega],
BoundaryStyle -> Thick, ViewPoint -> {2.4, 2.25, 0.9},
ColorFunction -> "TemperatureMap", ColorFunctionScaling -> False,
PlotRange -> {0, 1.01}], {t, 0, 3, 0.05}];
ListAnimate[pics]

u=H
corresponds to the boundaryy=h(x)
. $\endgroup$