Skip to main content
`Ctrl`+`K`

# DSTranslateHarmonic

Computes a translation of the dense system.

## Synopsis

    #include "slepcds.h"
    PetscErrorCode DSTranslateHarmonic(DS ds,PetscScalar tau,PetscReal beta,PetscBool recover,PetscScalar g[],PetscReal *gamma)

Logically Collective

## Input Parameters

- ds - the direct solver context

- tau - the translation amount

- beta - last component of vector \(b\)

- recover - boolean flag to indicate whether to recover or not

## Output Parameters

- g - the computed vector (optional)

- gamma - scale factor (optional)

## Notes

This function is intended for use in the context of Krylov methods only. It computes a translation of a Krylov decomposition in order to extract eigenpair approximations by harmonic Rayleigh-Ritz. The matrix is updated as \(A + gb^*\) where \(g = (A-\tau I)^{-*}b\) and vector \(b\) is assumed to be \(\beta e_n^*\).

The \(\gamma\) factor is defined as \(\sqrt{1+g^*g}\) and can be interpreted as the factor by which the residual of the Krylov decomposition is scaled.

If the `recover` flag is activated, the computed translation undoes the translation done previously. In that case, parameter `tau` is ignored.

## See Also

DS: Direct Solver (or Dense System), `DSTranslateRKS()`

## Level

developer

## Location

src/sys/classes/ds/interface/dsops.c

## Implementations

DSTranslateHarmonic_NHEP() in src/sys/classes/ds/impls/nhep/dsnhep.c

Index of all DS routines Table of Contents for all manual pages Index of all manual pages