1
$\begingroup$

There are generic methods for solving systems of ODEs numerically. Are there generic methods for PDEs? If so, what are they? If not, why not? To elaborate...

Any set of ODEs can be written in standard form as a set of n first order ODEs in n variables. A single method can then be used. The number of boundary/initial conditions required is n. Not absolutely every ODE with a solution can be solved by a single method and mathematicians will understand advantages of certain methods for certain problems, but science/engineering type of people can expect to use the method to get a solution to a reasonable problem if one exists. Example implementations include bvp4c in MATLAB and scipy.integrate.solve_bvp in Python.

I am not aware of a single version of FEM/FVM or any other method that can be applied as reliably as the ODE methods. But systems of PDEs can also be reduced to a first order standard form and possibly other standard forms. Complications that may prevent a generic method I'm aware of include: behavioural differences based on elliptic/hyperbolic classification (definitely applies to second order PDEs but possibly also any system of PDEs); form of boundary condition required (eg whole-boundary conditions vs Cauchy conditions, which may be directly related to ellipticity); behavioural difference for even/odd derivatives(?) Do any of these things prevent a single generic method? Are there any other reasons?

In MATLAB, solvepde works on systems of second order PDEs, so I think this excludes any PDEs with odd (spatial) derivatives. I'm not sure if the C++/Python FEniCS can represent any system of PDEs with its form language. If it can, my understanding is still that the method will not converge if certain conditions are not met on the choice of basis functions. So it seems these are fairly general methods but not completely generic from the point of view of a science/engineering programmer who just wants a solution without understanding lots of theory (as is the case for the mentioned ODE solvers).

$\endgroup$
  • $\begingroup$ A set of ODEs can be written as a system of first order ODEs if you can solve for the highest derivatives, otherwise I don't see how. $\endgroup$ – nicoguaro Aug 13 '18 at 21:00
  • $\begingroup$ Ah, perhaps I meant a more restricted question than I realised, ie some explicit form of ODE/PDE. If it becomes clear the standard form is very relevant, I will edit it into the question directly. $\endgroup$ – user2357 Aug 14 '18 at 17:48
6
$\begingroup$

No. Different discretizations are stable/unstable on different PDEs. There is no one size fits all approach to the whole class of PDEs.

(Even for ODEs there are generic methods but which methods are good depends on the equation being solved)

$\endgroup$
  • 3
    $\begingroup$ That's exactly right: Even for ODEs, you use different methods depending on whether or not the ODE is stiff, is a DAE, etc. No method fits all there either. $\endgroup$ – Wolfgang Bangerth Aug 13 '18 at 22:24
  • $\begingroup$ If "no" I was hoping for an intuitive explanation of the "why not" part. Chris, @Wolfgang I don't think either of you are disagreeing that a single method (eg solve_bvp) can work for "most" (in some reasonable sense?) ODEs in the sense it converges even if there are more efficient methods for, eg, IVPs, non-stiff. I'm not sure if ADEs were a counter-example (I read there is a systematic method to convert them into explicit ODEs but with what caveats I don't know). $\endgroup$ – user2357 Aug 14 '18 at 17:52
  • $\begingroup$ However, perhaps it would have been better to ask if there is a single generic method for each large class of PDEs that can be represented in a certain standard form? (If not, why not.) And as the boundary conditions are part of that standard form, this perhaps suggests a split of method for Cauchy problems (generally hyperbolic?) and Dirichlet problems (ie condition specified on whole of closed boundary, generally elliptic?). Single method for these categories? $\endgroup$ – user2357 Aug 14 '18 at 17:53

Your Answer

By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.