Class ILUT

  • All Implemented Interfaces:
    Preconditioner

    public class ILUT
    extends java.lang.Object
    implements Preconditioner
    ILU preconditioner with fill-in. Uses the dual threshold approach of Saad.
    • Constructor Summary

      Constructors 
      Constructor Description
      ILUT​(FlexCompRowMatrix LU)
      Sets up the preconditioner for the given matrix.
      ILUT​(FlexCompRowMatrix LU, double tau, int p)
      Sets up the preconditioner for the given matrix
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Vector apply​(Vector b, Vector x)
      Solves the approximate problem with the given right hand side.
      void setMatrix​(Matrix A)
      Sets the operator matrix for the preconditioner.
      Vector transApply​(Vector b, Vector x)
      Solves the approximate transpose problem with the given right hand side.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ILUT

        public ILUT​(FlexCompRowMatrix LU,
                    double tau,
                    int p)
        Sets up the preconditioner for the given matrix
        Parameters:
        LU - Matrix to use internally. For best performance, its non-zero pattern should conform to that of the system matrix
        tau - Drop tolerance
        p - Number of entries to keep on each row in of the factored matrix. This is in addition to the entries of the original matrix
      • ILUT

        public ILUT​(FlexCompRowMatrix LU)
        Sets up the preconditioner for the given matrix. Uses a drop-tolerance of 10-6, and keeps 50 entries on each row, including the main diagonal and any previous entries in the matrix structure
        Parameters:
        LU - Matrix to use internally. For best performance, its non-zero pattern should conform to that of the system matrix
    • Method Detail

      • apply

        public Vector apply​(Vector b,
                            Vector x)
        Description copied from interface: Preconditioner
        Solves the approximate problem with the given right hand side. Result is stored in given solution vector
        Specified by:
        apply in interface Preconditioner
        Parameters:
        b - Right hand side of problem
        x - Result is stored here
        Returns:
        x
      • transApply

        public Vector transApply​(Vector b,
                                 Vector x)
        Description copied from interface: Preconditioner
        Solves the approximate transpose problem with the given right hand side. Result is stored in given solution vector
        Specified by:
        transApply in interface Preconditioner
        Parameters:
        b - Right hand side of problem
        x - Result is stored here
        Returns:
        x
      • setMatrix

        public void setMatrix​(Matrix A)
        Description copied from interface: Preconditioner
        Sets the operator matrix for the preconditioner. This method must be called before a preconditioner is used by an iterative solver
        Specified by:
        setMatrix in interface Preconditioner
        Parameters:
        A - Matrix to setup the preconditioner for. Not modified