0
|
9141 Views
|
3 Replies
|
3 Total Likes
View groups...
Share
GROUPS:

# Solving the Laplace equation with only Neumann boundary conditions

Posted 9 years ago
 Hey I want to solve the Laplace equation with Neumann boundary conditions on all boundaries, The solution seems random when I do not include any DirichletConditions though. Here is an example of the Laplace in cylindrical coordinates (with cylindrical symmetry). "mesh" and "region" are define on the region 0 <= r <= 20 and 0 <= z <= 30. T = NDSolveValue[ op == NeumannValue[r, z == 0] + NeumannValue[r, z == 30], u, {r, z} \[Element] mesh, Method -> {"FiniteElement", "MeshOptions" -> {"BoundaryMeshGenerator" -> "Continuation"}}]; Show[ ContourPlot[T[r, z], {r, z} \[Element] region , Mesh -> None, ColorFunction -> "TemperatureMap", Contours -> 40, AspectRatio -> Automatic, PlotRange -> All, Method -> {"GridLinesInFront" -> True}] ]  "op" is: And I get the result: What do I do wrong?
3 Replies
Sort By:
Posted 9 years ago
 By "NeumannValue[r, z == 0]" I mean that the derivative perpendicular to the surface at z=0 is equal to the linear function f(r)=r. This works when I include a DirichletValue. Where are the conditions for the shank? When I don't specify anything on a boundary, Mathematica uses that NeumannValue[0,boundary]. Right? This is ill-posed problem as there is no unique solution in this case. Sorry, I didn't make myself clear. I am only going to use the gradient of the solution. When there is no unique solution in this case it means that adding a constant is a solution as well. If I could just specify a single point inside the region (and thereby not spoil the boundaries) I would get a unique solution. Would that be possible?
Posted 9 years ago
 I want to solve the Laplace equation with Neumann boundary conditions on all boundaries, The solution seems random when I do not include any DirichletConditions though. You can't have Neumann boundary conditions on all boundaries. This is ill-posed problem as there is no unique solution in this case. One of the boundaries must be Dirichlet.
Posted 9 years ago
 First, what does it mean to say NeumannValue[r, z == 0] taken into account that r is an independent variable?Then there are not enough conditions to avoid randomness in a way. To see that take manual's example NDSolveValue[{\!$$\*SubsuperscriptBox[\(\[Del]$$, $${x, y}$$, $$2$$]$$u[x, y]$$\) == NeumannValue[1., x >= 0.35], DirichletCondition[u[x, y] == 0., x <= -0.3]}, u, {x, y} \[Element] Disk[]] Plot3D[%[x, y], {x, y} \[Element] Disk[]] and kick the Dirichlet condition out. The result is (in 2D) In:= NDSolveValue[{\!$$\*SubsuperscriptBox[\(\[Del]$$, $${x, y}$$, $$2$$]$$u[x, y]$$\) == NeumannValue[1., x >= -1.]}, u, {x, y} \[Element] Disk[]] During evaluation of In:= NDSolveValue::femibcnd: No DirichletCondition or Robin-type NeumannValue was specified; the result may be off by a constant value. >> Out= InterpolatingFunction[{{-1., 1.}, {-1., 1.}}, <>] and this NDSolveValue::femibcnd is pretty reasonable. In 3D the question is: Where are the conditions for the shank?