numerical methods numerical analysis PDE nonlinear waves heterogenouse media dispersive waves optimization software development