TransWikia.com

Analytical Solution to Laplace over Irregular Domain using DSolve

Mathematica Asked by Mark Cairnie on April 2, 2021

I would like to find an analytical solution to a Laplace equation over the following irregular domain using a mix of Dirichlet and Neumann boundary conditions. I’ve spent a lot of time trying to use dsolve to compute and analytical result with Neumann values and Dirichlet conditions and I cannot figure it out so I think I have resolved to just set x1, x2, y1, and y2 adequately large and use another Dirichlet condition to set the function value to 0 at those boundaries.

Desired Region

I implemented this in Mathematica as follows but I receive an error message from DSolveValue stating the variable specification is not valid. The only thing I can think of is the analytical solver cannot handle this irregular domain.

ClearAll["Global`*"]
buffer = 25;
x1 = -1; x2 = 1; y1 = -1; y2 = 1 ; 
Uo = 100;

(* Plot Region *)
omeg1 = Rectangle[{x1, 0}, {0, y2}];
omeg2 = Rectangle[{0, 0}, {x2, y2}];
omeg3 = Rectangle[{0, y1}, {x2, 0}];
omegp = RegionUnion[omeg1, omeg2, omeg3];
(*RegionPlot[omegp]*)

(* Solve Region *)
omeg1 = Rectangle[{-buffer, 0}, {0, buffer}];
omeg2 = Rectangle[{0, 0}, {buffer, buffer}];
omeg3 = Rectangle[{0, -buffer}, {buffer, 0}];
omegs = RegionUnion[omeg1, omeg2, omeg3];

eqn = Laplacian[u[x, y], {x, y}] == 0;

sol = DSolveValue[{eqn,
    DirichletCondition[
     u[x, y] == Piecewise[{{Uo, x <= 0 && y <= 0}}, 0], True]},
   u[x, y], {x, y} [Element] omegs] // FullSimplify

So I think I need to re-frame the problem as a coupled PDE system over simple regions where the regions are linked through matched boundaries as shown below. But I have no idea how to implement this in Mathematica or how well the analytical solver will be able to handle it. Does anyone know how I can solve this problem? Am I going down the right path?

Linked Regions

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP