As an alternative method we can use the Euler wavelets collocation method described in our paper and on my page. We add one equation $\theta_1=\int{\theta_u du},\theta_2=\int{\theta_v dv}, \theta_1=\theta_2$. With this method we can solve the problem on the grid $16\times 16$ with absolute error of $4\times 10^{-3}$. First, we define exact solution
h[u_, v_] :=
u^2 + v^2; sys = {Derivative[0, 1][h][u, v] +
h[u, v] D[\[Theta][u, v], u] == 0,
Derivative[1, 0][h][u, v] - h[u, v] D[\[Theta][u, v], v] ==
0, \[Theta][0, 0] == 0};
DSolveValue[{D[h[u, v], v] + h[u, v]*D[\[Theta][u, v], u] == 0,
D[h[u, v], u] - h[u, v]*D[\[Theta][u, v], v] == 0, \[Theta][0, 0] ==
Pi/2}, \[Theta], {u, v}]
(Out[]= Function[{u, v}, 1/2 ([Pi] - 4 ArcTan[u/v])])
With this exact solution we can test our numerical solution. Second, we compute numerical solution
UE[m_, t_] := EulerE[m, t]
psi[k_, n_, m_, t_] :=
Piecewise[{{2^(k/2) UE[m, 2^k t - 2 n + 1], (n - 1)/2^(k - 1) <= t <
n/2^(k - 1)}, {0, True}}]
PsiE[k_, M_, t_] :=
Flatten[Table[psi[k, n, m, t], {n, 1, 2^(k - 1)}, {m, 0, M - 1}]]
k0 = 3; M0 = 4; With[{k = k0, M = M0},
nn = Length[Flatten[Table[1, {n, 1, 2^(k - 1)}, {m, 0, M - 1}]]]];
dx = 1/(nn); xl = Table[ l*dx, {l, 0, nn}]; ucol =
vcol = Table[(xl[[l - 1]] + xl[[l]])/2, {l, 2, nn + 1}]; Psijk =
With[{k = k0, M = M0}, PsiE[k, M, t1]]; Int1 =
With[{k = k0, M = M0}, Integrate[PsiE[k, M, t1], t1]];
Psi[y_] := Psijk /. t1 -> y; int1[y_] := Int1 /. t1 -> y;
M = nn;
U1 = Array[a, {M, M}]; U2 = Array[b, {M, M}]; G1 =
Array[g1, {M}]; G2 = Array[g2, {M}];
tet1[u_, v_] := int1[u] . U1 . Psi[v] + G1 . Psi[v];
tet2[u_, v_] := Psi[u] . U2 . int1[v] + G2 . Psi[u];
tetv[u_, v_] := Psi[u] . U2 . Psi[v];
tetu[u_, v_] := Psi[u] . U1 . Psi[v];
eq = Join[
Flatten[Table[
Derivative[0, 1][h][ucol[[i]], vcol[[j]]] +
h[ucol[[i]], vcol[[j]]] tetu[ucol[[i]], vcol[[j]]], {i, M}, {j,
M}]], Flatten[
Table[Derivative[1, 0][h][ucol[[i]], vcol[[j]]] -
h[ucol[[i]], vcol[[j]]] tetv[ucol[[i]], vcol[[j]]], {i, M}, {j,
M}]], Flatten[
Table[tet1[ucol[[i]], vcol[[j]]] - tet2[ucol[[i]], vcol[[j]]], {i,
M}, {j, M}]], {tet1[0, 0], tet2[0, 0]}];
var = Join[Flatten[U1], Flatten[U2], G1, G2];
{vec, mat} = CoefficientArrays[eq, var];
sol = LeastSquares[mat // N, -vec];
rul = Table[var[[i]] -> sol[[i]], {i, Length[var]}];
Visualization of numerical and exact solution, and error for $\theta_1, \theta_2$
{Plot3D[Evaluate[tet1[u, v] /. rul], {u, .1, 1}, {v, .1, 1},
ColorFunction -> Hue, Exclusions -> None],
Plot3D[-2 ArcTan[u/v] + Pi/2, {u, .1, 1}, {v, .1, 1},
ColorFunction -> Hue],
Plot3D[Abs[-2 ArcTan[u/v] + Pi/2 -
Evaluate[tet1[u, v] /. rul]], {u, .1, 1}, {v, .1, 1},
ColorFunction -> Hue, Exclusions -> None, PlotRange -> All],
Plot3D[Abs[-2 ArcTan[u/v] + Pi/2 -
Evaluate[tet2[u, v] /. rul]], {u, .1, 1}, {v, .1, 1},
ColorFunction -> Hue, Exclusions -> None, PlotRange -> All]}

NDSolvesolve it? – xzczd Sep 01 '22 at 17:12NDSolve. – Daniel Castro Sep 02 '22 at 17:13NDSolvefor this special problem. But using finite difference method, I can solve for 50*50 grid in about 1 second. Is this solution of interest? – xzczd Sep 03 '22 at 03:11u1, v1, u2, v2. In your example you use{u, 0.1, 1}, {v, 0.1, 1}and\[Theta][0, 0] == 0. But pointu=0, v=0is not included in the boundary. It could be better to map this system on polar coordinate $\rho, \phi$ and solve in the range $0\le \phi \le 2 \pi, 0\le \rho \le 1$ – Alex Trounev Sep 04 '22 at 14:33