https://www.cfd-online.com/W/index.php?title=Special:Contributions/HMJM_Flow_Eng&feed=atom&limit=50&target=HMJM_Flow_Eng&year=&month=CFD-Wiki - User contributions [en]2017-03-26T08:41:43ZFrom CFD-WikiMediaWiki 1.16.5https://www.cfd-online.com/Wiki/Algebraic_multigrid_-_AMGAlgebraic multigrid - AMG2006-09-18T08:14:00Z<p>HMJM Flow Eng: /* Algebraic Multigrid (AMG) */</p>
<hr />
<div>==Algebraic Multigrid (AMG) ==<br />
<br />
This algorithm is referred to as an '''algebraic multigrid''' scheme because the coarse level equations are generated without the use of any geometry or re-discretization on the coarse levels. This has the advantage that no coarse level grids have to be generated or stored, and no fluxes or source terms need be calculated on the coarse levels. This feature makes AMG particularly important for use on unstructured meshes.<br />
When using AMG, once the system is linearized, non-linearities are not felt by the solver until the fine level operator is next updated.<br />
<br />
==Restriction and Prolongation Operators==<br />
<br />
The restriction and prolongation or inter-level transfer is accomplished by piecewise constant interpolation and prolongation. The defect in any coarse level cell is given by the sum of those from the fine level cells it contains, while fine level corrections are obtained by injection of coarse level values. <br />
That is the prolongation operator is given by the transpose of the restriction operator as:<br />
:<math><br />
P = R^T <br />
</math><br />
<br />
==Coarse Level Operator ==<br />
<br />
The coarse level operator can be constructed using a Galerkin approach. In Galerkin approach we require that the defect associated with the corrected fine level solution must become zero when transferred back to the coarse level. Hence: <br><br />
:<math> R d^{\rm new} = 0 </math> ; where d is defect. <br><br />
We can further write: <br><br />
:<math> <br />
R \left[A \phi^{\rm new} + b \right] = 0 </math> <br><br />
<br />
:<math> R \left[A \left(\phi + P \psi^H\right) + b\right] = 0 </math><br />
<br />
Or: <br><br />
:<math> <br />
R A P \psi^H + R \left(A \phi + b\right) = 0 </math> <br><br />
:<math> R A P \psi^H + R d = 0 </math> <br><br />
This gives the coarse level operator as: <br><br />
:<math> A^H = R A P </math><br />
<br />
== Multigrid Cycles ==<br />
<br />
<br />
<br />
----<br />
<i> Return to [[Numerical methods | Numerical Methods]] </i></div>HMJM Flow Eng