Message Boards Message Boards

GROUPS:

System overdetermined

Posted 13 days ago
409 Views
|
11 Replies
|
2 Total Likes
|

Hello! I am coding the two-dimensional (2D) transient heat equation enter image description here

to simulate wood drying by radio frequency and vacuum. I defined the initial and boundary conditions as follows:

enter image description here

enter image description here

enter image description here

, but when I ran NDSolve, the following appears: NDSolveValue::overdet: There are fewer dependent variables, {T[x,y,t]}, than equations, so the system is overdetermined.

enter code here ClearAll;
ec = rho*cp*D[T[x, y, t], t] == 
  k*(D[T[x, y, t], x, x] + D[T[x, y, t], y, y]) + q; f = 6780000; e = 30000; \[Epsilon] = 55.33*10^-12;
  k = 104; h = 10; rho = 410; cp = 2.2; To = 300; Tamb = 323;
  q = f*e^2*\[Epsilon];
  alpha = k/(rho*cp); \[CapitalOmega] = Rectangle[{0, 0}, {0.02, 0.01}];
  ci = T[x, y, 0] == To;
  cc = {D[T[x, y, t], x] == 
      NeumannValue[0, x \[Element] \[CapitalOmega]], 
     D[T[x, y, t], y] == NeumannValue[0, y \[Element] \[CapitalOmega]]}; Needs["NDSolve`FEM`"]
     sln = NDSolveValue[{ec, ci, cc}, 
        T, {t, 0, 1000}, {x, y} \[Element] \[CapitalOmega], 
        Method -> {"PDEDiscretization" -> {"MethodOfLines", 
            "SpatialDiscretization" -> {"FiniteElement"}}}]; ***NDSolveValue::overdet: There are fewer dependent variables, {T[x,y,t]}, than equations, so the system is overdetermined.***

I need help, I can't solve the program. I have tried describing the domain explicitly, but I keep getting errors. Thanks in advance

11 Replies

I do not understand your problem, and my old version of Mathematica doesn't know several of your functions. But you may want to have a look at this

ec = rho*cp*D[T[x, y, t], t] == k*(D[T[x, y, t], x, x] + D[T[x, y, t], y, y]) + q;
 f = 6780000; e = 30000; \[Epsilon] = 55.33*10^-12;
k = 104; h = 10; rho = 410; cp = 2.2; To = 300; Tamb = 323;
q = f*e^2*\[Epsilon];
alpha = k/(rho*cp); \[CapitalOmega] = Rectangle[{0, 0}, {0.02, 0.01}];
ci = T[x, y, 0] == To;
cc = {D[T[x, y, t], x] == 0 /. x -> 0, 
  D[T[x, y, t], y] == 0 /. y -> 0, D[T[x, y, t], x] == 0 /. x -> 1, 
  D[T[x, y, t], y] == 0 /. y -> 1}
sln = NDSolve[{ec, ci, cc}, T, {t, 0, 20}, {x, 0, 1}, {y, 0, 1}];
fT = T /. Flatten[sln]
Animate[
 Plot3D[fT[x, y, t], {x, 0, 1}, {y, 0, 1}, PlotRange -> {200, 9000}],
 {t, 0, 20}]

Thank you very much, could you explain its contour condition to me? In my case I want to have a boundary condition where the heat flow transfer in the domain is by convection, using the NeummanValue command (v12.1)

As my Mathematica doesn't know the NeumannValue command, I don't know what it means and guessed it could mean the contour conditions I used.

By the way, it may be helpful if you tell to the community more of the physical problem you want to describe.

I added a source of heat at the origin of the square (your q substituted by an e-function) and you can see how the temperature there rises quite fast ( this did not work when I placed it in the middle of the square. I don't know why)

To get nice pics I changed the time domain by dividing your k by a factor of 1000.

ec = rho*cp*D[T[x, y, t], t] == 
   k*(D[T[x, y, t], x, x] + D[T[x, y, t], y, y]) + 
    1000 Exp[-5 (x^2 + y^2^2)];
f = 6780000; e = 30000; \[Epsilon] = 55.33*10^-12;
k = 104/1000; h = 10; rho = 410; cp = 2.2; To = 300; Tamb = 323;
q = f*e^2*\[Epsilon];
alpha = k/(rho*cp); \[CapitalOmega] = Rectangle[{0, 0}, {0.02, 0.01}];
ci = T[x, y, 0] == To;
cc = {D[T[x, y, t], x] == 0 /. x -> 0, 
  D[T[x, y, t], y] == 0 /. y -> 0, D[T[x, y, t], x] == 0 /. x -> 1, 
  D[T[x, y, t], y] == 0 /. y -> 1}
sln = NDSolve[{ec, ci, cc}, T, {t, 0, 1000}, {x, 0, 1}, {y, 0, 1}];
fT = T /. Flatten[sln]

and show it

Animate[Plot3D[fT[x, y, t], {x, 0, 1}, {y, 0, 1},  PlotRange -> {300, 400}], {t, 0, 500}]

If this source of heat dies away, here exponentially, the temperature rises as well, this gets slower and the temperature is equilibrated throughout the square.

ec = rho*cp*D[T[x, y, t], t] == 
   k*(D[T[x, y, t], x, x] + D[T[x, y, t], y, y]) + 
    1000 Exp[-5 (x^2 + y^2^2)] Exp[-.01 t];
f = 6780000; e = 30000; \[Epsilon] = 55.33*10^-12;
k = 104/1000; h = 10; rho = 410; cp = 2.2; To = 300; Tamb = 323;
q = f*e^2*\[Epsilon];
alpha = k/(rho*cp); \[CapitalOmega] = Rectangle[{0, 0}, {0.02, 0.01}];
ci = T[x, y, 0] == To;
cc = {D[T[x, y, t], x] == 0 /. x -> 0, 
  D[T[x, y, t], y] == 0 /. y -> 0, D[T[x, y, t], x] == 0 /. x -> 1, 
  D[T[x, y, t], y] == 0 /. y -> 1}
sln = NDSolve[{ec, ci, cc}, T, {t, 0, 1000}, {x, 0, 1}, {y, 0, 1}];
fT = T /. Flatten[sln]



Animate[Plot3D[fT[x, y, t], {x, 0, 1}, {y, 0, 1},  PlotRange -> {300, 400}], {t, 0, 1000}]

There is a typo in my last post in ec. y^2^2 should read y^2.

I don't know why it didn't work (perhaps an uncleared variable), but here is the code for a heat source in the center:

ec = rho*cp*D[T[x, y, t], t] ==  k*(D[T[x, y, t], x, x] + D[T[x, y, t], y, y]) + 
1000 Exp[-5 ((x - .5)^2 + (y - .5)^2)] Exp[-.01 t];
f = 6780000; e = 30000; \[Epsilon] = 55.33*10^-12;
k = 104/1000; h = 10; rho = 410; cp = 2.2; To = 300; Tamb = 323;
q = f*e^2*\[Epsilon];
alpha = k/(rho*cp); \[CapitalOmega] = Rectangle[{0, 0}, {0.02, 0.01}];
ci = T[x, y, 0] == To;
cc = {D[T[x, y, t], x] == 0 /. x -> 0, 
  D[T[x, y, t], y] == 0 /. y -> 0, D[T[x, y, t], x] == 0 /. x -> 1, 
  D[T[x, y, t], y] == 0 /. y -> 1}
sln = NDSolve[{ec, ci, cc}, T, {t, 0, 1000}, {x, 0, 1}, {y, 0, 1}];
fT = T /. Flatten[sln]

Animate[Plot3D[fT[x, y, t], {x, 0, 1}, {y, 0, 1}, PlotRange -> {300, 400}], {t, 0, 1000}]

And what exactly do you want to describe? The temperature within your square (a model for a piece of wood?), and what does your q mean, or the diffusion of a substance (water) our of the square?

Dear, I want to describe the heat transfer during the drying of wood from a sample. The q means the generation of heat by radio frequency and vacuum.

regards

When you define the boundary condition for x and y evaluated at 1, do you mean that your sample has a length of 0 to 1?

I try to replace that 1 with the value from my sample and it shows me the error:

NDSolve :: bcedge: Boundary condition (T ^ (1,0,0)) [0.02, y, t] == ​​0 is not specified on a single edge of the boundary of the computational domain.

Yes, my sample is a square with boundaries of length 1. It should be easy do modify the code.

Where do you try to replace the 1?

But

The q means the generation of heat by radio frequency

Your q operates at each point within the square, meaning that the same amount of heat is delivered throughout the square. The temperature rises steadily and uniformly, That means you don't need your heat-conduction-equation. And this is shown in my very 1st answer. The temperature rises uniformly.

So, what do you want to calculate?

The 1 I replace in OMEGA, cc and sln by the dimensions of my sample and I get the error:

NDSolve :: bcedge: Boundary condition (T ^ (1,0,0)) [0.02, y, t] == ​​0 is not specified on a single edge of the computational domain boundary

I don't know what happens here. As I told you I have an old version of Mathematica, which doesn't understand many of your commands.

Here is a code in which I changed the length of the square to 3.6. As before the flow of heat at the boundaries is zero (that are your bc's) and the q gives a constant supply of energy at each point, giving rise to a uniform rise of T throughout the square (meaning. you don't need your partial diffequation)

ec = rho*cp*D[T[x, y, t], t] ==    k*(D[T[x, y, t], x, x] + D[T[x, y, t], y, y]) + q;
f = 6780000; e = 30000; \[Epsilon] = 55.33*10^-12;
k = 104; h = 10; rho = 410; cp = 2.2; To = 300; Tamb = 323;
q = f*e^2*\[Epsilon];
alpha = k/(rho*cp);
ci = T[x, y, 0] == To;
(* new Length of sides of square*)
xL = 3.6;
cc = {D[T[x, y, t], x] == 0 /. x -> 0,  D[T[x, y, t], y] == 0 /. y -> 0, 
D[T[x, y, t], x] == 0 /. x -> xL,  D[T[x, y, t], y] == 0 /. y -> xL};

sln = NDSolve[{ec, ci, cc}, T, {t, 0, 20}, {x, 0, xL}, {y, 0, xL}];
fT = T /. Flatten[sln]

Animate[Plot3D[fT[x, y, t], {x, 0, xL}, {y, 0, xL}, 
  PlotRange -> {200, 9000}], {t, 0, 20}]

My email is h.dolhaine@gmx.de

Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract