# System overdetermined

Posted 13 days ago
409 Views
|
11 Replies
|
2 Total Likes
|
 Hello! I am coding the two-dimensional (2D) transient heat equation to simulate wood drying by radio frequency and vacuum. I defined the initial and boundary conditions as follows:, 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["NDSolveFEM"] 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
Sort By:
Posted 13 days ago
 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}] 
Posted 13 days ago
 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)
Posted 12 days ago
 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.
Posted 11 days ago
 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}] 
Posted 10 days ago
 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}] 
Posted 8 days ago
 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?
Posted 7 days ago
 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
Posted 7 days ago
 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.
Posted 6 days ago
 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