krylov#

emg3d.solver.krylov(model, sfield, efield, var)[source]#

Krylov subspace solver for three-dimensional electromagnetic diffusion.

Using a Krylov subspace iterative solver (defined in var.sslsolver) implemented in SciPy with or without multigrid as a pre-conditioner ([Muld06]).

  • The electric field is stored in-place in efield.

  • 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 emg3d.solver.solve.

Parameters
modelVolumeModel

Input model; a emg3d.models.Model instance.

sfieldField

The source field; a emg3d.fields.Field instance.

efieldField

The electric field; a emg3d.fields.Field instance.

varMGParameters

A multigrid parameter instance used within emg3d.solver.multigrid.