CFMultigrid

Documentation for CFMultigrid.

CFMultigrid.ParamType
param = Param()

returns the default parameters set for the multigrid. param is mutable. All the entries can be modified.

print(param)

to see all the parameters. param is the sole input argument to create a multigrid object (see ?get_gmg)

source
CFMultigrid.get_gmgMethod
mg = get_gmg(param)

Returns a multigrid object, whose specs are defined by param (see ?Param)

  • The operator A is defined by param.operator. So far only the :laplacian is implemented
  • Two types of boundary conditions (BC) are possible: Dirichlet and Neumann. They are selected by setting the param.location of the discretized variables: either :vertices (for Dirichlet) or :centers (for Neumann).

To see the grid hierarchy

`print(mg.levels)`

To solve A * x = b

`res, nite = solve!(mg)`
  • b, the r.h.s., must be copied in mg.data[1].b (a 3d array)
  • x, the first guess and the solution, is in mg.data[1].x (a 3d array)

Irregular domains are handled with a mask system. Look inside 'tests/' for examples.

source