I have been working on a program for teaching and research on One Dimensional Partial Differential Equation Numerical Solution Methods. I hope to add many more methods and PDE equations. The current Wave and Burger's Equation solvers with symmetric boundary conditions can be fun to play with various parameters. The figure below shows solutions using three different solvers at a CFL of 0.9. CFL is a time step constraint where at a CFL of 1 the wave would travel one point each step. The methods shown are 1st order upwind Euler explicit which is dissipative so the amplitude decreases. The FEM, Finite Element Method, uses the very stable trapezoidal time integration with linear elements. This FEM method has no dissipation but some phase error resulting in a shift in the peak values. Finally the RK4 - Fourth order Runge Kutta method using FEM linear elements is the most accurate but requires more computation and is stable only to CFL = 1.
PDE1D screen shot.

The latest changes include the Curves Tab which allows modification of some of the plot curve parameters including; Line color, Line Style, Line Width, Symbol, Symbol Color, Symbol Size. I try to keep a current version of the code at https://github.com/davisdl48/pde1d.
Future features :
More General PDE equations
- Full linear wave equation
- Generalized heat equation
- Sod's shock tube
- CD nozzle
- Laminar flame
- Discontinuous Galerkin
- Wavelet
- Patch Spectral
Internal changes:
Add documentation page for PDEs and Solvers.
MathML Label for Equations in ComboBox.
Move to data pointer list for all variables. May be rewrite for most solvers.
Better handling of available solvers for different equations.
I currently like the feature where a set of solvers can be used for different PDE equations.
Remove some solvers.
Add more solvers.
Save setup to file. Also, animation and error data.
Add ideal solver for Burger's Equation.
No comments:
Post a Comment