-1

Could you please advise some programs or libraries for solving parabolic PDEs (or its systems) in 1D, 2D and 3D, for example, with the method of lines? The system of parabolic PDEs can be nonlinear in the right-hand side, for example, $\partial u/\partial t - a\Delta u + u^4 = 0$.

Or it is recommended to use only ODE solvers and construct the ODE system manually? What sparse ODE solvers can I use?

P.S.: Are there some methods of solving parabolic PDEs besides the method of lines? For example, one can discretize first by time and obtain elliptic equations at each time step. Is this method really slower than the method of lines? Does there exist something else?

jokersobak
  • 281
  • 3
  • 11
  • Yes, the alternative exists. What you describe is known as Rothe's method; see http://scicomp.stackexchange.com/q/2962. I don't know why you think it would be slower? (A third alternative is a space-time Galerkin method where you work with time-dependent finite-dimensional subspaces. In the vast majority of cases, you'd use a tensor product approach so you end up with a time-stepping scheme again, but from the point of view of mathematical analysis this has advantages since there's only a single approximation step involved.) – Christian Clason Oct 20 '14 at 22:09
  • Splitting methods might also work, because sometimes the nonlinear part of the equation can be handled explicitly, and their theory for the heat equation is well described in many textbooks. – Kirill Oct 20 '14 at 22:25
  • @ChristianClason I used the implicit Euler method by time and FEM discretization by space in 1D in the FreeFem++ software. It works much slower than MATLAB (function pdepe that employs the method of lines). I specified 1000 nodes grid by time and 100 nodes by space, and the implicit Euler method worked a long time but MATLAB computed the result in a moment. So the method of lines is faster? – jokersobak Oct 21 '14 at 07:20
  • @jokersobak: That's comparing apples and oranges... – Christian Clason Oct 21 '14 at 07:26
  • @ChristianClason Why? – jokersobak Oct 21 '14 at 07:28
  • 1
    Different software, different implementation, possibly different tolerances. (For example, what ODE integrator is used by pdepe? You can use other time discretizations for Rothe's method, too.) To conclude that one method is faster than the other, you need to have a controlled comparison where you can be sure the only difference is due to the method. – Christian Clason Oct 21 '14 at 07:30
  • 1
    You have asked 6 questions. Please ask only one question per question. – David Ketcheson Oct 21 '14 at 08:02

1 Answers1

1

For reference, if you want to learn about the difference between the Rothe method and the method of lines, then maybe lectures 26 and 27 on http://www.math.tamu.edu/~bangerth/videos.html are of interest to you. If you want to see how to actually implement them, take a look at lecture 29.

(Disclaimer: these are my own lectures.)

Wolfgang Bangerth
  • 55,373
  • 59
  • 119
  • This does not answer the question in the title. Of course, the problem is that the question contains 6 questions and should be separated. – David Ketcheson Oct 21 '14 at 08:03
  • 1
    The answer was in regards to one of the questions in the original post as it was at the time I wrote the answer. Since the question has changed, it is correct that this answer no longer fits. – Wolfgang Bangerth Oct 22 '14 at 11:07