partial differential equations solver