Doesn't this have the same problem as the Jacobi method in that looping over the grid will be very slow? It seems like a quadratic solver could be used to speed up the computation, similar to using a linear solver for the Laplace Equation.
keenan
@L100magikarp The issues are slightly different here, but you're right that thinking about where/how a linear solver can be incorporated makes sense.
The basic difference is that with a Laplace equation you're looking for a static, equilibrium solution (just one function) whereas in with the heat equation you're looking for a dynamic solution (you want to know the function at every moment of time). So, it makes sense to setup and solve a big linear system for the final solution.
With a dynamic equation, you might want to take small time steps. E.g., you might need to display animation 30 or 60 times a second---or might need to simulate sound 44000 times per second! So, taking little steps that slowly move toward the equilibrium actually makes sense as a computational technique.
However, if you do want to take very large steps for something like the heat equation, wave equation, etc., you may end up needing to solve a big linear system again. For instance, we talked about how the backward Euler scheme is more efficient than forward Euler for integrating an ODE. In the case of this PDE, we can also apply backward Euler:
$$\tfrac{u^{k+1}-u^k}{\tau} = \Delta u^{k+1}$$
becomes
$$(I - \tau\Delta) u^{k+1} = u^k$$
When (\Delta) is replaced with a discrete Laplacian (whether on a grid, triangle mesh, etc.) this becomes a linear system for the function at the next time step $k+1$.
Doesn't this have the same problem as the Jacobi method in that looping over the grid will be very slow? It seems like a quadratic solver could be used to speed up the computation, similar to using a linear solver for the Laplace Equation.
@L100magikarp The issues are slightly different here, but you're right that thinking about where/how a linear solver can be incorporated makes sense.
The basic difference is that with a Laplace equation you're looking for a static, equilibrium solution (just one function) whereas in with the heat equation you're looking for a dynamic solution (you want to know the function at every moment of time). So, it makes sense to setup and solve a big linear system for the final solution.
With a dynamic equation, you might want to take small time steps. E.g., you might need to display animation 30 or 60 times a second---or might need to simulate sound 44000 times per second! So, taking little steps that slowly move toward the equilibrium actually makes sense as a computational technique.
However, if you do want to take very large steps for something like the heat equation, wave equation, etc., you may end up needing to solve a big linear system again. For instance, we talked about how the backward Euler scheme is more efficient than forward Euler for integrating an ODE. In the case of this PDE, we can also apply backward Euler:
$$\tfrac{u^{k+1}-u^k}{\tau} = \Delta u^{k+1}$$
becomes
$$(I - \tau\Delta) u^{k+1} = u^k$$
When (\Delta) is replaced with a discrete Laplacian (whether on a grid, triangle mesh, etc.) this becomes a linear system for the function at the next time step $k+1$.