0
$\begingroup$

I want to resolve a PDE model, which is 2D heat diffusion equation with Neumann boundary conditions. The key problem is that I have some trouble in solving the equation numerically. Consider the following PDE:

enter image description here

Consider the following code:

 equation = 
  Laplacian[T[r, z, t], {r, z}] + (1/r)*
    D[T[r, z, t], r] - (1/20)*D[T[r, z, t], t];

(*Boundary Conditions*)

H=100
bc1 = NeumannValue[H*(T[r, z, t] +243), {0.011 <= z && r == 0.05}];
bc2 = NeumannValue[H*(-243 - T[r, z, t]), {0.011 <= z && r == 0.085}];
bc3 = NeumannValue[0, z == 0];
bc4 = NeumannValue[H*(-243 - T[r, z, t]), {z == 0.011 && 0.05 <= r <= 0.06}];
bc5 = NeumannValue[345*(1 - t/3), {0.06 <= r <= 0.085 && z == 0.011}];

(*Initial Condition*)

ic = T[r, z, 0] == -253;

solution = 
  NDSolveValue[{equation == bc1 + bc2 + bc3 + bc4 + bc5, ic}, 
   T, {r, 0.06, 0.085}, {z, 0, 0.022}, {t, 0, 10}, 
   Method -> {"PDEDiscretization" -> {"MethodOfLines", 
       "SpatialDiscretization" -> {"FiniteElement", 
         "MeshOptions" -> {"MaxCellMeasure" -> {"Length" -> 
              0.001}}}}}];
Plot[{solution[0.085, 0.022, t], solution[0.05, 0.022, t]}, {t, 0, 10}, 
 PlotTheme -> "Detailed", PlotStyle -> Thickness[0.01], 
 ColorFunction -> "TemperatureMap", PlotRange -> All]

I got this result:

enter image description here

But this is not the true result, because the following errors occurred:

NDSolveValue::bcnop: No places were found on the boundary where {z==0.0075&&0.025<=r<=0.06} was True, so NeumannValue[60/47 (-238-T),{z==0.0075&&0.025<=r<=0.06}] will effectively be ignored.

NDSolveValue::bcnop: No places were found on the boundary where {0.06<=r<=0.085&&z==0.0075} was True, so NeumannValue[105.837 (1-t/3),{0.06<=r<=0.085&&z==0.0075}] will effectively be ignored.

NDSolveValue::bcnop: No places were found on the boundary where {0.06<=r<=0.085&&z==0.0075} was True, so NeumannValue[105.837 (1-t/3),{0.06<=r<=0.085&&z==0.0075}] will effectively be ignored.

General::stop: Further output of NDSolveValue::bcnop will be suppressed during this calculation.

NDSolve::bcnop: No places were found on the boundary where {0.06<=r<=0.085&&z==0.0075} was True, so NeumannValue[105.837 (1-t/3),{0.06<=r<=0.085&&z==0.0075}] will effectively be ignored.

NDSolve::bcnop: No places were found on the boundary where {0.06<=r<=0.085&&z==0.0075} was True, so NeumannValue[105.837 (1-t/3),{0.06<=r<=0.085&&z==0.0075}] will effectively be ignored.

NDSolve::bcnop: No places were found on the boundary where {0.06<=r<=0.085&&z==0.0075} was True, so NeumannValue[105.837 (1-t/3),{0.06<=r<=0.085&&z==0.0075}] will effectively be ignored.

General::stop: Further output of NDSolve::bcnop will be suppressed during this calculation.
$\endgroup$
  • $\begingroup$ Boundary conditions do not appear to be consistent with the specified range of integration, {r, 0.06, 0.085}, {z, 0, 0.022}. $\endgroup$ – bbgodfrey Oct 1 '17 at 1:49
  • $\begingroup$ Do you know of any method I can use to resolve this inconsistency? Thank you anyway!! $\endgroup$ – Gabriel Nunes Oct 1 '17 at 2:52
  • $\begingroup$ Typically, boundary conditions would be applied at r == 0.06, r == 0.085, z == 0, and z == 0.022. $\endgroup$ – bbgodfrey Oct 1 '17 at 3:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.