On Wed, 5 Feb 2025 at 13:41, Jatin Bhardwaj <[email protected]> wrote:
>
> Hello SymPy developers,
>
>
> I am interested in improving SymPy's PDE-solving functionality, particularly 
> for quasilinear first-order PDEs, general first-order nonlinear PDEs, and 
> second-order PDEs. Currently, SymPy has strong support for linear PDEs, but 
> handling nonlinear cases—especially quasilinear and fully nonlinear 
> PDEs—remains limited.
>
>
> My primary question is: Does expanding PDE support in these areas align with 
> SymPy’s current development roadmap and priorities?
>
>
> If this aligns with SymPy’s goals, I would be enthusiastic about contributing 
> to this effort. I have a strong foundation in calculus and differential 
> equations, which I believe will be valuable in tackling this challenge. I’m 
> prepared to delve into the computational implementation of these features and 
> develop a concrete plan of action.
>
> To facilitate this process, I would greatly appreciate any guidance on:
> 1. Recommended resources for proposed features.
> 2. Any potential challenges or considerations unique to implementing 
> nonlinear PDE solvers.

Hi Jatin,

SymPy does not have a broadly agreed development roadmap and list of
priorities. Rather different people have different things that they
are working on and would prioritise. I will answer in terms of my own
sense of a roadmap and priorities.

SymPy has various solver functions e.g. solve for algebraic equations,
dsolve for ODEs and pdsolve for PDEs and many more. The usefulness of
these functions is often questionable. Even in the case of solve it
would often be better to use something else such as to compute
numerical solutions rather than analytic solutions. For dsolve, only
quite simple ODEs can be solved. The implementation can be improved to
handle more DEs but there would still be a tiny subset of problems
where analytic solutions can be computed and a vast array of practical
problems that realistically can only be handled numerically. When you
go to pdsolve and PDEs the set of cases that can be solved
analytically is so small that a function like pdsolve is almost
useless. It would be much more useful to users if SymPy just provided
something like an ndsolve function that could solve differential
equations numerically using SciPy's solvers rather than making them go
through lambdify.

That does not mean that we can't do useful things with symbolics when
solving these different types of equations. Often though the useful
thing is to do some symbolic manipulation that then helps with a
subsequent approximate or numeric calculation e.g. we could compute a
series solution or transform the equations somehow. Some symbolic
manipulation is needed even just to set up a numeric solution to a PDE
so you could imagine something useful where SymPy can do that and then
set things up so that the problem could be solved numerically with
e.g. FEniCS.

All of these are also things that could be built on top of SymPy
though so e.g. someone could make a library that depends on SymPy and
that uses it to do useful things with PDEs and FEniCS etc. The
capabilities that such a library would provide would be the same if it
was part of SymPy or just a separate library. Its capabilities would
be limited though by the capabilities of the core parts of SymPy. When
I look at GSOC proposals I am much more interested in proposals that
improve existing core functionality that would provide a good
foundation for other things to be built on top.

If SymPy did not have pdsolve and someone proposed it in a GSOC
project now then I would say that we should reject the proposal. The
only way that I would be happy to add pdsolve is if the code was
already written, comprehensive, well tested, with a well defined scope
and had already been proven to be useful. As it is we have a function
that is not that useful and would still not be that useful even if
someone improved it a bit. I'm not interested in having a GSOC project
that tries to improve pdsolve rather than some other project that
improves some core part of SymPy.

It is possible that someone else would be interested in supervising a
project around pdsolve but personally I would not and I would not
consider it to be any kind of priority for SymPy's roadmap. The
priorities from my perspective are more things like core algebra,
polynomials and matrices, functions like solve, limits, series, code
generation, performance, etc. If these parts of SymPy are good then it
provides a good foundation for someone to make a symbolic PDE library
but if we don't have the resources to handle the core things then we
should not spend those resources on things that could just be in other
libraries that depend on SymPy.

Oscar

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/sympy/CAHVvXxQQJGAhy6d7jwmC0mVBiBH8KHjycQzGQGA_R2d3Z0YhVg%40mail.gmail.com.

Reply via email to