|
1 | 1 | # PDESystem
|
2 | 2 |
|
3 |
| -`PDESystem` is still a work in progress. |
| 3 | +#### Note: PDESystem is still experimental and the solver ecosystem is being developed |
| 4 | + |
| 5 | +`PDESystem` is the common symbolic PDE specification for the Julia ecosystem. |
| 6 | +It is currently being built as a component of the ModelingToolkit ecosystem, |
| 7 | +but it will soon be siphoned off to a PDE.jl which defines and documents the |
| 8 | +whole common PDE interface ecosystem. For now, this portion documents the `PDESystem` |
| 9 | +which is the core symbolic component of this interface. |
| 10 | + |
| 11 | +## Vision |
| 12 | + |
| 13 | +The vision for the common PDE interface is that a user should only have to specify |
| 14 | +their PDE once, mathematically, and have instant access to everything as simple |
| 15 | +as a finite difference method with constant grid spacing, to something as complex |
| 16 | +as a distributed multi-GPU discrete Galerkin method. |
| 17 | + |
| 18 | +The key to the common PDE interface is a separation of the symbolic handling from |
| 19 | +the numerical world. All of the discretizers should not "solve" the PDE, but |
| 20 | +instead be a conversion of the mathematical specification to a numerical problem. |
| 21 | +These elementary problems, such as solving linear systems `Ax=b`, solving nonlinear |
| 22 | +systems `f(x)=0`, ODEs, etc. are all defined by DiffEqBase.jl, which then numerical |
| 23 | +solvers can all target these common forms. Thus someone who works on linear solvers |
| 24 | +doesn't necessarily need to be working on a DG or finite element library, but |
| 25 | +instead "linear solvers that are good for matrices A with properties ..." which |
| 26 | +are then accessible by every other discretization method in the common PDE interface. |
0 commit comments