prolongation

emg3d.solver.prolongation(grid, efield, cgrid, cefield, sc_dir)[source]

Interpolating the electric field from coarse grid to fine grid.

The prolongation from a coarser to a finer grid is the inverse process of the restriction (restriction()) from a finer to a coarser grid. The interpolated values of the coarse grid electric field are added to the fine grid electric field, in-place. Piecewise constant interpolation is used in the direction of the field, and bilinear interpolation in the other two directions.

See Equation 10 in [Muld06] and surrounding text.

This function is called by multigrid().

Parameters:
grid, cgrid : emg3d.meshes.TensorMesh

Fine and coarse grids.

efield, cefield : emg3d.fields.Field

Fine and coarse grid electric fields.

sc_dir : int

Direction of semicoarsening (0, 1, 2, or 3).