# FEM giving " ... is not a polynomial error"

Executing the program below I get the

... is not a polynomial

error message. I don't have an idea why I am getting this -- any suggestions?

ClearAll["Global*"]

Needs["NDSolveFEM"]

Q = 60;

A = 4000;

nb = 0.42;

dens = 1.48;

Co = 0.05;

Vx = Q/A;

Dx = 73.51*Vx + 0.282;

R = 1 + (dens/nb)*(0.9292/(1 + 0.092*Ccu[x, t])^2);

reator = Dx*D[Ccu[x, t], x, x] - Vx*D[Ccu[x, t], x] -
R*D[Ccu[x, t], t];

initial = Ccu[x, 0] == 0;

b1 = {Ccu[0, t] == Co, Ccu[300000, t] == 0};

regiao = ImplicitRegion[True, {{x, 0, 500000}}];

solucao =
NDSolve[{reator == 0, initial,
DirichletCondition[Ccu[x, t] == Co, x == 0],
DirichletCondition[Ccu[x, t] == 0, x == 100000]},
Ccu, {t, 0, 100000}, {x} ∈ regiao]


CoefficientArrays::poly: -(1+3.27432/(1+0.092 Ccu)^2) Ccu\$11498-(3 Ccu\$11499)/200 + 1.38465 Ccu\$11500 is not a polynomial. >> NDSolve::femper: PDE parsing error of {-(1+3.27432/(1+0.092 Ccu)^2) Ccu\$11498-(3 Ccu\$11499)/200+1.38465 Ccu\$11500}. Inconsistent equation dimensions. >>

• Welcome to Mathematica.SE! I suggest the following: 1) As you receive help, try to give it too, by answering questions in your area of expertise. 2) Read the faq! 3) When you see good questions and answers, vote them up by clicking the gray triangles, because the credibility of the system is based on the reputation gained by users sharing their knowledge. Also, please remember to accept the answer, if any, that solves your problem, by clicking the checkmark sign! Jul 8, 2015 at 4:12

CoefficientArrays::poly: -(1 + 3.27432/(1 + 0.092 Ccu)^2) Ccu11498 - (3 Ccu11499)/200 + 1.38465 Ccu$11500 is not a polynomial. >> First note that Ccu is your dependent variable in your PDE. The expression being complained about has several variables, Ccu and ones like Ccu$11498.. (The ones like Ccu\$11498 are internal, localized variables representing the derivatives of Ccu in the PDE). Since Ccu appears in the denominator, the expression is not a polynomial. You can call CoefficientArrays on the expression to see the identical message.
As I pointed out in Kernel quits without error in NDSolveValue, this error should be caught internally and the more useful error NDSolve::femnonlinear` returned in its place.