multigrid¶
-
emg3d.solver.
multigrid
(grid, model, sfield, efield, var, **kwargs)[source]¶ Multigrid solver for 3D controlled-source electromagnetic (CSEM) data.
Multigrid solver as presented in [Muld06], including semicoarsening and line relaxation as presented in and [Muld07].
- The electric field is stored in-place in efield.
- The number of multigrid cycles is stored in var.it.
- The current error (l2-norm) is stored in var.l2.
- The reference error (l2-norm of sfield) is stored in var.l2_refe.
This function is called by
solve()
.Parameters: - grid :
emg3d.meshes.TensorMesh
The grid. See
emg3d.meshes.TensorMesh
.- model :
emg3d.models.VolumeModel
The Model. See
emg3d.models.VolumeModel
.- sfield :
emg3d.fields.SourceField
The source field. See
emg3d.fields.get_source_field()
.- efield :
emg3d.fields.Field
The electric field. See
emg3d.fields.Field
.- var :
MGParameters
instance As returned by
multigrid()
.- **kwargs : Recursion parameters.
Do not use; only used internally by recursion; level (current coarsening level) and new_cycmax (new maximum of MG cycles, takes care of V/W/F-cycling).