We can solve this problem with using numerical method developed in our recent paper and based on Euler wavelets. First we define wavelets and all functions to be computed
UE[m_, t_] := EulerE[m, t]
psi[k_, n_, m_, t_] :=
Piecewise[{{2^(k/2) Sqrt[2/Pi] 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},
var1 = Flatten[Table[c[n, m], {n, 1, 2^(k - 1)}, {m, 0, M - 1}]]];
nn = Length[var1];
dx = 1/(nn); xl = Table[ l*dx, {l, 0, nn}]; ycol =
xcol = 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]];
Int2 = Integrate[Int1, t1];
Psi[y_] := Psijk /. t1 -> y; int1[y_] := Int1 /. t1 -> y;
int2[y_] := Int2 /. t1 -> y; M = nn;
U1 = Array[a1, {M, M}]; U2 = Array[a2, {M, M}]; U3 =
Array[a3, {M, M}]; U4 = Array[a4, {M, M}]; G1 = Array[g1, {M}]; G2 =
Array[g2, {M}]; G3 = Array[g3, {M}]; G4 = Array[g4, {M}]; F1 =
Array[f1, {M}]; F2 = Array[f2, {M}];
u1[x_, y_] := int2[x] . U1 . Psi[y] + x G1 . Psi[y] + F1 . Psi[y];
u2[x_, y_] := Psi[x] . U2 . int2[y] + y G2 . Psi[x] + F2 . Psi[x];
uy[x_, y_] := Psi[x] . U2 . int1[y] + G2 . Psi[x];
ux[x_, y_] := int1[x] . U1 . Psi[y] + G1 . Psi[y];
uxx[x_, y_] := Psi[x] . U1 . Psi[y];
uyy[x_, y_] := Psi[x] . U2 . Psi[y];
tehx[x_, y_] := Psi[x] . U3 . Psi[y];
tecy[x_, y_] := Psi[x] . U4 . Psi[y];
teh[x_, y_] := int1[x] . U3 . Psi[y] + G3 . Psi[y];
tec[x_, y_] := Psi[x] . U4 . int1[y] + G4 . Psi[x];
Please, note, that we solve system of equations eq1 = D[θh[x, y], x] + bh (θh[x, y] - θw[x, y]); eq2 = D[θc[x, y], y] + bc (θc[x, y] - θw[x, y]); eq3 = λh D[θw[x, y], x, x] + λc V D[θw[x, y], y, y] + bh (θh[x, y] - θw[x, y]) + V bc (θc[x, y] - θw[x, y]);
, and u1, teh, tec
are θw, θh, θc
consequently. Second step, we define system of equations and variables on the grid for k=16, w=0.0001
. Test 1:
L = 0.025; l = 0.025; w = 0.0001; k = 16; A =
5625 10^-6; h = 3000; bh = 5.375; bc =
4 bh; \[Lambda]c = (1/l) (k w L/(A h/bc)); \[Lambda]h = (1/
L) (k w l/(A h/bh)); V = 0.25; var =
Join[Flatten[U1], Flatten[U2], G1, G2, F1, F2, Flatten[U3],
Flatten[U4], G3, G4]; eq =
Join[Flatten[
Table[\[Lambda]h*uxx[xcol[[i]], ycol[[j]]] + \[Lambda]c*V*
uyy[xcol[[i]], ycol[[j]]] - tehx[xcol[[i]], ycol[[j]]] -
V*tecy[xcol[[i]], ycol[[j]]] == 0, {i, M}, {j, M}]],
Flatten[Table[
tehx[xcol[[i]], ycol[[j]]] +
bh (teh[xcol[[i]], ycol[[j]]] - u1[xcol[[i]], ycol[[j]]]) ==
0, {i, M}, {j, M}]],
Flatten[Table[
tecy[xcol[[i]], ycol[[j]]] +
bc (tec[xcol[[i]], ycol[[j]]] - u2[xcol[[i]], ycol[[j]]]) ==
0, {i, M}, {j, M}]],
Flatten[Table[
u1[xcol[[i]], ycol[[j]]] - u2[xcol[[i]], ycol[[j]]] == 0, {i,
M}, {j, M}]],
Flatten[Table[{ux[1, ycol[[j]]] == 0, ux[0, ycol[[j]]] == 0,
uy[xcol[[j]], 0] == 0, uy[xcol[[j]], 1] == 0,
teh[0, ycol[[j]]] == 1, tec[xcol[[j]], 0] == 0}, {j, M}]]];
Finally we calculate and visualize numerical solution as follows
sol = FindRoot[eq, Table[{var[[i]], 1/10}, {i, Length[var]}],
MaxIterations -> 1000];
{Plot3D[Evaluate[teh[x, y] /. sol], {x, 0, 1}, {y, 0, 1},
PlotRange -> All, ColorFunction -> "Rainbow",
AxesLabel -> Automatic, PlotLabel -> \[Theta]h, PlotPoints -> 50,
PlotTheme -> "Scientific", MeshStyle -> White],
Plot3D[Evaluate[tec[x, y] /. sol], {x, 0, 1}, {y, 0, 1},
PlotRange -> All, ColorFunction -> "Rainbow",
AxesLabel -> Automatic, PlotLabel -> \[Theta]c, PlotPoints -> 50,
PlotTheme -> "Scientific", MeshStyle -> White],
Plot3D[Evaluate[u1[x, y] /. sol], {x, 0, 1}, {y, 0, 1},
PlotRange -> All, ColorFunction -> "Rainbow",
AxesLabel -> Automatic, PlotLabel -> \[Theta]w, PlotPoints -> 50,
PlotTheme -> "Scientific", MeshStyle -> White]}

Test 2. We compute solution for w = 0.0001; k = 390;

Test 3. We compute solution for w = 0.002; k = 390;
. In this case we can compare solution computed with wavelets - Figure 3 and with least squares algorithm - Figure 4. In the last picture shown difference two solutions θw
on the grid

Update 1. Implementation of list squares method as it explained in the paper LEAST SQUARES FOURIER SERIES SOLUTIONS TO BOUNDARY VALUE PROBLEMS by ROBERT B. KELMAN. Definitions of base function and solution
UE[m_, t_] := Cos[m t] Exp[-m t]
nn = 5;
dx = 1/(nn); xl = Table[ l*dx, {l, 0, nn}]; ycol =
xcol = Table[(xl[[l - 1]] + xl[[l]])/2, {l, 2, nn + 1}]; Psijk =
Table[UE[n , t1], {n, 0, nn - 1}]; Int1 = Integrate[Psijk, t1];
Int2 = Integrate[Int1, t1];
Psi[y_] := Psijk /. t1 -> y; int1[y_] := Int1 /. t1 -> y;
int2[y_] := Int2 /. t1 -> y; M = nn;
U1 = Array[a1, {M, M}]; U2 = Array[a2, {M, M}]; U3 =
Array[a3, {M, M}]; U4 = Array[a4, {M, M}]; G1 = Array[g1, {M}]; G2 =
Array[g2, {M}]; G3 = Array[g3, {M}]; G4 = Array[g4, {M}]; F1 =
Array[f1, {M}]; F2 = Array[f2, {M}];
u1[x_, y_] := int2[x] . U1 . Psi[y] + x G1 . Psi[y] + F1 . Psi[y];
u2[x_, y_] := Psi[x] . U2 . int2[y] + y G2 . Psi[x] + F2 . Psi[x];
uy[x_, y_] := Psi[x] . U2 . int1[y] + G2 . Psi[x];
ux[x_, y_] := int1[x] . U1 . Psi[y] + G1 . Psi[y];
uxx[x_, y_] := Psi[x] . U1 . Psi[y];
uyy[x_, y_] := Psi[x] . U2 . Psi[y];
tehx[x_, y_] := Psi[x] . U3 . Psi[y];
tecy[x_, y_] := Psi[x] . U4 . Psi[y];
teh[x_, y_] := int1[x] . U3 . Psi[y] + G3 . Psi[y];
tec[x_, y_] := Psi[x] . U4 . int1[y] + G4 . Psi[x];
We solve system of equations eq1 = D[θh[x, y], x] + bh (θh[x, y] - θw[x, y]); eq2 = D[θc[x, y], y] + bc (θc[x, y] - θw[x, y]); eq3 = λh D[θw[x, y], x, x] + λc V D[θw[x, y], y, y] + bh (θh[x, y] - θw[x, y]) + V bc (θc[x, y] - θw[x, y]);
, and u1, teh, tec
are θw, θh, θc
consequently. Definitions system of equations and variables on the grid for k=16, w=0.0001
. Test 1:
L = 0.025; l = 0.025; w = 0.0001; k = 16; A =
5625 10^-6; h = 3000; bh = 5.375; bc =
4 bh; \[Lambda]c = (1/l) (k w L/(A h/bc)); \[Lambda]h = (1/
L) (k w l/(A h/bh)); V = 0.25; var =
Join[Flatten[U1], Flatten[U2], G1, G2, F1, F2, Flatten[U3],
Flatten[U4], G3, G4]; eq =
Join[Flatten[
Table[\[Lambda]h*uxx[xcol[[i]], ycol[[j]]] + \[Lambda]c*V*
uyy[xcol[[i]], ycol[[j]]] - tehx[xcol[[i]], ycol[[j]]] -
V*tecy[xcol[[i]], ycol[[j]]] == 0, {i, M}, {j, M}]],
Flatten[Table[
tehx[xcol[[i]], ycol[[j]]] +
bh (teh[xcol[[i]], ycol[[j]]] - u1[xcol[[i]], ycol[[j]]]) ==
0, {i, M}, {j, M}]],
Flatten[Table[
tecy[xcol[[i]], ycol[[j]]] +
bc (tec[xcol[[i]], ycol[[j]]] - u2[xcol[[i]], ycol[[j]]]) ==
0, {i, M}, {j, M}]],
Flatten[Table[
u1[xcol[[i]], ycol[[j]]] - u2[xcol[[i]], ycol[[j]]] == 0, {i,
M}, {j, M}]],
Flatten[Table[{ux[1, ycol[[j]]] == 0, ux[0, ycol[[j]]] == 0,
uy[xcol[[j]], 0] == 0, uy[xcol[[j]], 1] == 0,
teh[0, ycol[[j]]] == 1, tec[xcol[[j]], 0] == 0}, {j, M}]]];
Finally we calculate and visualize numerical solution
{bvec, mat} = CoefficientArrays[eq, var];
sol = LinearSolve[mat, -bvec];
rul = Table[var[[i]] -> sol[[i]], {i, Length[var]}];
{Plot3D[Evaluate[teh[x, y] /. rul], {x, 0, 1}, {y, 0, 1},
PlotRange -> All, ColorFunction -> "Rainbow",
AxesLabel -> Automatic, PlotLabel -> \[Theta]h, PlotPoints -> 50,
PlotTheme -> "Scientific", MeshStyle -> White],
Plot3D[Evaluate[tec[x, y] /. rul], {x, 0, 1}, {y, 0, 1},
PlotRange -> All, ColorFunction -> "Rainbow",
AxesLabel -> Automatic, PlotLabel -> \[Theta]c, PlotPoints -> 50,
PlotTheme -> "Scientific", MeshStyle -> White],
Plot3D[Evaluate[u1[x, y] /. rul], {x, 0, 1}, {y, 0, 1},
PlotRange -> All, ColorFunction -> "Rainbow",
AxesLabel -> Automatic, PlotLabel -> \[Theta]w, PlotPoints -> 50,
PlotTheme -> "Scientific", MeshStyle -> White]}

Update 2. We always can solve this problem as an optimization (minimization) problem as follows
UE[m_, t_] := Cos[m t] Exp[-m t]
nn = 5;
dx = 1/(nn); xl = Table[l*dx, {l, 0, nn}]; ycol =
xcol = Table[(xl[[l - 1]] + xl[[l]])/2, {l, 2, nn + 1}]; Psijk =
Table[UE[n, t1], {n, 0, nn - 1}]; Int1 = Integrate[Psijk, t1];
Int2 = Integrate[Int1, t1];
Psi[y_] := Psijk /. t1 -> y; int1[y_] := Int1 /. t1 -> y;
int2[y_] := Int2 /. t1 -> y; M = nn;
U1 = Array[a1, {M, M}]; U2 = Array[a2, {M, M}]; U3 =
Array[a3, {M, M}]; U4 = Array[a4, {M, M}]; G1 = Array[g1, {M}]; G2 =
Array[g2, {M}]; G3 = Array[g3, {M}]; G4 = Array[g4, {M}]; F1 =
Array[f1, {M}]; F2 = Array[f2, {M}];
u1[x_, y_] := int2[x] . U1 . Psi[y] + x G1 . Psi[y] + F1 . Psi[y];
u2[x_, y_] := Psi[x] . U2 . int2[y] + y G2 . Psi[x] + F2 . Psi[x];
uy[x_, y_] := Psi[x] . U2 . int1[y] + G2 . Psi[x];
ux[x_, y_] := int1[x] . U1 . Psi[y] + G1 . Psi[y];
uxx[x_, y_] := Psi[x] . U1 . Psi[y];
uyy[x_, y_] := Psi[x] . U2 . Psi[y];
tehx[x_, y_] := Psi[x] . U3 . Psi[y];
tecy[x_, y_] := Psi[x] . U4 . Psi[y];
teh[x_, y_] := int1[x] . U3 . Psi[y] + G3 . Psi[y];
tec[x_, y_] := Psi[x] . U4 . int1[y] + G4 . Psi[x];
L = 0.025; l = 0.025; w = 0.0001; k = 16; A =
5625 10^-6; h = 3000; bh = 5.375; bc =
4 bh; \[Lambda]c = (1/l) (k w L/(A h/bc)); \[Lambda]h = (1/
L) (k w l/(A h/bh)); V = 0.25; var =
Join[Flatten[U1], Flatten[U2], G1, G2, F1, F2, Flatten[U3],
Flatten[U4], G3, G4]; eq =
Join[Flatten[
Table[\[Lambda]h*uxx[xcol[[i]], ycol[[j]]] + \[Lambda]c*V*
uyy[xcol[[i]], ycol[[j]]] - tehx[xcol[[i]], ycol[[j]]] -
V*tecy[xcol[[i]], ycol[[j]]], {i, M}, {j, M}]],
Flatten[Table[
tehx[xcol[[i]], ycol[[j]]] +
bh (teh[xcol[[i]], ycol[[j]]] - u1[xcol[[i]], ycol[[j]]]), {i,
M}, {j, M}]],
Flatten[Table[
tecy[xcol[[i]], ycol[[j]]] +
bc (tec[xcol[[i]], ycol[[j]]] - u2[xcol[[i]], ycol[[j]]]), {i,
M}, {j, M}]],
Flatten[Table[
u1[xcol[[i]], ycol[[j]]] - u2[xcol[[i]], ycol[[j]]], {i, M}, {j,
M}]]]; bc =
Flatten[Table[{ux[1, ycol[[j]]] == 0, ux[0, ycol[[j]]] == 0,
uy[xcol[[j]], 0] == 0, uy[xcol[[j]], 1] == 0,
teh[0, ycol[[j]]] == 1, tec[xcol[[j]], 0] == 0}, {j, M}]];
sol = NMinimize[{eq . eq, bc}, var]
Visualization
{Plot3D[Evaluate[teh[x, y] /. sol[[2]]], {x, 0, 1}, {y, 0, 1},
PlotRange -> All, ColorFunction -> "Rainbow",
AxesLabel -> Automatic, PlotLabel -> \[Theta]h, PlotPoints -> 50,
PlotTheme -> "Scientific", MeshStyle -> White],
Plot3D[Evaluate[tec[x, y] /. sol[[2]]], {x, 0, 1}, {y, 0, 1},
PlotRange -> All, ColorFunction -> "Rainbow",
AxesLabel -> Automatic, PlotLabel -> \[Theta]c, PlotPoints -> 50,
PlotTheme -> "Scientific", MeshStyle -> White],
Plot3D[Evaluate[u1[x, y] /. sol[[2]]], {x, 0, 1}, {y, 0, 1},
PlotRange -> All, ColorFunction -> "Rainbow",
AxesLabel -> Automatic, PlotLabel -> \[Theta]w, PlotPoints -> 50,
PlotTheme -> "Scientific", MeshStyle -> White]}

k=390
represents copper (thermal conductivity). However, when I switch to steel, i.e.k=16
, my method always behaves unbounded at the boundaries. $\endgroup$