Nonlinear Multigrid: Coarse Grid Operators
I am implementing a 3D CFD solver, and I have a question about nonlinear multigrid.
I have implemented a 3rd order advection / 2nd order viscous routine on a single grid. The system is solved using a second order implicit scheme, with Roe splitting, similar to Rogers and Kwak (and others): R(Q)=0 => L(dQ) = R(Q) + some iteration residual where Q are the flow variables, R is the discretization of the NS equations (large-stencil) and L is a simplified operator of the non-linear operator R. L is constructed so that the system is block-tridiagonal. Fairly standard fare. Cut to the multi-grid. Following Press et al., on coarser grids I will end up with equations of the form: L_(dQ_)=R_(Q_-I*Q)+f where the underscores represent a coarse grid operator or variable and f is a bunch of stuff left over from restriction/prolongation. I*Q is the restricted solution. The question is thus: Do I have to calculate the coarse grid operator R_ using the same method that I used for the fine grid operator R? This would require evaluating all of the advection terms _at each grid level_, which seems like it would be costly. I would much rather calculate R_ as an agglomeration of the terms in R, or even L: L_(dQ_)=L_(Q_-I*Q)+f This way, L, and all the coarse grid L_'s are calculated once per pseudo-time step. But this seems like I might be breaking the spirit of non-linear multigrid, or drastically hurting convergence. Comments? |
All times are GMT -4. The time now is 01:21. |