# NDSolveValue. NeumannValue

Im trying to solve an electromagnetics problem, where I have a a conductor with the shape of a square as the base and infinite length. Through the sides od these conducto, flows current, or better said, superficial current density (K). So I have to introduce four NeumannValue in the solution, but i don't know if this is possible. Here i put the code and the error that appears:

Aif = NDSolveValue[{Laplacian[A[x, y], {x, y}] == NeumannValue[mu0*
(Ic/side), x == side/2 && -side/2 <= y <= side/2], NeumannValue[mu0*
(Ic/side), x == -side/2 && -side/2 <= y <= side/2], NeumannValue[mu0*
(Ic/side), y == side/2 && -side/2 <= x <= side/2], NeumannValue[mu0*
(Ic/side), y == -side/2 && -side/2 <= x <= side/2],
DirichletCondition[Aif[x, y] == 0, x^2 + y^2 == r0^2]}, A, {x, y}
\[Element] s, Method -> {"FiniteElement", "MeshOptions" ->
{MaxCellMeasure -> 0.01}}];


The error that appears is the following:

NDSolveValue::deqn: Equation or list of equations expected instead of
NeumannValue[1.25664*10^-6,x==-(1/2)&&-(1/2)<=y<=1/2] in the first
argument {(A^(0,2))[x,y]+(A^(2,0))[x,y]==NeumannValue[1.25664*10^-
6,x==1/2&&-(1/2)<=y<=1
/2],<<3>>,DirichletCondition[NDSolveValue[{(<<1>>^(<<2>>))[<<2>>]+
(<<1>>^(<<2>>))[<<2>>]==NeumannValue[1.25664*10^-
6,And[<<2>>]],NeumannValue[1.25664*10^-6,Equal[<<2>>]&&LessEqual[<<3>>]],
<<1>>,NeumannValue[1.25664*10^-
6,Equal[<<2>>]&&LessEqual[<<3>>]],DirichletCondition[NDSolveValue[<<4>>]
[<<2>>]==0,Plus[<<2>>]==100]},A,<<1>>\[Element]<<1>>,Method->
{FiniteElements,MeshOptions->{<<1>>}}][x,y]==0,<<1>>]}.


What's the problem? Maybe I should define all that in just one NeumannValue? Or there's another point on that? Thank you!

• Can you provide the equations and conditions? Because the code are totally wrong and not-understandable. Commented Apr 18, 2018 at 20:00

## 1 Answer

Unfortunately, the code you provide is incomplete. At a minimum you will have to change to this:

Aif = NDSolveValue[{Laplacian[A[x, y], {x, y}] ==
NeumannValue[mu0*(Ic/side),
x == side/2 && -side/2 <= y <= side/2] +
NeumannValue[mu0*(Ic/side),
x == -side/2 && -side/2 <= y <= side/2] +
NeumannValue[mu0*(Ic/side),
y == side/2 && -side/2 <= x <= side/2] +
NeumannValue[mu0*(Ic/side),
y == -side/2 && -side/2 <= x <= side/2],
DirichletCondition[A[x, y] == 0, x^2 + y^2 == r0^2]},
A, {x, y} \[Element] s,
Method -> {"FiniteElement",
"MeshOptions" -> {MaxCellMeasure -> 0.01}}];