Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Solving Poisson Equation by using FDM

  1. Jun 8, 2012 #1
    I need help from any one urgently,
    I need C code for Solving Poisson Equation has known source with Neumann condition by using FDM (finite difference method) in 2D problem.
  2. jcsd
  3. Jun 8, 2012 #2
    Tell you what, I'm gonna' make some suggestions you may not like:

    1. Helps if you show effort rather than just ask for a hand-out.

    2. Helps if you don't say urgent. Kinda' offensive like we gonna' stop what we're doing and help you cus' you said urgent.

    3. Try and work on simple ones first just to get the hang of using this method. Work on a simple one you already know the answer so you can check your work. Any PDE text will have a section on numerical methods. Forget about Poission's equation for now and just go over the simple examples in the book.

    4. You phrased your question in terms of code. Usually we don't do code in here expecially C cus' Mathematica is way easier. If you need help with code, we have sub-forums below under "Mathematical Software" that may be more appropriate for your question.

    5. Try and remember whenever you have a tough problem you can't solve, put it on the back-burner and work on a simpler, related one first, get that one right, then build up the problem to the one on the back-burner. For example solve Laplace's equation numerically first. Then for example if the non-homogeneous component of Poission's equation is complicated, just solve it for say a constant term or just f=x for starters then build it back up to the equation you wish to solve.

    6. Don't double-post: don't make an identical post in the Mathematics Software forum. You'll just tick them off more.

    So here's my best advice:

    Make some genuine effort on say a simple problem, preferably in Mathematica code. Then go to the Mathematics Software forum, read some of them to get a hang of the dialog. Write up some Mathemtaica code to show effort, then ask for help on that problem (since it's not this one it's not a double-post). Those guys in that forum are really good.
    Last edited: Jun 8, 2012
  4. Jun 8, 2012 #3
    I don't think anyone is just going to give you code here. Write the Poisson equation as a partial differential equation, and just replace the partial derivatives by differences between neighboring points/timeslices.
  5. Jun 8, 2012 #4
    Not C, but I have Mathematica code (you'd have to shoot me first to make me do this in C ;)

    I can't post a link, since this forum will not let me. But if you go to my web site and click on the Mathematica applets page near the top, you'll see the poisson applet there. Just google my name (Nasser Abbasi). I have to make 10 posts here for this forum to let me post a link it seems.

    Source code is there. Feel free to translate it to C. Many differenent methods. Pick the solver you like.

    Poisson 2D, Supports Neumman and Dirichlet boundary conditions. Different grid size on each dimension.

    The Mathematica Applet is there that you can run from your browser.

    Last edited: Jun 8, 2012
  6. Jun 12, 2012 #5
    Sorry for late reply and thank you jackmell for your advices. I have just started to use this forum, so I have no about how the discussion should be here. The aim of my post to know if there is somebody can help me in solving poison problem, if i get reply, I can then ask precisely about what I want to solve. I did effort to solve the problem of course and i got some problems and this why I want to discuss here to find the solution. I will write that in another reply post. Anyway, thank you for the advice and showing me the way, and I hope you get the aim of my post.
  7. Jun 12, 2012 #6
    Great thanks nasser_abbasi for your help by sending me your web site showing the Mathematica code. I will search and study them. If i have a problem, I will send again.
  8. Jun 12, 2012 #7
    Thank you for your reply and I will try to work on your advice.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook