# interpolation keywords

Interpolation parameters

## interpolation.interpRho

If it is set to true and RESCU uses two grids, then RESCU computes
interpolates the density instead of the wave-functions. This may lead to
a loss of accuracy.

**type**: `scalar`

**default**: `0`

**example**: `interpolation.interpRho = false`

## interpolation.method

Determine the interpolation scheme; required if domain.cgridn neq
domain.fgridn; \'fourier\' generates the interpolation matrix from the
Fourier transform coefficients, it results in a dense matrix, and hence
it is more suitable for small systems; \'interpft\' interpolates vectors
using fast Fourier transforms; \'lagrange\' generates the interpolation
matrix using Lagrange coefficients, the matrix has a finite bandwidth,
and hence it is more suitable for large systems (in which case it is
sparse).

**type**: `string`

**default**: `'fourier'`

**allowed**: `'fourier','interpft','lagrange'`

**example**: `interpolation.method = 'lagrange'`

## interpolation.normConserving

If interpolation.method = \'lagrange\', the interpolation matrices are
transformed such that interpolated wave-functions remain orthonormal.

**type**: `scalar`

**default**: `false`

**allowed**: `true,false`

**example**: `interpolation.normConserving = true`

## interpolation.order

Determine the number of points used by the Lagrange interpolation
scheme; referenced only if interpolation.method = \'lagrange\'; the
lower the order, the sparser (and cheaper) the interpolation.

**type**: `scalar`

**default**: `16`

**example**: `interpolation.order = 7`

## interpolation.vloc

Determine whether to use dynamical interpolation when calling the
Hamiltonian product function; if interpolation.vloc = true, the local
potentials are discretized on the fine grid, the wavefunctions are thus
interpolated onto the fine grid before being multiplied by the local
potential operators, the resulting vector is then interpolated back to
the coarse grid; if interpolation.vloc = false, the local potential
operator is evaluated on the coarse grid.

**type**: `scalar`

**allowed**: `true,false`

**example**: `interpolation.vloc = true`

## interpolation.vnl

Determine whether to use dynamical interpolation when calling the
Hamiltonian product function; if interpolation.vnl = true, the
projectors are discretized on the fine grid, the wavefunctions are thus
interpolated to the fine grid before being contracted with the
projectors, the resulting vector is then interpolated back to the coarse
grid; if interpolation.vnl = false, the projectors are interpolated onto
the coarse grid and the wavefunctions need not be interpolated on the
fly; both schemes are equivalent, but the efficiency may differ; if
interpolation.method = \'fourier\' or interpolation.method =
\'interpft\', interpolation.vnl = true should be used (except for small
systems) because interpolating the projectors will make them dense,
which results in prohibitive memory requirements; if
interpolation.method = \'lagrange\' then the best choice depends on
interpolation.order and the ratio of domain.cgridn and domain.fgridn.

**type**: `scalar`

**default**: `true`

**allowed**: `true,false`

**example**: `interpolation.vnl = true`
