SSOR Preconditioner

template<class MatType, class VecType, typename NumType>
class SSOR : public BasePreconditioner<MatType, VecType, NumType>

Symmetric Successive Over-Relaxation (SSOR) preconditoner.

Template Parameters
  • MatType: Matrix type (HostMatrix<NumType> and DeviceMatrix<NumTyper> currently supported).
  • VecType: Vector type (HostVector<NumType> and DeviceVector<NumTyper> currently supported).
  • NumType: Number type (double and float currently supported). The relaxation parameter :math:\omega is set to 1 here.

Public Functions

void prepare_preconditioner(const MatType &mat)

Prepares the preconditioner matrix M of matrix mat.

Parameters
  • mat: Matrix on which the preconditioner is to be used.

void apply(VecType *x) const

Apply the preconditioner on the provided vector in place.

virtual void apply(const VecType &b, VecType *x) const

Solve for x in M * x = b, where M is the preconditioning matrix.