freegs.multigrid

freegs.multigrid#

Multigrid solver for elliptic problems

Example

$ python multigrid.py

This will run the test case, solving Poisson equation in 2D

Copyright 2016 Ben Dudson, University of York. Email: benjamin.dudson@york.ac.uk

This file is part of FreeGS.

FreeGS is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

FreeGS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with FreeGS. If not, see <http://www.gnu.org/licenses/>.

Functions

createVcycle(nx, ny, generator[, nlevels, ...])

Create a hierarchy of solvers in a multigrid V-cycle

interpolate(orig[, out])

Interpolate a solution onto a finer mesh

restrict(orig[, out, avg])

Coarsen the original onto a coarser mesh

smoothJacobi(A, x, b, dx, dy)

Smooth the solution using Jacobi method

smoothMG(A, x, b, dx, dy[, niter, ...])

smoothVcycle(A, x, b, dx, dy[, niter, ...])

Perform smoothing using multigrid

Classes

LaplaceSparse(Lx, Ly)

LaplacianOp()

Implements a simple Laplacian operator for use with the multigrid solver

MGDirect(A)

MGJacobi(A[, ncycle, niter, subsolver])