pin = 100/10^3;
g = 58/10^6;
s = 100/10^6;
w = 300/10^6;
lamda = 46;
d = 10/10^6;
l = 200/10^6;
L := d + l + lc;
W := g + s/2 + w;
T0 = 300;
lc = 100/10^6;
ka = 10000000;
\[CapitalPhi]0 = pin/((2*g^2)/4);
sigmod[x_, a_] := 1/(E^(a*(-x)) + 1);
x1[x_] := sigmod[x - (lc - g/4), ka];
x2[x_] := sigmod[x - lc, ka];
y1[y_] := sigmod[y - w, ka];
y2[y_] := sigmod[y - (g + w), ka];
ux[x_] := x1[x] - x2[x];
uy[y_] := y1[y] - y2[y];
uz[x_, y_] := \[CapitalPhi]0*ux[x]*uy[y];
pdeSoln = NDSolveValue[{D[t[x, y], {x}, {x}] + D[t[x, y], {y}, {y}] + uz[x, y]/lamda == 0,
Derivative[1, 0][t][0, y] == 0, Derivative[0, 1][t][x, W] == 0, t[L, y] == T0,
t[x, 0] == T0}, t[x, y], {x, 0, L}, {y, 0, W}];
Plot3D[pdeSoln, {x, 0, L}, {y, 0, W}, PlotRange -> All, ColorFunction -> "DeepSeaColors"]
uz是个自己定义的热源函数,目标方程是一个二维稳态传热的傅里叶方程,然后运行报错如下
General::ivar: 0 is not a valid variable.
General::ivar: 51/125000 is not a valid variable.
NDSolveValue::dsvar: 0 cannot be used as a variable.
General::munfl: Exp[-1080.] is too small to represent as a normalized machine number; precision may be lost.
General::ivar: 0.` is not a valid variable.
General::ivar: 0.000408` is not a valid variable.
NDSolveValue::dsvar: 0.` cannot be used as a variable.
General::munfl: Exp[-1080.] is too small to represent as a normalized machine number; precision may be lost.
General::ivar: 0.` is not a valid variable.
General::stop: Further output of General::ivar will be suppressed during this calculation.
NDSolveValue::dsvar: 0.` cannot be used as a variable.
General::munfl: Exp[-1080.] is too small to represent as a normalized machine number; precision may be lost.
General::stop: Further output of General::munfl will be suppressed during this calculation.
NDSolveValue::dsvar: 0.` cannot be used as a variable.
General::stop: Further output of NDSolveValue::dsvar will be suppressed during this calculation.
望大佬指点一下
g = 58/10^6;
s = 100/10^6;
w = 300/10^6;
lamda = 46;
d = 10/10^6;
l = 200/10^6;
L := d + l + lc;
W := g + s/2 + w;
T0 = 300;
lc = 100/10^6;
ka = 10000000;
\[CapitalPhi]0 = pin/((2*g^2)/4);
sigmod[x_, a_] := 1/(E^(a*(-x)) + 1);
x1[x_] := sigmod[x - (lc - g/4), ka];
x2[x_] := sigmod[x - lc, ka];
y1[y_] := sigmod[y - w, ka];
y2[y_] := sigmod[y - (g + w), ka];
ux[x_] := x1[x] - x2[x];
uy[y_] := y1[y] - y2[y];
uz[x_, y_] := \[CapitalPhi]0*ux[x]*uy[y];
pdeSoln = NDSolveValue[{D[t[x, y], {x}, {x}] + D[t[x, y], {y}, {y}] + uz[x, y]/lamda == 0,
Derivative[1, 0][t][0, y] == 0, Derivative[0, 1][t][x, W] == 0, t[L, y] == T0,
t[x, 0] == T0}, t[x, y], {x, 0, L}, {y, 0, W}];
Plot3D[pdeSoln, {x, 0, L}, {y, 0, W}, PlotRange -> All, ColorFunction -> "DeepSeaColors"]
uz是个自己定义的热源函数,目标方程是一个二维稳态传热的傅里叶方程,然后运行报错如下
General::ivar: 0 is not a valid variable.
General::ivar: 51/125000 is not a valid variable.
NDSolveValue::dsvar: 0 cannot be used as a variable.
General::munfl: Exp[-1080.] is too small to represent as a normalized machine number; precision may be lost.
General::ivar: 0.` is not a valid variable.
General::ivar: 0.000408` is not a valid variable.
NDSolveValue::dsvar: 0.` cannot be used as a variable.
General::munfl: Exp[-1080.] is too small to represent as a normalized machine number; precision may be lost.
General::ivar: 0.` is not a valid variable.
General::stop: Further output of General::ivar will be suppressed during this calculation.
NDSolveValue::dsvar: 0.` cannot be used as a variable.
General::munfl: Exp[-1080.] is too small to represent as a normalized machine number; precision may be lost.
General::stop: Further output of General::munfl will be suppressed during this calculation.
NDSolveValue::dsvar: 0.` cannot be used as a variable.
General::stop: Further output of NDSolveValue::dsvar will be suppressed during this calculation.
望大佬指点一下